Kerneli Linux 6.2 do të përfshijë përmirësime në RAID5/6 në Btrfs

Përmirësimet Btrfs janë propozuar për t'u përfshirë në kernelin Linux 6.2 për të rregulluar problemin e vrimës së shkrimit në zbatimin RAID 5/6. Thelbi i problemit zbret në faktin se nëse ndodh një përplasje gjatë regjistrimit, fillimisht është e pamundur të kuptohet se cili bllok në cilin pajisje RAID është shkruar saktë dhe në të cilin regjistrimi nuk është përfunduar. Nëse përpiqeni të rivendosni një RAID në këtë situatë, blloqet që korrespondojnë me blloqet e nënshkruara mund të shkatërrohen sepse gjendja e blloqeve RAID është jashtë sinkronizimit. Ky problem shfaqet në çdo grup RAID1/5/6 ku nuk janë marrë masa të veçanta për të luftuar këtë efekt.

Në një zbatim RAID, si RAID1 në btrfs, ky problem zgjidhet duke përdorur kontrolle në të dyja kopjet; nëse ka një mospërputhje, të dhënat thjesht rikthehen nga kopja e dytë. Kjo qasje funksionon gjithashtu nëse një pajisje fillon të dërgojë të dhëna të pasakta në vend të një dështimi të plotë.

Sidoqoftë, në rastin e RAID5/6, sistemi i skedarëve nuk ruan shumat e kontrollit për blloqet e barazisë: në një situatë normale, vlefshmëria e blloqeve verifikohet nga fakti se ato janë të gjitha të kontrolluara dhe blloku i barazisë mund të rindërtohet. nga të dhënat. Megjithatë, në rastin e regjistrimit të pjesshëm, kjo qasje mund të mos funksionojë në situata të caktuara. Në këtë rast, kur rivendosni një grup, është e mundur që blloqet që bien nën një rekord jo të plotë të rikthehen gabimisht.

Në rastin e btrfs, ky problem është më i rëndësishëm nëse regjistrimi që prodhohet është më i vogël se shiriti. Në këtë rast, sistemi i skedarëve duhet të kryejë një operacion leximi-modifikimi-shkruani (lexo-modify-shkruaj, RMW). Nëse kjo ndeshet me blloqe me shkrim jo të plotë, atëherë operacioni RMW mund të shkaktojë korrupsion që nuk do të zbulohet, pavarësisht nga shumat e kontrollit. Zhvilluesit kanë bërë ndryshime në të cilat operacioni RMW kontrollon shumën e kontrollit të blloqeve përpara kryerjes së këtij operacioni, dhe nëse është e nevojshme të rivendosen të dhënat, ai gjithashtu kontrollon shumat e kontrollit pas regjistrimit. Fatkeqësisht, në një situatë me shkrimin e një shiriti jo të plotë (RMW), kjo çon në shpenzime shtesë për llogaritjen e shumave të kontrollit, por rrit ndjeshëm besueshmërinë. Për RAID6, një logjikë e tillë nuk është ende gati, megjithatë, për një dështim të tillë në RAID6 është e nevojshme që shkrimi të dështojë në 2 pajisje menjëherë, gjë që ka më pak gjasa.

Për më tepër, mund të vërejmë rekomandime për përdorimin e RAID5/6 nga zhvilluesit, thelbi i të cilave është se në Btrfs, profili i meta të dhënave dhe ruajtjes së të dhënave mund të ndryshojnë. Në këtë rast, mund të përdorni profilin RAID1 (pasqyrë) ose edhe RAID1C3 (3 kopje) për meta të dhënat dhe RAID5 ose RAID6 për të dhëna. Kjo siguron mbrojtje të besueshme të meta të dhënave dhe mungesën e një "vrime shkrimi", nga njëra anë, dhe përdorim më efikas të hapësirës, ​​karakteristikë e RAID5/6, nga ana tjetër. Kjo lejon që korrupsioni i meta të dhënave të shmanget dhe korrupsioni i të dhënave mund të korrigjohet.

Mund të vërehet gjithashtu se për SSD-të në Btrfs në kernel 6.2, ekzekutimi asinkron i operacionit "discard" do të aktivizohet si parazgjedhje (duke shënuar blloqe të liruara që nuk kanë më nevojë të ruhen fizikisht). Avantazhi i kësaj mënyre është performanca e lartë për shkak të grupimit efektiv të operacioneve "fshirje" në një radhë dhe përpunimit të mëtejshëm të radhës nga një procesor në sfond, kjo është arsyeja pse operacionet normale FS nuk ngadalësohen, siç është rasti me sinkron " hidhni” pasi blloqet lirohen dhe SSD mund të marrë vendime më të mira. Nga ana tjetër, nuk do të keni më nevojë të përdorni shërbime si fstrim, pasi të gjitha blloqet e disponueshme do të pastrohen në FS pa pasur nevojë për skanim shtesë dhe pa ngadalësuar operacionet.

Burimi: opennet.ru

Shto një koment