我坚持如何最好地configuration磁盘arrays。 我们有Hp P2000 G3磁盘arrays和24个SAS物理磁盘,每个300Gb 。 我们需要configuration这个数组得到2个PostgreSQL 9.2副本,因为两个不同的系统。 正如我们所知,build议将数据库和事务日志(pg_xlog)文件存储在不同的磁盘上。
所以我们必须设置4个逻辑磁盘:
2 for transaction logs with RAID 1 2 for database with RAID 10
这是正确的分配scheme吗? 或者,最好只用4个逻辑磁盘做一个大的RAID 10?

分离xlogs和主要堆/索引的build议是减less磁盘刷新的影响。
这对高端设置来说不是必须的。 如果您关心性能,则应该使用具有持久回写式高速caching(电池备份,闪存或混合)的RAID控制器,并采用回写式高速caching模式。 这将几乎完全消除同步刷新的成本,并且允许您单独优化吞吐量。
这款HP P2000 G3磁盘arrays标配2GB的读/写caching。 确保它处于回写模式。
通常,对于RAID控制器和磁盘arrays,请确保购买回写caching模块并使用它。 无论花费多less钱都无关紧要,它将大大提高arrays的写入性能,您将不会相信它。
至于arrays布局,做出这些决定的最好方法是对吞吐量进行基准testing。 使用PgBench(最好调整来模拟你的工作量)和原始磁盘I / O基准。 看看arrays安排给你最好的吞吐量和最低的同步延迟。
请记住考虑多个磁盘故障。 RAID10中的2个8磁盘arrays(8个磁盘跨越,镜像一次)足够大,双磁盘故障完全可能。 你能负担得起的停机时间? 你会运行一个stream只读副本或PITR奴隶,所以你不会丢失数据,如果你失去你的arrays? 计算出故障概率,记住有50%的机会出现整个arrays的双盘故障。