Reiser5 anuncia soporte para Burst Buffers (niveles de datos)

Eduard Shishkin anunciado Nuevas oportunidades desarrolladas en el marco del proyecto Reiser5. Reiser5 representa una versión significativamente rediseñada del sistema de archivos ReiserFS, en la que el soporte para volúmenes lógicos escalables paralelos se implementa en el nivel del sistema de archivos, en lugar de en el nivel del dispositivo de bloque, lo que le permite distribuir datos de manera eficiente en un volumen lógico.

Entre las innovaciones desarrolladas recientemente, la provisión de
la oportunidad para que el usuario agregue un pequeño alto rendimiento
dispositivo de bloque (por ejemplo, NVRAM) llamado disco proxya
volumen lógico relativamente grande compuesto de lentos
impulsores presupuestarios. Esto creará la impresión de que todos
el volumen se compone del mismo costoso alto rendimiento
dispositivos, como un “disco proxy”.

El método implementado se basó en la simple observación de que en la práctica el disco no se escribe constantemente y la curva de carga de E/S tiene forma de picos. En el intervalo entre dichos "picos", siempre es posible restablecer los datos del disco proxy, reescribiendo todos los datos (o solo una parte) en segundo plano en el almacenamiento principal "lento". Por lo tanto, el disco proxy siempre está listo para recibir una nueva porción de datos.

Esta técnica (conocida como Burst Buffers) se originó originalmente en
áreas de la informática de alto rendimiento (HPC). Pero también resultó tener demanda para aplicaciones ordinarias, especialmente para aquellas que imponen mayores exigencias en cuanto a la integridad de los datos (generalmente varios tipos de bases de datos). Dichas aplicaciones realizan cualquier cambio en cualquier archivo de forma atómica, a saber:

  • primero, se crea un nuevo archivo que contiene los datos modificados;
  • este nuevo archivo luego se escribe en el disco usando fsync(2);
  • después de eso, el nuevo archivo cambia de nombre al antiguo, que se elimina automáticamente
    Libera bloques ocupados por datos antiguos.

    Todos estos pasos, en un grado u otro, causan importantes
    degradación del rendimiento en cualquier sistema de archivos. Situación
    mejora si el nuevo archivo se escribe primero en el asignado
    dispositivo de alto rendimiento, que es exactamente lo que sucede en
    sistema de archivos con soporte Burst Buffers.

    En Reiser5 está previsto enviar opcionalmente no sólo
    nuevos bloques lógicos del archivo, pero también todas las páginas sucias en general. Además,
    no sólo páginas con datos, sino también con metadatos que
    están escritos en los pasos (2) y (3).

    El soporte para discos proxy se lleva a cabo en el contexto del trabajo regular con
    volúmenes lógicos Reiser5, Anunciado a principios de año. Eso es,
    el sistema agregado "disco proxy - almacenamiento principal" es normal
    volumen lógico con la única diferencia de que el disco proxy tiene prioridad
    entre otros componentes de volumen en la política de asignación de direcciones de disco.

    Agregar un disco proxy a un volumen lógico no va acompañado de ningún
    reequilibrio de datos, y su eliminación se produce exactamente de la misma manera que
    quitando un disco normal. Todas las operaciones del disco proxy son atómicas.
    El manejo de errores y la implementación del sistema (incluso después de una falla del sistema) ocurre exactamente de la misma manera que si el disco proxy fuera un componente normal.
    volumen lógico.

    Después de agregar un disco proxy, la capacidad total del volumen lógico
    aumenta en la capacidad de este disco. Monitoreo de espacio libre
    El disco proxy se realiza de la misma manera que para otros componentes del volumen, es decir. usando la utilidad volume.reiser4(8).

    El disco proxy debe limpiarse periódicamente, es decir. restablecer datos de
    al almacenamiento principal. Después de alcanzar la estabilidad beta Reiser5
    Está previsto que la limpieza sea automática (será gestionada por
    hilo de núcleo especial). En esta etapa, la responsabilidad de la limpieza.
    recae en el usuario. Restablecer datos del disco proxy al principal
    El almacenamiento se produce simplemente llamando a la utilidad volume.reiser4 con la opción
    "-b". Como argumento, debe especificar el punto de montaje de la lógica.
    volúmenes Eso sí, debes recordar realizar la limpieza periódicamente. Para
    Puede escribir un script de shell simple para hacer esto.

    Si no hay espacio libre en el disco proxy, todos los datos
    se escriben automáticamente en el almacenamiento principal. Al mismo tiempo, por defecto
    el rendimiento general del FS se reduce (debido a llamadas constantes
    procedimientos para realizar todas las transacciones existentes). Opcionalmente puedes configurar
    modo sin pérdida de rendimiento. Sin embargo, en este caso el disco
    El espacio del dispositivo proxy se utilizará de manera menos eficiente.
    Es conveniente utilizar una subsección de metadatos (ladrillo) como disco proxy, siempre que se cree en un dispositivo de bloque de rendimiento suficientemente alto.

    Fuente: opennet.ru

  • Añadir un comentario