我之所以问这个问题,是因为我使用 rsnapshot 进行备份,并使用 /backups 单独的 raid1 ext3 备份磁盘。不幸的是,删除备份(每 4 小时发生一次)需要整整一个小时!rm -rf /backups/server/hourly.5 将花费很长时间,而它所做的只是删除硬链接,因为大多数数据都充满了硬链接。
ZFS 很不错,但我正在考虑为新的备份服务器使用 BtrFS、XFS 或 ext4。ZFS 根本不适合在 Linux 环境中生产,所以这不是一个选择,尽管它似乎是迄今为止最好的 fs。这次我将在 CentOS 或 Debian 上使用 BackupPC 作为软件,而不是 rsnapshot。我考虑过 Bacula,但它似乎与 BackupPC 相比没有任何优势,但配置起来更困难,需要安装代理。
我想要一个可以快速删除硬链接的 FS。我不明白为什么这要花一个小时,因为无论如何数据实际上都不会发生任何事情。
欢迎提供有关备份的一般建议,但我认为如果我使用 backuppc、raid1 进行备份,并且文件系统既快速又可用于生产,那么我就有一个良好的备份环境。
答案1
XFS 至少会在 中删除文件,O(1)
而 ext(mumble) 系列则会在 中删除O(log n)
文件(n 表示文件大小)。我不知道这如何转化为删除大量链接,但这是个开始。
答案2
我的文件系统为 ext4。尝试使用relatime
(相对访问时间)在删除文件时尽量减少目录的 inode 更新。
由于必须写入多个磁盘,因此 Raid 写入速度往往比读取速度慢。日志写入使情况更加复杂。您可以尝试在单独的一组磁盘上使用外部日志。
从包含大量文件的目录中删除文件的速度往往比从包含较少文件的目录中删除文件的速度要慢得多。我认为这是因为写入了更多的目录块。但是,要解决这个问题,需要修复您正在备份的目录中的分配。包含大量文件的目录给我的许多应用程序带来了问题。
答案3
不久前,我在 Debian Lenny 上安装了 BackupPC,并安装了 RAID1 和 LVM,我选择使用 Reiserfs(使用选项安装noatime
)。我本来希望使用 ext4,但当时 Lenny 对 ext4 的支持仍然有点……新。BackupPC 常见问题解答建议使用 Reiserfs 而不是 ext3,就这样。
无论如何,到目前为止一切顺利,没有问题。Reiserfs 一直非常稳定。BackupPC 的工作方式,您可能真的不需要太担心文件/硬链接删除性能。这是因为 BackupPC 将其清理作业与备份和恢复分开运行(但如果有必要,可以同时运行)。我从未遇到过清理作业运行时间过长或干扰正常操作的问题。
就我而言,更重要的考虑因素是文件系统处理大量小文件的效率。显然,Reiserfs 在这方面表现很好,因为它通过所谓的“块子分配”(或“尾部包装“)。不过,如果今天我必须再次选择,我可能会选择 ext4。运行大多数 Linux 内核开发人员正在运行的相同 FS 的好处可能超过小众 FS(如 Reiserfs)可能带来的任何微小的技术优势。