Solución 1:
No puedo hablar con el resto, pero parece estar confundido entre un 'motor de almacenamiento distribuido' y un 'sistema de archivos distribuido'. No son lo mismo, no deben confundirse con lo mismo, y nunca serán lo mismo. Un sistema de archivos es una forma de realizar un seguimiento de dónde se encuentran las cosas en un disco duro. Un motor de almacenamiento como hadoop es una forma de realizar un seguimiento de una parte de los datos identificados por una clave. Conceptualmente, no hay mucha diferencia. El problema es que un sistema de archivos es una dependencia de un motor de almacenamiento... después de todo, necesita una forma de escribir en un dispositivo de bloque, ¿no es así?
Aparte de eso, puedo hable sobre el uso de ocfs2 como un sistema de archivos distribuido en un entorno de producción. Si no quiere los detalles ásperos, deje de leer después de esta línea:es genial, pero puede significar más tiempo de inactividad de lo que cree.
Hemos estado ejecutando ocfs2 en un entorno de producción durante los últimos dos años. Está bien, pero no es bueno para muchas aplicaciones. Realmente debe mirar sus requisitos y descubrir cuáles son; es posible que descubra que tiene mucha más libertad para las fallas de lo que pensaba que tenía.
Como ejemplo, ocfs2 tiene un diario para cada máquina en el clúster que va a montar la partición. Entonces, digamos que tiene cuatro máquinas web, y cuando crea esa partición usando mkfs.ocfs2, especifica que habrá seis máquinas en total para tener algo de espacio para crecer. Cada uno de esos diarios ocupa espacio, lo que reduce la cantidad de datos que puede almacenar en los discos. Ahora, supongamos que necesita escalar a siete máquinas. En esa situación, debe eliminar la totalidad clúster (es decir, desmonte todas las particiones ocfs2) y use la utilidad tunefs.ocfs2 para crear un diario adicional, siempre que haya espacio disponible. Entonces, y solo entonces, puede agregar la séptima máquina al clúster (lo que requiere que distribuya un archivo de texto al resto del clúster a menos que esté usando una utilidad), recuperar todo y luego montar la partición en los siete máquinas.
¿Ves lo que quiero decir? Se supone que es de alta disponibilidad, lo que se supone que significa 'siempre en línea', pero justo ahí tienes un montón de tiempo de inactividad... y Dios no lo quiera, estás abarrotado de espacio en disco. NO quieres ver lo que sucede cuando llenas ocfs2.
Tenga en cuenta que evms, que solía ser la forma 'preferida' de administrar los clústeres de ocfs2, ha seguido el camino del pájaro dodo a favor de clvmd y lvm2. (Y buen viaje a evms). Además, heartbeat se convertirá rápidamente en un proyecto zombi a favor de la pila openais/marcapasos. (Aparte:al realizar la configuración inicial del clúster para ocfs2, puede especificar 'pcmk' como el motor del clúster en lugar de heartbeat. No, esto no está documentado).
Por si sirve de algo, volvimos a nfs administrado por pacemaker, porque los pocos segundos de tiempo de inactividad o algunos paquetes tcp perdidos mientras pacemaker migra un recurso compartido de nfs a otra máquina es trivial en comparación con la cantidad de tiempo de inactividad que estábamos viendo para basic operaciones de almacenamiento compartido como agregar máquinas cuando se usa ocfs2.
Solución 2:
Creo que tendrá que abandonar el requisito POSIX, muy pocos sistemas lo implementan; de hecho, incluso NFS no lo hace realmente (piense en bloqueos, etc.) y eso no tiene redundancia.
Cualquier sistema que use replicación síncrona será extremadamente lento; cualquier sistema que tenga replicación asíncrona (o "coherencia eventual") violará las reglas POSIX y no se comportará como un sistema de archivos "convencional".
Solución 3:
Puede que esté malinterpretando sus requisitos, pero ¿ha consultado http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems
?Solución 4:
Solo para arrojar mis 0,02 € aquí:¿OpenAFS no puede hacer lo que quieres?
Solución 5:
Eche un vistazo a chirp http://www.cse.nd.edu/~ccl/software/chirp/ y loro http://www.cse.nd.edu/~ccl/software/parrot/