A Linux 6.18 kernel blokk alrendszere zárolásmentes bitmappal bővül a szoftveres RAID számára

Yu Kuai, a Huawei fejlesztője új, zárolások nélküli bitmappal bővíti a Linux kernel blokk alrendszerét. A „lockless” md-llbitmap célja, hogy a RAID tömbök adatkonzisztenciáját hatékonyabban kezelje, miközben csökkenti az írási műveletekhez kapcsolódó szinkronizációs terheket. Az új fejlesztés a 6.18-as kernelciklusba kerülhet be, és az eddigi bitmap-megvalósításhoz képest jelentős teljesítményjavulást ígér, különösen a RAID1 és RAID10 tömbök esetében.

A Linux 6.18 kernel blokk alrendszere zárolásmentes bitmappal bővül a szoftveres RAID számára

Hatékonyság újragondolva

A hagyományos bitmap célja annak nyilvántartása, hogy a RAID tömb mely szegmensei igényelnek újraszinkronizálást. A Yu Kuai által tervezett új rendszer ezt a folyamatot zárak nélkül valósítja meg: ha több írás történik ugyanarra a bitre rövid időn belül, csak az első jár többletköltséggel, a továbbiak nem okoznak plusz erőforrásigényt. Az llbitmap hat különböző állapotot kezel, és finoman hangolt állapotgépen keresztül biztosítja, hogy csak a ténylegesen módosított adatszegmensek szinkronizálódjanak. Új tömb létrehozásakor vagy lemezcsere esetén így elkerülhető a teljes lemez újraépítése. A RAID5 és RAID6 konfigurációkhoz új MD_RECOVERY_LAZY_RECOVER jelző is érkezik, amely lehetővé teszi a „lazy” kezdeti helyreállítást, csökkentve a fölösleges műveleteket.

Tisztább, átláthatóbb kód került beküldésre a kernelbe, amely jobb teljesítményt nyújt

Az FIO-val végzett tesztek azt mutatják, hogy az llbitmap a RAID1 és RAID10 tömbökben akár a bitmap nélküli működés sebességét is elérheti, vagy meg is haladhatja, miközben megtartja az adatkonzisztencia előnyeit. RAID1 esetében a 13–19 MiB/s közötti értékek helyett 19,5 MiB/s körüli teljesítményt mértek, RAID10 esetén pedig stabilan 27–28 MiB/s-ot. A kód fejlesztése során új mező (bitmap_id) került az mddev struktúrába, bővült a sysfs interfész egy bitmap_type attribútummal, valamint megjelentek új bitmap műveletek, mint a skip_sync_blocks és a blocks_synced. Az új md-llbitmap modul több mint ezerhatszáz sornyi friss kódot tartalmaz, és az md alrendszer egyik legjelentősebb fejlesztése az utóbbi években. A cél világos: kevesebb zárolás, gyorsabb helyreállítás és megbízhatóbb RAID-kezelés a következő Linux kiadásban.

Gábor a Pingvinbázis alapítója és főszerkesztője, több mint 20 éves tapasztalattal rendelkezik a Linux rendszerek és az Open Source szoftverek területén. Jártas a Python, és a PHP nyelvben, valamint a BASH scriptelésben is.