以前老王曾经在WSFC2008R2跨群集迁移WSFC2012R2一文中提到过虚拟化迁移,可是因为不是专门写虚拟化迁移的文章,因此写的不是很详尽,本文咱们将详细讨论微软虚拟化的跨版本迁移web
微软Hyper-V于2008发布,经历过2008,2008R2,2012,2012R2,2016等五个版本,其中目前国内使用最多的是2008R2,2012R2两个版本,可能大多数用户使用2008R2 Hyper-V用做过尝试测试,或者以为2008R2 Hyper-V的性能不能知足需求,2012R2 Hyper-V能够说是一个真正能够在企业里面部署的企业级虚拟化产品,能够提供并不逊色于其它虚拟化厂商的性能,最主要的是该有的企业级功能都已经具有,所以随着企业了解,我相信会有愈来愈多的企业采用2012R2 hyper-v虚拟化,在采用过程当中避免不了要面临迁移的问题,可能公司已经在先有2008R2上面部署了一些虚拟机,如何迁移到新的平台,有哪些方法能够选择,怎么迁移停机时间最少,这就是咱们今天须要讨论的话题服务器
2008R2到2012R2迁移的最大一个问题就是2012R2 hyper-v不能向下兼容 2008R2 hyper-v,便是说,2008R2并不能直接把虚拟机以实时迁移的方式迁移到2012R2,因此,若是2008R2是单机状况下,迁移时须要关闭虚拟机,进行迁移,2008R2单机迁移到2012R2单机,或迁移到2012R2群集,方法大致有如下几种网络
直接拷贝2008R2虚拟机VHD,到2012R2上面基于VHD新建虚拟机:这个方法的好处是,若是在网络带宽足够大的状况下,你能够很快的把VHD文件拷贝到2012R2服务器,而后新建,开机,一系列过程下来,对于技术要求并不会很高,没有什么操做风险,你只须要选择一个合适的时间点,关机虚拟机拷贝文件便可,这种方式的宕机时间是从关闭虚拟机+拷贝VHD到2012R2+建立开机虚拟机,直到最终建立完成虚拟机,才能够从新对外提供服务,这种方法的弊端,不适合网络带宽不足的企业环境,若是带宽不足,拷贝文件的时间会很长,将延长宕机时间,其二,只适合简单的虚拟机,便是说对于虚拟机并无过多的设置,例如设置多个网卡,每一个网卡设置了不一样的参数功能,咱们若是只是拷贝VHD,这些虚拟机设置是不会带过去的,你须要手动记下来,而后新建虚拟机的时候按照记录进行调整,不支持avhd,即不支持差别磁盘和快照,只支持vhd文件架构
此场景咱们假定2008R2和2012R2使用不一样存储,若是是使用相同存储的状况下,能够将现有2008R2存储添加一个目标给2012R2,而后直接把全部2008R2上面虚拟机的设置记录,移除2008R2存储目标,关闭2008R2虚拟机,在2012R2上面基于设置新建虚拟机,宕机时间是存储目标从2008R2移除+虚拟机关闭+虚拟机建立开机ide
2.虚拟机导入,虽然2012R2不能支持2008R2直接实时迁移,可是能够支持2008R2的虚拟机经过导入的方式,添加到2012R2的环境,不一样的是2012R2能够虚拟机实时导出,2008R2只能关机导出,这种虚拟机导入导出的方式,好处就是能够导出虚拟机全部配置+磁盘,导入时会把配置和磁盘一块儿导入,不须要管理员进行额外记录,坏处就是,2008R2时代对于虚拟机导出导入限制太多,例如被导出的虚拟机MAC地址都设置为静态,使用标准网络适配器,不能包括快照等等,并且有时候导出失败须要进行排错,较为麻烦,有时导出时间比直接拷贝VHD的时间要长不少,所以我给你们的建议,若是虚拟机没有太多的设置,单机场景下直接拷贝VHD新建最好,若是虚拟机有不少单独的设置,则能够采用导入导出的方式进行操做性能
3.VMM迁移,VMM2012R2支持添加2008R2,2012,2012R2 Hyper-V,也支持跨版本互相迁移,跨单机群集互相迁移,须要注意Hyper-V 2008R2 虽然能够在VMM被跨版本迁移到2012,2012R2,但实际上背后走的是导入导出,并不是直接迁移,便是说2008R2虚拟机也须要知足导出的需求才能够被VMM迁移,与单独的虚拟机导入导出和直接拷贝VHD对比,最大的一点不一样是,经过VMM的跨版本迁移,当虚拟机被导入到2012或2012R2时,会自动为虚拟机升级集成组件,而咱们采用单独导入导出和直接拷贝VHD都须要过后手动或脚本针对虚拟机升级集成组件。VMM须要单独付费购买。测试
总结来看,微软自家的2008R2单机迁移到2012R2大致分为两种,1.直接拷贝VHD,2.导入导出。两种办法都避免不了宕机时间,虚拟机必须关闭被导出,必须关机拷贝VHD文件。咱们上面讨论的场景,都是直接迁移的场景,若是是替换场景,例如当前1台2008R2宿主机,1台新加2012R2宿主机,但愿虚拟机迁移到新加宿主机后,原有宿主机也能升级利用,在这种替换场景下,建议确认虚拟机已经导入或新建在新宿主机后,直接对原宿主机重装系统,不建议采用升级安装。spa
除了微软自身的方案,另外推荐一个单机对单机的迁移方案,Veeam Backup&Replication,经过它咱们能够添加进来2008R2,2012,2012R2 Hyper-v主机,而后将2008R2的虚拟机复制到2012R2!直接2008R2做为复制主站点,2012R2做为DR站点,veeam是支持这样作的,它处理了复制兼容性的问题,这样作了以后咱们就能够直接经过永久性转移或者计划内转移的方式,将虚拟机从2008R2上面,直接转移到2012R2上面,它最大的好处是和hyper-v整合好,虚拟机转移到2012R2 DR站点后,直接在hyper-v列表能够看见,再也不须要导入虚拟机。经过这种方式咱们能够最低化宕机时间,例如若是采用计划内转移的方式,当前虚拟机实时从2008R2复制到2012R2,当某一秒增量数据从2008R2彻底同步到2012R2,即隔断2008R2,开机上线2012R2虚拟机,宕机时间仅是虚拟机切割的时间+虚拟机2012R2开机上线的时间。将来但愿微软也能够作到这一点,自身支持hyper-v复制跨版本3d
处于可用性的考虑,一些企业也可能选择在2008R2上面部署了WSFC群集架构,基于WSFC再部署Hyper-V群集,以实现虚拟机的高可用,针对于2008R2群集到2012R2群集的迁移,微软自身提供了低宕机时间的解决方案,即复制群集角色,缺点是这种方式对于操做人员的技术有必定的要求。server
因为在2016以前没有滚动升级的技术,所以复制群集角色仅支持跨群集的迁移,便是说您必需要有两个群集才能够完成这件事情
所谓复制群集角色,便是指,把老群集里面的群集角色和磁盘配置复制一份到新群集,复制群集复制仅负责复制配置信息等元数据至新数据,不实际拷贝虚拟机文件,群集数据文件,但会映射复制群集磁盘配置至新群集
2008R2群集虚拟机迁移到2012R2,复制群集角色操做流程以下
确保新旧群集均可链接到存储,但同一时刻,存储只对单个群集可见
存储不添加到新群集 群集磁盘中
运行群集迁移向导,迁移虚拟机配置,CSV配置到新群集
脱机旧群集虚拟机,取消分配给旧群集的磁盘
联机旧群集迁移过来的CSV,这时会自动使用以前同时分配给新旧群集的磁盘
联机虚拟机
切割实例
虚拟机运做在2008R2群集CSV
分配CSV背后可用磁盘目标给2012R2群集节点
2012R2群集节点能够看到磁盘,可是不添加到群集存储
执行跨群集迁移向导迁移虚拟机
脱机08R2虚拟机,存储取消分配给08R2群集节点
12R2群集联机CSV
12R2群集联机虚拟机
由此你们能够看出一个问题,若是咱们在有群集的状况下,那么咱们迁移过程的宕机时间是很短的,虚拟机不须要一直被关机才能执行迁移,咱们能够一直运做虚拟机,宕机时间仅是虚拟机在2008R2群集离线+2012R2群集联机存储+联机虚拟机的时间。
在复制群集角色方案中,还涉及到一个场景,即存储的映射,若是咱们要执行跨群集的复制角色,那么咱们必需要将虚拟机CSV存储那块磁盘,同时映射给08R2和12R2群集,可是切割好时间节点,12R2不添加存储至群集中直到08离线,12R2上线时由于虚拟机迁移过来,会带着CSV属性的,而CSV只认那一块磁盘,若是咱们采用新群集新存储,旧群集旧存储的方式就会发生CSV的丢失,它会没法认到本身使用的那块盘。
在咱们使用跨群集迁移向导时须要注意一点,针对于虚拟机的跨群集迁移向导来讲,本质上迁移向导是按照CSV进行迁移,咱们只能选择一个CSV,而后把下面全部的虚拟机都迁移过去,而不能选择CSV下面特定的单个虚拟机,所以能够看出,经过跨群集迁移向导,适合群集上面跑了不少虚拟机的场景,若是虚拟机很少的话您也能够选择群集间导入导出的的方式,可是老王依然建议走跨群集迁移向导,由于这样宕机时间最短。
经过复制群集角色能够帮助咱们在很低宕机时间的状况下完成虚拟机的跨版本迁移,宕机时间仅发生在切换,可是复制群集角色也有它的不足,即跨群集复制角色,在虚拟机场景下,必须两个群集接入到同一个存储,经过切换间隔来进行处理切割
那么若是两个群集但愿各自拥有自身存储的状况下又该如何处理呢,由于不见得全部场景下你都能把两个站点接入到同一个存储,一个不错的解决方案是“反弹迁移“
反弹迁移解决方案,咱们首先在老数据中心,选择几台宿主机,迁移走负载,重装为2012R2群集,利用复制群集角色,将2008R2群集虚拟机切换至本地2012R2群集,这种解决方案在这一步,要求被重作的两台2012R2宿主机性能足够强,能够承载起同站点2008R2上面全部虚拟机负载,当虚拟机被迁移到老数据中心临时2012R2群集后,再和新数据中心创建链接,利用2012的无共享实时迁移技术,直接把虚拟机+存储从老数据中心不停机实时迁移至新数据中心。
这种解决方案利用了老数据中心作2012R2中转群集的方式来实现跨群集,跨不一样存储的虚拟机迁移,宕机时间是老数据中心2008R2切换到2012R2的关闭虚拟机+联机存储+联机虚拟机的时间 + 无共享实时迁移最后的切换丢包。所以宕机时间几乎不多,关键点在于须要在老数据选择能够承载全部负载的宿主机重装2012R2,其二,2012拥有无共享实时迁移技术,即使两个宿主机链接不一样存储,不在同一个群集,也能够把虚拟机迁移过去。此方案尤其适用跨城,跨地域的多数据中心迁移方案
图中VMM为可选项,只要虚拟机迁移到中转2012R2群集,就能够直接无共享实时迁移到新数据中心2012R2群集
上面咱们讨论了2008R2迁移到2012R2,单机解决方案,群集解决方案,那么2012R2到2016呢,实际上2012R2到2016 比 2008R2到2012R2容易得多,缘由在于2016实现了向下兼容迁移技术,便是说虚拟机能够直接从2012R2实时迁移到2016,可是迁移到2016以后仍采用2012R2版本格式,并不能彻底享受2016最新功能,若是但愿享受2016hyper-v最新功能,须要把迁移过来的虚拟机选择一个时间节点,关机升级虚拟机配置便可。对于群集,2012R2到2016支持滚动升级,即只在一个群集里面就能够完成迁移,虚拟机能够直接从2012节点移动到2016节点。
WSFC2012R2滚动升级至WSFC2016
http://www.javashuo.com/article/p-mlmmmzgp-gu.html
WSFC复制群集角色介绍
http://www.javashuo.com/article/p-qgfkfuyd-bq.html
WSFC2008R2跨群集迁移WSFC2012R2
https://blog.51cto.com/wzde2012/1960273
最终但愿能够经过这篇文章为你们打开新的思路,明白微软虚拟化迁移的多种方法过程,为你们实际迁移过程带来帮助