【.com速译】在OpenStack术语中,可用区(AZ)被定义为计算(Nova)、块存储(cinder)和网络服务(neutron)的逻辑分区。需要可用区来隔离生产环境和非生产环境等环境的工作负载。假设OpenStack中的一个租户想要在生产环境和非生产环境中部署虚拟机,那么要在Openstack中创建这种类型的架构,我们首先需要确定哪些计算将被视为生产环境和非生产环境,然后我们来创建一个主机聚合组,我们将计算添加到主机聚合组,然后我们将该主机聚合组映射到可用区。在本教程中,我们将演示如何通过命令行在Openstack中创建和使用计算可用区。创建计算可用区每当部署OpenStack时,Nova都会自动创建一个默认可用区(AZ),所有计算节点都属于NovaAZ。从控制器节点运行以下Openstack命令以列出可用性区域:~#sourceopenrc~#openstackavailabilityzonelist+------------+------------+|ZoneName|ZoneStatus|+------------+------------+|内部|可用||nova|可用||nova|可用||nova|可用|+-----------+------------+~#要列出计算可用性区域,请运行以下Openstack命令:~#openstackavailabilityzonelist--compute+----------+------------+|ZoneName|ZoneStatus|+------------+-------------+|internal|available||nova|available|+------------+------------+~#想要列出到Nova的映射可用区域内的所有计算节点,执行如下命令:~#openstackhostlist|grep-E"Zone|nova"|HostName|Service|Zone||compute-0-1|compute|nova||compute-0-2|计算|nova||compute-0-4|compute|nova||compute-0-3|compute|nova||compute-0-8|compute|nova||compute-0-6|compute|nova||compute-0-9|compute|nova||compute-0-5|compute|nova||compute-0-7|compute|nova|~#创建两个主机聚合名为production和nonproduction的离子组,将计算4、5、6加入生产主机聚合组,计算7、8、9加入非生产主机聚合组。使用以下OpenStack命令创建生产和非生产主机聚合:~#openstackaggregatecreateproduction+----------------+---------------------------+|字段|值|+--------------------+------------------------+|availability_zone|None||created_at|2019-08-17T03:02:41.561259||deleted|False||deleted_at|None||id|7||name|production||updated_at|None|+--------------------+--------------------------+~#openstackaggregatecreatenon-production+----------------+------------------------+|字段|值|+--------------------+---------------------------+|availability_zone|None||created_at|2019-08-17T03:02:53.806713||deleted|False||deleted_at|None||id|10||name|非生产||updated_at|无|+--------------------+--------------------------+~#现在创建可用区并将其与相应的主机聚合组相关联。语法:#openstackaggregateset–zone~#openstackaggregateset--zoneproduction-azproduction~#openstackaggregateset--zonenon-production-aznon-production最后,将计算主机添加到主机聚合组。语法:#openstackaggregateaddhost~#openstackaggregateaddhostproductioncompute-0-4~#openstackaggregateaddhostproductioncompute-0-5~#openstackaggregateaddhostproductioncompute-0-6同样,将计算主机添加到非生产主机聚合组:~#openstackaggregateaddhostnon-productioncompute-0-7~#openstackaggregateaddhostnon-productioncompute-0-8~#openstackaggregateaddhostnon-productioncompute-0-9执行以下Openstack命令验证主机聚合组及其可用区:~#openstackaggregatelist+----+---------------+----------------+|ID|名称|AvailabilityZone|+----+--------------+----------------+|7|生产|生产-az||10|非生产|非生产-az|+----+----------------+----------------+~#运行以下命令列出AZ主机聚合组相关计算:~#openstackaggregateshowproduction+----------------+----------------------------------------+|字段|值|+--------------------+----------------------------------------------+|availability_zone|production-az||created_at|2019-08-17T03:02:42.000000||deleted|False||deleted_at|None||hosts|[u'compute-0-4',u'compute-0-5',u'compute-0-6']||id|7||name|production||properties|||updated_at|None|+-------------------+------------------------------------------+~#openstackaggregateshown-production+----------------+------------------------------------------+|字段|值|+-----------------+-----------------------------------------+|availability_zone|non-production-az||created_at|2019-08-17T03:02:54.000000||deleted|False||deleted_at|None||hosts|[u'compute-0-7',u'compute-0-8',u'compute-0-9']||id|10||name|non-production||properties|||updated_at|None|+-------------------+-------------------------------------------+~#上面命令的输出确认我们已经成功创建了主机聚合组和可用区在可用区中启动虚拟机现在让我们在这两个可用区中创建两个虚拟机;在特定可用区创建虚拟机,运行以下命令:语法:#openstackservercreate–flavor–image–nicnet-id=–security-group–key-name–availability-zone示例如下:~#openstackservercreate--flavorm1.small--imageCirros--nicnet-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c--security-groupf8dda7c3-f7c3-423b-923a-2b21fe0bbf3c--key-namemykey--availability-zoneproduction-aztest-vm-prod-az运行以下命令验证虚拟机的详细信息:~#openstackservershowtest-vm-prod-az想要在可用区下要在特定计算节点中创建虚拟机,运行以下命令:语法:#openstackservercreate–flavor–image–nicnet-id=–security-group–key-name{Keypair-Name}–availability-zone:假设我们要在特定计算(compute-0-6)、为了执行这个操作,运行以下命令:~#openstackservercreate--flavorm1.small--imageCirros--nicnet-id=37b9ab9a-f198-验证虚拟机详细信息:~#openstackservershowtest-vm-prod-az-host上述命令的输出将类似于以下内容:同样,我们可以在非生产可用区中创建虚拟机,如下例所示:~#openstackservercreate--flavorm1.small--imageCirros--nicnet-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c--security-groupf8dda7c3-f7c3-423b-923a-2b21fe0bbf3c--key-namemykey--availability-zonenon-production-azvm-nonprod-az使用以下命令验证虚拟机的详细信息:~#openstackservershowvm-nonprod-az以上命令的输出将类似于以下内容:删除主机聚合组和可用区假设我们要删除创建的主机聚合组和可用区多于;为此,我们必须先从主机聚合组中删除主机,使用以下命令:~#openstackaggregateshowproduction上面的命令将列出已添加到生产主机聚合组的计算主机使用以下命令从主机聚合器中删除主机:语法:#openstackaggregateremovehost~#openstackaggregateremovehostproductioncompute-0-4~#openstackaggregateremovehostproductioncompute-0-5~#openstackaggregateremovehostproductioncompute-0-6组删除所有主机,然后重新运行以下命令:~#openstackaggregateshowproduction+----------------+-------------------------+|字段|值|+--------------------+-------------------------+|availability_zone|production-az||created_at|2019-08-17T03:02:42.000000||deleted|False||deleted_at|None||hosts|[]||id|7||name|production||properties|||updated_at|None|+--------------------+---------------------------+从上面的输出可以看出,生产主机聚合组没有关联的计算主机,现在我们可以删除群组。使用以下命令删除主机聚合组和关联的可用区:~#openstackaggregatedeleteproduction运行以下命令验证可用区是否已删除:~#openstackavailabilityzonelist|grep-iproduction-az~#同样可以参考以上步骤删除非Production主机聚合组及其可用区。以上就是本教程的全部内容。希望以上内容可以帮助大家了解OpenStack主机聚合和可用区。欢迎留言。原标题:HowtoCreateAvailabilityZonesinOpenStackfromCommandLine,作者:PradeepKumar