build议500Gb RedHat / PostgreSQL服务器的RAID设置

我需要一些常见的build议,如果有这样的事情,可以设置分区,并运行一个运行postgressql的RHAS5.3服务器,这个服务器可以维护一个500Gb的数据库。 数据库大部分是只读的,每天有8-10个批量加载,旧数据每周清除两次

我们将有4个300Gb磁盘可用。

我应该如何创build分区/卷,操作系统和数据库(以及其他任何东西?)

什么是一个合适的RAID设置,Raid0,1,1 + 0.3.6是可用的。

目前为止我已经看到了SF的共识,就是使用JFS或Ext3作为文件系统的RAID 10(我将在几分钟内挖掘链接并重新编辑…)

如果这些是唯一的驱动器,那么它就会变得有点紧 – 启动分区将离开你的RAIDarrays,但它应该组装并运行得很好,所以OS的一个分区和数据的(散装)剩余部分。 希望情况不是这样,你会有一个额外的(第五)驱动器可用…

如果您遇到任何有趣的信息,我很乐意用这些信息更新PostgreSQL Tips'n'Tricks wiki 。 谢谢!


一些相关的问题

为SQL Server推荐的磁盘/分区设置

我应该使用RAID 5configuration运行数据库吗?

MySQL(InnoDB)最好的Linux文件系统是什么?

对数据库的通常build议是RAID10,因为写入比RAID6或RAID5更好(通常要好得多)。

由于您对写操作的期望很低,因此RAID6可能比RAID10更适合您,因为它在某些情况下提供了更好的冗余性,并且可能比RAID10的读取性能更好。

优点/缺点摘要:

  • 4个驱动器的RAID10:给出两个驱动器值得的空间(在你的情况〜600G),可以幸存六个可能的“第二个驱动器死亡之前死亡第一个被replace和arrays重build”场景和任何单个驱动器故障。 读取性能将取决于您的控制器/软件和访问模式,位于单个驱动器和RAID0条带集之间,写入性能与单个驱动器相似。
  • 4个驱动器的RAID6:提供两个驱动器的空间(在你的情况下约600G),可以承受任何单个或两个驱动器的故障。 读取性能应该与RAID0类似。 写入性能可能不好,因为块写入(或部分块写入)变成块读取(另一个在条带对中),随后是三个写入(更新的块到一个磁盘而两个奇偶块到其他块)
  • 4个驱动器的RAID5:给出三个驱动器的空间(在你的情况~900G),可以承受任何单个驱动器的故障,但是如果两个驱动器一次失效,将会丢失。 读取性能应该与RAID0类似。 由于块写入(或部分块写入)成为两个块读取(条带集合中的其他数据块),随后是两个写入(更新的块到一个磁盘并且奇偶块到另一个),写入性能可能是糟糕的,

在RAID 5或6卷上的任何写入活动都会以某种方式(读取或写入)涉及所有驱动器。 使用RAID10时,任何一个写入操作只会涉及四个驱动器中的两个。

在Centos5上设置一个大型的Postgresql机器时,我们发现的最大的性能提升之一就是将数据目录保存在主操作系统所使用的RAID10上。 您希望尽可能多的驱动器头为您find数据。

另外,花点时间来调整你的Postgres安装,因为你安装这个软件包时提供的默认值是非常明智的。 既然你期待着读取导向,那么你可以通过调整这个工作负载来剔除一些额外的性能。

一般来说,RAID-10是最佳select。

在繁忙的服务器场景中,RAID-5系统上的磁盘故障会影响系统的性能,当您replace磁盘并重buildarrays时,会出现一个复杂的问题。 RAID-10将不会对最终用户造成影响,更换故障磁盘时对服务交付的影响要小得多。

RAID-6可以让你有能力经受两个同时驱动器故障,但恕我直言,这不是一个有效的索赔,因为有问题的卷的性能将受到严重的危害。 另外,如果您有足够的备份,额外的冗余级别不会太多,因为您始终可以select恢复数据。