Lanzamiento del sistema de archivos Bcachefs 1.33.0

Kent Overstreet ha publicado el sistema de archivos Bcachefs 1.33.0. Esta versión incluye dos paquetes: bcachefs-kernel-dkms, que contiene un módulo de kernel compilado con el sistema Dynamic Kernel Module Support (DKMS), y bcachefs-tools, que contiene la utilidad bcachefs en el espacio de usuario, la cual implementa comandos para crear (mkfs), montar, restaurar y verificar el sistema de archivos. Los paquetes están disponibles para Debian, Ubuntu, Fedora, openSUSE, NixOS y Arch Linux. El módulo DKMS es compatible con los kernels de Linux a partir de la versión 6.16.

La nueva versión incorpora la función de "reconciliación" (rebalance_v2), considerada el mayor cambio en el sistema de archivos de los últimos dos años. A diferencia del modo de "reequilibrio" disponible anteriormente, el mecanismo de "reconciliación" permite reequilibrar no solo los datos (por ejemplo, replicando varias copias en diferentes unidades), sino también los metadatos del sistema de archivos (por ejemplo, migrando metadatos tras añadir una unidad adicional al pool). Además, la reconciliación ahora se aplica a todas las opciones de E/S, no solo a las operaciones de copia y compresión en segundo plano. La reconciliación también tiene en cuenta automáticamente los cambios en las opciones o la configuración del dispositivo y replica inmediatamente los datos y metadatos degradados.

Reconcile utiliza índices separados para operaciones de alta prioridad, optimización del procesamiento de datos en unidades de disco y datos programados para procesamiento que no están disponibles (por ejemplo, por falta de espacio). Se ha añadido compatibilidad para crear un sistema de archivos en una sola unidad en modo de replicación dual (réplicas=2). En esta configuración, al añadir una segunda unidad, los datos se replicarán automáticamente en ella, sin intervención del usuario.

Entre otros cambios:

  • Se añadieron los comandos "estado de conciliación" y "espera de conciliación". Se añadieron las opciones de montaje "mount_trusts_udev" y "writeback_timeout". Se dejaron obsoletos los comandos "replicar datos" y "data job drop_extra_replicas".
  • Se agregó un modo de recuperación "merge_btree_nodes" que verifica todos los nodos en estructuras btree sujetas a operaciones de fusión.
  • El código se ha preparado para la transición al lenguaje Rust. El número de operaciones goto utilizadas en el código se ha reducido de 2500 a 600. Los vectores de código abierto se han reemplazado por la macro DARRAY(), que proporciona una funcionalidad similar a la de los arrays dinámicos en C++ y Rust. La gestión de errores se realiza mediante la macro try(), tomada de Rust.
  • El comando "bcachefs fs usage" ahora informa correctamente los datos degradados.
  • Se ha rediseñado el manejo de los contadores mostrados por el comando "bcachefs fs top". Se ha simplificado la adición de nuevos contadores y se ha implementado la capacidad de convertir puntos de seguimiento en búferes de impresión.
  • Se ha mejorado la calidad de los mensajes de error. Ahora incluyen información sobre los tipos de fallos (de software o hardware), las acciones para resolver el error (p. ej., iniciar un proceso de recuperación), los códigos de error de E/S recibidos de los dispositivos de bloque y los dispositivos faltantes. Al escanear estructuras de árboles B, ahora se muestra información sobre si los nodos con problemas se pueden recuperar.
  • Al escribir en el registro, se ha añadido la posibilidad de definir límites por separado para la intensidad de salida de los diferentes tipos de error. Estos límites evitan que se pierdan mensajes sobre problemas de hardware aislados entre una gran cantidad de mensajes de error de software.
  • Se han agregado indicadores de progreso para todas las etapas de recuperación.

El proyecto Bcachefs desarrolla un sistema de archivos que combina la funcionalidad avanzada de Btrfs y ZFS con el rendimiento, la fiabilidad y la escalabilidad de XFS. Bcachefs admite características como múltiples dispositivos por partición, diseños de unidades multicapa (la capa inferior con datos de acceso frecuente basados ​​en SSD rápidos y la capa superior con datos de acceso menos frecuente desde discos duros), replicación (RAID 1/10), almacenamiento en caché, compresión transparente de datos (modos LZ4, gzip y ZSTD), porciones de estado (instantáneas), verificación de integridad mediante sumas de comprobación, capacidad para almacenar códigos de corrección de errores Reed-Solomon (RAID 5/6) y almacenamiento de datos cifrados (mediante ChaCha20 y Poly1305). En términos de rendimiento, Bcachefs supera a Btrfs y otros sistemas de archivos basados ​​en el mecanismo de copia en escritura, y muestra una velocidad de operación cercana a la de Ext4 y XFS.

Fuente: opennet.ru

Añadir un comentario