增加 PCIe 連接埠,以支援每台虛擬機器連接多個輸入/輸出裝置
摘要
當虛擬機器需要超過兩個網路介面時,PCIe 埠的預設分配可能會成為限制因素。 要解決此問題,您需要在虛擬機器設定中手動增加可用 PCIe 埠的數量。
解決可用 PCIe 埠不足問題的關鍵步驟
- 提高 CubeCOS 可用的 PCIe 埠的預設限制
- 新增 PCIe 根埠裝置。
- 將額外的網路介面連接至這些新建立的埠。
- 請重新啟動或重新定義虛擬機器,以便變更生效。
這可確保虛擬機器擁有足夠的 PCIe 插槽,足以支援多個網路介面卡且不會發生衝突。
詳細資訊
若您嘗試將多個網路介面連接到虛擬機器時發生失敗,且尚未設定額外的 PCIe 連接埠,請參考本文。
適用版本
CubeCOS 3.0.0 及以上版本。
本文適用於運行 CubeCOS 3.0.0 或更新版本的環境。
決議
設定 Nova 運算服務以使用所有可用的 PCIe 連接埠
預設的 PCIe 埠分配可能不足。 要解決此問題,請在設定中將可用 PCIe 埠的最大數量手動設定為 CubeCOS 所支援的上限。
-
開啟一個終端機工作階段。
-
透過 SSH 以
root使用者身分登入叢集 VIP。ssh root@<your-cluster-vip> -
建立一個新的設定檔,將可用 PCIe 埠的最大數量手動設定為 CubeCOS 所支援的上限。
touch /etc/nova/nova.d/pcie.conf -
使用以下指令開啟 Nova 設定檔:
vi /etc/nova/nova.d/pcie.conf -
請在
pcie.conf中輸入以下值,並按i鍵進入插入模式。CubeCOS 預設啟用的 PCIe 埠數為 0,且最多可支援 28 個埠。
# Override number of enabled pcie ports[libvirt]num_pcie_ports = 28 -
完成修改後,請使用
:wq儲存並退出編輯器。
將 PCIe 埠設定檔同步至所有運算節點
請透過全叢集同步任務同步虛擬信賴平台模組(vTPM),以確保所有運算節點支援相同的 PCIe 埠。 請注意,同步指令僅限於執行運算服務(例如 AIO、Compute 或 Compute with Storage)的節點。
-
將設定檔同步至所有執行運算服務的 CubeCOS 節點。
cubectl node -r compute rsync /etc/nova/nova.d/pcie.conf
在所有運算服務節點上重新啟動 Nova 運算服務
若要套用 PCIe 埠的設定,請先完成設定檔的同步,然後執行以下指令以重新啟動服務:
在連接額外的網路介面之前,請確認所有運算節點的同步程序已完成。
-
在所有運算服務的節點上重新啟動 Nova 運算服務。
cubectl node -r compute exec -p "hex_config restart_nova" -
檢查所有運算服務節點上的 Nova 服務健康狀態。
cubectl node -r compute exec -p "systemctl status openstack-nova-compute | grep Active" -
所有運算服務節點的
openstack-nova-compute服務狀態必須顯示為Active。
將額外的網路介面附加至現有的虛擬機器
套用設定後,所有新建立的虛擬機器預設將支援最大數量的 PCIe 連接埠。 不過,在套用設定之前,您必須先修改現有的虛擬機器。 請依照以下步驟,將現有的虛擬機器設定為支援新的 PCIe 埠最大數量。
使用圖形化使用者介面 (GUI) 重新設定現有的虛擬機器
為了在增加 PCIe 埠的最大數量後,能將多個網路介面附加至現有的虛擬機器,必須先將該虛擬機器暫存,然後再取回。
為避免資料遺失及服務意外中斷,請在繼續操作前安全地關閉虛擬機器作業系統。
當虛擬機器處於運行狀態時,您無法執行暫存或取消暫存操作。
- 登入 CubeCOS 管理介面,並導航至
OpenStack整合功能。 - 請前往 運算 > 虛擬機,並找到要修改的虛擬機。
- 請登入虛擬機的來賓作業系統,並以正常方式關閉虛擬機,以準備進行暫存與解除暫存。
- 在繼續之前,請確認虛擬機的狀態為
Shutoff。 - 將虛擬機暫存:將游標懸停在
更多上,點擊虛擬機狀態,然後選擇暫存。 - 將虛擬機從暫存區取出:將游標懸停在
更多上,點擊虛擬機狀態,然後選擇從暫存區取出。 - 請視需要附加其他網路介面。
- 重新啟動虛擬機器。
使用 CLI 重新設定現有的虛擬機器
- 登入 CubeCOS 管理介面,並導航至
OpenStack整合功能。 - 請前往 運算 > 虛擬機,並找到要修改的虛擬機。
- 點擊虛擬機 ID 以複製該虛擬機 ID。
- 請登入虛擬機的來賓作業系統,並以正常方式關閉虛擬機,以準備進行暫存與解除暫存。
- 在繼續之前,請確認虛擬機的狀態為
Shutoff。 - 開啟一個終端機工作階段。
- 請透過 SSH 以
root使用者身分登入叢集的 VIP,指令為ssh root@\<your-cluster-ip>。 - 執行
openstack server shelve --offload\<vm-id>來暫存該虛擬機- 請將
\<vm-id>替換為步驟 3 中取得的 ID。
- 請將
- 執行
openstack server unshelve\<vm-id>來解除該虛擬機的封存狀態 - 請視需要附加其他網路介面。
- 重新啟動虛擬機器。