postgres 的最佳 RAID 配置

pst*_*ton 2 postgresql raid hardware-raid

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

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

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

什么是最好的 RAID 配置,以及最合适的磁盘选择是什么?

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

Jes*_*r M 9

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

这对我来说听起来有点令人担忧,它听起来像一个低端的 RAID 控制器。您需要一个能够与 8 个快速 HDD 保持同步的良好 RAID 控制器(这实际上不是给定的)。如果您对数据库进行了大量写入,那么您确实需要一个电池备份单元,并在 RAID 控制器上启用电池保护的写入缓存

至于 RAID 磁盘布局,有两种常见的思想流派:

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

我不想在 RAID 卷设计上偏袒任何一方,它往往会成为一种轻描淡写的讨论。理想情况下,您应该尝试不同的存储布局,并针对您的特定工作负载对它们进行基准测试。我的直觉是 RAID10 中的所有磁盘在多个工作负载下都更快、更健壮。

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


rod*_*jek 7

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