Windows海量小文件备份思路及方法

2018-10-31 杰克 运维

       最近同事遇到一客户,因数据备份要求需对业务数据进行定时完整备份。客户的数据都是基于图片、office文档等文件型的海量小文件。从技术层面来说数据备份并不复杂。但文件数量庞大有上百万个,总计300GB大小。使用 Windows Server 自带的WSB(Windows Server Bakcup)做一次本地备份约需要 8 - 9 小时,耗时太长。于是跟我探讨是否还有其他更好的方法。

      因为不能将客户数据复制到测试环境中进行各种测试,我根据同事对文件的描述复制了10个模板文件出来(大小从3KB到200KB不等),并根据文件类型放在 t0 - t9 这10个文件夹里,每个文件复制5000个。然后将 t0 -t9 文件夹复制到 files 文件夹里。并将 files 文件夹复制10份然后移到 test01 文件夹里。最后将 test01 文件夹复制2份,并放到最终的文件夹 test 里。这样我就有了一个有200多个文件夹目录100万个文件及63GB大小的目录结构。虽然不是客户真实的生产环境,但用来做模拟环境已经足够了。文件夹目录结构如下:

文件目录结构.jpg

文件创建成功后,就可以在物理环境中进行各种复制备份操作了

      我的测试环境:

      DELL  R720服务器   E5-2660 * 2   64GB内存    H710阵列卡 3块 1TB/SATA 希捷企业级黑盘 组成 RAID5

      Windows Server 2016 Datacenter 版 

测试文件夹放在了E盘,为避免其他干扰。E盘仅存放了测试文件夹。看属性刚好100万个文件及63GB大小

属性.png

首先,测试使用系统自带的复制粘贴,显示约需4小时。不过 Windows 的显示剩余时间一直都不准,实际时间一般比预计时间要长的多。放弃操作

复制粘贴.png

然后使用一直口碑较好的FastCopy测试,显示需要约4.5小时。不过剩余时间一直都在增长中。同样放弃操作

fastcopy.png

想起之前在虚拟化项目做物理机P2V迁移的磁盘转换工具disk2vhd可以将整个磁盘或分区转换成.vhd或.vhdx文件,于是找到这个软件开始进行分区转文件操作,我的测试文件在E盘所以只勾选E盘,只对整个E盘进行转换操作。软件显示的时间是最终预计完成的时间,跟实际时间对比来看仅需不到10分钟。且从进度条查看似乎进度很快,遂决定等待进度条完成,看看最终实际耗时多少

vhd-start.png

转换完成后,disk2vhd果然不负众望。仅用了12分钟就将整个E盘转换成功

vhd-end.png

查看转换后的vhdx文件,约65GB大小。比源文件夹稍大一点

vhdx.png

vhdx文件属于Windows的虚拟机磁盘文件,可以直接双击打开或用右键的 装载 打开

装载.png

不过会有提示错误,需要进行初始化

err.png

这时候打开 计算机管理-磁盘管理 可以看到有一个显示为 “脱机”的很本地磁盘分区一样的磁盘1 右键点选磁盘1 选择 “联机”

磁盘联机.png

联机后会有提示 格式化磁盘 的窗口,一律点“取消”

取消.png

之后系统会自动分配盘符,在磁盘管理界面我们看到装载的vhdx文件生成了跟原磁盘0一模一样的磁盘1 我认为是disk2vhd工具在进行分区转换的时候将原磁盘分区表也包含到vhdx文件中去了,因此看到了一个跟原来磁盘0一样分区格式的磁盘1。当然,实际转换的仅仅只是E盘。所以在磁盘管理界面看到的磁盘1的G H I分区格式为RAW 不能访问,即使格式化后打开也是空的。打开目标J盘,可以理解为原来E盘的镜像盘。查看文件夹属性与原来大小数量一致。打开目录下的jpg文件也能正常打开显示

OK.png

查看文件没有问题后可直接右键目标盘符,选择弹出。即可像弹出U盘或移动硬盘一样卸载掉通过 vhdx 文件装载的磁盘分区

卸载.png

 

      使用disk2vhd工具是一个备份Windows海量小文件的方法。并且disk2vhd支持命令行模式,将操作命令写成脚本并配合Windows的计划任务。借助千兆网络,将vhdx文件备份复制到其他设备如NAS等,在我的测试环境下(100万个文件,63GB大小)将不超过半小时

      当然,还有其他如 sync 同步工具 Windows 的 DPM专业数据备份工具等没有测试,后期有机会再做测试

标签: 数据备份 disk2vhd 海量小文件

发表评论:

Powered by emlog 京ICP备17037512-1 e-mail:jackhkyin@163.com QQ:393147796