MvG*_*MvG 11 performance io mdadm rsync btrfs
我的局域网上有一台 Debian 机器作为其他机器的备份服务器。它有四个硬盘驱动器组合成一个软件 RAID 5 md 设备,在那个 LVM 上,在那个 btrfs 上。使用 rsync 进行备份,对于大型文件系统需要一个多小时。很长一段时间以来,我一直认为我对此无能为力。
然而,最近我注意到传输两端的硬盘活动非常不同。虽然发送端运行 Gentoo 并且主要使用 ext4,几乎没有任何磁盘 IO,但接收端一直很忙。由于大多数数据不会在传输之间发生变化,我认为元数据读取应该构成大部分数据。但是,如果在 btrfs 中读取 inode 比在 ext4 中读取索引节点的工作量大,我会感到非常惊讶。
iotop 确认接收端的磁盘读取速度约为 1-4 MB/s,而发送端只有偶尔的 0.5 MB/s 突发。
我的问题是,谁能解释一下这里发生了什么?如果可能的话,最好有一些如何解决问题的指示。
也许我可以使用一些 btrfs 调整标志或类似的东西。我在备份服务器上需要一个具有快照功能的 FS,而我尝试使用 FreeBSD 和 ZFS 很快就会导致 FS 不一致,所以我目前看不到 btrfs 的替代品。因此,告诉我使用 ext4 或 zfs 的答案可能会收到赞成票但没有复选标记。
--rsync-path='rsync --fake-super'
--archive # -rlptgoD
--hard-links # detect and preserve these
--acls
--xattrs
--sparse
--noatime # based on patch from samba #7249c1
--delete
--delete-delay
--fuzzy
--human-readable # size suffixes, base 1000
--stats
Run Code Online (Sandbox Code Playgroud)
以及-f省略一些文件的一堆规则。
btrfs 的挂载选项报告mount为
rw,nosuid,noexec,noatime,nospace_cache
Run Code Online (Sandbox Code Playgroud)
特别是,这包括noatime标志,因此除非某些文件中确实存在差异,否则不应涉及任何写入。我响应添加了这个信息的答案由凯尔·琼斯。
一种可能的答案是远程文件系统默认使用“atime”选项挂载。远程 rsync 访问的所有内容的访问时间写入以及 RAID 5 所遭受的写入损失(计算奇偶校验意味着在写入其中一个磁盘之前读取所有 RAID 磁盘)可以解释远程端的 I/O 放大。
如果我是对的,您可以通过使用“noatime”选项安装远程文件系统来加快速度。
| 归档时间: |
|
| 查看次数: |
2967 次 |
| 最近记录: |