Pregunta ¿Usando el nodo principal de ZFS como servidor de base de datos?


Estoy usando un NAS con respaldo de doble cabezal ZFS para almacenamiento en clúster compartido de alta disponibilidad, basado en la arquitectura recomendada de Nexenta como se ve aquí:

enter image description here

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 la otra JBOD almacenarán 20 TB de archivos planos binarios grandes sin formato (resultados agrupados para grandes simulaciones de colisión de objetos estelares). En otras palabras, el JBOD que respalda los archivos de Postgres manejará principalmente cargas de trabajo aleatorias, mientras que el JBOD que respalda los resultados de la simulación manejará principalmente las cargas de trabajo seriales. 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 alrededor de 200 sesiones simultáneas.

Me pregunto si es prudente en mi configuración que los nodos de cabeza ZFS actúen simultáneamente como un par duplicado de servidores de base de datos Postgres para mi clúster. Los únicos inconvenientes que puedo ver son:

  1. Menos flexibilidad para escalar mi infraestructura.
  2. Nivel ligeramente más bajo de redundancia.
  3. Recursos limitados de memoria y CPU para Postgres.

Sin embargo, la ventaja que veo es que, de todos modos, ZFS es bastante tonto respecto a la conmutación por error automática y no tengo que gastar mucho trabajo para que cada servidor de base de datos de Postgres averigüe si un nodo principal ha fallado ya que fallará junto con la cabeza nodo.


7
2018-06-21 07:14


origen


PostgreSQL no poder se ejecutará en cualquier forma de modo de almacenamiento compartido. Los intentos de hacerlo fallarán. Intenta omitir las protecciones para evitar que lo hagas (como moverte / esconderte) postmaster.pid) resultará en una grave corrupción de datos. - Craig Ringer
@CraigRinger Hm, es esto contradictorio con wiki.postgresql.org/wiki/Shared_Storage? - elleciel
Puede ejecutarlo si garantiza absolutamente que solo un administrador de correo podrá acceder al directorio de datos al mismo tiempo. El buen STONITH / cercado es un requisito absoluto para evitar la corrupción de datos en grandes cantidades. Personalmente no hay manera de que lo haga. Esto también elimina los beneficios de los que está hablando (determinar cuál es el servidor principal / en vivo automáticamente, etc.) porque tiene que administrar la conmutación por error. - Craig Ringer
He revisado la página wiki para hacerlo más claro; Gracias por mencionarlo. - Craig Ringer
Esto no tiene sentido. La solución de HA de Nexenta está aprovechando Agrupación RSF-1. Parece que estás haciendo esto con ZFS en Linux sin la pieza RSF-1. Tenga en cuenta que ZFS en Linux realmente no tiene una opción de agrupación en clústeres, por lo que la referencia de Nexenta no se aplica. ¿Qué tienes que ganar al tener dos nodos principales? - ewwhite


Respuestas: