To provide scale, distributed deployment, resource optimization, and AWS-compatible capabilities, OpenStack introduces four concepts for region,cell,availability zone (AZ) and Host aggregates zone (HAZ), where Regio N and AZ were introduced from the public cloud eldest brother AWS, the Cell was introduced to augment the size of a cluster in a region, and Host aggregates was introduced to optimize resource scheduling and utilization. These four concepts are related to cluster deployment, some local meanings are similar, for beginners of OpenStack children's shoes is easy to confuse and blur, this article will be a detailed analysis of these four concepts.
From the deployment level, they have the following relationships
Region > Cell > Availabiliy Zone > Host aggregates
Region
As the name implies, the region is a literal translation of the concept of regional, geographical, and in fact, AWS by region (country or city) set up an area, each regions under a plurality of availability Zone. Openstack also supports the concept of region, enabling global deployments, such as reducing network latency, where users can select specific region to deploy services. Computing resources, network resources, and storage resources are independent across the region, but all region shares account user information because Keystone is a component that implements the functionality of OpenStack tenant user management and authentication, so Keystone is globally unique, all region Sharing a Keystone,keystone endpoint stores the URLs that access each region.
Cell
The introduction of the Cell concept is to expand the size of the cluster in a single region, mainly to address the performance bottlenecks of AMQP and database, each of the OpenStack clusters in the region has its own message middleware and databases, when the compute nodes reach a certain scale (and Ibm,easy Stack, Huawei and other communication data is 300~500, the message middleware becomes the performance bottleneck of the extended computing node. The introduction of the cell is to solve the size problem of a single region, where there can be more than one cell each, each cell maintains its own database and message middleware, all cells share the NOVA-API under local, sharing globally unique Keystone 。 The official website manual mentions cell immature (considered experimental), the Paris summit also mentions the cell pain point, although now has entered the K version iteration development, but I have not heard the industry mature uses the Cell case. For more detailed information about Cell, please refer to the following link http://www.ibm.com/developerworks/cn/cloud/library/1409_zhaojian_openstacknovacell/index.html
Availability Zone & Host aggregates zone
AZ and HAZ are analyzed together because the concepts are similar.
AWS has multiple AZ under each region. Openstack also introduces the concept of AZ, and I personally understand that the introduction of AZ is based on security considerations, for example, we define a room for an AZ, the room for all the compute nodes into a AZ, one of the engine room for some reason down, will not affect the other computer room virtual machine and network At the same time, AZ is a visible concept to the user, and when a user creates a virtual machine, it is clear which AZ the user can guarantee high reliability by creating virtual machines in multiple AZ.
Haz also divides a batch of compute nodes with a common attribute into the same Zone, which can be further subdivided into AZ, an AZ can have multiple HAZ. machines in the same HAZ have some common properties, such as high-performance computing, high-performance storage (SSD), high-performance networking (Sriov support, etc.). The other difference between Haz and AZ is that the Haz is not explicitly visible to the user, and the user cannot specify the haz directly as specified in AZ when creating the virtual machine, but by setting the correlation property in the Instance Flavor, the Nova-scheduler schedule will adjust according to the scheduling policy To the Host aggregates Zones that satisfies the attribute.
How to use availability zone and Host aggregates zone
Availability Zone Use method
Nova calls the API that creates the Haz to create AZ, which defines an AZ when the Haz is created.
$ Nova aggregate-create HAZ-01 AZ-01
+--+ ————— + —————————— + ———— + ————— +
| Id | Name | Availability Zone | Hosts | Metadata |
+--+ ————— + —————————— + ———— + ————— +
| 3 | HAZ-01 | AZ-01 | | |
+--+ ————— + —————————— + ———— + ————— +
After you have created AZ, add the compute nodes to the Haz because the haz belongs to AZ, so the new compute nodes belong to the AZ
$ Nova Aggregate-add-host 3 COMPUTE01
+--+ ———— + ———————— + ———————— + —————————————— +
| Id | Name | Availability Zone | Hosts | Metadata |
+--+ ———— + ———————— + ———————— + —————————————— +
| 3 | HAZ-01 | AZ-01 | [u ' compute-1 '] | {u ' availability_zone ': U ' az-01′} |
+--+ ———— + ———————— + ———————— + —————————————— +
When you create a virtual machine, specify the AZ name to
Nova Boot–flavor m1.small–image cirros–availability-zone AZ-01 VM
How to use Host aggregates Zone
Configure nova.conf
Scheduler_default_filters=aggregateinstanceextraspecsfilter,availabilityzonefilter,ramfilter,computefilter
Create a HAZ
$ Nova Aggregate-create HAZ-SSD
+--+ ————— + ———————— + ——— + ————— +
| Id | Name | Availability Zone | Hosts | Metadata |
+--+ ————— + ———————— + ——— + ————— +
| 4 | HAZ-SSD | None | | |
+--+ ————— + ———————— + ——— + ————— +
Setting the Metadata Property
$ Nova Aggregate-set-metadata 4 ssd=true
+--+ ————— + ———————— + ———— + ————————— +
| Id | Name | Availability Zone | Hosts | Metadata |
+--+ ————— + ———————— + ———— + ————————— +
| 4 | HAZ-SSD | None | [] | {u ' SSD ': U ' true '} |
+--+ ————— + ———————— + ———— + ————————— +
Adding compute nodes to HAZ
$ Nova Aggregate-add-host 4 COMPUTE02
+--+ ————— + ———————— + ——————— + ———————— +
| Id | Name | Availability Zone | Hosts | Metadata |
+--+ ————— + ———————— + ——————— + ———————— +
| 5 | HAZ-SSD | None | [u ' compute02 '] | {u ' SSD ': U ' true '} |
+--+ ————— + ———————— + ——————— + ———————— +
Create Flavor
$ nova flavor-create M1.SSD Auto 4096 10 2–is-public True
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— +-- ———— +
| ID | Name | MEMORY_MB | Disk | Ephemeral | Swap | Vcpus | Rxtx_factor | Is_public | Extra_specs |
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— + —————— +
| ... | M1.SSD | 4096 | | 0 | | 2 | 1.0 | True | {} |
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— + —————— +
Setting the Flavor Property
$ Nova Flavor-key M1.SSD set Ssd=true
$ Nova Flavor-show M1.SSD
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— + ———----+
| ID | Name | MEMORY_MB | Disk | Ephemeral | Swap | Vcpus | Rxtx_factor | Is_public | Extra_specs |
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— + —————--+
| | M1.SSD | 4096 | 10 | 0 | | 2 | 1.0 | True | {u ' SSD ': U ' true '} |
+ ——— + ———— + —————— + ——— + ————— + ——— + ——— + —————— + ———— + —————--+
Create a virtual machine with M1.SSD
Nova Boot–flavor m1.ssd–image Cirros VM_SSD
Resources
Http://docs.openstack.org/openstack-ops/content/scaling.htmlhttp://www.ibm.com/developerworks/cn/cloud/library /1409_zhaojian_openstacknovacell/index.html
http://kimizhang.wordpress.com/tag/availability-zone/http://blog.chinaunix.net/xmlrpc.php?r=blog/article& uid=20940095&id=4064233
Scaling your cloud--details Nova in region, Cell, availability Zone, Host aggregates zone