Christoph Hellwig, a maintainer of the DMA, KVM, Slab Allocator subsystems and the PowerPC architecture in the Linux kernel, presented the first public release of XRAID, an implementation of declustered RAID with parity control, integrated into the XFS file system. The project was created to add the ability to use RAID on zoned storage devices, such as SMR (Shingled Magnetic Recording) disks, and to provide a high-performance RAID implementation for maintaining data integrity. In addition to zoned devices, XRAID also supports operation on conventional hard drives and SSDs, demonstrating a significant performance increase compared to mdraid (up to 20 times during write operations).
XRAID uses declustered parity control to distribute information across drives, similar to dRAID in OpenZFS, where no separate drives are allocated for hot spares, and data, parity information, and free spare space are evenly distributed across all drives. The processes of reading, writing, and recovering from failures involve all available drives, which increases throughput, reduces the load on individual disks, helps avoid noticeable performance drops during failures, and significantly accelerates the array reconstruction process after adding or replacing drives.
Declustered RAID also simplifies the creation of fault-tolerant arrays with a very large number of disks. During recovery from failures, XRAID dynamically determines the order of rebuilding drives, prioritizing zones with greater loss of redundancy and rebuilding data zones before zones with parity information.
Az XRAID eredetileg a zónázott tárolók használatának figyelembevételével fejlődik, ahol a tárolóhely zónákra oszlik, amelyek blokkok vagy szektorok csoportjait alkotják. Az ilyen eszközökben csak a blokkok teljes csoportjának frissítésével szabad adatokat hozzáadni. Például a zónázott írás alkalmazása az SMR (Shingled Magnetic Recording) lemezeken történik, ahol a sáv szélessége kisebb, mint a mágneses fej szélessége, és az írás részleges átfedéssel történik a szomszédos sávval, azaz bármilyen felülírás az egész sávcsoport újbóli írását vonja maga után.
A zónázott eszközök támogatására az XRAID az XFS-ben és a Linux kernelben megvalósított zónázott eszközökhez készült blokkallokátort használja, amely RT-alrendszert (RealTime subvolume) alkalmaz az adatok és metadaták külön tárolásának megszervezésére (a zónákban, ahol sorozatos írás történik, csak a fájlok tartalmát tárolják, a fájl rendszer metadatái pedig általános zónákban vagy további SSD-kre kerülnek).
Az XRAID-ben a RAID paritás ellenőrzési mechanizmusai kizárólag a fájlok tartalmára vonatkoznak, és a metadaták redundanciáját a Linux kernelben már meglévő meghajtók, például az MD RAID tükrözésének bevonásával valósítják meg, ami hatékonyabb a helyben frissített kis objektumok esetén. A RAID megvalósítása az XFS-be épül be a zónázott bemeneti/kimeneti kezelőkhöz, amelyek a háttér tárolók fizikai zónáit logikai zónák formájában képviselik, hasonlóan egy többlépcsős blokkeszközhöz.
Az XRAID-en másfél éve dolgoznak, és bár a megvalósítás még nem készült el az alap kernelbe történő integrációra, már alkalmas egy széles közönség által történő tesztelésre. A javasolt megvalósítás 0-tól 2-ig terjedő paritásszinteket támogat (a kód fejlesztése 3 vagy több szint támogatására folyamatban van). Az XRAID kezelésére az xfsprogs eszközkészlethez új „xraid” utilitást adtak hozzá, és a mkfs-ben is megvalósították az XRAID támogatását. Ezen kívül a zónázott tárolók ellenőrzésére szolgáló Zonar utilitásba lehetőségeket adtak a logikai zónák fizikai zónákra való leképezésének vizualizálására.
Megjelentek az XRAID teljesítménytesztjeinek eredményei mdraid és btrfs összehasonlításában, amelyeket a két WD DC-SN650 SSD meghajtóból álló XRAID tömbön végeztek el metadata (mdraid alapú tükör) esetében, hat WD DC-HC590 26 TB normál SATA meghajtóval és 6-21 zónázott WD DC-HC690 30 TB (SMR) meghajtóval.





Az XRAID tesztelését normál, zónázatlan SSD meghajtókon is elvégezték, egy 4 TiB Samsung PM9D3a metadata-ra és öt 4 TiB Samsung PM9D3a RAID (4 + 1) konfigurációval.




Forrás: opennet.ru
