Linux-kern 6.2 sal verbeterings aan RAID5/6 in Btrfs insluit

Btrfs-verbeterings is voorgestel vir insluiting in die Linux 6.2-kern om die skryfgatprobleem in die RAID 5/6-implementering reg te stel. Die kern van die probleem kom daarop neer dat indien 'n ongeluk tydens opname plaasvind, dit aanvanklik onmoontlik is om te verstaan ​​watter blok op watter RAID-toestel korrek geskryf is, en waarin die opname nie voltooi is nie. As jy probeer om 'n RAID in hierdie situasie te herstel, kan die blokke wat ooreenstem met die ondergeskrewe blokke vernietig word omdat die toestand van die RAID-blokke nie gesinchroniseer is nie. Hierdie probleem kom voor in enige RAID1/5/6-skikkings waar spesiale maatreëls nie getref is om hierdie effek te bekamp nie.

In 'n RAID-implementering, soos RAID1 in btrfs, word hierdie probleem opgelos deur kontrolesomme in beide kopieë te gebruik; as daar 'n wanverhouding is, word die data eenvoudig vanaf die tweede kopie herstel. Hierdie benadering werk ook as een of ander toestel verkeerde data begin stuur in plaas van 'n volledige mislukking.

In die geval van RAID5/6 stoor die lêerstelsel egter nie kontrolesomme vir die pariteitsblokke nie: in 'n normale situasie word die geldigheid van die blokke geverifieer deur die feit dat hulle almal gekontroleer is, en die pariteitsblok kan gerekonstrueer word uit die data. In die geval van gedeeltelike opname kan hierdie benadering egter nie in sekere situasies werk nie. In hierdie geval, wanneer 'n skikking herstel word, is dit moontlik dat blokke wat onder 'n onvolledige rekord val, verkeerd herstel sal word.

In die geval van btrfs is hierdie probleem die mees relevant as die rekord wat geproduseer word kleiner as die streep is. In hierdie geval moet die lêerstelsel 'n lees-wysig-skryf-bewerking uitvoer (lees-wysig-skryf, RMW). As dit blokke met onvolledige skryf teëkom, kan die RMW-bewerking korrupsie veroorsaak wat nie opgespoor sal word nie, ongeag die kontrolesomme. Die ontwikkelaars het veranderinge aangebring waarin die RMW-bewerking die kontrolesom van blokke nagaan voordat hierdie operasie uitgevoer word, en indien dit nodig is om data te herstel, kontroleer dit ook die kontrolesomme na opname. Ongelukkig, in 'n situasie met die skryf van 'n onvolledige streep (RMW), lei dit tot bykomende bokoste vir die berekening van kontrolesomme, maar verhoog die betroubaarheid aansienlik. Vir RAID6 is sulke logika nog nie gereed nie, maar vir so 'n mislukking in RAID6 is dit nodig dat die skryf op 2 toestelle gelyktydig misluk, wat minder waarskynlik is.

Daarbenewens kan ons kennis neem van aanbevelings vir die gebruik van RAID5/6 van die ontwikkelaars, waarvan die essensie is dat die metadata- en databergingsprofiel in Btrfs kan verskil. In hierdie geval kan jy die profiel RAID1 (spieël) of selfs RAID1C3 (3 kopieë) vir metadata gebruik, en RAID5 of RAID6 vir data. Dit verseker betroubare metadatabeskerming en die afwesigheid van 'n "skryfgat," aan die een kant, en meer doeltreffende gebruik van spasie, kenmerkend van RAID5/6, aan die ander kant. Dit laat metadata-korrupsie vermy word en datakorrupsie kan reggestel word.

Daar kan ook op gelet word dat vir SSD's in Btrfs in kern 6.2, die asynchrone uitvoering van die "weggooi"-operasie by verstek geaktiveer sal word (merk vrygestelde blokke wat nie meer fisies gestoor hoef te word nie). Die voordeel van hierdie modus is hoë werkverrigting as gevolg van die effektiewe groepering van "weggooi"-bewerkings in 'n tou en verdere verwerking van die tou deur 'n agtergrondverwerker, wat is hoekom normale FS-bewerkings nie vertraag nie, soos die geval is met sinchroniese " weggooi” aangesien blokke vrygestel word, en die SSD kan beter besluite neem. Aan die ander kant hoef jy nie meer nutsprogramme soos fstrim te gebruik nie, aangesien alle beskikbare blokke in die FS uitgevee sal word sonder dat dit nodig is vir bykomende skandering en sonder om bedrywighede te vertraag.

Bron: opennet.ru

Voeg 'n opmerking