使用 ONTAP iSCSI 为 OpenNebula 配置 LVM Thin
使用 iSCSI 协议和 NetApp ONTAP,为 OpenNebula 主机配置 Logical Volume Manager (LVM) 数据存储,实现共享存储。此配置支持在标准以太网网络上通过多路径实现块级存储访问。
初始虚拟化管理员任务
完成这些初始任务,让 OpenNebula 主机为 iSCSI 连接做好准备,并为存储管理员收集必要的信息。
-
确认两个 Linux VLAN 接口可用。
-
确保在所有 OpenNebula 主机上安装了多路径工具和 iSCSI 启动程序实用程序,并在启动时启动。
Debian/Ubuntuapt 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-iscsiRHEL/AlmaLinuxdnf 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 -
收集所有 OpenNebula 主机的 iSCSI 主机 IQN 并将其提供给存储管理员。
cat /etc/iscsi/initiator.name
如果您是ONTAP新手,请使用系统管理器以获得更好的体验。
-
确保SVM可用且已启用iSCSI协议。跟随 "ONTAP 9 文档"。
-
为每个控制器创建两个专用于 iSCSI 的 LIF。建议每个控制器使用两个 LIF,以实现冗余和多路径性能。确保在 OpenNebula 主机上配置的 VLAN 接口上创建 LIF。建议使用巨型帧 (MTU 9000) 以提高性能。

-
创建 LUN 并呈现给主机 iSCSI 启动程序。通常为一个 OpenNebula 集群创建一个 igroup。在同一 igroup 中包括前端服务器和虚拟机监控程序主机,以支持映像和系统数据存储。
-
通知虚拟化管理员 LUN 已创建。
最终虚拟化管理员任务
完成这些任务,将 iSCSI LUN 配置为 OpenNebula 中的共享 LVM 数据存储区。
-
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 -
执行
rescan-scsi-bus.sh或echo "- - -" > /sys/class/scsi_host/host*/scan重新扫描 SCSI 总线并检测新 LUN。 -
使用
lsblk -S或 fdisk -l 命令验证 LUN 在所有 OpenNebula 主机上均可见。 -
执行 `iscsiadm -m session -P 3`以检索 LUN 到设备名称的映射。
-
通过执行 `multipath -a /dev/<device_name>`将设备添加到多路径配置。然后,执行 `multipath -r`以重新加载多路径配置。通过执行 `multipath -ll`命令验证多路径配置。
-
根据所需的 Datastore 类型创建配置文件。有关完整属性列表,请参阅 "OpenNebula LVM 文档"。示例文件如下所示:
备份-
对于 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>"
-
对于 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" -
-
执行
onedatastore create <configuration file>。请注意创建后返回的数据存储 ID。onedatastore 创建 iscsi-system.conf ID: 106
-
使用
vgcreate <vg_name> <multipath_device>命令在 iSCSI LUN 上创建卷组。对于映像数据存储,卷组名称可以命名为任何所需的名称。对于系统数据存储,卷组名称必须为格式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 或 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> -
使用
mount -a或systemctl reload autofs命令挂载数据存储库。 -
使用 mount 命令验证数据存储库是否已装载,并使用 `onedatastore show <datastore_id>`命令验证数据存储库容量。
-
确保 oneadmin 用户和组拥有数据存储文件夹。使用 `chown -R oneadmin:oneadmin /var/lib/one/datastores/<datastore_id>`命令调整权限。