ell*_*iel 9 postgresql zfs storage high-availability zfsonlinux
我使用双头 ZFS 支持的 NAS 用于高可用性集群共享存储,基于 Nexenta 推荐的架构,如下所示:
1 个 JBOD 中的磁盘将存储单个 4 TB Postgres 数据库的数据库文件,另一个 JBOD 中的磁盘存储 20 TB 的大型原始二进制平面文件(大型恒星物体碰撞模拟的集群结果)。换句话说,支持 Postgres 文件的 JBOD 将主要处理随机工作负载,而支持模拟结果的 JBOD 将主要处理串行工作负载。两个头节点都有 256 GB 内存和 16 个内核。该集群有大约 200 个内核,每个内核维护一个 Postgres 会话,所以我预计大约有 200 个并发会话。
我想知道在我的设置中让 ZFS 头节点同时充当集群的一对镜像 Postgres 数据库服务器是否明智?我能看到的唯一缺点是:
但是,我看到的优点是 ZFS 无论如何在自动故障转移方面都非常愚蠢,而且我不必花费大量工作让每个 Postgres 数据库服务器确定头节点是否发生故障,因为它会与头节点一起失败节点。
您不能让两个 Postgres 实例(Postgres 术语中的“集群”)作用于相同的物理文件。
如果您想要性能,分片可能会帮助您(有两个实例,每个实例承载不同的数据)
如果您想要高可用性,那么使用 STONITH 进行故障转移可能是解决方案。您需要确保硬件已修复,当第二个节点为其提供服务时,它不会尝试打开数据库。
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |