![RAID 和数据库](https://linux22.com/image/491524/RAID%20%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我使用 Postgresql 8.4,我想知道哪种类型的 RAID 最常用于数据库。我到处都看到 RAID10 最适合,而 RAID5 不是一个好的选择。例如:http://www.revsys.com/writings/postgresql-performance.html
我的服务器是 Dell Poweredge 2950。Dell 支持人员告诉我,他们没有很多使用 RAID10 的客户。大多数时候他们使用 RAID5 + raid 控制器缓存开启。
您对此有何看法?您的数据库服务器使用哪种 RAID 级别?
谢谢 !
答案1
波尔,
如果您对数据库进行了大量写入,我可能会选择 RAID10。
这是一个值得考虑的现实案例……将仅有一个 1TB 硬盘的文件服务器替换为具有四个 1TB 硬盘的新服务器。决定采用 RAID5。
新机器的性能明显变慢了。后来发现服务器处理的写入量比最初预想的要多得多。RAID5 的写入损失相当严重。
正确的决定是采用 RAID10。
答案2
最佳答案取决于您的数据库更适合哪种配置:OLTP 还是 OLAP。简单来说,您的数据库执行的写入操作更多还是读取操作更多?执行的写入操作多于读取操作的数据库在 raid10 上的性能通常优于 raid5(假设使用的驱动器数量相同)。正如 Karl 提到的,如果您的数据集(或驱动器)很大,请远离 R5,如果 R10 不是您的选择,请使用 R6。
答案3
它取决于工作量,所以您必须进行基准测试。
理论上,RAID 5 对于小规模写入来说速度较慢。大缓存可以大大缓解这一问题(在给定设置下,甚至可以使其性能与 RAID 1+0 相同)。
RAID 1+0 通常在政治上很难实现,因为额外的空间被视为浪费。尝试解释一下,RAID5 上可用于提高性能的空闲空间是另一种形式的空间浪费。
如果您无法进行基准测试,并且您已经有磁盘空间,请始终使用 RAID 1+0。如果您无法进行基准测试,并且被迫使用 RAID5 或 RAID6,请确保以书面形式明确说明 RAID6 和 RAID5 对于写入密集型负载具有最大的性能风险。确保以书面形式坚持要求您以不先进行测试就产生最大性能风险的方式进行设置。
进行基准测试时,请向进行基准测试的应用程序组说明 RAID5 的工作原理、控制器具有可以减轻小写入损失的缓存的事实,以及基准测试需要基于与生产大小相同的数据集。
以书面形式完成所有这些操作。存储配置错误是许多环境中最常见的指责游戏。基本上,您不会被允许进行基准测试,而必须进行猜测,因此请确保您有证据表明您做出了最佳猜测,或者您被告知要做一些与最佳实践相反的事情。
答案4
老实说,根据我的经验,从数据冗余的角度来看,我看不出 RAID5 和 RAID10 有什么区别。但是,由于 RAID 是条带化的,因此 RAID10 提供了性能提升。RAID 10 基本上是 RAID0 和 RAID1。两个 RAID0 集是镜像的 (RAID1)。我们使用 RAID5 而不是 RAID10。但我们不需要 RAID10 的性能提升。这只取决于您的环境和您正在使用的内容。我建议尝试 RAID5。如果看起来性能较慢,请转到 RAID10,看看性能提升是否有帮助。如果您的工作负载很小到中等,RAID5 应该可以解决问题。