Skip to main content
NetApp virtualization solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用 ONTAP NVMe/TCP 為 OpenNebula 配置 LVM Thin

貢獻者 sureshthoppay

使用 NVMe over TCP 協議,透過 NetApp ONTAP,為多個 OpenNebula 主機配置 Logical Volume Manager(LVM)資料存放區以實現共享儲存。此配置可透過現代 NVMe 協議,在標準乙太網路上提供高效能區塊級儲存存取。

初始虛擬化管理員任務

完成這些初始任務,為 OpenNebula 主機做好 NVMe/TCP 連線的準備,並收集儲存管理員所需的必要資訊。

  1. 確認兩個 Linux VLAN 介面可用。

  2. 在每台 OpenNebula 主機上執行以下命令以收集主機啟動器資訊。

    nvme show-hostnqn
  3. 將收集到的主機 NQN 資訊以及主機名稱提供給儲存管理員,並要求所需大小的 NVMe 命名空間。

儲存管理員任務

如果您是ONTAP新手,請使用系統管理員以獲得更好的體驗。

  1. 確保SVM可用且已啟用NVMe協定。請參閱 "ONTAP 9 上的 NVMe 任務文檔"

  2. 建立 NVMe 命名空間。

  3. 建立子系統並將其指派給主機 NQN。為叢集中的所有 OpenNebula 主機以及前端伺服器建立一個子系統。前端伺服器在子系統分配中是可選的,但對於 Image 資料儲存而言是必需的。

  4. 請確保在安全性標籤中啟用反勒索軟體保護。

  5. 通知虛擬化管理員 NVMe 命名空間已建立。

最終虛擬化管理員任務

完成以下任務,將 NVMe 命名空間配置為 OpenNebula 中的共用 LVM 資料儲存。

  1. 在叢集中的每台 OpenNebula 主機上開啟 shell,並建立 /etc/nvme/discovery.conf 檔案。根據您的環境更新內容。

    root@onehost01:~# cat /etc/nvme/discovery.conf
    # Used for extracting default parameters for discovery
    #
    # Example:
    # --transport=<trtype> --traddr=<traddr> --trsvcid=<trsvcid> --host-traddr=<host-traddr> --host-iface=<host-iface>
    
    -t tcp -l 1800 -a 172.21.118.153
    -t tcp -l 1800 -a 172.21.118.154
    -t tcp -l 1800 -a 172.21.119.153
    -t tcp -l 1800 -a 172.21.119.154
  2. 登入NVMe子系統。

    nvme connect-all
  3. 若要使 NVMe 命名空間在重新開機後仍保留、請啟用 nvmf-autoconnect 服務。

    systemctl enable nvmf-autoconnect
  4. 檢查並收集設備詳細資料。

    nvme list
    nvme netapp ontapdevices
    nvme list-subsys
    lsblk -N
  5. 透過 SSH 連接到前端伺服器之一,並根據所需的 Datastore 類型建立設定檔。如需完整的屬性清單,請參閱 "OpenNebula LVM 說明文件"。範例檔案如下所示:

    備份
    1. 對於 Restic、

    $cat nvmetcp-restic.conf
    NAME = "Backup-Restic-NVMETCP"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "restic"
    TM_MAD = "-"
    
    RESTIC_PASSWORD = "<restic_password>"
    RESTIC_SFTP_SERVER = "<backup server>"
    1. 對於 Rsync,

    $cat nvmetcp-rsync.conf
    NAME = "Backup-Rsync-NVMETCP"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "rsync"
    TM_MAD = "-"
    
    RSYNC_USER = "<rsync_user>"
    RSYNC_HOST = "<backup server>"
    檔案
    $cat nvmetcp-kernel.conf
    NAME = "File-Kernel-NVMETCP"
    TYPE = "FILE_DS"
    DS_MAD = "fs"
    TM_MAD = "local"
    SAFE_DIRS = "/var/tmp/files"
    影像
    $cat nvmetcp-image.conf
    NAME = "Image-NVMETCP01"
    TYPE = "IMAGE_DS"
    DS_MAD = "fs"
    TM_MAD = "fs_lvm_ssh"
    DISK_TYPE = "block"
    LVM_THIN_ENABLE = "yes"
    系統
    $cat nvmetcp-system.conf
    NAME = "System-NVMETCP02"
    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"
  6. 執行 onedatastore create <configuration file>。記下建立後傳回的資料存放區 ID。

    onedatastore create nvmetcp-system.conf ID:109

  7. 使用 `vgcreate <vg_name> <nvme_device>`指令在 NVMe 命名空間上建立磁碟區群組。對於映像資料存放區,磁碟區群組名稱可以隨意命名。對於系統資料存放區,磁碟區群組名稱必須採用 `vg-one-<datastore id>`格式。這是 OpenNebula 識別系統資料存放區正確磁碟區群組所需的。如果您要建立備份 / 檔案 / 映像資料存放區,請繼續執行下列步驟。對於系統資料存放區,請到此為止。

  8. 使用 lvcreate -l 100%FREE -n <logical volume name> <volume group name> 指令建立邏輯卷精簡池。對於系統資料存儲,OpenNebula 會在需要時自動建立 LVM 精簡池。

  9. 使用 mkfs.ext4 /dev/<volume group>/<logical volume> 指令在邏輯磁碟區上建立檔案系統。系統資料儲存不需要建立檔案系統。

  10. 更新 /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>
  11. 使用 mount -asystemctl reload autofs 命令掛載資料存放區。

  12. 使用 mount 指令驗證資料存放區是否已掛載,並使用 onedatastore show <datastore_id> 指令驗證資料存放區容量。

  13. 確保 oneadmin 使用者和群組擁有資料儲存資料夾的所有權。使用 chown -R oneadmin:oneadmin /var/lib/one/datastores/<datastore_id> 命令調整權限。