跳到主內容

增加 PCIe 連接埠,以支援每台虛擬機器連接多個輸入/輸出裝置

摘要​

當虛擬機器需要超過兩個網路介面時,PCIe 埠的預設分配可能會成為限制因素。 要解決此問題,您需要在虛擬機器設定中手動增加可用 PCIe 埠的數量。

解決可用 PCIe 埠不足問題的關鍵步驟​

  • 提高 CubeCOS 可用的 PCIe 埠的預設限制
  • 新增 PCIe 根埠裝置。
  • 將額外的網路介面連接至這些新建立的埠。
  • 請重新啟動或重新定義虛擬機器,以便變更生效。

這可確保虛擬機器擁有足夠的 PCIe 插槽,足以支援多個網路介面卡且不會發生衝突。

詳細資訊​

若您嘗試將多個網路介面連接到虛擬機器時發生失敗,且尚未設定額外的 PCIe 連接埠,請參考本文。

適用版本​

CubeCOS 3.0.0 及以上版本。

本文適用於運行 CubeCOS 3.0.0 或更新版本的環境。

決議​

設定 Nova 運算服務以使用所有可用的 PCIe 連接埠​

預設的 PCIe 埠分配可能不足。 要解決此問題,請在設定中將可用 PCIe 埠的最大數量手動設定為 CubeCOS 所支援的上限。

  1. 開啟一個終端機工作階段。

  2. 透過 SSH 以 root 使用者身分登入叢集 VIP。

    ssh root@<your-cluster-vip>
  3. 建立一個新的設定檔,將可用 PCIe 埠的最大數量手動設定為 CubeCOS 所支援的上限。

    touch /etc/nova/nova.d/pcie.conf
  4. 使用以下指令開啟 Nova 設定檔:

    vi /etc/nova/nova.d/pcie.conf
  5. 請在 pcie.conf 中輸入以下值,並按 i 鍵進入插入模式。

    CubeCOS 預設啟用的 PCIe 埠數為 0,且最多可支援 28 個埠。

    # Override number of enabled pcie ports
    [libvirt]
    num_pcie_ports = 28
  6. 完成修改後,請使用 :wq 儲存並退出編輯器。

將 PCIe 埠設定檔同步至所有運算節點​

請透過全叢集同步任務同步虛擬信賴平台模組(vTPM),以確保所有運算節點支援相同的 PCIe 埠。 請注意,同步指令僅限於執行運算服務(例如 AIO、Compute 或 Compute with Storage)的節點。

  1. 將設定檔同步至所有執行運算服務的 CubeCOS 節點。

    cubectl node -r compute rsync /etc/nova/nova.d/pcie.conf

在所有運算服務節點上重新啟動 Nova 運算服務​

若要套用 PCIe 埠的設定,請先完成設定檔的同步,然後執行以下指令以重新啟動服務:

警告

在連接額外的網路介面之前,請確認所有運算節點的同步程序已完成。

  1. 在所有運算服務的節點上重新啟動 Nova 運算服務。

    cubectl node -r compute exec -p "hex_config restart_nova"
  2. 檢查所有運算服務節點上的 Nova 服務健康狀態。

    cubectl node -r compute exec -p "systemctl status openstack-nova-compute | grep Active"
  3. 所有運算服務節點的 openstack-nova-compute 服務狀態必須顯示為 Active。

將額外的網路介面附加至現有的虛擬機器​

套用設定後,所有新建立的虛擬機器預設將支援最大數量的 PCIe 連接埠。 不過,在套用設定之前,您必須先修改現有的虛擬機器。 請依照以下步驟,將現有的虛擬機器設定為支援新的 PCIe 埠最大數量。

使用圖形化使用者介面 (GUI) 重新設定現有的虛擬機器​

為了在增加 PCIe 埠的最大數量後,能將多個網路介面附加至現有的虛擬機器,必須先將該虛擬機器暫存,然後再取回。

警告

為避免資料遺失及服務意外中斷,請在繼續操作前安全地關閉虛擬機器作業系統。

當虛擬機器處於運行狀態時,您無法執行暫存或取消暫存操作。

  1. 登入 CubeCOS 管理介面,並導航至 OpenStack 整合功能。
  2. 請前往 運算 > 虛擬機,並找到要修改的虛擬機。
  3. 請登入虛擬機的來賓作業系統,並以正常方式關閉虛擬機,以準備進行暫存與解除暫存。
  4. 在繼續之前,請確認虛擬機的狀態為 Shutoff。
  5. 將虛擬機暫存:將游標懸停在 更多 上,點擊 虛擬機狀態,然後選擇 暫存。
  6. 將虛擬機從暫存區取出:將游標懸停在 更多 上,點擊 虛擬機狀態,然後選擇 從暫存區取出。
  7. 請視需要附加其他網路介面。
  8. 重新啟動虛擬機器。

使用 CLI 重新設定現有的虛擬機器​

  1. 登入 CubeCOS 管理介面,並導航至 OpenStack 整合功能。
  2. 請前往 運算 > 虛擬機,並找到要修改的虛擬機。
  3. 點擊虛擬機 ID 以複製該虛擬機 ID。
  4. 請登入虛擬機的來賓作業系統,並以正常方式關閉虛擬機,以準備進行暫存與解除暫存。
  5. 在繼續之前,請確認虛擬機的狀態為 Shutoff。
  6. 開啟一個終端機工作階段。
  7. 請透過 SSH 以 root 使用者身分登入叢集的 VIP,指令為 ssh root@\<your-cluster-ip>。
  8. 執行 openstack server shelve --offload\<vm-id> 來暫存該虛擬機
    1. 請將 \<vm-id> 替換為步驟 3 中取得的 ID。
  9. 執行 openstack server unshelve\<vm-id> 來解除該虛擬機的封存狀態
  10. 請視需要附加其他網路介面。
  11. 重新啟動虛擬機器。