在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

