Christoph Hellwig, il maintainer dei sottosistemi DMA, KVM, Slab Allocator e dell'architettura PowerPC nel kernel di Linux, ha presentato la prima versione pubblica di XRAID, un'implementazione di RAID declusterizzato con controllo della parità, integrata nel file system XFS. Il progetto è stato creato per aggiungere la possibilità di utilizzare RAID su dispositivi di archiviazione zonati, come i dischi SMR (Shingled Magnetic Recording), e per fornire un'implementazione RAID ad alte prestazioni per mantenere l'integrità dei dati. Oltre ai dispositivi zonati, XRAID supporta anche l'uso di normali hard disk e SSD, dimostrando un significativo aumento delle prestazioni con questi ultimi rispetto a mdraid (fino a 20 volte in scrittura).
Per la distribuzione delle informazioni sui dispositivi in XRAID viene utilizzato il controllo della parità declusterizzato, simile a dRAID in OpenZFS, in cui non vengono riservati dispositivi separati per il ripristino a caldo (hot spare), ma i dati, le informazioni sul controllo della parità e lo spazio di riserva libero (spare space) sono distribuiti uniformemente su tutti i dispositivi. Il processo di lettura, scrittura e ripristino in caso di guasti coinvolge tutti i dispositivi disponibili, il che aumenta la larghezza di banda, riduce il carico su singoli dischi, evita un calo di prestazioni significativo in caso di guasti e accelera notevolmente il processo di ricostruzione della matrice dopo l'aggiunta o la sostituzione dei dispositivi.
I RAID declusterizzati semplificano anche la creazione di array fault-tolerant con un numero molto elevato di dischi. Nel processo di ripristino dopo guasti, XRAID determina dinamicamente l'ordine di ricostruzione dei dispositivi, trattando per prima le aree con maggiore perdita di informazioni ridondanti e ripristinando le aree con dati prima delle aree con informazioni di controllo della parità.
XRAID è stato originariamente sviluppato tenendo conto della possibilità di utilizzo con dispositivi zonati, in cui lo spazio di archiviazione è suddiviso in zone che costituiscono gruppi di blocchi o settori. In tali dispositivi è consentito solo l'aggiunta sequenziale dei dati, con l'aggiornamento di tutta l'intera gruppo di blocchi. Ad esempio, la zonizzazione della scrittura è applicata nei dischi SMR (Shingled Magnetic Recording), in cui la larghezza della pista è inferiore alla larghezza della testina magnetica, e la scrittura avviene con una parziale sovrapposizione della pista adiacente, ovvero qualsiasi riscrittura richiede la riscrittura dell'intero gruppo di piste.
Per supportare i dispositivi zonati, XRAID utilizza il gestore di blocchi implementato in XFS e nel kernel Linux per i dispositivi zonati (zoned allocator), che utilizza un sottovolume RealTime (RT) per organizzare lo stoccaggio separato di dati e metadati (nelle zone con scrittura sequenziale si memorizza solo il contenuto dei file, mentre i metadati del filesystem sono collocati in normali zone o su SSD aggiuntivi).
In XRAID, i meccanismi di controllo della parità RAID sono applicati solo al contenuto dei file, mentre la ridondanza per i metadati è realizzata attraverso l'uso dei driver già presenti nel kernel Linux, ad esempio attraverso il mirroring con MD RAID, che è più efficace per piccoli oggetti aggiornatati in loco. L'implementazione del RAID è integrata in XFS fino ai gestori di input/output zonati, che rappresentano le zone fisiche degli archivi sottostanti in forma di zone logiche, simile a un dispositivo a blocchi multi-strato.
Il lavoro su XRAID è in corso da un anno e mezzo, e sebbene l'implementazione non sia ancora pronta per l'integrazione nell'insieme principale del kernel, è già pronta per il test da parte di un ampio pubblico. Nell'implementazione proposta sono supportati da 0 a 2 livelli di parità (è in fase di sviluppo il codice per supportare 3 o più livelli). Per gestire XRAID è stata aggiunta al toolkit xfsprogs una nuova utility "xraid" e implementato il supporto per XRAID in mkfs. Inoltre, sono state aggiunte funzionalità di visualizzazione del mapping delle zone logiche sulle zone fisiche all'utility di ispezione dei dispositivi zonati Zonar.
Sono stati pubblicati i risultati dei test delle prestazioni di XRAID in confronto a mdraid e btrfs, condotti per un array XRAID in configurazione con due SSD WD DC-SN650 per i metadati (mirror basato su mdraid), sei normali dischi SATA WD DC-HC590 da 26 TB e sei dischi zonati WD DC-HC690 da 30 TB (SMR).





Sono stati condotti anche test su XRAID utilizzando normali SSD non zonati in una configurazione con un Samsung PM9D3a da 4 TiB per i metadati e cinque Samsung PM9D3a da 4 TiB per il RAID (4 + 1).




Fonte: opennet.ru
