使用 ONTAP NVMe/FC 為 OpenNebula 設定 LVM Thin
使用 NVMe over Fibre Channel 協議,搭配 NetApp ONTAP,為多個 OpenNebula 主機設定邏輯卷管理器(LVM)以共用資料存放區。此設定可透過現代 NVMe 協議,提供高效能、低延遲的區塊層級儲存存取。
初始虛擬化管理員任務
完成這些初始任務,為 OpenNebula 主機做好 NVMe/FC 連線的準備,並收集儲存管理員所需的必要資訊。
-
確認是否有兩個HBA介面可用。
-
在叢集中的每台 OpenNebula 主機上,執行以下命令來收集 WWPN 資訊並驗證 nvme-cli 套件是否已安裝。
Debian/Ubuntuapt update apt install nvme-cli cat /sys/class/fc_host/host*/port_name nvme show-hostnqnRHEL/AlmaLinuxdnf update dnf install nvme-cli cat /sys/class/fc_host/host*/port_name nvme show-hostnqn -
將收集到的主機 NQN 和 WWPN 資訊提供給儲存管理員,並申請所需大小的 NVMe 命名空間。WWPN 用於光纖通道分區。請將這些資訊提供給負責光纖通道分區的管理員。
儲存管理員任務
如果您是ONTAP新手,請使用系統管理員以獲得更好的體驗。
-
確保SVM可用且已啟用NVMe協定。請參閱 "ONTAP 9 上的 NVMe 任務文檔"。
-
確保每個控制器建立兩個專用於 NVMe/FC 的 LIF。收集已建立的 NVMe/FC LIF 的 WWPN 位址,並將其提供給負責光纖分區的管理員。
-
建立 NVMe 命名空間。
-
建立子系統並指派主機 NQN。
-
請確保在安全性標籤中啟用反勒索軟體保護。
-
通知虛擬化管理員 NVMe 命名空間已建立。
最終虛擬化管理員任務
完成以下任務,將 NVMe 命名空間配置為 OpenNebula 中的共用 LVM 儲存體。
-
在叢集中的每台 OpenNebula 主機上導航至 shell,並驗證新命名空間是否可見。
-
檢查命名空間詳細資訊。
nvme list -
檢查並收集設備詳細資料。
nvme list nvme netapp ontapdevices nvme list-subsys lsblk -N -
透過 SSH 連接到前端伺服器之一,並根據所需的 Datastore 類型建立設定檔。如需完整的屬性清單,請參閱 "OpenNebula LVM 說明文件"。範例檔案如下所示:
備份-
對於 Restic、
$cat nvmefc-restic.conf NAME = "Backup-Restic-NVMEFC" TYPE = "BACKUP_DS" DS_MAD = "restic" TM_MAD = "-" RESTIC_PASSWORD = "<restic_password>" RESTIC_SFTP_SERVER = "<backup server>"
-
對於 Rsync,
$cat nvmefc-rsync.conf NAME = "Backup-Rsync-NVMEFC" TYPE = "BACKUP_DS" DS_MAD = "rsync" TM_MAD = "-" RSYNC_USER = "<rsync_user>" RSYNC_HOST = "<backup server>"
檔案$cat nvmefc-kernel.conf NAME = "File-Kernel-NVMEFC" TYPE = "FILE_DS" DS_MAD = "fs" TM_MAD = "local" SAFE_DIRS = "/var/tmp/files"影像$cat nvmefc-image.conf NAME = "Image-NVMEFC01" TYPE = "IMAGE_DS" DS_MAD = "fs" TM_MAD = "fs_lvm_ssh" DISK_TYPE = "block" LVM_THIN_ENABLE = "yes"系統$cat nvmefc-system.conf NAME = "System-NVMEFC02" TYPE = "SYSTEM_DS" TM_MAD = "fs_lvm_ssh" DISK_TYPE = "block" BRIDGE_LIST = "<space-separated list of OpenNebula hosts>" # If NVMe namespace not presented to frontend hosts LVM_THIN_ENABLE = "yes" -
-
執行
onedatastore create <configuration file>。記下建立後傳回的資料存放區 ID。onedatastore create nvmefc-system.conf ID:108
-
使用 `vgcreate <vg_name> <nvme_device>`指令在 NVMe 命名空間上建立磁碟區群組。對於映像資料存放區,磁碟區群組名稱可以隨意命名。對於系統資料存放區,磁碟區群組名稱必須採用 `vg-one-<datastore id>`格式。這是 OpenNebula 識別系統資料存放區正確磁碟區群組所需的。如果您要建立備份 / 檔案 / 映像資料存放區,請繼續執行下列步驟。對於系統資料存放區,請到此為止。
-
使用
lvcreate -l 100%FREE -n <logical volume name> <volume group name>指令建立邏輯卷精簡池。對於系統資料存儲,OpenNebula 會在需要時自動建立 LVM 精簡池。 -
使用
mkfs.ext4 /dev/<volume group>/<logical volume>指令在邏輯磁碟區上建立檔案系統。系統資料儲存不需要建立檔案系統。 -
更新 /etc/fstab 或自動掛載配置,以使用所需的掛載選項掛載資料儲存。假設預設資料儲存位置為 /var/lib/one/datastores。可以使用 `onedatastore show <datastore_id>`進行驗證。如果不是,請檢查 /etc/one/oned.conf 中的 DATASTORE_LOCATION 參數。確保資料儲存位置下存在<datastore_id>資料夾。範例條目如下所示:
使用 /etc/fstab/dev/<vg name>/<logical volume> /var/lib/one/datastores/<datastore_id> ext4 _netdev,noauto,x-systemd.automount,nofail 0 2使用自動掛載/var/lib/one/datastores/<datastore_id> -fstype=ext4,_netdev,noauto,x-systemd.automount,nofail,rw :/dev/<vg name>/<logical volume> -
使用
mount -a或systemctl reload autofs命令掛載資料存放區。 -
使用 mount 指令驗證資料存放區是否已掛載,並使用
onedatastore show <datastore_id>指令驗證資料存放區容量。 -
確保 oneadmin 使用者和群組擁有資料儲存資料夾的所有權。使用
chown -R oneadmin:oneadmin /var/lib/one/datastores/<datastore_id>命令調整權限。