我最近一直在看我们的备份,注意到在写很多小文件时磁带的吞吐量要低很多,所以想把这些小文件拼成一个大的tar文件,写的是磁带而不是小文件文件直接。 (非常像Tar:避免存档大于特定大小的文件 )
然而,当我然后写这个tar文件到磁带我会遇到问题,如果有一个磁带错误呢? 我的意思是,我会丢失包含很多较小文件的整个(大)文件,还是会丢失该tar文件的特定块,并能够恢复剩余的文件?
另外,像Amanda或Bacula这样的备份程序如何处理大量的小文件呢? 他们只是单独写入文件到磁带,或者他们做这样的事情预先tar进更大的文件,这会写得更快?
注意:这可能只是因为我们的登台磁盘太慢,但是我认为小文件对于大多数人来说会造成像这样的备份性能问题。
第一:强烈build议备份tar文件而不是单个文件,以避免擦鞋效果 ,这是您所遇到的情况:计算机无法足够快地传送文件,并且磁带机必须停止,并且在重新开始写入之前有一点可以findstream结束的精确点。 这不仅速度慢得多,而且在驱动器和磁带上都有很多磨损(现代驱动器,即LTO4)据说在防止/减less这种效应方面更好,因为它们在input缓冲器空载时减速,不需要倒带)。
其次:跳过损坏的tar文件部分是可能的,至less对于未压缩的压缩文件是可能的。
第三:Bacula确实可以(也应该)configuration成创build一个假脱机文件,然后写入磁带。 不幸的是,它无法将假脱机caching到假脱机文件,并同时写出另一个到磁带,有效地降低了〜50%的备份速度。