Linux 6.2 kwaya zai haɗa da haɓakawa zuwa RAID5/6 a cikin Btrfs

Ana ba da shawarar haɓaka Btrfs don haɗawa a cikin Linux 6.2 kernel don gyara batun "rubutun ramin" a cikin aiwatar da RAID 5/6. Asalin matsalar ya ta'allaka ne da cewa idan wani hatsari ya faru a lokacin rikodin, da farko ba za a iya fahimtar wane shinge na na'urorin RAID aka rubuta daidai ba, kuma a cikinsa ba a kammala rikodin ba. Idan kayi ƙoƙarin sake gina RAID a cikin wannan halin, toshe masu dacewa da tubalan da aka rubuta na iya lalacewa saboda yanayin katangar RAID ba ya aiki tare. Wannan matsalar tana faruwa a cikin kowace tsararrun RAID1/5/6 inda ba a ɗauki matakai na musamman don yaƙar wannan tasirin ba.

A cikin aiwatar da RAID, kamar RAID1 a cikin btrfs, ana magance wannan matsala ta amfani da checksums a cikin kwafi biyu, idan akwai rashin daidaituwa, ana dawo da bayanan kawai daga kwafi na biyu. Wannan hanyar kuma tana aiki idan wasu na'urori sun fara ba da bayanan da ba daidai ba maimakon cikakkiyar gazawa.

Duk da haka, a cikin yanayin RAID5/6, tsarin fayil ɗin ba ya adana adadin kuɗi na tubalan: a cikin yanayin al'ada, ana bincika daidaitattun tubalan ta hanyar gaskiyar cewa duk suna sanye take da checksum, kuma toshe na iya zama daidai. za a sake ƙirƙira daga bayanan. Duk da haka, a cikin yanayin yin rikodi, wannan hanya na iya yin aiki a wasu yanayi. A wannan yanayin, lokacin da ake dawo da tsararru, yana yiwuwa a dawo da tubalan da suka faɗi ƙarƙashin rikodin da bai cika ba.

Game da btrfs, wannan matsala ta fi dacewa idan rubutun da ake samarwa ya fi guntu. A wannan yanayin, dole ne tsarin fayil ya yi aikin karanta-gyara-write (RMW). Idan ta ci karo da tubalan rubuta-in-ci gaba, to aikin RMW na iya haifar da ɓarna da ba za a gano ba, ba tare da la’akari da kuɗin shiga ba. Masu haɓakawa sun yi canje-canje a cikin abin da aikin RMW ke bincika adadin tubalan kafin yin wannan aikin, kuma idan ya cancanta, dawo da bayanai kuma yana yin rajistan rajista bayan rubutawa. Abin baƙin cikin shine, a cikin halin da ake ciki tare da rubuta ɗigon da bai cika ba (RMW), wannan yana haifar da ƙarin ƙima don ƙididdige ƙididdiga, amma yana ƙaruwa da aminci sosai. Don RAID6, irin wannan ma'ana bai riga ya shirya ba, duk da haka, don irin wannan gazawar a cikin RAID6, ya zama dole cewa rubutun ya gaza akan na'urori 2 a lokaci ɗaya, wanda ba shi da wuya.

Bugu da ƙari, za mu iya lura da shawarwari game da amfani da RAID5 / 6 daga masu haɓakawa, ainihin abin da ya taso zuwa gaskiyar cewa a cikin Btrfs bayanin martaba don adana metadata da bayanai na iya bambanta. A wannan yanayin, zaku iya amfani da bayanin martaba na RAID1 ( madubi) ko ma RAID1C3 (kwafin 3) don metadata, da RAID5 ko RAID6 don bayanai. Wannan yana tabbatar da ingantaccen tsaro na metadata da rashin "ramin rubutu", a gefe guda, da ingantaccen amfani da sararin samaniya, na al'ada don RAID5/6, a ɗayan. Wannan yana guje wa cin hanci da rashawa a cikin metadata, kuma ana iya gyara ɓarnar bayanai.

Hakanan ana iya lura cewa don SSDs a cikin Btrfs a cikin kernel na 6.2, aiwatar da asynchronous na aikin "jifar" (alamar tubalan da ba za a iya adana su ta zahiri ba) za a kunna ta tsohuwa. Amfanin wannan yanayin shine babban aiki saboda ingantaccen rukunin ayyukan "zubar da" a cikin jerin gwano da kuma ci gaba da aiwatar da jerin gwano ta hanyar mai sarrafa baya, saboda abin da ayyukan FS na yau da kullun ba sa raguwa, kamar yadda lamarin yake tare da synchronous " jefar" kamar yadda aka 'yantar da tubalan, kuma SSD na iya yanke shawara mafi kyau. A gefe guda, ba za ku ƙara buƙatar amfani da kayan aiki kamar fstrim ba, tunda duk abubuwan da ke akwai za a share su a cikin FS ba tare da buƙatar ƙarin bincike ba kuma ba tare da rage ayyukan ba.

source: budenet.ru

Add a comment