我们的服务器上有这样的设置:
- Ubuntu 14.04(以前是12.04)
- 10TB RAID-6系统
- LVM(1个VG,2个LV)
- ext4 分区(~2TB)
- Btrfs 分区(~8TB)
上个月重新启动后,系统速度很慢。首先,我们认为这是因为 RAID 正在重新同步(一个驱动器未添加并被重新激活)。但最终完成后(12-13 天),访问 Btrfs 的速度仍然明显缓慢。 ext4访问似乎正常。
设置此功能的系统管理员(今年夏天离开的)已经在 Btrfs 挂载上使用了 autodefrag,noatime。
我们可以做什么来让 Btrfs 再次提速?
答案1
我无法发表评论,如果这不是一个好的答案,我很抱歉。您应该检查您的驱动器。我认为 10Tb 的 12 天 rsync 时间太长,应该更像是 12-24 小时。使用 smartctl 查看不同的驱动器,检查是否有很多错误:
for i in a b c d e f g h i j k l; do echo $i ; smartctl -x /dev/sd$i | grep occurred | head -1 ; done
我发现 RAID 工作因此而变慢。 IIRC Btrfs 比 ext4 需要更多的磁盘访问来进行目录查找,这可以解释访问速度的差异。
答案2
您刚刚堆叠了三层磁盘 I/O 间接,您想知道为什么它的性能很差?
计算机科学中有一句老话,归因于大卫·惠勒:
计算机科学中的任何问题都可以通过另一层间接解决。
这不是真的。有一个问题你无法用这种方式解决:系统太慢。 (无论如何都需要添加更多硬件。在这种情况下需要更多主轴,或集群,或负载平衡等)
Btrfs包括 LVM 功能,但您已经将其堆叠在Linux的LVM2层并把那在硬件 RAID-6 系统之上。您还做了什么,在这个摇摇欲坠的抽象堆上托管虚拟机,以便您可以添加另一层或两层文件系统间接?
您已寻求建议,所以这是我的:折断其中一些层。
如果是我,我会配置硬件磁盘子系统JBOD并将 Btrfs 直接放在它上面。
更广泛地说,您不应期望 Btrfs 能够实现与ext[234]
.你不是在比较苹果与苹果。 Btrfs 为您带来了更高级别的数据完整性,因此它的运行速度自然会慢一些。坦斯塔足球俱乐部。