一、实施说明

在虚拟化的过程中由现有物理系统到虚拟机的迁移环节必不可少,其中有很多工具和方式各有不同特色,我目前用过方式的只有clonezilla、Vconvert、virt-p2v,从物理机向KVM迁移。本文主要讲通过clonezilla实现p2v的迁移,国内网上也有不少讲clonezilla的,不过都只讲了clone的使用,至于具体迁移则很少设计,其中主要且容易出问题的关键点也没提,通过百度搜过资料的人都懂的,基本出处都是一个。。。。。。。

clonezilla是台湾人开发的一个开源软件,功能很强,可以进行硬盘和硬盘,硬盘和映像,及分区和映像的相互转换。速度很快,最主要的就是只备份硬盘实际使用的块,空余空间不会备份,这样整个映像文件就不会太大,而且成功率极高。

本例服务器信息如下:

server1:   IP:172.16.1.11    Windows2008  【需要迁移的物理机】

server2:   IP:172.16.1.10     linux  dhcp+tftp 【运行KVM的目标机器】二、配置Clonezilla

有两种方式运行clonezilla,可以下载ISO刻录成CD通过光盘引导,还可以下载zip包进通过PXE进行安装,这里讲PXE引导方式,比较网络还是要更快,适应性更强1.下载Clonezilla:

在www.clonezilla.org下载最新版的zip包

2.配置DHCP的 PXE引导

11#vim /etc/dhcp/dhcpd.conf
\在子网下配置选项,【这里只写pxe引导部分,其他配置请搜索dhcp配置方法】
subnet {
...
next-server 172.16.1.10;        \指定用于引导的Tftp服务器,
filename "pxelinux.0";        \指定pxe引导文件
}
#service dhcpd restart
3.安装TFTP服务

4yum -y install xinetd tftp-server tftp
chkconfig xinetd on
chkconfig tftp on
service xinetd start4.配置PXE引导 【clonezilla官网有相关配置文档】

20unzip clonezilla-live-20140915-trusty-amd64.zip
cp -a clonezilla-live-20140915-trusty-amd64/live /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp clonezilla-live-20140915-trusty-amd64/syslinux/isolinux.cfg    /var/lib/tftpboot/pxelinux.cfg/default
vi /var/lib/tftpboot/pxelinux.cfg/default
\将label Clonezilla live段的append参数修改如下:
append initrd=/live/initrd.img boot=live username=user hostname=trusty config  union=overlayfs
noswap edd=on nomodeset ocs_live_keymap=NONE ocs_lang=zh_CN.UTF-8 nolocales
ocs_live_run="ocs-live-general"
noprompt ocs_live_batch=no vga=788
fetch=tftp://172.16.1.10/live/filesystem.squashfs三、配置物理服务器,生成映像

1.下载virtio-win光盘,载入windows,具体下载地方可以通过google找

2.安装virtio驱动,(Windows 2008 x64)

重要:服务器一般都是RAID硬盘驱动,kvm本身不支持,不提前安装会导致虚拟机启动找不到硬盘

设备管理器—>添加过时硬件—>手动选择硬件列表—>存储控制器—>从磁盘安装—>”选择光盘下WLH/AMD64/viostor”

3.重启计算机,通过PXE引导,制作映像

下面显示了主要的步骤,其他都要按照默认即可

StartClone --->

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDGx-xH4zlAABt2i3jK7Y654.jpg (14.29 KB, 下载次数: 29)

2014-10-20 08:31 上传

device-image-->

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDG2eQddExAABhEoJvItw519.jpg (12.47 KB, 下载次数: 34)

2014-10-20 08:31 上传3.SSH server--->

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDGx_yQUclAABp-E3BKe0594.jpg (13.72 KB, 下载次数: 31)

2014-10-20 08:31 上传

4.填写远端kvm的IP--->

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDG2eTo3QWAABLJGNr_JA628.jpg (10.32 KB, 下载次数: 31)

2014-10-20 08:31 上传

5.填写要挂在的远端kvm目录

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHWyD4FjNAACzzVi_vZU311.jpg (23.43 KB, 下载次数: 36)

2014-10-20 08:31 上传

6.填写远端kvm密码

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHQCiC7VXAACRnd9YIO8572.jpg (19.07 KB, 下载次数: 29)

2014-10-20 08:31 上传

7.查看分区是否挂载

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDHLnQHNGvAACQglSDfiQ599.jpg (19.03 KB, 下载次数: 35)

2014-10-20 08:31 上传

8.继续选择“专家模式”

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHQGQyjqMAAC02qqGZJM073.jpg (22.1 KB, 下载次数: 33)

2014-10-20 08:31 上传

7.选择savedisk,制作本地硬盘映像

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHQGhzBzHAADwNEXi3jk582.jpg (30.52 KB, 下载次数: 34)

2014-10-20 08:31 上传

8.键入生成映像的文件夹,默认即可

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDHLnjzzUzAACvu48kwq8710.jpg (20.8 KB, 下载次数: 27)

2014-10-20 08:31 上传

9.选择生成映像的优先顺序,即当一个程序失效的时候会自动用另外方式,默认即可

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHQHhfz82AADJjucD_ww164.jpg (24.66 KB, 下载次数: 33)

2014-10-20 08:31 上传

10.选择生成映像参数,如果是windows系统一定选上“-rm-win-swap-hib”,以节省空间

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDHnaCcMeFAADWI0UUSqk130.jpg (22.2 KB, 下载次数: 35)

2014-10-20 08:31 上传

11.选择压缩模式,可以根据自己的带宽,存储情况选择,我选择不压缩

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHr7xDA6cAAD-ZvokV18408.jpg (31.16 KB, 下载次数: 33)

2014-10-20 08:31 上传

12.如果选择了压缩系统会自动将压缩文件分解多个包,这里选择每个包的大小,如果只想生成一个包的话,就选择一个特别大的数值

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKiom1RDHnayp1kYAADFRjdkCr4400.jpg (25.79 KB, 下载次数: 28)

2014-10-20 08:31 上传

13.选择映像制作完成后的客户端系统状态,根据自己需要选择,个人认为无关紧要

KVM P2V迁移工具 p2v迁移linux_p2v虚拟化Linux主机

wKioL1RDHr7jPRpxAACRJantRrk976.jpg (18.13 KB, 下载次数: 33)

2014-10-20 08:31 上传

14.其他的接下来基本上就是一路默认回车就可以了,等待镜像传输完成,可以在目标kvm上的/root下查看是否有之前定义的映像目录产生

四、配置映像,并生成虚拟机

1.映像生成完毕后在KVM服务器上查看生成的映像文件


7cd  2014-10-16-15-img/          \里面会包含很多文件

cp sda-mbr /vm/win/sda.img    \将分区表信息拷贝到要建立的虚拟机映像文件中

fdisk /vm/win/sda.img p        \查看新文件映像分区表信息是否和物理机一致

dd if=/dev/zero of=/vm/win/sda.img bs=1 count=0 seek=300G    \将映像文件设置为300G,不能小于物理机硬盘大小,\seek使磁盘动态扩展,实际不会占用很大空间

2.通过virt-manager或vrit-install生成新虚拟机,并添加cdrom 通过Clonezilla的iso引导

重要:必须选中virtio,否则镜像还原后重启windows会蓝屏,因为不指定默认是IDE硬盘,但是系统本身是RAID磁盘,不是IDE硬盘模式

7virt-install -n "CentOS6.5" --vcpus 2 -r 512
--virt-type kvm
--disk path=/VM/win/sda.img,bus=virtio cache=writeback
--network bridge=br0,model=virtio
--boot network,cdrom,hd,menu=on
--graphics vnc
--import

步骤与之前制作映像一样,只不过不是保存映像而是“还原映像文件到本地硬盘“

3.重启虚拟机验证恢复情况。查看镜像文件会发现,其文件不大。如果提示无法正常安装网卡,可以再次加载virtio-win光盘,安装网卡驱动五、总结

这基本上就是所有的步骤,每个人的环境多少会有差异,根据自己的实际情况可以做修改,不过一般的环境都是通用的。 linux的迁移相对简单一些,不过不用考虑驱动的问题,这样会更简单一些。