Cong Wang, quien acompaña al subsistema de control de tráfico (TC, Traffic Control) en el núcleo de Linux y desarrolla el proyecto Multikernel, ha presentado en la lista de desarrolladores del núcleo de Linux un nuevo sistema de archivos DAXFS. DAXFS utiliza la memoria RAM para el almacenamiento de datos, funciona en modo de solo lectura y es similar en funcionalidad a los sistemas de archivos reducidos ramfs y tmpfs. El módulo del núcleo con la implementación de DAXFS, así como la utilidad mkdaxfs para crear el sistema de archivos, se publicaron bajo la licencia GPLv2. Tras la revisión, se considera la posibilidad de integrar DAXFS en el núcleo principal.
La característica clave del nuevo sistema de archivos es la utilización del subsistema DAX (Acceso Directo) para funcionar evitando la caché de páginas y accediendo directamente a la memoria física compartida. En ramfs y tmpfs, el contenido se guarda en la caché de páginas, lo que, al utilizar un mismo sistema de archivos en varios contenedores o núcleos ejecutados mediante la tecnología Multikernel, lleva a tener múltiples copias de datos en memoria física. El llenado de ramfs y tmpfs también requiere realizar operaciones de copia innecesarias sin la posibilidad de asignar áreas de memoria existentes.
El acceso directo a la memoria en DAXFS permite eliminar operaciones de copia innecesarias y organizar el trabajo evitando la pila tradicional de entrada/salida basada en dispositivos de bloques y mecanismos de almacenamiento en búfer, así como deshacerse de la fragmentación en la asignación de memoria al compartir un mismo sistema de archivos en diferentes contenedores y núcleos multikernel. DAXFS funciona en modo Zero-Copy y entrega directamente el contenido de archivos desde la memoria sin duplicar datos en la caché de páginas y con la posibilidad de asignar áreas continuas de memoria física en cada instancia de contenedor o núcleo. Además, se admite el uso de la API dma-buf para utilizar la memoria exportada por GPU, FPGA/SmartNIC o dispositivos CXL.
El sistema de archivos opera en modo de solo lectura y se inicializa mediante la carga en memoria de una imagen de sistema de archivos preparada previamente, lo que simplifica su implementación, elimina la necesidad de realizar operaciones de asignación de memoria durante su funcionamiento y evita complicados mecanismos de gestión de dispositivos.
Un área clave de uso de DAXFS es su aplicación junto con la tecnología Multikernel, que permite ejecutar múltiples instancias independientes del núcleo de Linux en una sola computadora física, las cuales tienen acceso directo a los recursos de hardware y pueden utilizarse para iniciar varios entornos de sistema aislados.
DAXFS también puede utilizarse para organizar el acceso compartido de varios contenedores o núcleos a una imagen de sistema base ubicada en memoria compartida; reducir los costos de acceso a la información en la memoria de aceleradores de hardware; organizar el acceso a la memoria desde varios hosts sin entrada/salida de red, o a memoria persistente utilizando dispositivos basados en el bus CXL (Compute Express Link).
Fuente: opennet.ru
