我想设置一台从 iSCSI 目标启动的无盘 XenServer 5.6 FP 1 机器。我认为安装到 iSCSI 应该相当简单:启动安装程序,打开 shell,使用 iscsiadm 连接到 iSCSI 目标,然后让安装程序安装到该目标上。
不过,我不确定如何让服务器从 iSCSI 目标启动。我想我可以让服务器的 NIC 执行 PXE 启动来加载 gPXE,然后 gPXE 会从 iSCSI 目标加载引导加载程序,然后 iSCSI 目标会加载 Xen/Linux。但是,我如何让 Xen/Linux 从 iSCSI 目标挂载根文件系统?
请注意,该服务器没有 HBA iSCSI 适配器,因此我尝试从常规 NIC 启动它。
我在虚拟机内进行了测试安装。当使用 gPXE 从 iSCSI 目标启动时,EXTLINUX 会挂起。然后我用 GRUB 替换了引导加载程序,成功启动了内核。但是,它无法挂载根文件系统。我看到以下消息,这些消息是在指示已成功获得 DHCP 租约的消息之后打印的:
Attaching to iSCSI storage
iscsistart: transport class version 2.0-870. iscsid version 2.0-871
iscsistart: Portal Group not set. Exiting iscsistart
...
Waiting for driver initialization.
答案1
您必须将此标志添加到 pxe 启动配置“device_mapper_multipath=yes”例如:
default xenserver
label xenserver
kernel mboot.c32
append /tftpboot/xenserver/xen.gz dom0_mem=752M com1=115200,8n1 \
console=com1,vga --- /tftpboot/xenserver/vmlinuz \
xencons=hvc console=hvc0 console=tty0 \
device_mapper_multipath=yes \
--- /tftpboot/xenserver/install.img
KDB 文章在此:
http://docs.vmd.citrix.com/XenServer/5.6.0fp1/1.0/en_gb/installation.html#boot_from_san
答案2
我能够让它工作。结果发现,在安装过程中创建 initrd 映像时,/init 中缺少启动器名称。设置 /etc/iscsi/initiatorname.iscsi 并使用 /boot/initrd-2.6.32.12-0.7.1.xs5.6.100.323.170596xen.img.cmd 中列出的命令重新执行 mkinitrd 即可解决问题。例如:
mkinitrd -v --theme=/usr/share/splash --without-multipath /boot/initrd-2.6.32.12-0.7.1.xs5.6.100.323.170596xen.img 2.6.32.12-0.7.1.xs5.6.100.323.170596xen