Introducing XRAID with RAID implementation for XFS

Christoph Hellwig, maintainer of the DMA subsystem, KVM, Slab Allocator, and PowerPC architecture in the Linux kernel, presented the first public release of XRAID, a declustered RAID implementation with parity control integrated into the XFS file system. The project aims to enable the use of RAID on zoned storage devices, such as SMR (Shingled Magnetic Recording) disks, and to provide a high-performance RAID implementation to maintain data integrity. In addition to zoned devices, XRAID also supports operation on standard hard drives and SSDs, demonstrating significant performance improvements on the latter compared to mdraid (up to 20 times during writes).

For distributing information across drives in XRAID, a declustered parity control similar to dRAID in OpenZFS is used, where no separate drives are designated for hot spare; instead, data, parity information, and spare space are evenly distributed across all drives. The reading, writing, and recovery processes in case of failures encompass all available drives, which enhances throughput, reduces load on individual disks, prevents noticeable performance drops during failures, and significantly speeds up the rebuilding process after adding or replacing drives.

Declustered RAIDs also simplify 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 redundant information and rebuilding data zones before those with parity information.

XRAID was initially developed with the ability to use zoned storage in mind, where the storage space is divided into zones consisting of groups of blocks or sectors. In such devices, only sequential data additions are permitted, necessitating the complete update of the entire block group. For instance, zoned recording is applied in SMR (Shingled Magnetic Recording) disks, where the track width is less than the width of the magnetic head, and recording is performed with partial overlap of the neighboring track, meaning any overwrite requires a complete rewrite of the entire track group.

To support zoned devices, XRAID employs a zoned allocator implemented in XFS and the Linux kernel, which uses a RealTime subvolume for organizing separate storage of data and metadata (in zones with sequential write, only the contents of files are stored, while the filesystem metadata is placed in ordinary zones or on additional SSDs).

In XRAID, RAID parity control mechanisms are applied only to the contents of files, while redundancy for metadata is achieved through the use of existing drivers in the Linux kernel, such as mirroring with MD RAID, which is more efficient for small objects that are updated in place. The RAID implementation is integrated into XFS up to the zoned I/O handlers, representing physical zones of the underlying storage as logical zones, similar to multi-layer block devices.

Work on XRAID has been ongoing for a year and a half, and although the implementation is not yet ready for integration into the main kernel, it is already suitable for testing by a wider audience. The proposed implementation supports from 0 to 2 levels of parity (code for supporting 3 or more levels is in development). A new utility 'xraid' has been added to the xfsprogs toolkit for XRAID management, and support for XRAID has been implemented in mkfs. Additionally, the utility for inspecting zoned devices, Zonar, has been enhanced with capabilities to visualize the mapping of logical zones to physical zones.

Performance testing results of XRAID compared to mdraid and btrfs have been published, conducted for the XRAID array configured with two WD DC-SN650 SSDs for metadata (mdraid-based mirror), six standard WD DC-HC590 26 TB SATA disks, and 6-21 zoned WD DC-HC690 30 TB disks (SMR).





XRAID testing was also conducted on standard unzoned SSDs configured with one 4 TiB Samsung PM9D3a for metadata and five 4 TiB Samsung PM9D3a for RAID (4 + 1).





Source: opennet.ru
Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster