之前分别用FSMT和FSRM做过的文件迁移,具体方法可以参考:http://hubuxcg.blog.51cto.com/2559426/458091; http://hubuxcg.blog.51cto.com/2559426/1407703。

因为FSMT已经停止使用,而FSRM 的迁移速度并不十分理想,而且微软官方也有说明:Windows Server 迁移工具 (WSMT) 的文件迁移 (FSRM) 部分面向小型数据集(小于 100 GB 的数据)。 它会通过 HTTPS 逐个复制文件。 对于大型数据集,我们建议使用 Windows Server 2012 R2 或 Windows Server 2012 随附的 Robocopy.exe 版本。

即然官方建议我们用2012或2012R2所带的Robocopy,所以选它来做这次迁移的工具!

我现在需要的将一台2008R2服务器上,近2T的数据迁移到一台全新的2012R2机器上,依之前的测试,在1G 的网络环境中,平均迁移速度可以达到每分钟3G 左右,最高可以到达4G,所以,估计完成这次迁移大约需要8-12小时,刚才可以利用周末晚上完迁移!

确定好时间,通知用户后,开始进行!

首先,为确保迁移过程中,不会有文件更新、写入,需将2008R2旧文件服务器上需要迁移的共享目录中的共享权限设置为只读

文件服务器迁移之三(Robocopy进行大量迁移)_第1张图片

切换到2012R2新文件服务器,进到命令提示下,可以用Robocopy /? 查看详细参数,有兴趣的可以每个参数去仔细研究!如下图:

文件服务器迁移之三(Robocopy进行大量迁移)_第2张图片

常用参数:

源 :: 源目录(驱动器:\路径或\\服务器\共享\路径)。

目标 :: 目标目录(驱动器:\路径或\\服务器\共享\路径)。

/S :: 复制子目录,但不复制空的子目录。

/E :: 复制子目录,包括空的子目录。

/COPY:复制标记:: 要复制的文件内容(默认为 /COPY:DAT)。

(复制标记: D=数据,A=属性,T=时间戳)。

(S=安全=NTFS ACL,O=所有者信息,U=审核信息)。

/SEC :: 复制具有安全性的文件(等同于 /COPY:DATS)

/COPYALL :: 复制所有文件信息(等同于 /COPY:DATSOU)

/MT[:n] :: 使用 n 个线程进行多线程复制(默认值为 8)

n 必须至少为 1,但不得大于 128。

该选项与 /IPG 和 /EFSRAW 选项不兼容。

使用 /LOG 选项重定向输出以便获得最佳性能。

/R:n :: 失败副本的重试次数: 默认为 1 百万。

在本次迁移中,因为完全需要文件服务器,包换所有文件、目录、权限等,所以使用如下参考:

robocopy \\2008R2\e$\Share e:\Share /e /copyall /mt:20 /R:3 /log:E:\log\Share.log

\\2008R2\e$\Share 源目录,即旧2008R2服务器上的目录,也可以直接使用共享,

e:\Share目标目录,即新的2012R2服务器上的目录。

/E 复制子目录,包括空的子目录。

/COPYALL 复制所有文件信息(包括数据、属性、时间戳、安全、所有者、审核信息等)

/MT:20 使用 20 个线程进行多线程复制

/R:3 失败副本的重试3次数,由于 默认为 1 百万,如果碰到无法复制的文件,复试1百万次的话,估计得几天时间,所以建议修改

/log:E:\log\Share.log将复制结果记录到日志文件,以便查看错误或是失败的信息

以上命令后,就是慢长的等待了!

结束后,打开LOG文件,可以看到所有复制的文件目录、大小等信息:

文件服务器迁移之三(Robocopy进行大量迁移)_第3张图片

最后会有汇总,总共文件、目录数量、大小、时间等信息!

文件服务器迁移之三(Robocopy进行大量迁移)_第4张图片

从汇总信息来看,此目录总共942G,开始时间1:17:52,结束时间:4:20:29共用时:2:43:49,平均速度约3G/分钟!

用以上方法,完成另个几个共享目录的复制,然后再停用旧服务器上的共享、启用新服务器上的共享,总共2TB,总共用时约8小时!

相比之前的两个工具:FSMT和FSRM,效率确实高了不少!