使用 Red Hat OpenShift 或上游 Kubernetes 的閘道管理員
Zusammenfassung: 本 KB 說明如何使用 Red Hat GitHub kubevirt-rawio-addon 儲存庫,為 Red Hat OpenShift 或上游 Kubernetes 環境提供 PowerMax 閘道管理員。
Weisungen
PowerMax 閘道管理員
PowerMax 閘道管理員是從 PowerMax 中的磁碟分割而成的小型裝置 (通常為 3 MB),作為 Solutions Enabler 命令的 SCSI 目標。組態和狀態資訊會保留在 PowerMax 主機資料庫檔案中,預設symapi_db.bin。這就是所謂的 PowerMax 組態資料庫。它減少了從主機到存儲陣列的查詢次數。閘道管理員必須是原始裝置,以便作業系統直接傳送 SCSI 命令而不需操作。雖然實體主機一律會搭配閘道管理員 (使用支援的作業系統),但虛擬主機僅限於使用實體原始裝置對應 (RDM)、Windows 或 Linux 上的客體內部 iSCSI、Linux 上的客體內 NVMe/TCP,或是傳遞裝置 (NIC 或 HBA) 的 VMware。然而,只有 VMware 才能提供被公認為可行的閘道管理員的真正原始裝置。其他虛擬化解決方案可讓使用者將裝置顯示為「原始」,但他們的解決方案會封鎖某些 SCSI 命令,導致無法將其作為閘道管理員使用。Solutions Enabler 會將其標記為閘道管理員,但報告錯誤如下所示。

此外,如果您檢查閘道管理員,它們會顯示「CLS」或已關閉狀態。

因此,您無法傳遞必要的 SCSI 命令。
若要善用此解決方案,您必須使用 Solutions Enabler 在所選作業系統上支援的通訊協定。請參閱產品說明文件。
Red Hat GitHub 解決方案
Dell 要求 Red Hat 協助為我們共同的部分客戶開發 OpenShift 環境中閘道管理員的因應措施。為此,他們創建了一個適用於 OpenShift 和上游 Kubernetes 的解決方案,但在實施上略有不同。GitHub 儲存庫稱為 kubevirt-rawio-addon,位於此處: https://github.com/openshift-cnv/kubevirt-rawio-addon GitHub 包含一個自述 https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md。
該載入項安裝多個元件:
- 變更 webhook 以動態修改物件
- 驗證 webhook - OpenShift 專屬安全檢查
- 允許特權功能的安全設定
- 挎斗掛鉤
挎斗是一個額外的小型容器,它與虛擬機容器一起運行,並在虛擬機啟動之前修改虛擬機的低級別配置。它會攔截 KubeVirt 生成的 VM 組態,找到已註解的磁碟,並設定 rawio=yes。KubeVirt 隨後會取回 XML。libvirt/QEMU 底層架構支援這一點,但不會公開它,因此需要進行這種細微的調整。將來 KubeVirt 可能會公開此問題,此時將不需要解決方法。
OpenShift 實作
存儲庫包含實現此解決方案的所有說明。由於 Red Hat 擁有解決方案,因此 Dell 建議您遵循目前的指示,未來可能會變更。 Dell 不會更新 KB 來反映這些變更。出於禮貌,我們在下方提供基本資訊,但我們鼓勵本 KB 的使用者將其與儲存庫一起使用。
如前所述,您可以在 OpenShift 或上游 Kubernetes 上實作。由於步驟是 OpenShift,如果您執行上游 Kubernetes,有幾個注意事項。
- 如果在 vanilla K8s 上實現,則必須安裝證書管理員。如果已安裝 PowerMax CSI 驅動程式,則會存在此問題。
- 如果在 vanilla K8s 上實現,則需要特權命名空間。可以在腳本中使用命名空間,也可以創建自己的命名空間,然後修改腳本。
實施所需的兩個腳本位於 hack 資料夾中。rawio-setup.sh 是第一個指令檔,任一平台都是相同的,但請注意,它依賴於僅存在於 OpenShift 上的 openshift-cnv 命名空間。新增命名空間或建立新的命名空間,然後修改 K8s 的指令檔。VM 建立指令檔為平台專屬,但同樣使用 openshift-cnv 命名空間。對於 OpenShift,它是 rawio-create-vm-openshift.sh。這些指令檔旨在建立測試環境,需要修改才能進行生產設定。具體而言,rawio-setup.sh 指令檔會建立虛擬 SCSI 裝置。請改為修改指令檔以使用 PowerMax 儲存類別。此外,該腳本假定單個節點用於計劃 VM。修改它以允許它在任何工作器節點上運行。該腳本使用預運行的Fedora OS。
範例指令檔位於 補充內容中。
基本步驟
- 克隆存儲庫: git 克隆https://github.com/openshift-cnv/kubevirt-rawio-addon.git
- 安裝資訊清單: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- 安裝 sidecar: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{“op”:「Add」,「path」:「/spec/configuration/developerConfiguration/featureGates/-」,「value」:“邊車”}]'
- 執行設定: rawio-setup.sh
- 建立虛擬機器: rawio-create-vm-openshift.sh
- 安裝您的作業系統(假設您沒有使用預建構的作業系統)
請注意,即使您要求傳統的 3 MB 閘道管理員,PowerMax CSI 也無法建立小於 50 MB 的裝置。它不會導致問題。


其他虛擬化解決方案
下列解決方案均不適用於此 Red Hat 儲存庫。
- 基於 K8s 的解決方案,如 SUSE 收割機 - SUSE 必須開發自己的解決方案
- 像 Proxmox 或 Oracle KVM (oVirt) 這樣的 KVM 解決方案 - 這些不是基於 KubeVirt 的,不能使用
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh