Cong Wang, responsabile del sottosistema di controllo del traffico (TC, Traffic Control) nel kernel Linux e sviluppatore del progetto Multikernel, ha presentato una nuova filesystem, DAXFS, nella lista degli sviluppatori del kernel Linux. DAXFS utilizza la memoria RAM per l'archiviazione dei dati, funziona in modalità di sola lettura e ricorda le funzionalità delle filesystem semplificate ramfs e tmpfs. Il modulo del kernel che implementa DAXFS, insieme all'utilità mkdaxfs per la creazione del filesystem, sono pubblicati sotto licenza GPLv2. Dopo la revisione, si considera la possibilità di integrare DAXFS nel kernel principale.
Una caratteristica chiave della nuova filesystem è l'utilizzo 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 viene memorizzato nella cache delle pagine, il che, quando si utilizza una filesystem in diversi contenitori o kernel avviati tramite la tecnologia Multikernel, porta alla creazione di più copie dei dati nella memoria fisica. Il riempimento di ramfs e tmpfs richiede anche operazioni di copia superflue senza la possibilità di mappare un'area di memoria esistente.
L'accesso diretto alla memoria in DAXFS consente di eliminare operazioni di copia superflue e organizzare il lavoro bypassando lo stack tradizionale di I/O su dispositivi a blocchi e meccanismi di buffering, evitando inoltre la frammentazione dell'allocazione della memoria quando una filesystem è condivisa tra vari contenitori e kernel multikernel. DAXFS opera in modalità Zero-Copy e restituisce direttamente il contenuto dei file dalla memoria senza duplicazioni superflue nella cache delle pagine e con la possibilità di mappare aree contigue di memoria fisica in ogni istanza di contenitore o kernel. Inoltre, è supportato l'uso dell'API dma-buf per sfruttare la memoria esportata da GPU, FPGA/SmartNIC o dispositivi CXL.
La filesystem funziona in modalità di sola lettura e viene inizializzata caricando in memoria un'immagine di filesystem pre-preparata, semplificando l'implementazione, eliminando operazioni di allocazione della memoria durante il funzionamento e evitando meccanismi complessi di gestione del dispositivo.
Un'area chiave di utilizzo di DAXFS è l'applicazione con la tecnologia Multikernel, che consente di eseguire più istanze indipendenti del kernel Linux su un singolo 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 utilizzata per organizzare l'accesso condiviso di più contenitori o kernel a un'immagine di sistema di base memorizzata nella memoria condivisa; per ridurre le spese generali nella gestione delle informazioni nella memoria degli acceleratori hardware; per consentire l'accesso alla memoria da più host senza I/O di rete o a memoria persistente, utilizzando dispositivi basati su bus CXL (Compute Express Link).
Fonte: opennet.ru
