Bydd cnewyllyn Linux 6.2 yn cynnwys gwelliannau i RAID5/6 yn Btrfs

Mae gwelliannau Btrfs wedi'u cynnig i'w cynnwys yn y cnewyllyn Linux 6.2 i drwsio'r broblem "twll ysgrifennu" yng ngweithrediad RAID 5/6. Mae hanfod y broblem yn dibynnu ar y ffaith, os bydd damwain yn digwydd yn ystod y recordiad, ei bod yn amhosibl i ddechrau deall pa floc y mae dyfais RAID wedi'i ysgrifennu'n gywir arno, a lle na chwblhawyd y recordiad. Os byddwch yn ceisio adfer RAID yn y sefyllfa hon, mae'n bosibl y bydd y blociau sy'n cyfateb i'r blociau a warantwyd yn cael eu dinistrio oherwydd nad yw cyflwr y blociau RAID wedi'u cysoni. Mae'r broblem hon yn digwydd mewn unrhyw araeau RAID1/5/6 lle na chymerwyd camau arbennig i frwydro yn erbyn yr effaith hon.

Mewn gweithrediad RAID, fel RAID1 mewn btrfs, mae'r broblem hon yn cael ei datrys trwy ddefnyddio checksums yn y ddau gopi; os oes diffyg cyfatebiaeth, yn syml, adferir y data o'r ail gopi. Mae'r dull hwn hefyd yn gweithio os bydd rhai dyfais yn dechrau anfon data anghywir yn lle methiant llwyr.

Fodd bynnag, yn achos RAID5/6, nid yw'r system ffeiliau yn storio sieciau ar gyfer y blociau cydraddoldeb: mewn sefyllfa arferol, mae dilysrwydd y blociau yn cael ei wirio gan y ffaith eu bod i gyd wedi'u gwirio, a gellir ail-greu'r bloc cydraddoldeb. o'r data. Fodd bynnag, yn achos recordio rhannol, efallai na fydd y dull hwn yn gweithio mewn rhai sefyllfaoedd. Yn yr achos hwn, wrth adfer arae, mae'n bosibl y bydd blociau sy'n dod o dan gofnod anghyflawn yn cael eu hadfer yn anghywir.

Yn achos btrfs, mae'r broblem hon yn fwyaf perthnasol os yw'r cofnod a gynhyrchir yn llai na'r streipen. Yn yr achos hwn, rhaid i'r system ffeiliau gyflawni gweithrediad darllen-addasu-ysgrifennu (darllen-addasu-ysgrifennu, RMW). Os bydd hyn yn dod ar draws blociau ag ysgrifennu anghyflawn, yna gall y gweithrediad RMW achosi llygredd na fydd yn cael ei ganfod, waeth beth fo'r symiau gwirio. Mae'r datblygwyr wedi gwneud newidiadau lle mae gweithrediad RMW yn gwirio swm y blociau cyn cyflawni'r llawdriniaeth hon, ac os oes angen adfer data, mae hefyd yn gwirio'r symiau siec ar ôl eu cofnodi. Yn anffodus, mewn sefyllfa o ysgrifennu streipen anghyflawn (RMW), mae hyn yn arwain at orbenion ychwanegol ar gyfer cyfrifo symiau siec, ond yn cynyddu dibynadwyedd yn sylweddol. Ar gyfer RAID6, nid yw rhesymeg o'r fath yn barod eto, fodd bynnag, ar gyfer methiant o'r fath yn RAID6, mae'n angenrheidiol bod yr ysgrifennu yn methu ar 2 ddyfais ar unwaith, sy'n llai tebygol.

Yn ogystal, gallwn nodi argymhellion ar gyfer defnyddio RAID5/6 gan y datblygwyr, a hanfod y rhain yw y gall y metadata a phroffil storio data fod yn wahanol yn Btrfs. Yn yr achos hwn, gallwch ddefnyddio'r proffil RAID1 (drych) neu hyd yn oed RAID1C3 (3 chopi) ar gyfer metadata, a RAID5 neu RAID6 ar gyfer data. Mae hyn yn sicrhau amddiffyniad metadata dibynadwy ac absenoldeb “twll ysgrifennu,” ar y naill law, a defnydd mwy effeithlon o ofod, sy'n nodweddiadol o RAID5/6, ar y llaw arall. Mae hyn yn caniatáu i lygredd metadata gael ei osgoi a gellir cywiro llygredd data.

Gellir nodi hefyd, ar gyfer SSDs mewn Btrfs yng nghnewyllyn 6.2, y bydd gweithrediad asyncronig y gweithrediad “gwaredu” yn cael ei actifadu yn ddiofyn (gan nodi blociau wedi'u rhyddhau nad oes angen eu storio'n gorfforol mwyach). Mantais y modd hwn yw perfformiad uchel oherwydd grwpio gweithrediadau “taflu” yn effeithiol mewn ciw a phrosesu'r ciw ymhellach gan brosesydd cefndir, a dyna pam nad yw gweithrediadau FS arferol yn arafu, fel sy'n wir gyda chydamserol “ taflu” wrth i flociau gael eu rhyddhau, a gall yr SSD wneud penderfyniadau gwell. Ar y llaw arall, ni fydd angen i chi ddefnyddio cyfleustodau fel fstrim mwyach, gan y bydd yr holl flociau sydd ar gael yn cael eu clirio yn yr FS heb fod angen sganio ychwanegol a heb arafu gweithrediadau.

Ffynhonnell: opennet.ru

Ychwanegu sylw