DRBD 作为 XEN VM 的块设备(Centos 5.3)

DRBD 作为 XEN VM 的块设备(Centos 5.3)

我已经在 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

因此,这里有两点很重要:

  1. 对于 DomU 将看到的设备,最好使用整个磁盘而不是分区
  2. 在 DomU 中使用标准设备名称 (xvd*)

我在最新的 SLES SP3 内核补丁中偶然发现了后者:在此之前,我一直使用“sda”作为 DomU 中的设备名称。

现在,我的半虚拟化 DomU 在应用内核补丁时就挂起了。补丁过程的 strace 显示有东西正在尝试访问 sda,就像它是物理磁盘一样。将 sda 更改为 xvda 后,我再也没有遇到任何问题。

使用 CentOS 4 作为半虚拟化 DomU 时,使用“sda”也相当棘手。我不得不说服系统不要为该设备使用 scsi 驱动程序,而是使用 xenblock 驱动程序。基本上是同样的问题。

相关内容