Skip to main content
NetApp virtualization solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 ONTAP iSCSI 为 OpenNebula 配置 LVM Thin

贡献者 sureshthoppay

使用 iSCSI 协议和 NetApp ONTAP,为 OpenNebula 主机配置 Logical Volume Manager (LVM) 数据存储,实现共享存储。此配置支持在标准以太网网络上通过多路径实现块级存储访问。

初始虚拟化管理员任务

完成这些初始任务,让 OpenNebula 主机为 iSCSI 连接做好准备,并为存储管理员收集必要的信息。

  1. 确认两个 Linux VLAN 接口可用。

  2. 确保在所有 OpenNebula 主机上安装了多路径工具和 iSCSI 启动程序实用程序,并在启动时启动。

    Debian/Ubuntu
    apt list | grep multipath-tools
    # If need to install, execute the following line.
    apt-get install multipath-tools open-iscsi
    # If /etc/multipath.conf is not present, first make sure the multipathd service is started.
    systemctl enable --now multipathd
    systemctl enable --now open-iscsi
    RHEL/AlmaLinux
    dnf list installed | grep device-mapper-multipath
    # If need to install, execute the following line.
    dnf install device-mapper-multipath iscsi-initiator-utils
    # If /etc/multipath.conf is not present, first make sure the multipathd service is started.
    systemctl enable --now multipathd
    systemctl enable --now iscsid
  3. 收集所有 OpenNebula 主机的 iSCSI 主机 IQN 并将其提供给存储管理员。

    cat /etc/iscsi/initiator.name

如果您是ONTAP新手,请使用系统管理器以获得更好的体验。

  1. 确保SVM可用且已启用iSCSI协议。跟随 "ONTAP 9 文档"

  2. 为每个控制器创建两个专用于 iSCSI 的 LIF。建议每个控制器使用两个 LIF,以实现冗余和多路径性能。确保在 OpenNebula 主机上配置的 VLAN 接口上创建 LIF。建议使用巨型帧 (MTU 9000) 以提高性能。

    iSCSI接口详细信息

  3. 创建 LUN 并呈现给主机 iSCSI 启动程序。通常为一个 OpenNebula 集群创建一个 igroup。在同一 igroup 中包括前端服务器和虚拟机监控程序主机,以支持映像和系统数据存储。

  4. 通知虚拟化管理员 LUN 已创建。

最终虚拟化管理员任务

完成这些任务,将 iSCSI LUN 配置为 OpenNebula 中的共享 LVM 数据存储区。

  1. SSH 到前端服务器之一,并通过提供 iSCSI 数据 lif 地址之一来发现所有 iSCSI Lif 门户。

    iscsiadm -m discovery -t sendtargets -p <iscsi data lif address>
    iscsiadm -m node
    iscsiadm -m node -l
    iscsiadm -m session
  2. 执行 rescan-scsi-bus.shecho "- - -" > /sys/class/scsi_host/host*/scan 重新扫描 SCSI 总线并检测新 LUN。

  3. 使用 lsblk -S 或 fdisk -l 命令验证 LUN 在所有 OpenNebula 主机上均可见。

  4. 执行 `iscsiadm -m session -P 3`以检索 LUN 到设备名称的映射。

  5. 通过执行 `multipath -a /dev/<device_name>`将设备添加到多路径配置。然后,执行 `multipath -r`以重新加载多路径配置。通过执行 `multipath -ll`命令验证多路径配置。

  6. 根据所需的 Datastore 类型创建配置文件。有关完整属性列表,请参阅 "OpenNebula LVM 文档"。示例文件如下所示:

    备份
    1. 对于 Restic,

    $cat iscsi-restic.conf
    NAME = "Backup-Restic-iSCSI01"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "restic"
    TM_MAD = "-"
    
    RESTIC_PASSWORD = "<restic_password>"
    RESTIC_SFTP_SERVER = "<backup server>"
    1. 对于 Rsync,

    $cat iscsi-rsync.conf
    NAME = "Backup-Rsync-iSCSI02"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "rsync"
    TM_MAD = "-"
    
    RSYNC_USER = "<rsync_user>"
    RSYNC_HOST = "<backup server>"
    文件
    $cat iscsi-kernel.conf
    NAME = "File-Kernel-iSCSI03"
    TYPE = "FILE_DS"
    DS_MAD = "fs"
    TM_MAD = "local"
    SAFE_DIRS = "/var/tmp/files"
    映像
    $cat iscsi-image.conf
    NAME = "Image-iSCSI04"
    TYPE = "IMAGE_DS"
    DS_MAD = "fs"
    TM_MAD = "fs_lvm_ssh"
    DISK_TYPE = "block"
    LVM_THIN_ENABLE = "yes"
    系统
    $cat iscsi-system.conf
    NAME = "System-iSCSI05"
    TYPE = "SYSTEM_DS"
    TM_MAD = "fs_lvm_ssh"
    DISK_TYPE = "block"
    BRIDGE_LIST = "<space-separated list of OpenNebula hosts>" # If LUN not presented to frontend hosts
    LVM_THIN_ENABLE = "yes"
  7. 执行 onedatastore create <configuration file>。请注意创建后返回的数据存储 ID。

    onedatastore 创建 iscsi-system.conf ID: 106

  8. 使用 vgcreate <vg_name> <multipath_device> 命令在 iSCSI LUN 上创建卷组。对于映像数据存储,卷组名称可以命名为任何所需的名称。对于系统数据存储,卷组名称必须为格式 vg-one-<datastore id>。这是 OpenNebula 识别系统数据存储的正确卷组所必需的。如果要创建备份/文件/映像数据存储,请继续执行以下步骤。对于系统数据存储,请停止此处。

  9. 使用 lvcreate -l 100%FREE -n <logical volume name> <volume group name> 命令创建逻辑卷精简池。对于系统数据存储区,OpenNebula 在需要时自动创建 LVM 精简池。

  10. 使用 mkfs.ext4 /dev/<volume group>/<logical volume> 命令在逻辑卷上创建文件系统。系统数据存储不需要创建文件系统。

  11. 更新 /etc/fstab 或 automount 配置,以使用所需的挂载选项挂载数据存储库。假设默认数据存储库位置为 /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
    使用 automount
    /var/lib/one/datastores/<datastore_id> -fstype=ext4,_netdev,noauto,x-systemd.automount,nofail,rw :/dev/<vg name>/<logical volume>
  12. 使用 mount -asystemctl reload autofs 命令挂载数据存储库。

  13. 使用 mount 命令验证数据存储库是否已装载,并使用 `onedatastore show <datastore_id>`命令验证数据存储库容量。

  14. 确保 oneadmin 用户和组拥有数据存储文件夹。使用 `chown -R oneadmin:oneadmin /var/lib/one/datastores/<datastore_id>`命令调整权限。