在Debian Jessie上使用DRBD进行Xen在线迁移
时间:2020-03-21 11:47:33 来源:igfitidea点击:
以下是3部分系列文章的第3部分,该系列文章介绍了使用DRBD进行Xen实时迁移的安装和配置。
本文介绍了DRBD资源的安装和配置。
本文遵循的约定是[ALL]表示需要在两个Xen节点上都运行的命令。
安装
[ALL]# apt-get install drbd8-utils
全局DRBD配置
打开“ /etc/modprobe.d/drbd.conf”进行编辑,并添加以下行:
options drbd disable_sendpage=1
如果不存在,请创建该文件。
我们的全局DRBD配置'/etc/drbd.d/global_common.conf'可以在下面看到。
global { usage-count no; } common { handlers { # split-brain "/usr/lib/drbd/notify-split-brain.sh root"; } startup { wfc-timeout 30; } options { on-no-data-accessible io-error; } disk { on-io-error detach; resync-rate 10M; #100Mbps link #fencing resource-and-stonith; } net { protocol C; timeout 50; #5 seconds allow-two-primaries yes; cram-hmac-alg sha1; shared-secret XenNodes; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; rr-conflict disconnect; ping-timeout 10; #1 second verify-alg sha1; csums-alg sha1; } }
DRBD资源配置
我们将需要一个逻辑卷来存储DRBD元数据:
[ALL]# lvcreate --size 1g --name lv_meta vg_xen
在下面的'/etc/drbd.d/jessie01-disk.res'中,我们可以看到我们使用'/dev/vg_xen/lv_meta [0]'指定了带有meta-disk的行。
可以使用同一设备(逻辑卷)来存储多个DRBD资源的元数据,方法是在设备名称后添加[X]。
我们的DRBD资源'/etc/drbd.d/jessie01-disk.res'的配置如下所示。
resource jessie01-disk { meta-disk /dev/vg_xen/lv_meta[0]; device /dev/drbd0; disk /dev/vg_xen/jessie01-disk; on xen01.igi.local { address 172.16.22.13:7789; } on xen02.igi.local { address 172.16.22.14:7789; } }
另外,仅在xen02节点上,创建一个名为jessie01-disk的逻辑卷,并匹配xen01上的逻辑卷的大小(在本例中为4GB):
[xen02]# lvcreate --size 4g --name jessie01-disk vg_xen
创建设备元数据,启动设备并强制使其成为主节点:
[xen01]# drbdadm create-md jessie01-disk [xen01]# drbdadm up jessie01-disk [xen01]# drbdadm primary --force jessie01-disk [xen01]# drbd-overview 0:jessie01-disk/0 WFConnection Primary/Unknown UpToDate/Outdated
在第二个Xen节点上初始化并启动DRBD资源,然后等待直到同步:
[xen02]# drbdadm create-md jessie01-disk [xen02]# drbdadm up jessie01-disk
[xen02]# watch drbd-overview 0:jessie01-disk/0 SyncTarget Secondary/Primary Inconsistent/UpToDate [============>.......] sync'ed: 67.5% (1339308/4097084)K
同步完成后,将xen02 DRBD节点设置为主节点,以启用Xen实时迁移:
[xen02]# drbdadm primary jessie01-disk
[xen02]# drbd-overview 0:jessie01-disk/0 Connected Primary/Primary UpToDate/UpToDate
Xen Live迁移
打开文件“ /etc/xen/jessie01.cfg”以在两个Xen节点上进行编辑,并替换以下行:
disk = [ 'phy:/dev/vg_xen/jessie01-disk,xvda1,w', ]
有了这个:
disk = [ 'drbd:jessie01-disk,xvda1,w', ]
启动虚拟访客:
[xen01]# xl create /etc/xen/jessie01.cfg
[xen01]# xl list Name ID Mem VCPUs State Time(s) Domain-0 0 1022 1 r----- 160.6 jessie01 1 256 1 -b---- 2.9
连接到来宾的控制台以确保它已启动并正在运行。
[xen01]# xl console jessie01
将来宾VM从xen01迁移到xen02:
[xen01]# xl migrate jessie01 xen02 migration target: Ready to receive domain. Saving to migration stream new xl format (info 0x0/0x0/706) Loading new save file (new xl fmt info 0x0/0x0/706) Savefile contains xl domain config xc: progress: Reloading memory pages: 7168/131072 5% xc: progress: Reloading memory pages: 13312/131072 10% xc: progress: Reloading memory pages: 20480/131072 15% xc: progress: Reloading memory pages: 26624/131072 20% xc: progress: Reloading memory pages: 32768/131072 25% xc: progress: Reloading memory pages: 39936/131072 30% xc: progress: Reloading memory pages: 46080/131072 35% xc: progress: Reloading memory pages: 53248/131072 40% xc: progress: Reloading memory pages: 59392/131072 45% xc: progress: Reloading memory pages: 65737/131072 50% migration sender: Target has acknowledged transfer. migration sender: Giving target permission to start. migration target: Transfer complete, requesting permission to start domain. migration target: Got permission, starting domain. migration sender: Target reports successful startup. migration target: Domain started successsfully. Migration successful.
[xen02]# xl list Name ID Mem VCPUs State Time(s) Domain-0 0 1022 1 r----- 294.7 jessie01--incoming 2 143 0 --p--- 0.0
[xen02]# xl list Name ID Mem VCPUs State Time(s) Domain-0 0 1022 1 r----- 301.4 jessie01 2 256 1 -b---- 1.6
请注意,迁移后xen01如何成为DRBD设备上的“辅助”对象。
[xen01]# drbd-overview 0:jessie01-disk/0 Connected Secondary/Primary UpToDate/UpToDate
移回
[xen01]# drbdadm primary jessie01-disk [xen01]# drbd-overview 0:jessie01-disk/0 Connected Primary/Primary UpToDate/UpToDate
[xen02]# xen migrate jessie01 xen01 migration target: Ready to receive domain. Saving to migration stream new xl format (info 0x0/0x0/706) Loading new save file (new xl fmt info 0x0/0x0/706) Savefile contains xl domain config xc: progress: Reloading memory pages: 7168/131072 5% xc: progress: Reloading memory pages: 13312/131072 10% xc: progress: Reloading memory pages: 20480/131072 15% xc: progress: Reloading memory pages: 26624/131072 20% xc: progress: Reloading memory pages: 32768/131072 25% xc: progress: Reloading memory pages: 39936/131072 30% xc: progress: Reloading memory pages: 46080/131072 35% xc: progress: Reloading memory pages: 53248/131072 40% xc: progress: Reloading memory pages: 59392/131072 45% xc: progress: Reloading memory pages: 65571/131072 50% migration sender: Target has acknowledged transfer. migration sender: Giving target permission to start. migration target: Transfer complete, requesting permission to start domain. migration target: Got permission, starting domain. migration sender: Target reports successful startup. migration target: Domain started successsfully. Migration successful.
[xen01]# xl list Name ID Mem VCPUs State Time(s) Domain-0 0 1022 1 r----- 724.4 jessie01 6 256 1 -b---- 1.7