¿Cuál es el mejor software de sistema de archivos distribuido con el rendimiento más similar al Elastic Block Storage de Amazon?

Soy el líder tecnológico para la próxima versión principal de uno (GlusterFS) y he ejecutado la mayoría de los otros. Para ser completamente honesto, si su capacidad y las necesidades de IOPS pueden ser satisfechas por un servidor, yo diría que solo use NFS antiguo. Cualquier sistema de archivos distribuido será más difícil de configurar o mantener, y la coordinación necesaria para hacer que la parte “distribuida” funcione siempre afectará el rendimiento (especialmente la latencia) al menos un poco. Eso es especialmente cierto cuando la replicación está involucrada. Si le preocupa la disponibilidad, configurar la conmutación por error para un servidor NFS probablemente sea aún más fácil que configurar cualquier sistema de archivos distribuido. Dicho esto, si insiste en seguir esta ruta, aquí están algunas de mis impresiones.

  • Ceph
    Fantástico proyecto, gente fantástica. La configuración no es tan fácil como podría ser, y el componente del sistema de archivos aún no se considera 100% listo para el horario de máxima audiencia (aunque se está acercando muchísimo).
  • GlusterFS
    Fácil de configurar. Contrariamente a las opiniones de las personas que solo lo han comparado con NFS o (peor) sistemas de archivos locales en lugar de otros sistemas de archivos distribuidos, el rendimiento es bastante bueno. En el lado negativo, si algo sale mal, el diagnóstico y la reparación pueden ser más difíciles de lo que cabría esperar.
  • BeeGFS (anteriormente FhGFS)
    No lo he ejecutado, porque no es realmente de código abierto. Las personas cuyas opiniones respeto, dicen que es fácil de configurar y que el rendimiento es bueno. Arquitectónicamente, una estafa de Lustre, antes de que el proyecto implementara múltiples servidores de metadatos (en su tercer intento). Sin embargo, ese posible cuello de botella probablemente no será un problema a su escala.
  • mhddfs
    Nunca lo ejecutes, porque nunca he oído hablar de él.
  • MooseFS
    También es fácil de configurar y un rendimiento decente, pero parte de eso parecía ser porque (en ese momento) realmente no escribía datos sincrónicamente. Cualquiera puede ir rápido si infringe las reglas y no fuerza los datos al disco cuando se supone que deben hacerlo. Hace un par de años, mencioné esto con el autor de la bifurcación LizardFS, que es la que recomendaría, y bien podría solucionarse allí. Tiene el mismo problema de servidor de metadatos únicos que BeeGFS.
  • XtreemFS
    Largo uno de mis proyectos favoritos en este espacio que no sea el mío, aunque es una bestia ligeramente diferente a los demás. Excelente para la replicación segura de grandes conjuntos de datos bastante estáticos (comenzó en la comunidad física europea) especialmente a través de una WAN. Probablemente funcionará, y funcionará razonablemente bien, para el tipo de carga de trabajo que tiene, pero eso no es realmente lo mejor. En algún lugar entre GlusterFS y Ceph cuando se trata de la complejidad de la configuración.

Una cuestión a tener en cuenta, específicamente para AWS, es que todo esto depende de la replicación (o, en el mejor de los casos, la codificación de borrado) para una alta disponibilidad. Eso significa que necesitará más espacio EBS que con el servidor NFS Plain Old más la conmutación por error, y en Amazon-land eso significa más $$$.

More Interesting

¿Refactorizar a métodos simples y obvios es mejor que el desarrollo basado en pruebas?

¿Cuál es el costo de crear una aplicación de acuerdo con esta plantilla?

¿Qué lenguaje de programación debo aprender a codificar software para la industria química para que puedan cambiar el valor de un ejemplo de vapor?

¿Un verano sin una pasantía tecnológica afectaría en gran medida mis posibilidades de entrevistas a partir de entonces?

¿Cuáles son algunas cosas que solo los ingenieros de software más antiguos sabrán y entenderán típicamente?

¿Hay alguna empresa pequeña / freelance con experiencia que pueda hacer un gran sitio web utilizando software de código abierto y basado en Andheri West Mumbai (PHP / Ruby on Rails / WordPress)?

Veo muchos desarrolladores que muestran su configuración con varios monitores. ¿Es realmente útil / necesario trabajar con más de un monitor?

¿Existe un enfoque o software que un empresario pueda usar para recopilar los requisitos de desarrollo de aplicaciones?

¿Cuál es una explicación simple de una tabla hash distribuida?

¿Cómo se desarrolla un lenguaje de programación y cuál es la base de un lenguaje?

Estoy escribiendo una tesis escolar sobre TDD aplicado a aplicaciones web. ¿Qué tipo de proyecto sería mejor para exhibir TDD?

¿Qué camino debe seguir un desarrollador web después de realizar una Licenciatura en Ingeniería de Software?

¿Es la ingeniería de software un curso de CS o CE?

¿Qué esperarías de un documento de mejores prácticas al desarrollar widgets de formulario de Symfony 1.4?

¿Cuál es la diferencia entre la arquitectura 'modelo en MVC' y 'nivel de datos de 3 niveles'?