我使用 Postgresql 8.4,我想知道哪种类型的 RAID 最常用于数据库。我到处读到 RAID10 是最适合的,而 RAID5 不是一个好的选择。例如:http ://www.revsys.com/writings/postgresql-performance.html
我的服务器是戴尔 Poweredge 2950。戴尔支持人员告诉我,他们没有很多客户使用 RAID10。大多数时候,他们使用 RAID5 + RAID 控制器缓存 ON。
你怎么看?您的数据库服务器使用什么 RAID 级别?
谢谢 !
波尔,
如果您对数据库进行了大量写入,我可能会选择 RAID10。
这是一个值得考虑的真实世界案例……将只有一个 1TB HDD 的文件服务器替换为具有四个 1TB 硬盘驱动器的新服务器。决定使用 RAID5。
新机器上的性能明显变慢。后来发现服务器处理的写入比最初想象的要多得多。来自 RAID5 的写入惩罚非常糟糕。
正确的决定是使用 RAID10。
最佳答案取决于您的数据库更适合的配置文件:OLTP 或 OLAP。简单地说,您的数据库是进行更多的写入还是更多的读取?写入多于读取的数据库在 raid10 上的性能通常优于 raid5(假设使用相同数量的驱动器)。正如 Karl 所提到的,如果您的数据集(或驱动器)很大,请远离 R5,如果 R10 不是您的选择,请使用 R6。
它取决于工作负载,您必须进行基准测试。
理论上,RAID 5 对于小写入操作很慢。大缓存可以极大地缓解这种情况(甚至对于给定的设置,它的性能与 RAID 1+0 相同)。
通常 RAID 1+0 在政治上是困难的,因为额外的空间被视为浪费。尝试解释在 RAID5 上有可用于提高性能的空白空间是浪费空间的另一种形式。
如果您无法进行基准测试并且您已经拥有磁盘空间,请始终使用 RAID 1+0。如果您无法进行基准测试并且您被迫使用 RAID5 或 RAID6,请确保您清楚地说明 RAID6 和 RAID5 对写入密集型负载具有最大的性能风险。确保坚持以一种在不首先进行测试的情况下产生最大性能风险的方式进行设置也以书面形式提出。
当您进行基准测试时,请让执行基准测试的应用程序组清楚 RAID5 的工作原理,控制器具有缓存可以减轻小的写入损失这一事实,并且基准测试需要在与生产大小相同的数据集上进行.
以书面形式完成所有这些。存储配置错误是许多环境中最常见的责备游戏。基本上,您不会被允许进行基准测试并且您将不得不猜测,因此请确保您有证据证明您做出了最佳猜测,或者您被告知做一些与最佳实践相反的事情。
请在此处找到关于 HP Proliant DL380 G5 的性能和扩展报告。
测试基于各种文件系统(jfs、xfs、reiserfs、ext2 和 ext3)。
老实说,根据我的经验,从数据冗余的角度来看,我认为 RAID5 与 RAID10 没有区别。但是,由于 RAID 是条带化的,RAID10 提供了性能提升。RAID 10 基本上是 RAID0 和 RAID1。镜像了两个 RAID0 集 (RAID1)。我们使用 RAID5 而不是 RAID10。但我们不需要从 RAID10 获得性能提升。这仅取决于您的环境和您正在使用的内容。我建议尝试 RAID5。如果性能似乎较慢,请移至 RAID10 并查看性能提升是否有帮助。如果您有中小型工作负载,RAID5 应该可以解决问题。
为了获得最佳性能,请使用 SSD,然后是 R10,然后是 1 或 0,然后是 5,然后是 6。
使用 RAID5 是因为它比 RAID10 更容易设置和考虑。您不需要偶数个磁盘,并且更多人熟悉它。
过去,我们一直做 RAID5(Dell PowerEdge 2650-2950),但在我们最新的机器(运行 MS-SQL,而不是 PostgreSQL)上,我测试了 RAID10 和 RAID5。我发现对于我们的工作负载,RAID10 给了我们适度的性能提升(~10%)。
如果您有时间,我建议您设置两种方式的服务器并运行正常的数据库任务(备份和恢复,您可能执行的任何作业或报告)。
SSD 并不总是提供最佳性能。他们以有序块的形式读取数据,这可能不是数据库所需要的。
在决定数据库使用什么 RAID 和文件系统时,重要的问题是:
如果数据集很大,即 > 10 TB,您将希望避免使用 RAID5。在重建阵列时,您可能会丢失第二个驱动器,从而导致数据完全丢失。RAID6 和 RAID10 是很好的配置文件,但请注意 RAID10 的限制。另外:选择一个不需要定期 fsck-ing 的日志文件系统;换句话说,避免使用 ext3 并使用 xfs 之类的东西……或者更好的是,使用 Solaris 并使用 zfs。您知道 fsck 10tb 卷需要多长时间吗?
如果您有更多的钱,您可以购买一个外部机柜,并且可能会获得一些额外的速度提升,因为机器在读取数据集时不会尝试进行系统活动(记录等)。您还可以获得具有更多 RAM 和更高吞吐量或更快磁盘的更好的 RAID 控制器。基本上,你得到你所支付的。
如果数据读取量很大,您可以坚持使用 Raid10。如果您的数据是平衡的读/写或写重,您可能最好坚持使用 raid6。