Cong Wang, responsabile del sottosistema di controllo del traffico (TC, Traffic Control) nel kernel Linux e sviluppatore del progetto Multikernel, ha presentato nella lista degli sviluppatori del kernel Linux un nuovo file system DAXFS. DAXFS utilizza la memoria volatile per la memorizzazione dei dati, funziona in modalità di sola lettura e ricorda per funzionalità i file system semplificati ramfs e tmpfs. Il modulo del kernel con l'implementazione di DAXFS, così come l'utilità mkdaxfs per la creazione del file system, sono stati pubblicati sotto licenza GPLv2. Dopo la revisione, si sta considerando la possibilità di integrare DAXFS nella composizione principale del kernel.
La caratteristica chiave del nuovo file system è l'uso del sottosistema DAX (Direct Access) per operare bypassando la cache delle pagine e accedendo direttamente alla memoria fisica condivisa. In ramfs e tmpfs, il contenuto è memorizzato nella cache delle pagine, il che, quando si utilizza un file system in più contenitori o core avviati tramite la tecnologia Multikernel, porta a posizionare più copie di dati nella memoria fisica. Il riempimento di ramfs e tmpfs richiede inoltre l'esecuzione di operazioni di copia superflue senza la possibilità di eseguire il mapping di un'area di memoria esistente.
L'accesso diretto alla memoria in DAXFS consente di escludere operazioni di copia superflue e di organizzare il funzionamento bypassando lo stack tradizionale di input/output basato su dispositivi a blocchi e meccanismi di buffering, riducendo anche la frammentazione dell'allocazione della memoria durante la condivisione di un file system in diversi contenitori e core multikernel. DAXFS funziona in modalità Zero-Copy e restituisce direttamente il contenuto dei file dalla memoria senza duplicare inutilmente i dati nella cache delle pagine e con la possibilità di fare mapping di aree continue di memoria fisica in ciascun contenitore o core. Inoltre, è supportato l'uso dell'API dma-buf per utilizzare la memoria esportata da GPU, FPGA/SmartNIC o dispositivi CXL.
Il file system funziona in modalità di sola lettura e viene inizializzato mediante il caricamento in memoria di un'immagine di file system pre-preparata, semplificando l'implementazione, riducendo le operazioni di allocazione della memoria durante il funzionamento e eliminando meccanismi di gestione dei dispositivi più complessi.
L'area chiave di utilizzo di DAXFS è denominata applicazione insieme alla tecnologia Multikernel, che consente di eseguire più istanze indipendenti del kernel Linux su un unico computer fisico, le quali hanno accesso diretto alle risorse hardware e possono essere utilizzate per avviare più ambienti di sistema isolati.
DAXFS può anche essere utilizzato per organizzare l'accesso condiviso di più contenitori o kernel a un'immagine di sistema di base, ospitata nella memoria condivisa; per ridurre il sovraccarico nell'accesso alle informazioni nelle memorie degli acceleratori hardware; per gestire l'accesso alla memoria da più host senza input/output di rete o alla memoria permanente, utilizzando dispositivi basati sul bus CXL (Compute Express Link).
Fonte: opennet.ru
