500Gb RedHat/PostgreSQL 服务器的推荐 raid 设置

500Gb RedHat/PostgreSQL 服务器的推荐 raid 设置

如果有的话,我想听听一些关于在运行 postgressql 的 RHAS5.3 服务器上设置分区和 RAID 的常用方法的建议,该服务器预计将维护 500Gb 的数据库。该数据库大部分都是只读的,每天进行 8-10 次批量加载,每周清除两次旧数据

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

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

那么合适的 raid 设置是 Raid0,1,1+0.3.6 可用。

答案1

到目前为止,我看到的关于 SF 的普遍共识是使用 JFS 或 Ext3 作为文件系统的 RAID 10(我将在几分钟内查找链接并重新编辑...)

如果只有这些驱动器,那么空间就会有点紧张 - 启动分区将脱离您的 RAID 阵列,但它应该可以正常组装和运行,因此一个分区用于操作系统,其余部分(大量)用于数据。希望情况并非如此,您将有一个额外的(第 5 个)驱动器可用...

如果你发现任何有趣的信息,我很乐意更新PostgreSQL 技巧和窍门 wiki有这些信息。谢谢!


一些相关问题

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

我应该采用 RAID 5 配置运行数据库吗?

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

答案2

数据库通常的建议是 RAID10,因为它的写入性能比 RAID6 或 RAID5 更好(通常好得多)。

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

优点/缺点总结:

  • 4 个驱动器的 RAID10:提供两个驱动器的空间(在您的情况下约为 600G),可以承受六种可能的“第二个驱动器在第一个损坏的驱动器被替换并重建阵列之前损坏”情况中的 4 种以及任何单个驱动器故障。读取性能将介于单个驱动器和 RAID0 条带集之间,具体取决于您的控制器/软件和访问模式,写入性能将类似于单个驱动器。
  • 4 个驱动器的 RAID6:提供两个驱动器的空间(在您的情况下约为 600G),可以承受任何单个或两个驱动器故障。读取性能应与 RAID0 相似。写入性能可能很差,因为块写入(或部分块写入)变成了块读取(条带对中的另一个),然后是三次写入(将更新的块写入一个磁盘,将两个奇偶校验块写入其他磁盘)
  • 4 个驱动器的 RAID5:提供三个驱动器的空间(在您的情况下约为 900G),可以承受任何单个驱动器故障,但如果两个驱动器同时发生故障,则会丢失。读取性能应与 RAID0 相似。写入性能可能很差,因为块写入(或部分块写入)变成两个块读取(条带集中的其他数据块),然后是两次写入(将更新的块写入一个磁盘,将奇偶校验块写入另一个磁盘)

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

答案3

在 Centos5 上设置大型 Postgresql 机器时,我们发现最大的性能提升之一是将 RAID10 上的数据目录与主操作系统使用的目录分开。您希望尽可能多的驱动器磁头能够为您查找数据。

另外,花点时间调整 Postgres 安装,因为安装包时提供的默认安装性能很差。由于您期望以读取为主,因此您可能能够通过调整该工作负载来获得一些额外的性能。

答案4

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

在服务器繁忙的情况下,RAID-5 系统上的磁盘故障将影响系统的性能,当您更换磁盘并重建阵列时,这个问题将变得更加严重。RAID-10 不会对最终用户造成任何影响,而且当您更换故障磁盘时对服务交付的影响要小得多。

RAID-6 可以让你承受两个驱动器同时发生故障,但恕我直言,这并不是一个有效的说法,因为相关卷的性能将受到严重损害。此外,只要你有足够的备份,额外的冗余级别就没什么用,因为你无论如何都可以选择恢复数据。

相关内容