迁移xen虚拟机的disk到ovirt中新建的vm的disk上
操作内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
一、资源
1、源:xen 主机 n35
xen server: n35.test
vm: new-t10g
cpu: 2
mem: 2g
disk: 10g(lvm分区)
eth: 2
2、思路
1)在ovirt中新建1个同样的内核和磁盘配置的虚拟机A。
2)移除A的磁盘Da,挂载到另一个虚拟机B上
3)同步目标xen虚拟机C的数据,到Da上,排除/boot分区
4)更新配置文件grub,fstab,udev,ifcfg
二、在ovirt中操作
1、新建一个虚拟机
名称: new-t10g
内存:2048 MB
CPU:2
引导操作,创建一个虚拟磁盘
大小(GB):10
别名: new-t10g_Disk1
2、只运行一次【耗时:5 分钟】
安装系统:版本一致
分区:和xen虚拟机一致(本例,仅根分区)
软件包:最小化
3、停止虚拟机
4、编辑 new-t10g 的磁盘
可引导的:不勾选
5、删除 new-t10g 的磁盘
永久地删除:不勾选
5、附加并挂载 new-t10g 的磁盘 到 临时用的虚拟机 a02
三、在 a02 上挂载 new-t10g 的磁盘
1、挂载
# mount -o loop /dev/vdb1 /mnt
# du -sh /mnt
589M /mnt
# ls /mnt/
bin devhomelib64 mediaopt rootselinuxsysusr
bootetclib lost+foundmnt procsbinsrv tmpvar
2、关闭xen虚拟机,挂载磁盘
# mount -o loop /dev/vg0/t10g-disk /media/
# du -sh /media
1.3G /media
# ls /media/
bin devhomelib64 mediaopt rootselinuxsysusr
bootetclib lost+foundmnt procsbinsrv tmpvar
3、开始同步【耗时:1 分钟】
# rsync -avP --delete 10.0.200.35:/media/ /mnt/ --exclude="boot"
4、编辑grub配置,调整根分区(/)位置,将UUID调整为/dev/vda1
# vim /mnt/boot/grub/grub.conf
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/vda1 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=autoKEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-431.el6.x86_64.img
5、编辑fstab,调整根分区(/)为/dev/vda1,注释掉swap分区
# vim /mnt/etc/fstab
/dev/vda1 / ext4 defaults 1 1
#/dev/xvda1 / ext4 defaults 1 1
#/dev/xvdb1 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devptsgid=5,mode=6200 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
6、清理udev
# rm /mnt/etc/udev/rules.d/*
7、清理网卡配置,移除mac地址和uuid
# sed -i -e '/UUID/d' -e '/HWADDR/d' /mnt/etc/sysconfig/network-scripts/ifcfg-eth*
8、卸载
# umount /mnt/
# umount /media
四、将 修复完毕的 磁盘 挂载回去
1、选择虚拟机 a02 的磁盘 new-t10g_Disk1 ,取消激活,删除
2、附加到虚拟机 new-t10g ,编辑,选中“可引导的”
3、启动虚拟机验证【符合预期】
五、测试
1、完整流程重来一遍,统计耗时
磁盘 步骤二耗时 步骤三耗时 步骤四耗时
10G 00:09:16 00:04:24 00:01:35
2、整个流程中,还有以下2个因数会影响耗时:
1)xen虚拟机的系统磁盘数据较多(大量的小文件将显著的影响同步时间)
2)克隆一个已经最小化安装的虚拟机,但这个虚拟机较大(例如,100G大概耗时: 10 分钟)
3、测试多个分区的情景
1)假设有如下分区
/dev/vda1 /boot
/dev/vda2 swap
/dev/vda3 /
2)注意事项
# mount -o loop /dev/vdb3 /mnt/
# mount -o loop /dev/vdb1 /mnt/boot/
# vim /mnt/boot/grub/grub.conf
root=/dev/vda3
# vim /mnt/etc/fstab
/dev/vda3 / ext4 defaults 1 1
# rm /mnt/etc/udev/rules.d/*
# sed -i -e '/UUID/d' -e '/HWADDR/d' /mnt/etc/sysconfig/network-scripts/ifcfg-eth*
# umount /mnt/boot/
# umount /mnt/
4、小结
如果提前收集不同的xen虚拟机配置,新建虚拟机,配置成模版,提前用模版克隆,则可以加快迁移速度。
ZYXW、参考
1、来自Cyrus和实验和建议思路。
页:
[1]