从这篇开始,老王将为大家带来关于跨群集迁移的几篇文章,之前在国内很少看到有人提到关于跨群集迁移的一些东西,其实微软的群集是支持跨群集迁移的,那么跨群集迁移究竟是怎么回事,迁移的到底是那些内容呢,我们这就慢慢来看


   在2008时×××始,当我们右键点击群集名称,更多操作,可以看到迁移服务和应用程序,点击之后会弹出这样一个迁移群集向导,实质上这是个跨群集迁移向导,旨在帮助我们从2003群集或2008群集,迁移至2008R2群集。

MSCS2003跨群集迁移至WSFC2008R2_第1张图片

那么迁移向导,迁移的是什么呢,我们谈跨群集迁移究竟迁移的是什么,在2008R2时代中,针对于跨群集迁移,主要指的是迁移低版本群集应用程序,和应用群集配置,举个例子,例如当前有个文件服务器群集在2003群集运行,对外名称叫Fileserver,我们迁移的是文件服务器这个群集组,不仅仅可以让文件服务器在2003群集内部节点间迁移,还可以将文件服务器群集组直接迁移到2008R2的群集上,迁移完成之后,还是同样的对外访问名称,但应该承载文件服务器群集的角色是2008R2节点。


这里的关键是当我们运行跨群集迁移向导时,实际上迁移的是群集应用的配置,原来2003群集有这个角色,这个角色有一些配置,我们做的只是让2008R2群集上面也有这个角色,同时保留相关配置,但是文件服务器的内容,跨群集迁移向导不会去帮我们拷贝文件服务器内容,文件服务器内容需要我们事先自行拷贝完成,群集迁移向导只负责帮我们跨群集迁移群集角色和群集角色配置,帮助我们完成角色到磁盘的映射,仅此而已。


有朋友可能会说,那什么情况下会用到这种跨群集迁移呢,老王认为有以下几种场景


  1. 原旧群集上面承载的群集角色一直被使用,名称不希望被改变,希望尽可能的减少操作和宕机时间,因此可以通过运行群集迁移向导,直接把群集角色迁移,还保留原来的访问名称

  2. 针对于群集角色旧群集上面有很多,而且每个角色都做了很多个性化的设置,不想要重新搭建,重新设置,可以选择迁移的方式,直接迁移群集角色至新群集。


跨群集迁移通常有以下两种迁移形态


  1. 多对多跨群集迁移:直接2003一套群集不动,2008R2一套群集不动,就在两个群集之间跨群集迁移角色

  2. 双节点就地迁移:硬件只有两台服务器,当前是做了一套双节点 2003群集,迁移时,需要把另外一个节点退出群集,重新做系统,再建立群集,实现两边分别1节点2003群集,1节点2008R2群集,在这样两个单节点群集间迁移角色


如果您使用的是这种双节点就地迁移的场景,那么有一点需要注意,在将其中一个节点重做成2008R2群集时,老王建议,首先针对于这个节点正常退出2003群集,之后最好重做成2008R2的时候采用重新干净安装的方式,以防止有群集配置干扰。


本文中老王将采取多对多跨群集迁移的方式,实际建立两套多节点的群集起来。


除了迁移形态,还有区分两种不同的迁移存储形态

  1. 新群集使用旧存储

  2. 新群集使用新存储

关于这两种迁移存储形态老王都会进行讲解,首先我们先来看新群集使用旧存储的场景


场景介绍


2003Cluster

03node1:lan 10.0.0.7 255.0.0.0 dns 10.0.0.2 heart:18.0.0.101 

03node2:lan 10.0.0.8 255.0.0.0 dns 10.0.0.2 heart:18.0.0.102 

群集IP:10.0.0.60 群集名称:fscluster 群集组名称:fileserver 

群集网络:lan网络 heart网络


08dc&iscsi:lan:10.0.0.2 255.0.0.0 dns 127.0.0.1


2008Cluster

08node1:lan 10.0.0.3 255.0.0.0 dns 10.0.0.2 heart:18.0.0.1

08node2:lan 10.0.0.4 255.0.0.0 dns 10.0.0.2 heart:18.0.0.2

群集IP:10.0.0.99 群集名称:devtest 群集网络:lan网络 heart网络


实施上我们切割迁移节点如下


  1. 文件服务器群集在2003运行,对外访问名称fileserver,当前存储分配给2003两个节点

  2. 存储分配给2008R2节点,2008R2可以看到存储

  3. 2008R2建立群集,但是不添加存储至群集

  4. 2008R2运行跨群集迁移向导

  5. Fileserver角色被迁移至2008R2 但不会联机

  6. 脱机2003上面FileServer资源组

  7. 联机2008R2上面FileServer文件服务器角色

  8. Fileserver继续对外提供服务,但是由2008R2服务器提供


打开2003群集可以看到,当前运作一个FileServer的群集组,提供doc,txt,software三个共享,有两个磁盘,data1,data2,所有共享都承载于data1磁盘上。

MSCS2003跨群集迁移至WSFC2008R2_第2张图片

访问\\Fileserver群集网络名称可以看到下面三个共享

MSCS2003跨群集迁移至WSFC2008R2_第3张图片

分配存储,让2008R2群集节点也可以看见

打开2008R2磁盘管理器重新扫描可以看到分配给它的两块磁盘

注意,这里有一个关键的点在于,存储一定不要急于分配给新的群集联机上线,这个时候,一定要确保,虽然存储对新群集节点可见,但是不可以被添加到新群集存储中,否则会干扰到旧群集的运作,就保持这样,确保新群集能够看到存储即可,存储在同一时间只应被添加到一个群集中联机上线。


2008R2当前已经创建devtest群集,群集存储和群集角色为空

在2008R2群集上执行跨群集迁移向导

MSCS2003跨群集迁移至WSFC2008R2_第4张图片

输入同一个域内的,当前2008R2群集节点可以访问到的2003群集名称,勾选忽略已关闭群集节点驱动号验证

点击下一步之后,迁移向导会根据规则,评估旧群集上面有哪些群集组是可以被迁移到2008R2群集

点击查看报告可以看到详细的评估过程,迁移向导会根据不同的群集组给出报告,如果是一些特殊的群集组,迁移之后还需要执行一些手动配置的,也会给出说明。

MSCS2003跨群集迁移至WSFC2008R2_第5张图片

输入2003群集服务账户及密码(CNO前身),确认无误后点击下一步

开始跨群集迁移,here we go!

MSCS2003跨群集迁移至WSFC2008R2_第6张图片

正在迁移群集组,跑进度条

完成后会给出摘要,点击查看报告可以看到详细的报告

点击完成后,可以看到群集现在有了应用,有了磁盘,但都是脱机的状态

接下来就是最重要的切换部分,首先我们需要将2003上面的群集组整体脱机,注意现在开始是宕机时间,需要规划这部分执行的时间

2008R2群集节点联机上线存储,可以看到磁盘管理器中,向导已经自动帮助我们完成了存储在2008R2上面的联机

接下来我们需要在群集管理器里面联机群集磁盘,可以看到,联机之后,已经自动映射为M和N盘,这就是迁移向导的神奇之处,可以把旧群集的配置也带过来,自动帮助我们完成群集存储的映射!

MSCS2003跨群集迁移至WSFC2008R2_第7张图片

接下来联机文件服务器资源,可以看到依然保留是相同的网络名称和资源IP地址

这时候可以看到2008R2群集上面已经可以看见2003上面的群集磁盘,以及群集磁盘里面文件服务器的内容


点击访问\\fileserver,发现还是可以访问的,在2003我们用这个名称,到2008R2还是这种访问名称,对于用户来说并不需要记录新的访问路径

MSCS2003跨群集迁移至WSFC2008R2_第8张图片

对于一些用户来说,可能到这里就已经够了,我们通过跨群集迁移向导,交换了群集磁盘和群集角色到新群集上,角色和磁盘完成了映射,路径名称也可以访问,只需要重新再把文件夹共享一下就可以了


这里老王经过多次测试,得到的结果是如果我们按照默认的跨群集迁移向导迁移应用,迁移过来之后文件共享设置会消失,对于文件共享没有很多权限设置的公司来说,也许重新共享一下是可以接受的,但是对于一些企业内部有很多权限设置的文件共享群集,可能这是不可以被接受的,经过老王的研究,目前我发现了一种可行的办法


让我们回到时间节点1,当前fileserver群集组还在2003上面运行着,访问\\fileserver是2003节点提供服务

这时候您可以额外插入一块盘,进来作为一块临时备份磁盘,或者找一块系统里面的其它磁盘,使用手动拷贝,或命令拷贝的方式,把权限重要的,需要被迁移的文件夹拷贝到备份磁盘,这里老王使用xcopy命令拷贝至C盘一份

手动将拷贝过来的文件夹共享,权限保持默认,这里大家注意,由于我们系统里面当前已经有相同的共享名,运作在群集上,叫doc,所以我们这里的备份共享就不能叫一样的名字,我把每个备份共享的名字都加上了一个a

这时候我们就需要利用到一个工具,permcopy,可以在2003 resource kit中获得,工具主要用于拷贝共享权限设置

我们使用permcopy命令,手动把群集上面的共享权限设置,拷贝一份映射到群集单个节点上面备份的共享权限设置,现在打开C盘上面创建好的备份共享,可以看到权限已经过来

这时再次运行群集迁移向导,迁移Fileserver群集组,迁移完成后2008R2这边默认脱机

离线2003群集组

MSCS2003跨群集迁移至WSFC2008R2_第9张图片

上线2008R2群集角色

访问\\fileserver现在是2008R2群集提供服务

MSCS2003跨群集迁移至WSFC2008R2_第10张图片

但是可以看到,共享并没有被迁移过来,我们手动把各个文件夹共享,权限先保持默认

MSCS2003跨群集迁移至WSFC2008R2_第11张图片

虽然这时2003群集组已经离线,没办法访问,但是由于我们有过备份共享,因此我们还是可以利用节点IP的访问,访问到2003上面的备份共享 \\10.0.0.7

MSCS2003跨群集迁移至WSFC2008R2_第12张图片

再在2008R2上面利用permcopy把备份共享权限映射过来

现在可以看到,不仅文件服务器的内容被从2003群集,跨群集迁移到了2008R2,文件权限也已经都迁移了过来

当前文件服务器群集角色运作在node1 ,我们手动把角色移动至node2,发现共享权限也同样被应用

MSCS2003跨群集迁移至WSFC2008R2_第13张图片

由此大家可以看到,我们通过一个简单向导的方式,就把文件服务器角色从2003群集挪到了2008R2群集,整个过程还算平滑,宕机时间仅发生在资源交换时,2003文件服务器群集组离线,2008R2文件服务器角色上线,因此老王认为对于已有的文件服务器群集迁移,可以通过跨群集迁移向导的方式做,帮助我们自动完成了群集角色到磁盘的映射,以及配置的迁移,可以防止人员手动操作出现失误,对于不需要迁移共享权限的人来说,这种交换群集组的方式简直太方便,交换过来之后手动共享一下即可。


如果涉及到共享配置权限也需要迁移,那么可能需要额外再做一些操作,老王这里经过测试发现这种备份共享的方式最为稳妥,但是实务上,企业里面通常文件服务器很大,迁移时都做这种备份共享有时也不太现实,老王建议实务上如果您用老王这种方法,只针对于权限设置较为关键,繁多的共享文件夹做备份共享操作即可,其它普通共享,例如软件,视频之类,直接迁移过去手动共享,针对于关键权限,则迁移过去后再从备份共享permcopy映射。


接下来我们再来看另外一种迁移存储形态,新群集使用新存储,旧群集使用旧存储的情况


迁移节点切割如下


  1. 文件服务器群集在2003运行,对外名称fileserver,当前存储分配给2003两个节点

  2. 新建2008R2群集,存储服务器再分配一套新存储只对2008R2群集可见

  3. 2008R2联机新存储,分配盘符,添加至群集存储

  4. 手动拷贝共享文件夹至新存储

  5. 执行跨群集迁移向导,映射旧群集配置至新群集磁盘

  6. 脱机20003群集组

  7. 联机上线2008R2群集组


打开ISCSI目标服务器,确认2003存储仅分配给2003群集节点,2008存储只分配给2008R2群集节点

MSCS2003跨群集迁移至WSFC2008R2_第14张图片

在2008R2节点重新扫描磁盘后可以看到分配给它的盘

初始化群集磁盘,随机分配个盘符即可,反正也会被旧群集的配置改掉

MSCS2003跨群集迁移至WSFC2008R2_第15张图片

添加新磁盘至2008R2群集存储

上面曾经提到过跨群集迁移向导主要帮我们完成群集组的迁移映射至新群集,但是跨群集迁移向导在针对2003迁移至2008R2时,并不涉及具体的内容迁移,例如,如果我们要执行跨群集的文件服务器迁移,两边又都是用的各自存储,这时候就需要我们实现自行手动将旧群集文件服务器内容复制至新群集存储中

这里老王依旧是使用命令进行复制

MSCS2003跨群集迁移至WSFC2008R2_第16张图片

复制完成后可以看到文件内容已经出现在新群集新存储中

运行跨群集迁移向导,指定2003群集名称

选择要迁移的群集组

输入群集服务账户密码

重点来了,在两个群集都用旧存储的迁移形态中,我们是看不到这步的,当新群集有了新存储后可以看到这一步,存储映射,我们可以手动选择,要把旧存储的那块群集磁盘配置,映射到新群集的那块磁盘

旧群集data1存储映射至新群集磁盘1

data2映射至群集磁盘2

确认群集映射结果

开始执行迁移资源组进度条

前完成后会给出摘要报告,指示迁移结果,及后续应该执行的操作,如果希望进一步查看细致信息,可查看报告。

脱机2003群集组,宕机时间开始

MSCS2003跨群集迁移至WSFC2008R2_第17张图片

联机2008R2文件服务器角色

可以看到,不论我们之前指定什么盘符,执行跨群集迁移向导之后都会被覆盖为旧群集的盘符

访问\\fileserver发现已经可以访问,此时是由2008R2群集提供,但是共享设置并没有被迁移过来,默认需要管理员手动重新共享

查阅微软相关文章,曾发现微软特意指出,新群集中,新存储的盘符和标签,不可以和旧群集一致,老王实际测试没发现这个问题,不论是我在新群集中磁盘用MN盘符,或是PV盘符,迁移结果都是一致的,会被旧群集的磁盘设置完全盖过,迁移完成后可自行修改新群集上的群集磁盘盘符。


大家可以看出,文件服务器的跨群集迁移,不论是使用旧存储,还是使用新存储,结果都是一样的,共享设置不会被迁移至新群集中,如果是对于权限不在乎的可以迁移过来之后重新共享一下就好了,但如果很多权限设置的就痛苦了


起初老王曾经想过一些比较简单的办法,既然共享权限的设置存在注册表,那我直接旧群集节点导出注册表,新群集上面导入不就好了,但是老王发现,在2008R2上面文件服务器群集中的共享,根本在注册表里面就看不到任何记录,我尝试把导出的共享设置注册表分别导入2008R2所有节点,发现依然权限没有过来,因此共享设置注册表导入这条最简单的路走不通了


还剩下WSMT和FSMT,但是考虑到需要额外安装工具,因此也弃了,最终想到了备份共享这种方式,虽然有点麻烦,但是屡试不爽,一定可以保证权限顺利过来


使用备份共享大概有这样几条路


  1. 没迁移之前,2003端插入备份磁盘或备份到其它磁盘,手动拷贝文件过去,起一个别的共享名,然后permcopy共享权限过去,新群集迁移好了之后再permcopy共享权限回来,2003一直保留至共享权限迁移完成

  2. 没迁移之前,直接2003端复制文件内容至2008R2节点本机磁盘,2008R2共享文件夹,共享名不能和真实的一样,权限先默认,然后permcopy拷贝权限到本机磁盘,2008R2建立群集,执行迁移向导,完成磁盘映射,再拷贝内容至群集磁盘,这时2003群集已经可以彻底离线,2008R2群集完成映射后手动共享文件,权限默认,然后2008R2群集再用permcopy把本机磁盘备份共享权限 copy至正式群集磁盘中


两者区别在于,2003群集的下线时间,如果备份在2003一端,那么可能迁移完成最终还需要从2003端拷贝一次权限,2003群集至少需要运作到这个时候,如果第二种,虽然要两次permcopy,但是2003群集在完成群集迁移向导后就可以被下线,具体还是取决于您的资源情况和需求,老王个人觉得,2003留一会也没什么,至少一旦2008R2端配置出错出失败了,那我至少在2003端还有一套备份的文件共享,实务运作的时候,完全可以直接在2003节点上插入个备份磁盘来做这件事,即便完成了权限迁移后,但是我这个备份磁盘也一直保留着一个备份。


还有一种思路,不过这种思路是特定于在新群集新存储对旧群集旧存储这种场景


时间节点回到完成群集迁移向导后,当前群集角色在2008R2上面联机上线,文件共享我们都是手动启动,权限保持默认,并没有迁移过来

2003群集组当前已经被离线

MSCS2003跨群集迁移至WSFC2008R2_第18张图片

这时候,由于我们有两套群集,两套存储,我们就可以这样来玩,我们修改旧群集的IP和网络名称,然后重新将旧群集联机上线!

修改完成后重新联机上线2003群集,哈哈,老家伙又活了,我们又可以临时访问到它了,但这时候用户是不知道这个地址的,它们从始到终只知道\\fileserver这个路径,这时它们应该访问\\fileserver应该到2008R群集的节点上

MSCS2003跨群集迁移至WSFC2008R2_第19张图片

这时候有了这个临时路径,我们就可以做事情啦,permcopy搞起来!

MSCS2003跨群集迁移至WSFC2008R2_第20张图片

权限已经都过来了

这时 2003老群集就可以光荣退休了,可以让它保持现状或者离线,观察后辈2008R2的运作情况,一旦迁移后2008R2出现问题,老群集还可以改个名再上来。


老王为什么说第三种思路,只适用于新群集新存储,老群集老存储这种场景呢,因为如果我们是新旧群集共用一个存储,那么势必我们要找一个时间节点交换存储,一旦存储被交换到了新群集,这时候旧群集是没办法再联机的,因为共享在磁盘里,磁盘已经被新群集交换了,所以说在新群集新存储,老群集老存储的场景里老王说的第三种思路才有意义。


以上,为群集迁移系列的开篇,希望能为大家开个脑洞,带个好头,能够让更多的朋友知道,原来群集还有这样的跨群集迁移功能可以用,在2003迁移至2008R2群集时大家可以看出,跨群集迁移向导,做的只是把旧群集里面的应用资源以及群集组相关的设置迁移至新群集中,但是对于文件服务器的内容,跨群集迁移是不管的,因此我也说跨群集迁移这个向导在2003到2008R2时是个轻向导,它只迁移交换角色和配置到新群集,具体角色的内容和数据还是要自行迁移,在本文中老王以典型的文件服务器迁移为例,并用了一些比较老实的方法迁移了权限,我的思路可能一时有限,应该也会有更多好的办法,这里老王只是抛砖引玉,大家感兴趣可以自行去尝试迁移一些角色进行研究,后续老王还将继续花几篇文章讲解群集迁移系列直到WSFC2016。