通过OpenStack Dashboard在指定可用域(Availability Zone)中创建实例的完整配置,涵盖可用域创建、节点管理、关系与限制的详细步骤:
一、可用域(Availability Zone)的概念与关系
0.指定域、指定节点、指定节点组
- 指定域:新建一个域,配置自定义域的名称,在域里面添加节点,可以是一个节点、也可以是多个节点。
- 指定节点:如果域,下面只有一个节点,可以理解通过选择域而选择了指定一个具体的节点。
- 指定节点组:1个实例只在一个节点运行,如果启动多个实例在多个指定节点运行,则由系统在当前域内进行自动分配。
- 在一些二次开发中,如果API不能直接读到可用域清单,可以通过读取节点,找到节点所在域,然后让实例在该域中运行。
1. 可用域的作用
- 故障隔离:将计算节点分组到不同物理故障域(如不同机柜、电源),提升实例高可用性。
- 资源调度:用户创建实例时可指定可用域,将实例部署到特定节点组,
2. 可用域与节点的关系
组件 | 关系说明 | 限制 |
---|---|---|
可用域 | 逻辑分组,包含多个计算节点(如production-az ) | 一般来说,一个计算节点只能属于一个可用域(相同availability_zone 元数据)。 (在实际使用中,灵活处理,) |
主机聚合 | 可用域的底层实现,通过openstack aggregate 创建 | 一个主机聚合必须绑定唯一可用域名称。 |
计算节点 | 物理服务器资源,需添加到主机聚合中 | 节点需运行nova-compute 服务且状态正常。 |
二、创建可用域并添加节点(管理员操作)
可以直接跳过命令行,看第4节,直接在OpenStack Dashboard的网页中创建。
1. 创建主机聚合(绑定可用域)
# 创建主机聚合(如production-aggr)
openstack aggregate create production-aggr# 绑定可用域名称(如production-az)
openstack aggregate set --zone production-az production-aggr
2. 添加计算节点到可用域
# 查看可用计算节点
openstack host list# 添加节点到主机聚合(如compute-node-1)
openstack aggregate add host production-aggr compute-node-1
3. 验证配置
# 检查可用域与节点绑定
openstack aggregate show production-aggr
输出示例:
availability_zone | production-az
hosts | compute-node-1
⚠️ 注意事项:
- 节点必须在
nova-compute
服务正常运行状态下才能添加。- 若节点已绑定其他可用域(冲突的
availability_zone
元数据),需先移除原绑定。
4.通过Dashboard创建可用域和节点关联
(1)首先,使用管理员登录,进入到主机聚合页面
管理员》计算》主机聚合》创建主机聚合,注意创建之前可用域、主机聚合列表,和创建之后的变化。
(2)开始创建主机聚合
依次点击1、2、3,在2、3中填写自定义主机聚合和自定义可用域的名称。
主机聚合通过将主机组合到一起来把可用区域划分成逻辑单元。创建一个主机聚合,然后选择要放里面的主机。
然后点击4,配置主机主机聚合内的主机节点,在下图①区选择需要加入该聚合的主机,点击加号即可。
增加主机到这个聚合。主机可以加入多个聚合。
点击创建主机聚合,即可完成主机聚合、域、节点的配置组合,查看列表如下:
同样操作,创建第二组,创建完成后截图如下。
在创建实例时,则出现以下可选项
三、通过Dashboard在指定可用域创建实例
1. 进入实例创建界面
- 导航路径:
项目
→计算
→实例
→启动实例
。
2. 关键配置步骤
标签页 | 配置项 | 操作说明 |
---|---|---|
详情 | 实例名称 | 输入自定义名称(如prod-vm-01 )。 |
可用域 | 从下拉菜单选择目标可用域(如production-az )。 | |
源 | 镜像源 | 选择系统镜像(如CentOS-7 )。 |
实例类型 | 规格(Flavor) | 选择匹配资源的规格(如m1.medium :2vCPU/4GB内存)。 |
网络 | 网络绑定 | 选择私有网络(如private-net )→ 点击+ 添加到右侧。 |
安全组 | 访问规则 | 勾选允许SSH(22端口)和ICMP的安全组。 |
密钥对 | SSH密钥 | 选择预先生成的密钥对(如my-key )。 |
3. 启动实例
- 点击
启动实例
→ 等待状态变为Active
(约1-3分钟)。
四、关键限制与注意事项
1. 可用域资源限制
- 资源配额:每个可用域的资源总量受限于其包含节点的物理资源(CPU/内存/磁盘)。
- 调度失败:若目标可用域资源不足,实例创建将失败,需检查节点资源或调整配额。
2. 跨服务一致性
- 网络可用域:Neutron需独立配置网络节点的可用域(通过
/etc/neutron/*_agent.ini
设置)。 - 存储可用域:Cinder卷需匹配计算可用域,否则卷挂载失败(需在
cinder.conf
设置storage_availability_zone=production-az
)。
3. 高可用设计建议
- 节点分布:同一可用域内的节点应分散在不同物理机柜/电源,避免单点故障。
- 多可用域部署:生产环境至少部署2个可用域,实现实例跨故障域冗余。
五、故障排查
问题现象 | 解决步骤 |
---|---|
可用域选择下拉菜单为空 | 检查Nova服务状态:systemctl status nova-api ,确认主机聚合已绑定可用域。 |
实例卡在调度中 状态 | 查看日志:tail -f /var/log/nova/nova-scheduler.log ,排查资源不足或网络错误。 |
实例启动后网络不通 | 验证Neutron网络配置:openstack network show private-net ,确认子网网关正确。 |
💡 运维提示:
- 通过
openstack availability zone list --compute
实时监控各可用域资源状态。- 使用Heat模板批量创建跨可用域实例,提升部署效率。
以上步骤综合了OpenStack核心组件(Nova、Neutron、Cinder)的协同配置,确保在指定可用域中稳定运行实例。生产环境建议结合监控工具(如Ceilometer)设置资源告警阈值。