GlusterFS divide el cerebro sin camino, ¿qué significa?


11

Solo estaba verificando el estado de mis volúmenes de glusterfs y tengo uno con entradas de cerebro dividido que no tienen ruta:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Qué significa eso? ¿Cómo lo soluciono?

Estoy ejecutando GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git

¿Utiliza solo 2 servidores en su clúster?
Huérfanos

Respuestas:


8

¿Qué es el cerebro dividido?

Como se menciona en la Documentación oficial sobre la administración de Split-Brain proporcionada por RedHat, split-brain es un estado en el que las inconsistencias de datos o disponibilidad que se originan del mantenimiento de dos conjuntos de datos separados con superposición en el alcance, ya sea debido a servidores en un diseño de red, o una condición de falla basada en servidores que no se comunican y sincronizan sus datos entre sí. Y es un término aplicable para replicar la configuración.

Tenga en cuenta que se dice "una condición de falla basada en servidores que no se comunican y sincronizan sus datos entre sí" , debido a cualquier probabilidad, pero eso no significa que sus nodos puedan perder la conexión. El par aún puede estar en clúster y conectado.

Tipos de cerebro dividido:

Tenemos tres tipos diferentes de cerebro dividido, y hasta donde puedo ver, el tuyo es el cerebro dividido de entrada. Para explicar tres tipos de cerebro dividido:

  • Datos de cerebro dividido: el contenido del archivo bajo cerebro dividido es diferente en diferentes pares de réplicas y no es posible la curación automática.

  • Metadata split-brain:, Los metadatos de los archivos (ejemplo, atributo extendido definido por el usuario) son diferentes y no es posible la curación automática.

  • Entrada de cerebro dividido: sucede cuando un archivo tiene diferentes gfids en cada par de réplicas.


¿Qué es el GFID?

El identificador de archivo interno (GFID) de GlusterFS es un uuid que es único para cada archivo en todo el clúster. Esto es análogo al número de inodo en un sistema de archivos normal. El GFID de un archivo se almacena en su xattr llamado trusted.gfid. Para encontrar la ruta desde GFID, le recomiendo que lea este artículo oficial proporcionado por GlusterFS.


¿Cómo resolver la entrada de cerebro dividido?

Existen varios métodos para evitar que se produzca un cerebro dividido, pero para resolverlo, se deben eliminar los archivos de enlace gfid correspondientes. Los archivos gfid-link están presentes en el directorio .glusterfs en el directorio de nivel superior del ladrillo. Por cierto, tenga en cuenta que antes de eliminar los enlaces gfid, debe asegurarse de que no haya enlaces duros a los archivos presentes en ese ladrillo. Si existen enlaces duros, también debe eliminarlos. Luego puede usar el proceso de autocuración ejecutando los siguientes comandos.

Mientras tanto, para ver la lista de archivos en un volumen que están en un estado de cerebro dividido, puede usar:

# gluster volume heal VOLNAME info split-brain

También debe tener en cuenta que para los volúmenes replicados, cuando un ladrillo se desconecta y vuelve a estar en línea, se requiere una reparación automática para volver a sincronizar todas las réplicas.

Para verificar el estado de curación de volúmenes y archivos puede usar:

# gluster volume heal VOLNAME info

Como está utilizando la versión 3.5, no tiene curación automática. Entonces, después de seguir los pasos mencionados anteriormente, debe activar la autocuración. Para hacerlo:

  • Solo en los archivos que requieren curación:

    # gluster volume heal VOLNAME

  • En todos los archivos:

    # gluster volume heal VOLNAME full

Espero que esto te ayude a solucionar tu problema. Por favor lea los documentos oficiales para más información. Salud.


2

Creo que el documento es lo suficientemente claro, incluso te dio un ejemplo similar.

Y para los comandos de curación de Gluesterfs como

volumen de descarga de curación ** VOLNAME ** cerebro dividido último mtime ** ARCHIVO **

ARCHIVO puede ser el nombre de archivo completo como se ve desde la raíz del volumen (o) la representación de cadena gfid del archivo

Entonces no necesitas preocuparte por eso.

Y como convertir GFID a ruta dice:

El identificador de archivo interno (GFID) de GlusterFS es un uuid que es único para cada archivo en todo el clúster.

este script puede decirle qué nombre de archivo pertenece a qué gfid, pero ocurrió la división del cerebro, puede que no tenga un nombre de archivo.

Está ejecutando 3.5 y no tiene un cmd de curación semiautomático, por lo que es posible que deba solucionar el conflicto usted mismo manualmente, lo que normalmente significa decidir qué archivo gfid debe eliminarse.


Mi versión de Gluster no parece tener ese comando, de lo contrario, sí, eso es sencillo. Además, no tengo nombres de archivo, tengo uuids.
pupeno

2

¿Cómo lo soluciono?

La resolución del cerebro dividido se puede encontrar aquí . En caso de que no sirva de mucho, el manual de instrucciones aquí debería hacer el trabajo. Para el caso, veo que el artículo también es útil.

Cómo evitar el cerebro dividido.

La protección contra particiones de red se realiza mediante un algoritmo de votación de quórum. En caso de que falle un host, o haya un escenario de cerebro dividido en el que los nodos continúen ejecutándose pero ya no puedan comunicarse entre sí, el nodo o nodos restantes en la agrupación se apresuran a colocar una reserva SCSI en la unidad testigo. En el caso de un cerebro dividido, el testigo ayudará a decidir cuál de los anfitriones que tiene una copia de los datos debe asumir el control.

Algunos ejemplos.

VMware VSAN permite ejecutar un clúster de 2 nodos con la unidad testigo ejecutándose en un tercer host o en la nube. Fuente

StarWind Virtual SAN se ejecuta en una configuración de solo 2 nodos utilizando el servicio Microsoft Failover Cluster, que también contiene un mecanismo de votación de quórum para evitar el problema de cerebro dividido. Fuente

Para ambos, la red Heartbeat se utiliza para servir / monitorear la comunicación entre nodos y quórum. Para evitar un cerebro dividido, veo que es obligatorio usar canales Heartbeat redundantes.


1

El cerebro dividido ocurre cuando dos nodos de un grupo están desconectados. Cada nodo piensa que el otro no está funcionando.

cerebro dividido

Para solucionarlo, debe comprender por qué sus dos nodos ya no se hablan entre sí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.