我经常与开发人员讨论这个问题。上下文是一个在 Linux 中运行的应用程序,具有中等数量的磁盘 I/O。服务器是 HP ProLiant DL3x0 G6,带有四个大小相同的磁盘 @ 15k rpm,配有 P410 控制器和 512MB 电池或基于闪存的缓存。这里有两种观点,我想听听大家的反馈...
1)。我认为创建一个包含所有四个磁盘的阵列并根据需要进行分区是有意义的,这些磁盘被设置为 RAID 10 (1+0)。这提供了最大的增长空间,具有利用更高主轴数和更好的容错能力而不会降低性能的优势。
2) 开发人员认为最好有多个 RAID 1 对。一个用于操作系统,另一个用于应用程序数据,理由是主轴分离将减少资源争用。但是,这会将驱动器数量减半,从而限制吞吐量,在这种情况下,操作系统除了常规系统日志记录外,实际上没有做太多事情。
此外,我们拥有电池 RAID 缓存和大量 RAM 的事实似乎可以抵消磁盘延迟的影响......
你怎么看?
答案1
我的想法是,这只是一场表演谈话和一场胡说八道。
既然您正在讨论重新创建数组,为什么不以两种方式进行并对其运行测试负载,然后绘制结果图呢?
编辑
如果正如您在评论中所说的那样,现实生活表明性能并不依赖于底层 RAID 级别(并且您确实有数字支持它),那么我建议采用在扩展时将继续为您提供最佳性能的级别,这几乎总是 RAID-10。
如果你不打算扩张,那么这实际上并不重要,因为你显然从任何一个选项中获得相同的性能,而且你粉刷自行车棚。
答案2
由于没有人提供有关此问题的任何真实世界数据,因此我想指出一篇有关同一问题的有趣文章!
摘自本文:
“尽管我们喜欢原始顺序吞吐量,但对于大多数数据库应用程序和邮件服务器来说,它几乎毫无价值。这些应用程序必须处理每秒数百甚至数千个随机访问硬盘的微小请求。硬盘实际上花费了 95% 以上的时间来查找数据,而不是实际读取或写入数据,这意味着即使是无限的顺序吞吐量也只能解决 5% 的性能问题。”
答案3
值得深思的是:如果你决定使用 4 磁盘 RAID-10,那么将来任何时候,当出现性能问题时,开发人员都可以把责任推到你身上。如果你使用两组磁盘,然后出现性能问题,那么你可能可以选择转换为四磁盘 RAID-10,具体取决于转换的复杂程度。