The timing for using Containers versus Virtual Machines has been discussed online for a long time. Everyone has their own views and opinions; some support pure Containers, some support pure VMs, and others support Containers on VMs. This article will introduce Container vs VM from a personal perspective and discuss their appropriate use cases. **Container** Containers have risen to fame rapidly over the past five years, thanks to their lightweight nature and flexible, fast deployment. Instead of virtualizing the entire hardware, Containers use cgroups and namespaces to isolate host OS resources, which some also call OS virtualization. Containers share the host's kernel and only have their own independent binaries and libraries, so they are much faster than VMs in terms of image size and startup speed. **Advantages of Containers:** - **Small Image Size:** Because they share the kernel with the host, they only need to provide the necessary OS components and libraries. - **Speed:** Deployment is extremely fast, usually taking only a few seconds to generate a container. - **Portability:** On the correct kernel [...]
Deploying Kolla-Ansible with External Ceph
When deploying Kolla-Ansible, although you can deploy a Ceph Cluster simultaneously, in some cases, operations personnel may want to manage Ceph and OpenStack separately while still using Ceph as the storage backend. In such cases, there's no need to worry; Kolla-Ansible can utilize the previously mentioned config override feature to use an External Ceph Cluster. This article will introduce how to use Kolla-Ansible and its config override feature to deploy OpenStack using external Ceph. **Preparation** Since we want to use an external Ceph Cluster, we first need to deploy a Ceph cluster. There are many options for deploying Ceph; you can refer to the previously introduced Ceph-Ansible for deployment. Additionally, we need some basic knowledge of using Kolla-Ansible, which you can find in this article: Deploying OpenStack via Kolla-Ansible and Containers. **Ceph Settings:** RBD Pool, OpenStack Nova, Cinder (Cinder Backup), Glance [...]
Deploying a Ceph Cluster using Ceph-Ansible
Ceph is an open-source distributed storage system capable of providing object, block, and file system storage simultaneously. Therefore, it is widely used in OpenStack deployments to provide backends for Swift, Cinder, and Manila. This article will introduce how to use Ceph-Ansible to deploy a production-ready, high-availability Ceph Cluster. **Basic Architecture** A basic Ceph Cluster essentially consists of three components: Ceph Monitor, Ceph OSD, and Ceph Manager Daemon. **Ceph Monitor** The Ceph Monitor is the core component of Ceph. It is responsible for maintaining the state maps of the entire cluster, including the states of monitors, managers, OSDs, and CRUSH. This data is essential for keeping Ceph operational. Additionally, the Monitor is responsible for authenticating daemons and clients. A high-availability Ceph [...]
Using Custom Config in Kolla-Ansible
The previous article introduced how Kolla and Kolla-Ansible deploy OpenStack. All settings are configured in `globals.yml`, while others are handled by templates within Kolla-Ansible. However, this approach inevitably lacks flexibility during deployment and cannot be customized for specific environments. Thus, the config override method was born for custom configuration settings. This article will introduce how to use config override to change the configuration files for OpenStack deployed via Kolla-Ansible. **Configuration Method** Similarly, in `globals.yml`, we can find a line to set the directory for config override files. The default value is `/etc/kolla/config`, which can be changed to your preferred directory. `# Location of configuration overrides` `#node_custom_config: "/etc/kolla/config"` Kolla-Ansible will look for files in `/etc/kolla/config/<< service_name >>/<< config_file >>`. A config file override can essentially override the entire OpenStack [...]
Deploying OpenStack via Kolla-Ansible and Containers
In its early days, OpenStack was quite complex to deploy and difficult to maintain. However, with the recent popularity of DevOps and Container concepts, the OpenStack Community has introduced a way to deploy OpenStack using Containers and Ansible. This method is implemented through Kolla and Kolla-Ansible. Kolla provides Dockerfiles to build the Docker images required for OpenStack, while Kolla-Ansible provides the Ansible playbooks needed to deploy these containers. This article will introduce how to use this project to quickly deploy a production-ready, high-availability OpenStack environment (the current version is Queens). **Basic Architecture** A high-availability OpenStack environment basically requires at least 4 nodes: 3 controller nodes (ceph nodes) plus at least one compute node. Each [...]

