我正在使用基于Zex支持的双头NAS进行高可用性群集共享存储,基于Nexenta的推荐体系结构,如下所示:
1个JBOD中的磁盘将存储单个4 TB Postgres数据库的数据库文件,另一个JBOD中的磁盘将存储20 TB的大型原始二进制平面文件(大型恒星对象碰撞模拟的集群结果)。换句话说,支持Postgres文件的JBOD将主要处理随机工作量,而支持模拟结果的JBOD将主要处理串行工作量。两个头节点均具有256 GB的内存和16个内核。集群有大约200个核心,每个核心维护一个Postgres会话,因此我希望有大约200个并发会话。
我想知道在我的设置中让ZFS头节点同时充当集群的Postgres数据库服务器镜像对是否明智?我唯一看到的缺点是:
- 扩展我的基础架构的灵活性较低。
- 冗余级别略低。
- Postgres的内存和CPU资源有限。
但是,我看到的好处是ZFS对于自动故障转移还是很愚蠢的,而且我不必花费很多工作就可以使每个Postgres数据库服务器确定头节点是否发生故障,因为它会与头节点一起发生故障节点。
@CraigRinger嗯,这与wiki.postgresql.org/wiki/Shared_Storage矛盾吗?
—
elleciel 2014年
如果您绝对保证只有一个邮局主管可以同时访问数据目录,则可以运行它。良好的STONITH /防护是避免大量数据损坏的绝对要求。就个人而言,我是不会做的。这也消除了您在谈论的好处-自动确定哪个是主服务器/活动服务器,等等-因为您必须管理故障转移。
—
Craig Ringer 2014年
我已经修改了Wiki页面,使其更加清晰。感谢您指出。
—
Craig Ringer 2014年
这没有道理。Nexenta的HA解决方案正在利用RSF-1群集。听起来好像您是在Linux上使用ZFS来执行此操作的,而没有安装RSF-1。请注意,Linux上的ZFS确实没有群集选项,因此Nexenta引用不适用。通过拥有两个头节点,您将获得什么?
—
ewwhite 2014年
postmaster.pid
)将导致严重的数据损坏。