P2V概念:
物理到虚拟,即Physical to virtual ,简称P2V。它是指将操作系统、应用程序或者数据从计算机的物理硬盘中迁移到一个虚拟环境中或是磁盘分区中。
P2V典型步骤:
第一步制作镜像:通过镜像制作工具将物理机的系统整体制作成物理机的镜像(镜像制作工具既可以是P2V软件自带的,也可以是第三方软件)。
第二步选择驱动:替换掉镜像中与特定硬件设备相关的驱动程序或者磁盘驱动器,并且保证镜像中新的驱动程序和其它驱动程序在系统初始化时有序启动,以使镜像能够在虚拟环境中运行。
第三部定制配置:用户手动输入必要的参数,例如虚拟机的CPU、内存、MAC地址等,P2V软件根据数据的参数生成能够让镜像被虚拟机监视器所识别的配置文件。
采用的工具:VMware vcenter vconverter standalone是如何进行P2V的
将正在运行的远程物理机和虚拟机作为虚拟机导入到vCenter Server管理的独立ESX/ESXi或ESX/ESXi主机
将由VMware Workstation或Microsoft Hyper-V Server托管的虚拟机导入到vCenter Server管理的ESX/ESXi主机
将第三方备份或磁盘映像导入到vCenterServer管理的ESX/ESXi主机中
将旧版服务器迁移到新硬件,而不重新安装操作系统或应用程序软件等
完整功能见《Converter Standalone 用户指南》
Converter Standalone的组件,只能安装在Windows操作系统上:
Converter Standalone Server —— 启用并执行虚拟机的导入和导出
Converter Standalone agent —— Converter Standalone Server会在Windows物理机上安装代理,从而将这些物理机作为虚拟机导入,完成后可以选择自动删除
Converter Standalone client —— 与Converter服务端配合使用,包括看到的用户界面、创建和管理转换任务等
Vmware vCenter Converter引导CD:是单独的组件,可用于在物理机上执行冷克隆
冷克隆可以创建一致的源计算机的精确副本,而我们更多的是进行热克隆,也就是源服务器在迁移过程中会继续工作,这就可能会出现某些文件不一致,但ConverterStandalone会在热克隆后将目标虚拟机与与主机同步,同步执行过程是将在初始克隆期间更改的块从源复制到目标。
本文记录的过程是,源主机是 SUSE 11.x 物理机,运行华为的智能呼叫中心应用,因此安装有Oracle数据库,对于数据文件和控制文件的一致性和安全性较高,所以建议先把oracle数据库关闭再操作;目标虚拟服务器是 ESXi 5.1,但我使用的Converter是 5.5-en,操作过程类似。下面正式开始
源主机:172.30.31.0/24
ESXi: 172.29.88.0/24,与源主机IP段无法通信
Helper VM: 172.29.41.0/24,与上面两个IP段都通
1. 设置源和目的主机地址
Source System
选择你要转换的源系统,物理机为 Powered-on machine,填写其他登陆信息:
Destination System
填写要在哪个主机上创建虚拟机,也就是ESXi服务器地址:
这两个过程有个简短的拉去主机信息的过程。
2. 选择目标虚拟机和存放位置
Destination Virtual Machine
目标虚拟机名字默认是源hostname,不用选择folder:
Destination Location
选择新虚拟机要放在ESXi的哪个Datastore上,请确保有足够的磁盘空间,不能小于源系统实际使用的大小:
3. 为转换任务设置其它选项
这一步尤为关键,直接关乎后面转换的成败。
Data to copy
设置目标虚拟机的磁盘和分区,我们可以看到自动获取的源分区信息,我这里因为硬盘资源有限,没有遵循默认的 Maintain size,但比Minmun size(在源SUSE下 df -h 看到的used大小)大。
CPU个数和内存大小默认也是与源主机保持一致。
Network
网络设置这一块比较纠结。按理说源主机不需要与目的主机的网卡通信,只需要与Helper VM能互通即可,但我一直卡在这走不过去。源主机有2块网卡在使用,最后在这一步只设置了一块能ping同源主机的网卡,迁移完成后再手动添加剂一块网卡。如下是vmware官方知识库的Note:
In the Conversion wizard, ensure to select the virtualmachine portgroup when configuring the network card. This virtual machineportgroup must be connected to the physical network that is routable via port22 (SSH) in both directions from the source Linux server's configured networkIP address.
The IP address entered must be routable to the IP address of the physical Linuxsource machine. Helper virtual machine IP address should able to ping thephysical machine.
图中看到VM Local是事先在vSphere Server上新建的端口组(portgroup),而且这个虚拟交换机vSwitch没有关联任何物理网卡:
Helper VM network
Helper VM是做转换时的一个临时操作系统,运行在目的主机上,从源主机拷贝数据。如果转化的时windows,则没有这个vm,取而代之的时再源主机上运行一个agent,所以转换windows要求ESXi与源主机能互通,而转换Linux则只需要设定的Helper VM network能与源主机22端口互通即可。
4. 开始转换
可以看到转换的信息汇总,finish则开始迁移转换过程。
测试在ESXi上可以看到会自动创建一台虚拟机并启动。等待转换完成。
5. 问题
转换几次失败都是因为网络设置不当,转换到1%时报错:
Error:event.ObtainHelperVmIpFailedEvent.summary
解决办法就是手动设置HelperVm的IP,并确保能够与源主机通信。如果继续报错,修改目标地址网卡设置,比如去除只剩一个网卡(后续添加),也设置成HelpVm网段。参考 Convert:converter.fault.HelperVmFailedToObtainIpFault 。
转换Windows Server 2003时还有可能会出现
Unabletp locate the required Sysprep files. Please upload them under
c:\documents and settings\all users\application data\vmware\vmware vcenter converter standalone\sysprep\svr2003
on the converter server machine
解决办法是,需要下载WindowsServer2003-KB926028-v2-x86-CHS.exe,在cmd下执行WindowsServer2003-KB926028-v2-x86-CHS–x(不可以用winrar),解压缩出来2个目录加一堆文件,在SP2QFE目录下找到deploy.cab,再将deploy.cab解压缩(winrar即可),得到10个文件,拷贝到所提示的 svr2003 目录。参考 Sysprep文件位置和版本 (2040984)。
6. on windows
加入迁移的是windows主机,上面的操作略有不同,主要区别在于没有HelperVm,而是在需要转换的源主机上安装agent。所以要求ESXi与源主机必须能够直接通信才可以迁移。
VMware官方文档:
https://www.vmware.com/pdf/convsa_61_guide.pdf
需要注意的问题:
1.Convert-Agent
用于P2V的Convert软件是一个C/S结构的方式在工作,S端需要使用443、80、9089端口,所以Convert软件不能安装在vCenter上,因为vCenter本身已需要用到443端口。C端只需要安装Agent软件,由于在运行是S端会先去检测C端是否有代理,并进行安装,所以C端的ADMIN$文件夹必须共享,否则因为无法向C端安装Agent而报错,可以使用Net share ADMIN$命令开放该文件共享
既然需要该共享文件只是为了安装Agent,可以在S端Convert软件安装目录下找到Agent并手动安装到C端,在运行该软件时就不会要求C端的ADMIN$文件夹必须共享。
2.Convert所需端口
转换已打开电源的Windows操作系统(P2V)
|
源 |
目标 |
TCP端口 |
UDP端口 |
注释 |
|
Converter服务器 |
源计算机 |
445、139、9089或9090 |
137、138 |
如果源计算机使用NetBIOS,则不需要端口445。如果不使用NetBIOS,则不需要端口137、138和139。如果不确定,应确保所有端口均未被阻止。 端口9089用于Converter Standalone版本,端口9090用于Converter插件。 注意:除非已在源计算机上安装了Converter服务器,否则用于对源计算机进行身份验证的帐户必须具有密码,源计算机必须启用了网络文件共享,并且不能使用简单文件共享。 |
|
Converter服务器 |
VirtualCenter |
443 |
|
仅当转换目标为VirtualCenter时需要。 |
|
Converter客户端 |
Converter服务器 |
443 |
|
仅当执行自定义安装并且Converter服务器和客户端这两部分位于不同的计算机时才需要。 |
|
源计算机 |
ESX/ESXi |
443、902 |
|
如果转换目标是vCenter Server,则从源向ESX/ESXi主机转换时仅需要使用端口902。 |
转换已打开电源的Linux操作系统(P2V)
注意:上述端口均属于默认端口。如果在安装vCenter Server时使用自定义端口,将需要更改这些端口以符合您的环境。
|
源 |
目标 |
TCP端口 |
注释 |
|
Converter服务器 |
源计算机 |
22 |
Converter服务器必须能够与源计算机建立SSH连接。 |
|
Converter客户端 |
Converter服务器 |
443 |
仅当执行自定义安装并且Converter服务器和客户端这两部分位于不同的计算机时才需要。 |
|
Converter服务器 |
VirtualCenter |
443 |
仅当转换目标为VirtualCenter时需要。 |
|
Converter服务器 |
ESX/ESXi |
443、902、903 |
如果转换目标是vCenter Server,则从源向ESX/ESXi主机转换时仅需要使用端口902。 |
|
Converter服务器 |
助手虚拟机 |
443 |
|
|
助手虚拟机 |
源计算机 |
22 |
助手虚拟机必须能够与源计算机建立SSH连接。默认情况下,助手虚拟机获取DHCP为其分配的IP地址。如果为目标虚拟机选择的网络上没有可用的DHCP服务器,则必须手动为其分配IP地址。 |
转换现有虚拟机(V2V)
注意:上述端口均属于默认端口。如果在安装vCenter Server时使用自定义端口,将需要更改这些端口以符合您的环境。
|
源 |
目标 |
TCP端口 |
UDP端口 |
注释 |
|
Converter服务器 |
文件共享路径 |
445、139 |
137、138 |
仅独立虚拟机源或目标需要。 如果托管源或目标路径的计算机使用NetBIOS,则不需要使用端口445。如果不使用NetBIOS,则不需要端口137、138和139。如果不确定,应确保所有端口均未被阻止。 |
|
Converter客户端 |
Converter服务器 |
443 |
|
仅当执行自定义安装并且Converter服务器和客户端这两部分位于不同的计算机时才需要。 |
|
Converter服务器 |
VirtualCenter |
443 |
|
仅当目标为VirtualCenter时需要。 |
|
Converter服务器 |
ESX/ESXi |
443、902 |
|
如果转换目标是vCenter Server,则从源向ESX/ESXi主机转换时仅需要使用端口902。 |
