postgres 的最佳 RAID 配置

postgres 的最佳 RAID 配置

我正在购买一台带有 8 个 SAS 磁盘的服务器来执行数据库密集型程序。目前的主要瓶颈是 postgres 中的大型索引扫描。

我目前正在决定是使用 8x300Gb 10k 磁盘还是 8x140Gb 15k 磁盘,因为拥有 200Gb+ 逻辑空间会更方便。

RAID 控制器的规格表指出:“集成硬件 RAID-0、-1、-1E,可选 RAID-5、-6、-10、-50、-60”

什么是最佳的 RAID 配置,哪种磁盘选择最合适?

我是 RAID 和 postgres 配置的新手,感谢您的建议。

答案1

集成硬件 RAID-0、-1、-1E,可选 RAID-5、-6、-10、-50、-60

这听起来有点让我担心,听起来像是一个低端 RAID 控制器。您需要一个能够跟上 8 个快速硬盘驱动器(实际上这不是必然的)的优质 RAID 控制器。如果您对数据库的写入量相当大,那么您确实需要一个电池备份单元,并启用电池保护写缓存在 RAID 控制器上。

对于 RAID 磁盘布局,有两种常见的观点:

  1. 镜像中的 2 个磁盘用于操作系统,镜像中的 2 个磁盘用于数据库事务日志,RAID 10 中的 4 个磁盘用于主数据库文件。
  2. 一个使用所有磁盘的大型 RAID 10 阵列,以及此阵列上的所有操作系统 + 日志 + 数据存储文件(参见此处的推理,由 BAARF 反映)。

我宁愿不偏袒 RAID 卷设计,因为它往往会变成一个有点不切实际的讨论。理想情况下,您应该尝试不同的存储布局,并针对您的特定工作负载对它们进行基准测试。我的直觉是 RAID10 中的所有磁盘在多个工作负载下都更快、更稳定。

最后一件事,确保操作系统分区和 RAID 条带边界对齐看这里,以 Windows 为中心,但原则是通用的)。您可以在创建分区时执行此操作。

答案2

选择大型 RAID10 阵列中的 8x146GB 磁盘(4 个镜像对条带化在一起)。这应该会为您提供最佳的 IO 访问速度。

答案3

您应该阅读以下信息巴林航空研究基金会与任何 RAID 五(四,...呃...,免费)的对抗。因此,建议使用 RAID 10。

对于数据库性能来说,使用更多更快的磁盘(即使它们更小)而不是更少更慢的磁盘(即使它们更大)。

答案4

不要忘记将您的 ext3/4 与 RAID 条带/步幅大小对齐。(man mkfs.ext3/4 -> stride)

顺便问一下,是否有任何 postgres 设置可以使其写入与条带大小匹配?

(也可以在 Google 上搜索 RAID5 写入漏洞)

相关内容