使用virt-p2v工具将物理机迁移到Openstack虚拟机中

来源:互联网 发布:c接收post数据 编辑:程序博客网 时间:2024/05/17 01:07

摘要:本文对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(参考:http://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm1/index.html)

    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 Enterprise Linux 6包含这个包,目前最新版本为virt-v2v-v0.8.8.tar.gz  virt-p2v也包含在包中。
   2.2   在host A上安装virt-p2v
    下载安装包后
     tar -xzvf virt-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(设置bios从usb启动)
      
        
        系统会自动识别网卡(仅限于有线网卡),如果接入的网络有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 qcow2 test-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完成!
0 0