将VDI直接映射到XenServer中的软件iSCSI LUN

我在第4.1.6.2节的“XenServerpipe理员指南”中阅读了如果使用NetApp或EqualLogic SAN,则可以将原始LUN映射到VDI。 是否有可能对软件iSCSI SAN做相同的处理(即使用基于Nexenta / ZFS的SAN作为iSCSI目标)? 我知道我可以设置一个iSCSI SR,并把VDI放在那里,但是我想避免它,因为否则我必须处理LVM的开销,再加上它会使克隆变得更加困难。 我会处理从SAN的快照和克隆。 所以我基本上只想使用一个一个LUN-VDI映射,而不在XenServer主机中包含LVM。

如果有必要,我不反对通过CLI进行设置。 我更喜欢一些可靠的东西,这些东西在XenServer主机的重启过程中会持续存在,但是如果我必须在VM启动之前初始化iSCSI会话并加载VDI,那么我就可以编写脚本。

弄清楚了。 有一个未公开的“iscsi”SR驱动程序,它将创build一个LUN-per-VDI SR(我在通过/ opt / xensource / sm目录查看时发现这一点 – 请参阅ISCSISR.py文件)。 您只能通过命令行进行设置,包括创buildVBD并将其附加到VM。 VBD和VDI甚至不会在XenCenter中显示。

这里有一个示例命令来设置它:

xe sr-create name-label=san type=iscsi device-config:target=<IP address of target> device-config:targetIQN=<IQN of target> shared=true 

这将自动为每个iSCSI LUN创build一个VDI。 如果您最终在SAN上添加新的iSCSI LUN,则执行以下命令后,XenServer将为其添加新的VDI:

 xe sr-scan uuid=<UUID of SR> 

另外,如果最终调整LUN的大小,XenServer不会自动select,因此您必须执行以下操作:

 xe vdi-forget uuid=<UUID of VDI that you resized> iscsiadm -m node -R xe sr-scan uuid=<UUID of SR> 

并创build一个VBD并将其附加到VM:

 xe vbd-create vm-uuid=<UUID of VM> device=<VBD device #, eg 0> vdi-uuid=<VDI of UUID>