MooseFS es una red distribuida tolerante sistema de fallas, el archivo que se transmite datos a través de varios servidores físicos que son visibles para el usuario como un recurso de & nbsp; para las operaciones de archivo estándar MooseFS actúa como otros sistemas de archivos Unix igual.:
& Nbsp; * Una estructura jerárquica (árbol de directorios)
& Nbsp; * atributos de archivo Tiendas POSIX (permisos, último acceso y modificación)
& Nbsp; * Soporta archivos especiales (dispositivos de bloque y de carácter, tuberías y tomas de corriente)
& Nbsp; * Los enlaces simbólicos (nombres de archivo que apunta a los archivos, no necesariamente en MooseFS objetivo) y enlaces duros (diferentes nombres de archivos que se refieren a los mismos datos en MooseFS)
& Nbsp; * El acceso al sistema de archivos puede ser limitado basa en la dirección y / o contraseña IP
Características distintivas de MooseFS son:
& Nbsp; * Alta fiabilidad (varias copias de los datos pueden ser almacenados a través de equipos independientes)
& Nbsp; * Capacidad es dinámicamente extensible adjuntando nuevas computadoras / discos
& Nbsp; * Los archivos eliminados se conserven durante un periodo de tiempo configurable (un "cubo de basura" nivel de sistema de archivos)
& Nbsp; * instantáneas coherentes de archivos, incluso mientras el archivo se está escribiendo / accederse
MooseFS consta de cuatro componentes:
& Nbsp; * Servidor de Gestión (servidor principal) y ndash; una sola máquina gestión de todo el sistema de archivos, almacenamiento de metadatos para cada archivo (información sobre el tamaño, las características y la ubicación del archivo (s), incluyendo toda la información acerca de los archivos que no son fijos, es decir, directorios, zócalos, tuberías y dispositivos).
& Nbsp; * Servidores de datos (servidores trozo) - cualquier cantidad de servidores de productos básicos que almacenan archivos de datos y sincronización que entre ellos (si se supone que un determinado archivo de existir en más de una copia).
& Nbsp; * servidor de copia de seguridad de metadatos (s) (servidor metalogger) - cualquier cantidad de servidores, todos los cuales changelogs almacén de metadatos y descargar periódicamente archivo principal metadatos; a fin de promover estos servidores a la del papel del servidor de gestión al maestro primario deja de funcionar.
& Nbsp; * Los equipos cliente que acceden (Mount) los archivos en MooseFS - cualquier número de máquinas que utilizan proceso mfsmount para comunicarse con el servidor de gestión (para recibir y modificar los metadatos de archivos) y con chunkservers (intercambio de datos real de los archivos).
mfsmount se basa en el mecanismo de FUSE (Sistema de archivos en el espacio de usuario), por lo MooseFS está disponible en cualquier sistema operativo con una implementación FUSE trabajo (Linux, FreeBSD, MacOS X, etc.)
Los metadatos se almacenan en la memoria del servidor de gestión y al mismo tiempo guardado en el disco (como un archivo binario actualizado periódicamente e inmediatamente actualiza registros incrementales). El archivo binario principal, así como los registros se sincronizan con los metaloggers (si está presente).
Los datos del archivo se divide en fragmentos (trozos) con un máximo de 64MiB cada uno. Cada trozo es en sí mismo un archivo en los discos seleccionados en los servidores de datos (chunkservers).
Alta fiabilidad se logra mediante la configuración de tantos servidores de datos diferentes de forma que activen el valor "objetivo" (número de copias para guardar) establecidos para el archivo dado.
¿CÓMO FUNCIONA EL SISTEMA
Todas las operaciones de archivos en un equipo cliente que ha montado MooseFS son exactamente los mismos que estarían con otros sistemas de archivos. El núcleo del sistema operativo transfiere todas las operaciones de archivo en el módulo FUSE, que se comunica con el proceso mfsmount. El proceso mfsmount comunica a través de la red, posteriormente, con los servidores de datos y gestión de servidores (servidores trozo). Todo este proceso es totalmente transparente para el usuario.
mfsmount se comunica con el servidor de gestión cada vez que se requiere una operación de metadatos del archivo:
& Nbsp; * la creación de archivos
& Nbsp; * la eliminación de archivos
& Nbsp; * Guías de lectura
& Nbsp; * atributos de lectura y cambiantes
& Nbsp; * cambiar los tamaños de archivo
& Nbsp; * en el inicio de la lectura o escritura de datos
& Nbsp; * en cualquier acceso a los archivos especiales en MFSMETA
mfsmount utiliza una conexión directa con el servidor de datos (servidor trozo) que almacena el fragmento correspondiente de un archivo. Al escribir un archivo, después de terminar el proceso de escritura, el servidor de gestión recibe información de mfsmount para actualizar la longitud de un archivo y la última fecha de modificación.
Además, los servidores de datos (servidores chunk) se comunican entre sí para replicar datos a fin de lograr el número apropiado de copias de un archivo en diferentes máquinas.
& Nbsp;
la tolerancia a fallos
& Nbsp;
Los mandatos administrativos permiten al administrador del sistema para especificar el "objetivo", o el número de copias que deben mantenerse en un nivel por directorio o por archivo. Ajuste de la meta a más de uno y que tiene más de un servidor de datos proporcionará tolerancia a fallos. Cuando los datos de archivo se almacena en muchas copias (en más de un servidor de datos), el sistema es resistente a los fallos o interrupciones temporales de la red de un único servidor de datos.
Por supuesto, esto no se refiere a los archivos con el "objetivo" establecido en 1, en cuyo caso sólo existirá el archivo en un único servidor de datos, independientemente de la cantidad de datos se implementan servidores en el sistema.
Excepcionalmente archivos importantes pueden tener su meta establecida en un número superior a dos, lo que permitirá que estos archivos sean resistentes a la ruptura de más de un servidor a la vez.
En general, el ajuste del número de copias disponibles debe ser uno más que el número previsto de servidores inaccesibles o fuera de orden.
En el caso en que un único servidor de datos experimenta un fallo o la desconexión de la red, los archivos almacenados en su interior que tenía al menos dos copias, permanecerá accesible desde otro servidor de datos. Los datos que ya está 'bajo su objetivo "será replicado en otro servidor de datos accesible para proporcionar de nuevo el número requerido de copias.
Cabe señalar que si el número de servidores disponibles es menor que el "objetivo", establecido para un archivo dado, el número necesario de copias no puede ser preservado. Del mismo modo, si hay el mismo número de servidores como el objetivo fijado en la actualidad y si es un servidor de datos ha alcanzado el 100% de su capacidad, será incapaz de comenzar a realizar una copia de un archivo que ya está por debajo de su umbral de gol debido a otro servidor de datos de desconectarse. En estos casos un nuevo servidor de datos debe ser conectado al sistema tan pronto como sea posible a fin de mantener el número deseado de copias del archivo.
Un nuevo servidor de datos se puede conectar al sistema en cualquier momento. La nueva capacidad se convertirá inmediatamente disponibles para su uso para almacenar nuevos archivos o para mantener copias duplicadas de archivos de otros servidores de datos.
Existen servicios de administración para consultar el estado de los archivos dentro del sistema de archivos para determinar si alguno de los archivos son actualmente por debajo de su objetivo (número de copias). Esta utilidad también se puede utilizar para alterar el ajuste de la meta según se requiera.
Los fragmentos de datos almacenados en los trozos están versionadas, por lo que re-conexión de un servidor de datos con copia más antigua de datos (como si hubiera estado fuera de línea durante un período de tiempo), no va a hacer que los archivos a ser incoherente. El servidor de datos se sincronizará en sí para mantener las versiones actuales de los bloques, en los que se eliminarán los trozos obsoletos y el espacio libre serán reasignados para sostener los nuevos trozos.
Los fracasos de una máquina cliente (que se ejecuta el proceso mfsmount) tendrán ninguna influencia sobre la coherencia del sistema de archivos o en las operaciones del otro cliente. En el peor de los casos los datos que aún no ha sido enviado desde el equipo cliente no puede perderse.
& Nbsp;
PLATAFORMAS
& Nbsp; MooseFS está disponible en cualquier sistema operativo con una implementación FUSE de trabajo:
& Nbsp; * Linux (Linux 2.6.14 y hasta tiene soporte FUSE incluido en el kernel oficial)
& Nbsp; * FreeBSD
& Nbsp; * OpenSolaris
& Nbsp; * MacOS X
El servidor maestro, servidor metalogger y chunkservers también se pueden ejecutar en Solaris o Windows con Cygwin. Desafortunadamente sin FUSE no será posible montar el sistema de ficheros dentro de estos sistemas operativos
¿Qué hay de nuevo en esta versión:.
- < li> Los cambios más importantes son señal fija en el manejo de módulos multiproceso, los límites de la portería y trashtime en mfsexport.cfg, y un simple control de los archivos de metadatos descargados.
¿Qué hay de nuevo en la versión 1.6.19:
- Los cambios sustanciales se introdujeron a la máquina metalogger y metarestore herramienta para una mejor integridad de los metadatos.
- Se añadió una barra de progreso de la exploración en el CS.
- El nombre principal se ha resuelto cuando falla una conexión.
- Se crea una nueva sesión cuando se pierde el anterior.
- se hicieron Muchas otras correcciones de errores y mejoras.
¿Qué hay de nuevo en la versión 1.6.17:
- En esta versión se introdujo una gestión automática de caché de datos .
- Es suficiente para actualizar sólo el servidor maestro (no hay cambios en los servidores del pedazo o de los clientes código se hizo).
- El mecanismo de caché de kernel ha existido siempre, pero hasta ahora el caché siempre fue despejado al abrir un archivo. Ahora MooseFS controla si autoriza o no comprobando si el archivo fue o modificados por otro cliente. Echemos un vistazo a algunos escenarios.
- Primer escenario:
- 1. El equipo A lee el archivo X
- 2. Equipo B lee el archivo X
- 3. El equipo A quiere leer el archivo X - dejamos el caché (el archivo no se ha modificado)
- Segundo escenario:
- 1. El equipo A lee el archivo X
- 2. El equipo A se escribe en el archivo X
- 3. El equipo A quiere tor leer el archivo X - dejamos el caché (el archivo se ha cambiado, pero el equipo A sabe acerca de estos cambios)
- Tercer escenario:
- 1. El equipo A lee el archivo X
- 2. Equipo B escribe en el archivo X
- 3. El equipo A quiere leer el archivo X - aquí tenemos a la fuerza para vaciar la caché (porque los cambios fueron hechos por B PC y el equipo A no saber de ellos)
- En entornos reales primera y segunda escenarios suceden, con mucho más frecuencia que el tercer escenario y por eso es razonable dejar el contenido de la memoria caché y obtener un rendimiento general del sistema.
- Por supuesto, hay algunos escenarios de medias (pero también existían antes) como la siguiente:
- 1. El equipo A se abre el archivo X y lo lee por completo (el archivo se mantiene en cache)
- 2. Equipo B modifica el archivo X
- 3. El equipo A de nuevo lee el archivo X (pero sin cerrar o reapertura - sólo se mueve a la posición 0 y releerlo)
- En esta situación el equipo A obtendría los mismos datos que en el paso 1, pero el mismo también sucedió en MooseFS antes.
- Un nodatacache atributo también se introdujo que prohíbe almacenar en caché un archivo. Desde la versión 1.6.17 de seguridad de archivos con nodatacache atributo se comportan como los archivos en las versiones anteriores de MooseFS. Esta bandera se puede utilizar con herramientas mfsseteattr, mfsdeleattr y mfsgeteattr.
- Esta bandera se añadió de forma preventiva y probablemente no será necesario utilizarlo. Si después de un tiempo, parece que esto es realmente inútil será borrada. Pero si usted encuentra cualquier caso / escenario que exige la desactivación del mecanismo de caché automático por favor, comparta con nosotros.
Comentarios que no se encuentran