系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化,虚拟机的迁移主要包括p2v,v2p,v2v。
迁移性能指标:
- 迁移时间:从源主机到目标主机迁移的时间
- 停机时间:迁移过程中,源主机、目标主机不可用的时间
- 性能影响:源主机上服务运行性能影响程度
下文将详细介绍p2v的技术和流程。
P2V
P2V 指迁移物理服务器上的操作系统及其上的应用软件和数据到VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据“镜像”到VMM提供的虚拟机中,并且在虚拟机中“替换”物理服务器的存储硬件与网卡驱动程序。只要在虚拟服务器中安装好相应的驱动程序并且设置与原来服务器相同的地址(如TCP/IP 地址等),在重启虚拟机服务器后,虚拟服务器即可以替代物理服务器进行工作。
P2V即物理机转虚拟机,要求将物理机原封不动的转化成虚拟机,保持文件系统、数据文件完整。
适用的场景:
- 提高资源利用率
- 简化软件环境搭建
- 高可用,高可靠,支持快照备份
迁移方法
### P2V冷迁移
- 关闭原有的物理机上的服务和操作系统,并且从其他介质上启动新系统。
- 把物理机系统的磁盘做成虚拟机镜像文件,并且拷贝镜像到虚拟机上
- 为虚拟机创建虚拟设备,加载镜像文件
- 启动虚拟机,调整系统设置,开启服务
另外可以利用专业工具辅助P2V的迁移,把某些手动环节进行自动化。比如将物理机的磁盘数据转换成虚拟机格式,这一向是相当耗时的工作,你可以选择专业的工具来完成这个步骤。这里有大量的工具可以使用,如RedHat的开源工具virt-p2v,Microsoft Virtual Server Migration Toolkit等。
P2V热迁移
为了避免迁移中物理机关机,影响业务运行,像VMware vCenter Converter和Microsoft disk2vhd提供了热迁移功能。热迁移还需要考虑网络带宽问题。
方案对比
| 冷迁移 | 热迁移 | |
|---|---|---|
| 优点 | 一致副本、速度快,无需安装代理、非侵入式 | 不影响原有业务系统运行,无需加载驱动 |
| 缺点 | 原有业务系统停机,需将驱动导入原有系统中 | 有一定几率不成功,对网络和带宽依赖大 |
| 适用场景 | 可关机迁移 | 不允许关机、普遍适用 |
| 不适用场景 | 无法到设备现场、引导盘无法识别硬盘或网卡 | 双系统或多系统、源系统配置混乱 |
另对于微软集群 (MSCS)、Oracle RAC集群、以及 微软域控服务器等环境无法使用工具进行迁移。
主流免费迁移工具
| 工具 | 虚拟机环境 |
|---|---|
| VMware vCenter Converter | VMware |
| disk2vhd | hyper-v |
| Virtual Machine Manager | hyper-v |
| Virt-p2v | KVM |
各个工具都只支持自家的虚拟机产品,另Virt-p2v不支持热迁移。
迁移流程
迁移调研
调研原业务系统计算、存储、网络资源等现状,业务系统的部署机构和访问关系,进行网络拓扑结构梳理,并收集其他迁移需求。另还需保证源服务器是否正常,部署的所有业务系统是否正常运行,这里是为了避免迁移后业务系统无法运行等扯皮问题。

迁移方案制定
梳理好所有源物理机和业务系统后,根据实际情况制定需采用的技术、方式,上文已经详述迁移技术的优缺点和适用场景。最后必须包括回退方案
制定迁移方案需要注意以下事项:
- 软件许可序列号,迁移后软件可能存在无法激活问题,需重新注册
- OEM系统与和硬件绑定的厂商软件
- 微软集群、oracle rac、微软域控,无法进行热迁移
- U盾、加密狗等外设,不建议迁移;或改变认证方式和电子化
- 有大于2T的卷不能使用工具迁移,只能重新安装部署
- 微软集群 (MSCS)、Oracle RAC集群、以及微软域控服务器等环境无法使用工具进行迁移
迁移技术选择顺序: 热迁移 > 冷迁移 > 重新安装部署
迁移准备
热迁移准备:
- 网络可达,带宽最好是千兆
- 源物理机系统盘有剩余空间安装迁移工具
- 关闭数据库和对外服务,如IIS、ftp、邮件服务等
- 关闭服务器防火墙
冷迁移准备:
- 网络可达
- 将源服务器的RAID驱动和网卡驱动打包到引导盘中
迁移实施
实施流程大概分为:迁移实施、迁移验证、系统网络割接、业务系统验证。若迁移失败应更改迁移方式。
另采用热迁移方式需注意:
- 迁移后虚机默认处于关闭状态
- 虚机自动生成新网卡替换物理机网卡,并启用DHCP避免地址冲突
- 手动设置IP
- 更改主机名和SSID,防止冲突
业务系统验证
迁移成功后启动OS,确认OS是否正常、业务系统运行是否正常、应用数据是否正常等。
集群迁移
微软集群迁移
由于集群内服务器之间存在耦合关系,直接进行P2V迁移会导致集群关联策略失效。需要先利用微软Failover方法转移到集群中的一台Server1上,再对另一台Server2进行迁移。Server2迁移完成后,将集群Failover到Server2上,再对Server1进行迁移。若是多台server集群,按同样方法顺序迁移。迁移完成后,重新配置集群关系,并将集群的共享存储一RDM模式连接到虚拟机。
Oracle RAC 迁移
因Oracle RAC集群在迁移后无法保持集群关系,建议在虚拟化主机上搭建相同配置的Oracle RAC集群,再使用Oracle本身的数据导入、导出工具或第三方工具进行数据的迁移。
微软域控迁移
微软域控对硬件变化非常敏感,如果直接进行热迁移,可能会造成域控角色的失效,需要采用冷迁移方式。如果有多台域控服务器,可以将所有FSMO角色移动到一台域控服务器上,将 其他域控服务器关机进行冷迁移,完成后将FSMO角色移动到一台虚拟机域控服务器上,迁移剩余的那台物理机。