为 PostgresQL 数据库选择正确的 RAID 级别

为 PostgresQL 数据库选择正确的 RAID 级别

我有一个由 8 个磁盘(每个 1T)组成的磁盘阵列设备(UltraStor RS8IP4)。它将仅由 PostgresQL 数据库使用,我正在尝试为其选择最佳 RAID 级别。

由于我们要操作大型数据集(表、索引),并且要进行大量搜索/扫描,因此读取性能是最重要的。对于我们目前使用的旧磁盘,大多数减速都发生在 SELECT 上。

容错不太重要,可以是1个或2个磁盘。

空间是最不重要的因素,1T就够了。

在这种情况下,您会推荐哪种 RAID 级别。当前选项是 60、50 和 10,但其他选项可能更好。

答案1

通常,数据库的最佳实践是将数据库放在 RAID 10 或 RAID 1 上,与操作系统和交换分区分开。

对于 PostgreSQL,您可能还想为 WAL (pg_xlog) 目录规划一个小型、快速的 RAID 1,因为这将防止数据库在有大量写入时陷入困境。此外,如果您认为您将拥有多个高流量表,您可能希望为这些表设置单独的阵列/主轴(将它们放入不同的表空间)。

所有这些的重要性在很大程度上取决于您的工作量,但以上是一个好的开始。PostgreSQL wiki 可能还有其他好的建议 - 请参阅http://wiki.postgresql.org/wiki/Main_Page

答案2

Gregory Smith 在他的书中推荐 RAID 10PostgreSQL 9.0 高性能(如果您点击该链接并单击“示例章节”按钮,那么您将获得本书的第 2 章,其中介绍了如何选择数据库硬件)。

相关内容