我已经在 2 个服务器节点之间设置了 drbd 资源 - 在两者之间进行同步测试时,一切正常。(我想使用 drbd、xen 和 heartbeat 创建 HA 集群)
然而,当我尝试创建一个以 Centos 为客户操作系统的 XEN VM 时,我进入了安装时的分区屏幕,但是当我选择分区类型时,下一个屏幕给出了以下错误:
“发生错误 - 未找到可用于创建新文件系统的有效设备。请检查硬件以查找导致此问题的原因。”
这是第一次尝试创建这样的设置,但谷歌搜索并没有太大帮助......
我的 DRBD 和 XEN 配置文件....
DRBD(仅相关部分)
在 xennode0 上 { 设备 /dev/drbd0;磁盘 /dev/sda5;地址 XXXX:7788;灵活元磁盘内部; }
在 xennode1 上 { 设备 /dev/drbd0;磁盘 /dev/sda5;地址 XXXX:7788;元磁盘内部; }
西恩
内核 = “/boot/xeninstall/vmlinuz” ramdisk = “/boot/xeninstall/initrd.img” extra = “text” 名称 = “VM” maxmem = 3000 内存 = 3000 vcpus = 4 on_poweroff = “destroy” on_reboot = “restart” on_crash = “restart” vfb = [ ] 磁盘 = [ “phy:/dev/drbd0,sda1,w”, “tap:aio:/srv/xen/xenswap.img,sda2,w” ] vif = [ “mac=00:16:3e:11:67:ae,bridge=xenbr0” ] root = “/dev/sda1 ro”
提前致谢!
答案1
好吧,看到我好像为解决这个问题绞尽了脑汁,让我回答一下我的问题,省得别人也为这个问题绞尽脑汁:)
解决方案:
经过一番尝试、大量的 Google 搜索和重新分区等之后...我找到了一个非常有效的设置。
可能有更快捷的方法来做到这一点,但我不会让这个答案过于复杂
我进行了标准安装,分区如下(我有一个 500g 的硬盘):
/boot 100mb
/swap 4gb
/ 40gb
磁盘空间的余额将保留为未分区空间。
然后,我按照以下步骤创建了一个名为 /dev/sda4 的主分区:
~: fdisk /dev/sda
~: (fdisk shell) p4 (for primary partition # 4)
~: (fdisk shell) t (hit t and enter to edit the partition type)
~: (fdisk shell) 08e (Linux LVM)
重新启动服务器,以使新的分区生效。
现在通过以下方式创建逻辑卷:
~: pvcreate /dev/sda4
~: vgcreate xenvg -s 4M /dev/sda4 # (xenvg is the name of my virtual group, you can rename it)
~: lvcreate -L400G -n xenroot xenvg # (xenroot is going to be my drbd resource and root partition for my DomU)
~: lvcreate -L4G -n xenswap xenvg # (xenswap is my swap file for my DomU)
现在您有了正确的分区,您可以继续使用以下配置文件指令(drbd.conf)安装 DRBD
这里仅显示 2 个重要指令...
{
device /dev/drbd0;
disk /dev/xenvg/xenroot;
}
您的 XEN VM 配置文件需要看起来像这样(再次强调,这只是重要的一个)
{
disk = [ "drbd:xenvm,xvda,w","phy:xenvg/xenswap,xvdb,w" ]
}
我希望这对某人有帮助......
答案2
因此,这里有两点很重要:
- 对于 DomU 将看到的设备,最好使用整个磁盘而不是分区
- 在 DomU 中使用标准设备名称 (xvd*)
我在最新的 SLES SP3 内核补丁中偶然发现了后者:在此之前,我一直使用“sda”作为 DomU 中的设备名称。
现在,我的半虚拟化 DomU 在应用内核补丁时就挂起了。补丁过程的 strace 显示有东西正在尝试访问 sda,就像它是物理磁盘一样。将 sda 更改为 xvda 后,我再也没有遇到任何问题。
使用 CentOS 4 作为半虚拟化 DomU 时,使用“sda”也相当棘手。我不得不说服系统不要为该设备使用 scsi 驱动程序,而是使用 xenblock 驱动程序。基本上是同样的问题。