Quiero compartir datos entre varias instancias de AWS de manera de alto rendimiento y baja latencia. Dar acceso de solo lectura a todas las instancias (excepto una instancia que manejaría escrituras) está bien. Dos puntos sobre este caso de uso:
- Los nodos conectados al volumen pueden aparecer y desaparecer en cualquier momento (iniciar, detenerse, finalizar, etc.).
- Los datos compartidos incluyen miles de archivos potencialmente pequeños que deben enumerarse y verificarse los metadatos.
Inicialmente probé EFS, pero es bastante lento para operaciones que necesitan enumerar o modificar cientos o miles de archivos pequeños.
Así que ahora estoy considerando la conexión múltiple de EBS. Sin embargo, para evitar la corrupción de datos, AWS recomienda utilizar únicamente un sistema de archivos en clúster como GFS2 u OCFS. Ambos parecen ser complejos y complicados de configurar, además de frágiles para el caso de uso de un clúster donde los nodos pueden aparecer y desaparecer en cualquier momento. Por ejemplo, GFS2 requiere que se reinicie el software del clúster en todos los nodos si el número de nodos pasa de más de 2 a exactamente 2; o agregar un nuevo nodo implica iniciar sesión en un nodo actual, ejecutar algunos comandos y posiblemente redistribuir un archivo de configuración actualizado a todos los demás nodos. Simplemente parece realmente inflexible y con muchos gastos generales adicionales.
Pero si estuviera seguro de que solo 1 instancia escribiría en el disco (o posiblemente cada instancia solo podría escribir en su propia subcarpeta o incluso en la partición del disco), ¿podría usar un sistema de archivos normal como XFS para este volumen y salirme con la mía? ? ¿O habría problemas sutiles de corrupción de datos incluso si el acceso es técnicamente de solo lectura o el acceso de escritura está restringido a subcarpetas o particiones específicas de la instancia?
¿O me falta una solución completamente diferente?
Respuesta1
Probé esto (XFS) y no funciona. Necesita un sistema de archivos agrupado. Lo mejor es utilizar un sistema de archivos agrupado. Mire otras opciones como Veritas Infoscale.
Respuesta2
Compartir contenido de volumen estático parece funcionar bien con XFS normal y de conexión múltiple. Las "agregaciones" activas al volumen solo son visibles para la instancia que escribió los datos. Una vez establecido esto, no probé las "actualizaciones" o "eliminaciones" activas, suponiendo que también serían vistas solo por el autor, pero que potencialmente podrían interrumpir el acceso a esos datos en otras instancias. Las instancias reiniciadas, reiniciadas y/o reconectadas ven el estado del volumen más reciente. Por lo tanto, el caso de uso en el que una instancia escribe datos nuevos con poca frecuencia, lo que desencadena, por ejemplo, reinicios forzados para que los demás finalmente vean esos datos, parece ser un caso de uso que esta tecnología puede admitir.