跳到主內容

增加 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. 重新啟動虛擬機器。