Estoy usando un NAS de doble cabezal con respaldo ZFS para almacenamiento compartido de clúster de alta disponibilidad, basado en la arquitectura recomendada de Nexenta como se ve aquí:
Los discos en 1 JBOD almacenarán los archivos de la base de datos para una única base de datos Postgres de 4 TB y los discos en el otro JBOD almacenan 20 TB de archivos planos binarios crudos grandes (resultados del clúster para simulaciones de colisión de objetos estelares grandes). En otras palabras, el JBOD que respalda los archivos de Postgres manejará principalmente las cargas de trabajo aleatorias, mientras que el JBOD que respalda los resultados de la simulación manejará principalmente las cargas de trabajo en serie. Ambos nodos principales tienen 256 GB de memoria y 16 núcleos. El clúster tiene aproximadamente 200 núcleos, cada uno de los cuales mantiene una sesión de Postgres, por lo que espero unas 200 sesiones simultáneas.
Me pregunto si es conveniente en mi configuración que los nodos principales de ZFS actúen simultáneamente como un par duplicado de servidores de bases de datos Postgres para mi clúster. Los únicos inconvenientes que puedo ver son:
- Menos flexibilidad para escalar mi infraestructura.
- Nivel de redundancia ligeramente inferior.
- Memoria limitada y recursos de CPU para Postgres.
Sin embargo, la ventaja que veo es que ZFS es bastante tonto acerca de la conmutación por error automática de todos modos y no tengo que gastar mucho trabajo para que cada servidor de base de datos de Postgres descubra si un nodo principal ha fallado, ya que fallará junto con el jefe nodo.
postmaster.pid
) resultará en una grave corrupción de datos.