virt-v2v命令将ESXI 虚机迁移到OpenStack中

时间:2021-03-10 16:24:12

一简介: 

virt-v2v是将外部的虚拟化平台上的虚拟机转化到可以运行的KVM平台上。它可以读取在VMware、Xen运行Hyper-V和其他虚拟机管理程序上的Windows和Linux的虚拟机,并将其转换为KVM的libvirt,OpenStack等几种方式。
ESXI 平台下线,将虚机迁移至openstack 运行,但windows 虚机,大多是存在驱动问题的,因此需要先考虑驱动问题。
 
二、安装软件
# yum install -y qemu-kvm libvirt virt-manager virt-v2v 
三、命令介绍
  1、 查看EXSI 主机虚机列表
    #virsh -c esx://root@EXSI_server_IP?no_verify=1 list --all        ## EXSI_server_IP : EXSI 主机IP,需要输入服务器的root 密码
 
  2、拷贝虚拟机到本地,拷贝完成后会在当前目录生成一个xml文件和disk1磁盘文件,同样也是需要输入EXSI 服务器密码
    #mkdir /data         #创建用于存放文件的目录
    #virt-v2v-copy-to-local -ic esx://root@EXSI_server_IP?no_verify=1 vm_name            #vm_name: 需要拷贝到本地的虚机名称(在步骤一中获取)
     virt-v2v命令将ESXI 虚机迁移到OpenStack中
  
  3、转换数据格式,把磁盘文件的格式转换成OpenStack能够识别的格式 (如果有报错,查看最后的报错总结)
    # mkdir /data/vms          #创建用于存放格式转换后的文件
   # virt-v2v -i libvirtxml vm_name.xml -o local -os vms/ -of raw               # -of :转换为row 格式        -os :指定输出路径      vm_name.xml:为第二步骤中生成的文件
     virt-v2v命令将ESXI 虚机迁移到OpenStack中

  4、将转换完成后的 vm_name-sda 文件上传至openstack中,启动新的虚机。

    流程:创建卷-->通过rbd 导入 vm_name-sda 的设备---> 启动虚机

    
 
 
 
四、报错总结:
  第三步报错:Failed to connect socket to '/var/run/libvirt/libvirt-sock'
  
  解决:
    1、# groupadd libvirtd       #增加libvirtd用户组
    2、# sudo usermod -a -G libvirtd $USER     #设置用户到组
    3、# vi /etc/libvirt/libvirtd.conf         #取消注释并修改为如下:  
      virt-v2v命令将ESXI 虚机迁移到OpenStack中
    4、增加权限启动配置
      
vi /etc/polkit-1/localauthority/50-local.d/50-org.libvirtd-group-access.pkla

[libvirtd group Management Access]
Identity=unix-group:libvirtd
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
    5、重启服务
      # service libvirtd restart