通過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)設置資源告警閾值。