Linux RAID 1 可以解决高延迟问题吗?

Linux RAID 1 可以解决高延迟问题吗?

场景:我们在 EC2 中运行大型(集群中总共 3TB)Solr 安装。我只关心读取方面的磁盘性能。我们怀疑我们受到磁盘 I/O 的限制,并且当 EBS 卷变得不稳定并变慢时,尤其会出现问题。

我正在考虑尝试 RAID 1。据我所知,Linux 软件 RAID 会在磁盘之间拆分读取,但我不确定它有多智能。如果 RAID 1 对中的一个磁盘在读取时备份,它会将更多读取发送到另一个磁盘吗?如果读取等待时间过长,它会将该读取重新安排到另一个磁盘吗?

我想不出任何方法来测试这种行为。我很乐意查看代码,但我甚至不确定这是否会由 I/O 调度程序处理,或者它是否是 RAID 驱动程序的一部分。我找不到任何比软件 RAID HowTo 更深入的文档。

答案1

读取平衡由内核中的 md 驱动程序处理;drivers/md/raid1.c

它并不是非常聪明。它试图最小化寻道,仅此而已。我不确定是否有任何 RAID 实现像你想要的那样聪明......

你的系统内存够用吗?如果读取量很大,缓存应该会有所帮助。

相关内容