WSFC2012R2滚动升级至WSFC2016

前面通过2003迁移到2008R2,2008R2迁移到2012R2,为大家介绍了传统群集角色以及虚拟机角色如何进行跨群集的迁移,在迁移过程中大家可以发现不论是2003到2008R2,或是2008R2到2012R2,我们都需要搭建两个群集,不论是单节点也好,多节点也好,最终我们是要群集对群集完成跨群集迁移,通过群集自带的跨群集迁移向导,我们可以通过很少的操作,完成应用的跨群集迁移,实现只有老群集离线,新群集上线时的宕机时间。

在WSFC2016开始,推出了滚动升级的功能,改变了以前的迁移思维,简单来说,我们现在可以在一个群集中就完成零宕机的迁移升级,不需要多个群集做跨群集迁移向导,我们可以直接把节点退出2012R2群集,重装成2016,再加入群集,群集现在实现了一种混合模式,可以允许群集中既有2012R2节点,也有2016节点,针对于虚拟机和SOFS资源,直接可以在群集内从2012R2节点迁移到2016节点上面,针对于虚拟机可以采取实时迁移的方式移动,移动完成后再重做节点,加入群集,最终节点都升级为2016,可以看到,这种方式很好,是一种颠覆性的思维,现在我们就在一个群集中就可以完成群集的升级,而且连离线上线的宕机时间也不需要有,不过可惜只支持Hyper-V和SOFS可以通过这种滚动升级的方式升级,其它群集角色仍需要通过跨群集迁移向导。

本文老王将为大家实作介绍Hyper-V滚动升级,并提出实务操作上需要注意的点

滚动升级中,涉及到第一个新概念,即ClusterFunctionalLevel,简单来说,可以把它理解为一种群集的功能,默认2012R2群集的FunctionalLevel是8,这有点类似于域里面林级别,域级别的概念,级别越高,功能越多,低级别没办法用到高级别的功能,因此,滚动升级的第一个阶段,所有节点都是2012R2,这时候群集FunctionLevel为8,享受8级别下所有群集功能,第二阶段当2016节点加入时,群集处于混合模式,这时FunctionLevel仍然会是8,因为还有节点未升级到2016,所以群集整体没办法完全使用2016群集的新功能,第三阶段,所有群集节点均已升级至2016,可以手动升级群集FunctionLevel为9,完全享受2016群集的新功能。

Technet滚动升级操作流程图

本次滚动升级环境如下

08dc&iscsi

lan:10.0.0.2 255.0.0.0

iscsi:30.0.0.2 255.0.0.0

12R2群集

HV01

MGMET:10.0.0.9 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.9 255.0.0.0

CLUS:18.0.0.9 255.0.0.0

HV02

MGMET:10.0.0.10 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.10 255.0.0.0

CLUS:18.0.0.10 255.0.0.0

这次我们将采用两节点就地升级的方式

当前12R2群集上面跑了三台虚拟机

生产环境开始执行滚动升级之前,建议应针对于群集数据库和群集应用进行备份,然后应检查群集当前是否正在运行群集感知更新CAU角色,如果正在运行,滚动升级过程中应该暂停该角色

使用 Get-CauRun命令查看当前群集是否运行CAU,如果未运行会得到如下警告,是正常的。

如果CAU正在运行,需要使用Stop-CauRun命令暂停它的运行

接下来我们需要进行滚动升级,首先从HV02节点开始,使用维护模式,实时排水出HV02上面所有负载

排水结束,HV02当前被置为暂停模式,所有虚拟机已经被迁移至HV01

确保节点已经排出干净角色后,点击节点,选中暂停模式节点,点击更多操作,选择逐出节点,确保我们干净的从群集中剔除了该节点。

现在HV02已经被剔除群集,我们最好将它直接退出域

关机插入2016映像,不要采用升级安装,而是直接采用干净安装的方式

配置网卡,修改机器名,重新加入域,这里老王还选择相同的机器名,您也可以重新规划16节点的命名

16节点加入域后,安装Hyper-V角色及故障转移群集功能

连接共享存储,确保和12R2节点可以看到同样的存储

配置Hyper-V虚拟交换机,确保和12R2节点一致,因为之后还要进行实时迁移

在16节点上面连接到群集

添加节点至现有12R2群集

当前群集已经处于混合模式运作,可以看到HV02节点系统为2016,HV01节点系统为2012R2

在16节点上面运行Get-Cluster | Select ClusterFunctionalLevel ,可以看到当前为8,即12R2群集的级别

当前我们已经来到了混合模式,在混合模式下运作群集时需要注意以下内容

  1. 混合模式下总是使用16节点去管理操作群集
  2. 混合模式不要运作太长时间,微软建议混合模式最多可维持四个星期
  3. 不要在16节点上面调整存储空间,否则故障转移到12R2节点时可能不兼容
  4. 混合模式下可选择回退,如果发现16节点不兼容现有应用,完全可以重做16节点回去12R2,可无宕机时间直接实时迁移。

截止到目前为止还未出现宕机时间,现在16节点已经加入,我们需要把虚拟机资源从12R2节点在线移动至16节点,这个操作需要在16节点上执行!

接下来按照相同步骤执行其它节点的升级操作

  1. 暂停节点,排出角色
  2. 逐出节点,退域
  3. 干净安装2016系统
  4. 修改计算机名,加入域,配置网络,安装Hyper-V,故障转移群集功能
  5. 配置虚拟交换机
  6. 加入群集
  7. 手动在线移动资源回来,或使用放置策略移动。

HV01也升级完成后,当前群集中是两台2016OS节点

但是此时运行Get-Cluster | Select ClusterFunctionalLevel查看发现群集级别依然是8

为什么呢,按照很多人的理解可能会以为既然群集节点现在都已经到2016了,群集功能级别应该自动会升级到最新的阿,但其实并没有,原因是这个操作,群集让我们自己来决定,更新群集功能级别很简单,但是一旦更新了之后,意味着群集内节点只能有2016,之后再有2012R2节点时没办法再加入到群集的,升级群集功能级别,意味着彻底切割滚动升级过程,意味着群集所有节点都已经升级到2016OS,您确信您的应用都可以很好的在16OS上面工作后,手动升级群集功能级别后,即可享受到完整的2016群集功能,升级群集功能级别是没有后悔药可以吃的,所以做这个决定一定要慎重,下一条命令很简单,但是下完之后群集就彻底切割为2016级别,无法回退,2012R2节点再也无法加入。

#升级群集功能级别

Update-ClusterFunctionalLevel

可以看到已经升级为2016群集功能级别,现在已经可以完全使用2016群集的新功能

如果之前有停用掉群集CAU功能,这时候可以再重新启动起来了

这里我们回过头来思考一下,为什么可以做到一个集群内的滚动升级,关键革新的技术有两个

1.16节点可以加入到现有12R2群集

2.虚拟机可以在线从12R2节点移动至16节点

第一点,老王认为核心的技术是混合模式群集,微软在16群集上面加入了向下兼容的机制,当我们试图把16节点加入到12R2群集时,16节点检测到,这个群集的群集功能级别是8,符合我的最低要求,我可以加入进去,在混合模式状态下,帮助它们逐步完成滚动升级,于是16节点可以加入12R2群集,这在以前跨大版本是不可能加入到群集的,因此老王认为滚动升级第一个要点即实现了混合模式,有这个前提才可以继续往后做。

第二点,虽然我们实现了混合模式,16节点可以加入到12R2群集,这时群集层面的事情,但我们完成滚动升级的关键是,虚拟机是可以直接从2012R2节点实时迁移至2016节点的,这就是Hyper-V层面的功能了,也就是说应用,要完成滚动升级,不光群集层面要支持混合模式,而且应用也要可以向下兼容,才能完成滚动升级,Hyper-V 2016设计为可以兼容2012R2,2012R2Hype-V不论是通过实时迁移,或者虚拟机导入导出的方式,都可以移动虚拟机至2016上面运行,由此大家可以看出,要完成滚动升级,还需要群集应用的配合,目前16只能向下兼容Hyper-V和SOFS角色,maybe日后会允许更多应用滚动升级

Hyper-V 2016里面我们可以手动控制虚拟机的配置级别,默认情况下,如果在之前的版本,虚拟机导入导出到更新的OS,或虚拟机就地升级,虚拟机的配置文件会随之自动更新至新版本,在2016这发生了改变,当我们从2012R2移动过来的虚拟机,或2012R2导入进来的虚拟机,默认情况下,并不会自动升级其虚拟机配置文件版本,即是说,虽然虚拟机在2016上面运行,但是虚拟机的配置级别还是2012R2的

这样有一个好处,即是说,我们又多了一个后悔药可以吃,默认情况下我们当前完成了滚动升级,群集功能级别已经升级至全新2016,2012R2节点不可以加入群集了,但是没关系,只要虚拟机配置级别没有升级,我们还是可以从16群集中,把未升级虚拟机配置级别的虚拟机再实时迁移回单机的Hyper-v2012R2上,这样一旦16群集上面虚拟机跑的不舒服,或者16群集出现问题,我们可以丢弃掉群集,再把虚拟机迁移回12R2单机节点上面运行。

如果我们选择升级虚拟机配置级别,那么首先你需要关机虚拟机,关机之后才能升级它的配置级别,升级之后,虚拟机才可以利用到Hyper-V 2016的完整功能,也会有新的配置文件格式,但是,一旦虚拟机配置被升级到16最新,你就再没有后悔药可吃,虚拟机配置升上去之后,再也不能迁回到12R2,这里一些公司可能虚拟机跑了一些关键应用,迁移新环境需要进行测试,老王建议,升级虚拟机配置这个步骤可以不着急,群集功能升级到最新后,可以观察个3-4周,确保虚拟机在16上面一切可以正常跑,又觉得16Hyper-v上面有自己需要的功能,这时候您可以选择在一个合适的时间点,关机升级虚拟机配置。

首先要关闭虚拟机

#升级虚拟机配置级别

Update-VMVersion -VMName

#检查节点虚拟机配置级别

Get-VM * | Format-Table Name, Version

#升级完成所有虚拟机

#开机所有虚拟机

可以看到,虚拟机的配置文件已经变成了VMCX VMRS格式,而非12R2时的xml

关于16 Hyper-V新功能介绍如下,如果升级至16则可以获得里面所说全部功能,感兴趣的朋友可以看下是否有需要的值得升级上去的功能

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/upgrade-virtual-machine-version-in-hyper-v-on-windows-or-windows-server

滚动升级探险秘籍

  1. 不支持使用share vhdx的Guest群集使用滚动升级
  2. SCVMM 2016可以和WSFC滚动升级功能配合,在VMM console触发执行滚动升级操作
  3. 滚动升级支持多台同时进行,例如你可以多个人一起重装群集节点,但只要规划好有足够的可用节点
  4. 16节点一定执行干净安装,不要执行升级安装!
  5. 混合模式下always使用16节点管理操作群集!

至此WSFC迁移篇结束,WSFC2016新功能介绍篇开始,老王计划从三个角度部署迁移,维护管理,排错优化分别讲起,希望不论是对于滚动升级不了解,或了解的朋友,看过老王这篇文章后都能带来新的思考和收获。

时间: 2024-10-05 22:46:47

WSFC2012R2滚动升级至WSFC2016的相关文章

微软WSFC全方位解析

Windows Server Failover Clustering是微软重要的Windows Server功能,它为微软众多企业级平台提供底层高可用机制,掌握WSFC的概念原理,功能使用,故障排错将对管理员运维有很大帮助,本系列文章将从WSFC的概念介绍,功能使用,故障排错,性能优化,WSFC 2016新功能解析等多个层面来为大家介绍WSFC,一层层揭开它的神秘面纱,让更多朋友知道它,使用它 WSFC概念与管理操作知识补遗21篇: 浅谈群集与分布式基础知识 http://blog.51cto.

微软虚拟化跨版本迁移

之前老王曾经在WSFC2008R2跨群集迁移WSFC2012R2一文中提到过虚拟化迁移,但是由于不是专门写虚拟化迁移的文章,所以写的不是很详尽,本文我们将详细讨论微软虚拟化的跨版本迁移 微软Hyper-V于2008发布,经历过2008,2008R2,2012,2012R2,2016等五个版本,其中目前国内使用最多的是2008R2,2012R2两个版本,可能大多数用户使用2008R2 Hyper-V用作过尝试测试,或者觉得2008R2 Hyper-V的性能不能满足需求,2012R2 Hyper-V

WSFC2008R2跨群集迁移WSFC2012R2

Ok~继续演进,在本篇中老王将为大家介绍WSFC从2008R2到2012R2的迁移,本篇老王将介绍两种群集组的迁移,分别是DHCP从WSFC2008R2迁移到WSFC2012R2,以及虚拟机的跨群集CSV迁移. 环境如下 2008R2群集 node1 MGMET:10.0.0.3 255.0.0.0 DNS 10.0.0.2 ISCSI:30.0.0.3 255.0.0.0 CLUS:18.0.0.3 255.0.0.0 node2 MGMET:10.0.0.4 255.0.0.0 DNS 10

一篇文章学会docker

一篇文章学会docker docker安装 docker在线安装 1.更新yum到最新 yum update 2.卸载旧版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 3.安装需要的软件

WSFC2016 跨站点运行状况检测

之前在WSFC基础知识奠基篇曾经为大家介绍过微软WSFC故障转移的过程,我们来重温一下 1.按照要求部署配置群集节点,确保群集服务器利用了冗余技术消除了服务器,网络,存储的单一故障点 2.保证群集内所有节点都可以访问到共享存储 3.群集应用将应用数据写入到群集共享存储 4.管理员新增节点1服务器上面功能角色,新增完成后节点1服务器群集数据库记录新增的角色功能以及相关联的信息,稍后会把信息同步至其它节点2,及群集仲裁磁盘 5.群集节点之间按照预定的心跳检测频率进行全网握手检测 6.节点1出现故障服

oracle-基于oracle dataguard滚动升级(oracle10.2.0.1--10.2.0.4--11.2.0.4)

oracle-基于oracle dataguard滚动升级(oracle10g升级到oracle11g)thinking:(主要技术涉及到:1.物理备库转成逻辑备库.2.数据库软件升级从oracle10.2.0.1升级到oracle10.2.0.4升级到oracle11.2.0.4.)     1.首先从搭建物理DG开始,搭建A主机数据库的物理DG B(数据库软件从oracle 10.2.0.1升级到10.2.0.4). 2.切换物理DG, 把B主机上的数据库切换为逻辑备库.(物理备库要求主备库

calico 2.6.1 升级至 3.11

说明 查看官方文档升级的操作需要做如下注意事项. 2.6.x 与 3.x 使用的etcd(这里只是针对 etcd 存储来说) 是不同的,2.6 的使用的是 etcdv2, 而3.x 是 etcdv3. 如果想从 2.6.x 升级到 3.x 至少得是2.6.5+的才行. 所以针对现有的情况,需要先升级至 2.6.5+ ,再升级 3.x. 2.6.1 升级至 2.6.12 2019/12/25 现有环境,使用 etcdv2 进行存储的 calico 数据. [[email protected] ku

Android零基础入门第61节:滚动视图ScrollView

原文:Android零基础入门第61节:滚动视图ScrollView 前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见.但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成. 在默认情况下,ScrollView只是

iOSCollectioView滚动到指定section的方法

CollectioView滚动到指定section的方法 项目中的需求:collectionView顶部有一个scrollView组成的标签,点击标签,让collectionView滚动到指定的行,滚动collectionView自动切换到顶部指定的标签 实现方法如下: 1. 保证collectionView全部加载完毕,我这里通过一个bool的标志位来标示 -(void)collectionView:(UICollectionView *)collectionView willDisplayC