--- Volume group ---
VG Name XenVG
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 204.72 GB
PE Size 32.00 MB
Total PE 6551
Alloc PE / Size 640 / 20.00 GB
Free PE / Size 5911 / 184.72 GB
VG UUID tMHTWV-1dYR-4yB1-tmS5-q1Tk-i3Yx-6l1YLa
这是从我的一台实时 Xen 服务器中获取的,该服务器已经设置了一个 20GB LV 切片。从这一点来看,只需为您的 domU 驱动器创建 LV。以最简单的形式,您可以这样做:
lvcreate -L <size> -n <LV name> XenVG
环境到 domU 所需的驱动器容量,我通常设置等于我为其创建它的 domU 的主机名。
然后,当您安装 domU 时,您将指定磁盘为/dev/XenVG/<LV name>,Xen 会将其视为物理设备。
我没有使用过 Novell Xen 或 Starwind,我使用过 XenServer 以及与 Debian 和 RHEL5 一起打包的 Xen。我在测试 XenServer 时没有尝试 LVMoiSCSI,因为当时我没有可用的 iSCSI 主机。从我对 iSCSI 和 LVM 的理解来看,我绝对可以冒险做出有根据的猜测,这可能会帮助您隔离问题。
以我的经验,iSCSI 一直是“一次可以挂载一个系统”,除非使用像 GFS 这样的集群感知文件系统。在我自己的 Xen 服务器中,我使用 LVM 分割 RAID 阵列,以供我的 domU 用作物理设备。我假设 Citrix 已将其纳入他们的 LVMoiCSCSI 支持以对 iSCSI 卷执行相同的操作。我一定要试试这个,看看我是否不能证实我的怀疑。
如果 Citrix 的 LVMoiSCSI 除了将 iSCSI LUN 视为逻辑卷 (LV) 之外没有做任何特殊的事情(即,没有任何东西使它能够识别集群),您可以尝试让您的 Novell Xen 系统做同样的事情。LVM 默认支持集群,因此创建的每个 LV 都可以由不同的服务器单独挂载,同时它们都可以访问 iSCSI 目标 LUN。
LVM 本身相当容易设置和使用,并且命令在任何 Linux 发行版中都应该是直截了当的。
您想要完成的第一件事(我假设您已经完成)是确保服务器可以访问 iSCSI LUN 并将其视为本地 SCSI 驱动器。
一旦您能够从至少一个系统中看到 iSCSI 驱动器,您希望将其初始化为物理卷 (PV):
当然,用您的系统将 iSCSI LUN 视为的任何设备替换该设备。以我的经验,这有时会从重新启动变为重新启动。
随着你的 PV 初始化,是时候创建一个卷组 (VG) 并告诉它使用你初始化的 PV:
其中 XenVG 将是您的 VG 名称,并使用您在 PV 初始化步骤中使用的相同设备。现在,如果您运行
vgdisplay
,您应该会看到如下内容:这是从我的一台实时 Xen 服务器中获取的,该服务器已经设置了一个 20GB LV 切片。从这一点来看,只需为您的 domU 驱动器创建 LV。以最简单的形式,您可以这样做:
环境到 domU 所需的驱动器容量,我通常设置等于我为其创建它的 domU 的主机名。
然后,当您安装 domU 时,您将指定磁盘为
/dev/XenVG/<LV name>
,Xen 会将其视为物理设备。这应该允许您让不同的 Xen 服务器从同一个 iSCSI LUN 安装 LV。您不能同时在两台机器上安装和使用相同的 LV;但是,如果您有某种形式的 HA 设置,您可以让节点在不同的机器上启动/停止 domU,以保持虚拟服务器的可用性。
上述 LVM 命令还有很多选项,我只是给出了最简单的形式。我强烈建议您阅读手册页,网上也有几个不错的 LVM HowTos。
非常感谢您花时间写下这个小教程。LVM 看起来很好用。虽然我已经解决了我的问题,但我会记住这一点。
我这样做的方式就是使用 OCFS2(Oracle 集群文件系统),就像 GFS 一样,集群感知。这对我来说很好,因为它只是一个测试设置,我不会将它更改为 lvm。