我们在许多目录中有数百万个文件,例如:
\00\00\00\00.txt
\00\00\00\01.pdf
\00\00\00\02.html
... so on
\05\55\12\31.txt
将这些备份到磁带上的速度很慢,因为以这种格式备份数据比备份单个大文件慢得多。
磁盘上的文件总数和每个文件的相对大小会影响备份性能。当磁盘包含较少的大文件时,备份速度最快。当磁盘包含数千个小文件时,备份速度最慢。Backup Exec 管理指南。
通过创建虚拟硬盘、安装后在其上托管数据然后备份 vhd,备份性能是否会显著提高?
我不确定 vhd 中的底层数据是否会影响这一点。
这种方法有什么缺点?
答案1
将大量小文件存储在文件系统中(其本身作为文件保存)确实具有一些潜在的好处。
如果此文件的格式是稀疏的,那么备份最初会更快。但是随着时间的推移以及文件的创建和删除,稀疏映像可能不会保持稀疏。最终映像可能会比其中的文件大得多,这当然会浪费磁盘和磁带上的空间,并且与映像是新的时候相比,备份速度会变慢。
图像的另一个缺点是,如果在对图像内的文件系统进行任何写入操作的同时进行备份,则最终可能会得到无法保留完整性的备份。
答案2
我决定自己测试一下。
为了测试,我在 Server 2008R2 上创建了一个 25GB 的 VHD 并将其附加。
然后我用价值 20GB 的数据填充它。1318 个目录中的 129000 个文件。
然后,我运行了 VHD 内容的备份作业。然后,我分离了 VHD 并备份了 VHD 文件本身。
以下是结果。
Data Elapsed Byte Count Job Rate
VHD 00:09:51 25.0 GB 14,222.00 MB/min
VHD Contents 00:07:38 20.2 GB 9,557.00 MB/min
VHD 文件的耗时较长,但是当扩大到我处理的实际大小时,我确信增加的工作率将会占据主导地位。
此外,VHD 内容作业率似乎比我预期的要高。它可能受到最近创建文件的缓存或其他因素的影响,但目前我无法确认这一点,因为主要作业与其他备份数据捆绑在一起。
我现在没有时间或不需要进一步调查此事,尽管我可能会在将来的某个时候重新审视此事。