Availability Zone和Aggregate Hosts理解

本文详细解析了OpenStack中的Availability Zones (AZ) 和 Host Aggregates的概念及应用。介绍了AZ作为用户可见的容灾性划分,以及Host Aggregates作为管理员使用的智能硬件资源管理方式的区别。
本文章转自 OpenStack Availability Zone和Aggregate Hosts理解
  • 1. availability zone
         az是在region范围内的再次切分,只是工程上的独立,例如可以把一个机架上的机器划分在一个az中,划分az是为了提高容灾性和提供廉价的隔离服务。选择不同的region主要考虑哪个region靠近你的用户群体,比如用户在美国,自然会选择离美国近的region;选择不同的az是为了防止所有的instance一起挂掉,下图描述了二者之间的关系。


        catalog其实是分级的 ...,第二级的region就是上文提到的region。在这里我们可以设置不同的region和不同的service的endpoint。horizon只提取keystone中catalog的regionOne中的endpoint,所以,即使设置了多个region,horizon也体现不出来。

        az在openstack中其实是nova-scheduler来实现的,当新建虚拟机,调度器将会根据nova-compute设置的az来调度,例如在新建虚拟机的时候,用户设置了希望将虚拟机放在az-1中,那么调度器将会选择属于这个az的nova-compute来调度,如下图所示。


    #nova boot --image1fe4b52c-bda5-11e2-a40b-f23c91aec05e --flavor large --availability-zone chicago:clocktower

    指定instance clocktower将在availabilityzone-chicago被创建,至于那些compute node属于哪一个az,是在nova.conf中通过参数node_availability_zone=xxx来配置的。

    2. Aggregate Hosts
         Availability zones are a customer-facingcapability, host aggregates are meant to be used by administrators to separatehardware by particular properties, and are not seen by customers.

       az是一个面向终端客户的概念和能力,而hostaggregate是管理员用来根据硬件资源的某一属性来对硬件进行划分的功能,只对管理员可见。

    其主要功能就是实现根据某一属性来划分物理机,比如按照地理位置,使用固态硬盘的机器,内存超过32G的机器,根据这些指标来构成一个host group。

    novaaggregate-create joesservers chicago

    Host aggregate可以用来进一步细分availability zone。

        通过以上分析,问题就来了:availability zone和hostaggregate都能对host machine进行划分,那么二者的区别是啥?

    Availability zones are handy for allowing users to specify aparticular group of servers on which they want their host to run, but beyondthat they don’t do much more than serve as a bucket. In this example, using anavailability zone, our users can specify that a VM should be started up in theChicago data center.

    Host aggregates, on the other hand, serve as an intelligent wayfor schedulers to know where to place VM’s based on some sort ofcharacteristic. In this example, we might want to enable users to easily boottheir most mission-critical VMs on servers that are administered by Joe, ratherthan leaving them to fate.

    综上所述:az是用户可见的,用户手动的来指定vm运行在哪些host上;Host aggregate是一种更智能的方式,是调度器可见的,影响调度策略的一个表达式。

### OpenStack中创建可用区时遇到的'command not found'错误解决方案 在OpenStack环境中,`openstack availability zone create` 命令可能由于客户端未正确安装或配置而导致 `command not found` 错误。以下是可能导致此问题的原因及解决方法: #### 1. 检查OpenStack客户端版本 确保使用的OpenStack客户端版本支持 `availability zone create` 命令。较旧版本的客户端可能不包含该命令。可以通过以下命令检查客户端版本: ```bash openstack --version ``` 如果版本过低,请升级到最新版本[^2]: ```bash pip install --upgrade python-openstackclient ``` #### 2. 验证环境变量配置 确保环境变量已正确设置以连接到OpenStack云环境。通常需要设置以下变量: ```bash export OS_AUTH_URL=http://<controller-ip>:5000/v3 export OS_PROJECT_NAME=<project-name> export OS_USERNAME=<username> export OS_PASSWORD=<password> export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_IDENTITY_API_VERSION=3 ``` 若未正确配置,可能导致某些命令不可用。 #### 3. 确认命令是否支持 并非所有OpenStack部署都支持直接通过CLI创建可用区。某些情况下,管理员需通过Nova API或其他方式手动配置可用区。可以尝试使用以下命令列出可用区以验证功能是否启用: ```bash openstack availability zone list ``` 如果命令成功运行但未显示预期结果,可能是权限或配置问题[^3]。 #### 4. 替代方法:通过Nova命令创建可用区 如果 `openstack availability zone create` 不被支持,可以尝试使用Nova CLI工具创建可用区: ```bash nova aggregate-create <aggregate-name> <availability-zone> ``` 例如: ```bash nova aggregate-create my-aggregate nova ``` 然后将主机添加到聚合中: ```bash nova aggregate-add-host <aggregate-id> <host-name> ``` #### 5. 检查权限 确保当前用户具有足够的权限执行相关操作。可通过以下命令检查角色权限: ```bash openstack role list ``` 如果没有适当的角色(如 `admin` 或 `member`),请联系管理员授予必要权限。 #### 示例代码 以下是一个完整的脚本示例,用于验证并设置环境变量后创建可用区: ```bash #!/bin/bash # 设置环境变量 export OS_AUTH_URL=http://<controller-ip>:5000/v3 export OS_PROJECT_NAME=<project-name> export OS_USERNAME=<username> export OS_PASSWORD=<password> export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_IDENTITY_API_VERSION=3 # 列出可用区 openstack availability zone list # 创建可用区(如果支持) openstack availability zone create nova # 或者使用Nova命令 nova aggregate-create my-aggregate nova nova aggregate-add-host <aggregate-id> <host-name> ``` ### 注意事项 - 如果上述步骤均无效,可能是OpenStack部署未启用相关功能。请检查部署文档或联系管理员。 - 确保所有工具依赖项已正确安装并更新到最新版本。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值