使用robocopy进行5T文件带权限的迁移

首先申明

            在此次迁移前参考很多网络方案,基本没有现成的,而且在实际中,我发现网络上的介绍和使用方法在关键需求(域环境权限转移)上根本是没有实现的!!!,特别是robocopy的使用,网上很多教程关键的域环境文件权限根本没有完美转移,很多博客还煞有介事的命令贴一堆。这里申明:robocopy的参数我的是经过实践检验!除此之外百度的很多帖子或者论坛基本不完善。。当然我这个也比较繁琐,但在我当前环境下还是比较完善的一套。

            在具体的介绍中我会把我的经过详细的介绍一遍,问题也会写出来,请大家指正!同时这个方案也参考了51CTO论坛上的方法,和CSDN的朋友的方法,表感谢!另外我这里没有万兆虚拟化环境,如果有,不考虑这些。

背景

1.公司有一个旧的文件服务器,使用了4年。今年7月份丢过一次数据,进行数据恢复后,所有数据在一个独立的6T的磁盘内(没有任何冗余和备份措施)。

2.由于公司以前的特殊环境,文件服务器的作用非常大,因为公司OA、erp系统的不完善。所有部门:技术、业务、生产、采购、财务、BOSS所有的全部放在公司文件服务器上,大家工作的时候基本上就是访问共享文件夹里面的EXCEL和其他文件。

3.公司电脑大概400台,文件服务器系统是win server 2008,开共享服务。每天连接的数目超过200多。

环境:

1.网络核心是一个H3C3600三层交换机,有千兆口的网络;准备了一台新的DELL服务器,R330,安装windows server2008 r2系统。1223 4核心CPU,8G内存,raid1:1T做系统;raid1:8T:做新的数据存放,总大小4T。

    有80个左右的共享文件夹,有的共享文件夹大小超过800G(4年),且层次较多,小文件非常多,但是也包含几百兆的大文件。

3.文件服务器是每天都在使用的,数据每天都有变化,且非常重要。特别是生产进度EXCEL,10多个人一起用,一起改。。。,头大。

4.根据域用户对共享文件夹做的权限,如业务部文件夹,就开发了OU业务部还有单独几个领导的读写,其他跟单对它仅仅有读权限,总之也很混乱。历史原因:如某人需要访问权限或读取就直接添加他域名账户进入NTFS权限,没有管控,导致后来越来越乱。

5.仅仅周末2天可以进行切换。

困难:

1.文件非常多,很多小文件如excel、pdf、图片等。也有视频,混杂在一起。

2.切换时间短。公司单休。周六晚放假,周一上班,且周末还有人加班。千兆的网络,拷贝小文件的速度:绝对不会超过20M/s

3.生产有些生产进度表是需要一直查看的,生产一般不停线,需要做好通知工作。某些生产员工的习惯,从不关电脑,用完excel文件也不关。

方案:本文核心

一、方案的确定

考虑.1权限必须带过去,80个共享文件夹(当初分部门建立的),小的几十M,大的800多G且每个里面还有很多层,里面的子文件夹里面有还有特殊的不继承父文件夹权限的存在。如果拷贝再添加,根据上次文件丢失后数据恢复的经验,添加权限都要2天!要知道刷一个800多G的文件夹,加一个用户刷权限都要刷很久。

         2.切换的时间必须在周六晚9:00到周一:7:30分前完成 ,但是实际上,周末也有人上班。上次我们进行数据恢复,总时间是50个小时!,也就是说我这样迁移的死汉奸绝对不可能比这个更快.

         3.权限切换后需要开共享,文件夹很大,开共享需要的刷新时间也很多。

根据上诉需求,考虑了以下工具:1:FSMT    2.XCOPY   3.ROBOCOPY:支持多线程   4.richcopy   5.第三方goodsync和allwaysync. 6.其他号称拷贝速度很快的软件等 6.GHOST

方案测试阶段:

1.fsmt很好的软件,我没有试过,原因:拷贝的时候需要关闭原来服务器共享的修改权限,另外依据51上博主的帖子测试速度和朋友的沟通。5T文件特别带很多小文件根本没有办法实现。所以不能使用。如果我这次转移的文件只有1T,我想我会尝试使用这种方案,但是5T跟1T差距已经是质变了

2.xcopy,拷贝小文件感觉不错,但是速度不怎么样,这点可以考虑他的升级版本robocopy

3.robocopy命令行版本,最后我使用的就是这个

4.richcopy,微软的官方网站上工程师好一顿夸,说是图形化robocopy但是我这里出现2个问题:1.旧的服务器硬盘或者系统缺省有点问题,在旧的服务器上运行不了,在新的服务器上运行,可以但是速度感觉:跟微软官方吹的完全不是一回事,原因可能有两点:1.我的文件阶级成分复杂,层次多。有几十K的,也有几百M的,也有正在使用的FOXMAIL的什么的(没错,有人把foxmail的存档设置在内网共享服务器。。)2.我旧的硬盘有问题,拷贝速度不快。不过原因1可能是主要的,被排除了。速度是硬伤

5.我用goodsync破解版,确实还不错。这软件可以复制对比然后同步,然后可以做计划任务,还可以主动不复制临时文件。确定是我有几十个文件夹,基本上每个文件夹要做个一个任务,有点麻烦。这个方案其实我测试很久,打算就靠这个来。这个软件权限复制要做一个设置的,如果想交流可以留言。缺点:最外层的文件夹权限没有办法带过来!!!简单点说:有一个仓库文件夹,里面有几十个子文件夹,然后,你在新服务器建立一个仓库1,做一个同步任务,然后里面子文件夹的权限和内容都可以完全复制,速度也不错,问题是最外层的ntfs权限是没有的!!!这就要后续手动来加,或者先建立好80个同名文件夹,设置好同旧的一样的权限,然后进行复制,最后切换的那个周末进行同步。虽然很麻烦,但是这的确是我开始打算使用的方案,为什么最后没使用,因为我在复制前,首先统计过每一个文件夹的大小。当时有一个重要的文件夹。统计前我写的是900G。复制开始是一周后。然后复制第二天。我是robocopy同GOODSYNC一起使用的,当天晚上打雷,然后服务器全部关了,开机后,复制完成。我发现900G只有500多G,我不太确定是我一周前记错了数字,还是说数据丢了。。。。因为文件夹的结构我对比了一个多小时,没有问题。第二天让用户看看他们日常使用的,好像也还在。可能丢的是以前的,也可能没有丢。不敢用了,因为他的复制过程需要先同步,对于文件夹结构很复杂的,扫描结构时间很很长,我怕打雷,所以不用了。而且最外层加权限也麻烦。

6.其他主要是考虑权限,没有试。

7.这个有的人说很不错,但是说实话,风险太大,我好久没有用GHOST,而且不能确定在规定时间内完成

总计划: 两部走,因为5T不可能在一天内完成迁移,硬盘速度是瓶颈!

一:进行复制,然后在切换的那个晚上进行同步(开始考虑复制时间一周)

二:最后切换的一周进行最后一次同步,同步只需要复制新文件和改动还有删除旧的文件。所以速度还是很快

中途如:发通告什么的不在说了,大家在工作中要注意。我们当时虽然发了公告,但是还是有人没看到,晚上打电话说有问题。


迁移过程和问题:

阶段一:复制过程

1.列出复制对照excel表格,这个操作建议一定要做好,免得混乱。

1)SERVER-OLD(192.168.0.202),SERVER-NEW(192.168.0.103)的IP地址,服务器名记录列好。晚上操作容易打瞌睡,命令敲错就可以放假了。。

  2)每个需要共享的共享夹名字,文件夹共享后的共享名列好

3)建议列出备份栏和同步栏、共享栏,操作一次打个钩钩。

阶段二:开始复制(所有命令在新服务器上进行)

准备一个txt,把针对几十个文件夹一行一行的敲进去。这一步有点繁琐,但是前面的阶段一excel对照表格做好了,也比较好做。

命令复制个几十行,然后替换就可以。主要是对照要对好,别漏了。

#  XCOPY,我用了XCOPY复制小的共享文件夹,几十M的那种,主要看效果。十几个文件夹吧,最大不会超过200M。当然robocopy也可以实现。

这是命令:  实践检验可直接拿去用! xcopy   /?可以看提示

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
                           [/EXCLUDE:file1[+file2][+file3]...]

XCOPY    //192.168.0.202/仓库    e:\\仓库   /E  /C  /H  /K /0  /X /Y /B  (/J)

详细解释:

//192.168.0.202/仓库  (source) :旧的文件服务器上的共享文件夹的共享名称。这里说明一下,比如过个文件夹共享名称是 TEMP   SHARE,他中间带一个空格,

你需要这样写 " //192.168.0.202/temp share " 

e:\\仓库  (destination)  :新服务器E盘,我准备放文件的那个盘。两块8T做的RAID1

/E: 必备参数:复制目录和子目录,包括空

/C: 可选: 即使有错误,也继续复制,我选了,小文件夹没什么问题

/H:  必选: 复制系统和隐藏。你不是用户,如果他有隐藏,你也不知道。所以干脆全复制

/K :  必备参数:   复制属性

/O: 必备参数 :文件所有权和ACL ,就是权限

/X:    必备参数 : 文件审核权限

/Y :不用提示你输入YES 

/B  : 复制符号链接和连接本身

/J : 可选,如果确认文件里面是大文件就用这个


ROBOCOPY一个老工具了。XCOPY加强版,支持多线程,断点传,支持权限复制,支持层次拷贝(就是你想拷贝3层,多的子文件夹可以不拷贝,或者就想拷贝个外壳)

一下是我复制阶段用的命令(复制阶段,不是同步),robocopy  /?可以查看命令详细解释,有的解释基本不清

 用法 :: ROBOCOPY source destination [file [file]...] [options]

                 源 :: 源目录(驱动器:\路径或\\服务器\共享\路径)。
               目标 :: 目标目录(驱动器:\路径或\\服务器\共享\路径)。
               文件 :: 要复制的文件(名称/通配符: 默认为 "*.*")。



robocopy    //192.168.0.202/5S    e:\\5S    

                  /E    /ZB   /COPYALL     /MT:96  /LOG:1.txt   /R:3   /W:3

特别申明:这一步是核心命令,以上所有参数都建议照搬我的!每个命令我下面有描述

 //192.168.0.202/5S : 即source(源),旧文件服务器中的旧的共享文件夹(共享名)

若名字带空格,全部加“” ,例子: “//192.168.0.202/temp share”

 e:\\5S    :即destination(目标)

(默认是复制所有*.*,这里我不建议玩花样,排除什么临时文件啥子的。)

/E  :    文件夹、子文件夹、空文件夹

/ZB: 这里就是我说的核心,网络上基本上很多教程都没有加这个,主要是针对/B

   /Z:在可重新启动模式下,断点传,复制的时候我建议采用,实际上我发现他会拖慢速度,大家考虑加不加。

   / B:官方的解释如下

                 / Z :: 在可重新启动模式下复制文件。(还可以理解)
                 /B :: 在备份模式下复制文件。(基本无法理解,国内论坛基本没人说得清)
                /ZB :: 使用可重新启动模式;如果拒绝访问,请使用备份模式。

        我查找一些外国论坛,结合我后来同步的测试,这个跟多线程是有关系的!!

最最重要的是: 如果你不加这个/B,带域名的权限根本不像很多网友帖子里面,包括一些博主!域名用户和OU的NTFS权限根本没有转移过来!!这个我测试了N遍,这个/B,是robocopy真正核心的的命令。就算你后面的是 /copyall,没有这个/B,域权限根本过不来,我不知道你们是什么环境,但是很多人在博客或者帖子里面写的是权限完美复制!!!没有这个/B,我一次都没有成功,如果有不加/B,带域权限过去的,强烈建议交流一下,这个问题我不确定是我的旧文件服务器的问题还是什么,网络上方法的我是没成功过。甚至这是我写这篇帖子的原因。

/COPYALL : 复制权限的核心命令

官方解释:/COPY:复制标记:: 要复制的文件内容(默认为 /COPY:DAT)。
                       (复制标记: D=数据,A=属性,T=时间戳)。
                       (S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
               /SEC :: 复制具有安全性的文件(等同于 /COPY:DATS)。
              /COPYALL :: 复制所有文件信息(等同于 /COPY:DATSOU)。
              /NOCOPY :: 不复制任何文件信息(与 /PURGE 一起使用)。

总之复制的时候就是完全复制就好了  /COPYALL

 /MT:96  /LOG:1.txt   : 这个/MT:96,默认好像8线程,最大不超过128,实际经验

    好像没什么鸟用,网上一些网友也发现没甚鸟用!!,用64,96啥的就行。这个命令搭配后面的/LOG:5s.txt(此处建议朋友们,每一个文件夹用一个txt日志名,这个文件日志在哪里?拷贝完有提示,很明显),用处是:它不会在你的命令提示行符里面刷满屏,而是刷到一个txt里面去,这里朋友们不要以为程序卡了,对于大的文件夹,文件扫描目录也会花很多时间。

/R:3   /W:3 : 默认失败重试次数和重试间间隔时间。默认1W次,必须改小,否则哭。

以上基本是ROBOCOPY的复制命令所有的复制过程,我用了2周,没有错,的确是two weeks,对着表一个个来,当然考虑到用户一直用,所以晚上进行。我基本上一个晚上拷贝那么几个。拷贝完成后,看权限,基本没有问题。这个时候内容肯定是有变化的,因为用户在使用。


阶段二:同步阶段

总共5T时间,完成同步的时间是4个小时不到!!!,我计划会很久,结果出乎我意料,晚上9点开始,12点半前我就结束了同步了所有文件,这说明,平时用户使用的文件并不多。但是存档不少。

命令如下:

robocopy    //192.168.0.202/5S    e:\\5S    

                  /E    /B   /COPYALL     /MT:64  /LOG:1.txt   /R:3   /W:3   /MIR

这里改了2个地方: /ZB换成了/B,加快速度。 

                                /MIR,这个是完全同步,因为ROBOCOPY是增量的,所以在复制的2周里面,如果用户有删除文件,需要保证和旧的服务器完全一样,所以要加/MIR,

/B /MT:64 /MIR,每个都要加。为什么/B和多线程有关,我是在测试同步速度是发现的,以上的一行命令,速度是最快的。

这里的关键依旧是/B  ,还是不能少!


到这里基本就完成了。最后第二天我针对每个文件夹开共享,这里有个问题大家可以参考,而且我当时是疏忽了。

1.如果你使用的是普通共享:一般同旧的一样,没什么问题,但是有的文件夹,我发现

creator的权限消失了,不过这个并不怎么影响。真麻烦的是:刷共享权限时间很长,特别是权限复杂又大的文件夹,比如几百个G的那种

2.使用高级共享,这里要记住,高级共享基本是秒共享,但是对于共享权限,他是默认关闭掉everyone的读写,这个要记得打开.不然你会发现,你在共享里面查看,这个人有ntfs的读写,为什么还是不能改!!!,此方法建议,在高级共享权限里面,针对ntfs有读写权限的OU,或者用户添加读写。





  

  




                             




你可能感兴趣的:(服务器系统管理,winserver)