本文由guwenwu写于2012年8月14日,转载请注明出处
摘要:本文对virt-p2v工具的安装和使用进行了阐述,并成功的使用virt-p2v工具将一台物理机迁移到了Openstack中。
本文环境:host A: I10.28.170.93 8core 16GB 1TB Centos6.2 运行Openstack所有服务,虚拟软件为kvm
host B: VM 1Core 512M 8G Centos6.3
P2V 指迁移物理服务器上的操作系统及其上的应用软件和数据到 VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据“镜像”到 VMM 提供的虚拟机中,并且在虚拟机中“替换”物理服务器的存储硬件与网卡驱动程序。只要在虚拟服务器中安装好相应的驱动程序并且设置与原来服务器相同的地址(如 TCP/IP 地址等),在重启虚拟机服务器后,虚拟服务器即可以替代物理服务器进行工作。
P2V迁移方法主要有以下几种:
- 手动迁移,手工完成整个迁移过程,物理机需要关机,操作人员需要对物理机系统和虚拟机十分了解
- 半自动迁移,利用专业工具辅助进行P2V,把某些手动环节进行自动化。比如将物理机的磁盘数据转换成虚拟机格式,这一向是相当耗时的工作,你可以选择专业的工具来完成这个步骤。
- 热迁移,以上两种迁移过程中都不可避免宕机,物理机处于不可用状态。热迁移可以在物理机运行的状态下完成迁移。
本文所述的迁移方法和virt-p2v工具属于半自动迁移。
二.virt-p2v简介及安装
2.1 下载virt-v2v和virt-p2v
virt-v2v和virt-p2v是Redhat开发的开源虚拟机迁移工具,Red Hat EnterpriseLinux 6包含这个包,目前最新版本为virt-v2v-v0.8.8.tar.gz virt-p2v也包含在包中。
2.2 在host A上安装virt-p2v
下载安装包后
tar -xzvfvirt-v2v-v0.8.8.tar.gz
cd virt-v2v-v0.8.8
./autobuild.sh
或直接使用yum安装
yum install virt-v2v
三.
virt-p2v配置和使用
3.1 创建kvm的Storage pool
virsh pool-create-as kvm-storage-pool dir --target=/virhost
3.2 修改/etc/virt-v2v.conf
vi
/etc/virt-v2v.conf
文件中的内容都被注释了,将所有的注释去掉!
并修改文件内容
<profile name="libvirt">
<method>libvirt</method>
<storage>default</storage>
<network type="default">
<network type="network" name="default"/>
</network>
</profile>
为
<profile name="libvirt">
<method>libvirt</method>
<storage>
kvm-storage-pool
</storage>
<network type="default">
<network type="network" name="default"/>
</network>
</profile>
3.3 运行virt-p2v-server
3.4 制作virt-p2v客户端镜像的usb启动盘
挂载
virt-p2v
镜像
mount -o loop /usr/share/virt-p2v/virt-p2v-0.8.6-5.20120502.1.el6.centos.iso /mnt
cd /mnt/LiveOS/
在host A上插一个U盘,设备名为/dev/sdb,运行
./livecd-iso-to-disk
/usr/share/virt-p2v/virt-p2v-0.8.6-5.20120502.1.el6.centos.iso /dev/sdb
将启动镜像写入到U盘中。
3.5 利用U盘启动host B
系统会自动识别网卡(仅限于有线网卡),如果接入的网络有DHCP功能则可以自动获取IP否则,自己设置网络
输入host A的Ip地址,和root用户密码,点击Connect
Destination Profile一栏选择libvirt ,输入名字,点击Convert
virt-p2v开始传输数据到host A上,并将磁盘转换为虚拟磁盘。
Transferring 完成后,有可能会报错,但是对我们将实体机转移到Openstack中已经没有影响了。
回到host A上
cd/virhost
qemu-img convert -f raw -O qcow2test-p2v-sda test-p2v-sda_qcow2
将虚拟磁盘转换为qcow2格式
glance add disk_format=qcow2 container_format=ovf name=winxp is_public=True<test-p2v-sda_qcow2
上传镜像,然后在Dashbord用这个镜像生成Instance,P2V完成!