Ядрои Linux 6.2 такмилдиҳии RAID5/6 дар Btrfs-ро дар бар мегирад

Такмилҳои Btrfs барои дохил шудан ба ядрои Linux 6.2 барои ислоҳи масъалаи "сӯрохи навиштан" дар татбиқи RAID 5/6 пешниҳод карда мешаванд. Моҳияти мушкилот аз он иборат аст, ки агар ҳангоми сабти садама рух дода бошад, дар аввал фаҳмидан мумкин нест, ки кадом блок дар кадоме аз дастгоҳҳои RAID дуруст навишта шудааст ва дар кадом сабт ба анҷом нарасидааст. Агар шумо кӯшиш кунед, ки RAID-ро дар ин вазъият аз нав созед, блокҳои мувофиқ ба блокҳои андеррайтшуда метавонанд вайрон шаванд, зеро ҳолати блокҳои RAID ҳамоҳанг нест. Ин мушкилот дар ҳама гуна массивҳои RAID1/5/6 рух медиҳад, ки барои мубориза бо ин таъсир чораҳои махсус андешида намешаванд.

Дар татбиқи RAID ба монанди RAID1 дар btrfs, ин мушкилот бо истифода аз маблағи чек дар ҳарду нусха ҳал карда мешавад, агар номувофиқӣ мавҷуд бошад, маълумот аз нусхаи дуюм барқарор карда мешавад. Ин равиш инчунин кор мекунад, агар ягон дастгоҳ ба ҷои нокомии пурра маълумоти нодуруст диҳад.

Аммо, дар ҳолати RAID5/6, системаи файлӣ маблағи чекҳоро барои блокҳои паритет нигоҳ намедорад: дар ҳолати муқаррарӣ дурустии блокҳо бо он тафтиш карда мешавад, ки ҳамаи онҳо бо маблағи чек муҷаҳҳаз шудаанд ва блоки паритет метавонад аз маълумот аз нав сохта шавад. Аммо, дар сурати қисман сабт кардан, ин равиш дар баъзе ҳолатҳо кор намекунад. Дар ин ҳолат, ҳангоми барқарор кардани массив, эҳтимол аст, ки блокҳои зери сабти нопурра афтода нодуруст барқарор карда шаванд.

Дар мавриди btrfs, ин мушкилот бештар муҳим аст, агар навиштаҷоти тавлидшуда аз рах хурдтар бошад. Дар ин ҳолат, системаи файлӣ бояд амалиёти хондан-тағир-навиштанро (RMW) иҷро кунад. Агар он ба блокҳои навиштан дар идома дучор шавад, он гоҳ амалиёти RMW метавонад боиси фасод гардад, ки новобаста аз маблағҳои назоратӣ ошкор карда намешаванд. Таҳиягарон тағирот ворид карданд, ки дар он амалиёти RMW пеш аз иҷрои ин амалиёт маблағи назоратии блокҳоро тафтиш мекунад ва дар ҳолати зарурӣ барқарорсозии маълумот инчунин пас аз навиштан санҷиши санҷишро анҷом медиҳад. Мутаассифона, дар ҳолати навиштани рахи нопурра (RMW), ин боиси хароҷоти изофӣ барои ҳисоб кардани маблағҳои назоратӣ мегардад, аммо эътимоднокӣ ба таври назаррас меафзояд. Барои RAID6, чунин мантиқ ҳанӯз омода нест, аммо барои чунин нокомӣ дар RAID6, зарур аст, ки навиштан якбора дар 2 дастгоҳ ноком шавад, ки эҳтимоли камтар аст.

Илова бар ин, мо метавонем тавсияҳоро оид ба истифодаи RAID5 / 6 аз таҳиягарон қайд кунем, ки моҳияти он дар Btrfs профили нигоҳдории метамаълумот ва додаҳо метавонад фарқ кунад. Дар ин ҳолат, шумо метавонед профили RAID1 (оина) ё ҳатто RAID1C3 (3 нусха) барои метамаълумот ва RAID5 ё RAID6 барои маълумот истифода баред. Ин аз як тараф ҳифзи боэътимоди метамаълумотҳо ва мавҷуд набудани "сӯрохи навиштан"-ро таъмин мекунад ва аз тарафи дигар истифодаи самараноки фазоро, ки барои RAID5/6 хос аст, таъмин мекунад. Ин аз фасод дар метамаълумотҳо пешгирӣ мекунад ва фасоди маълумот метавонад ислоҳ шавад.

Инчунин қайд кардан мумкин аст, ки барои SSD-ҳо дар Btrfs дар ядрои 6.2, иҷрои асинхронии амалиёти "партофтан" (нишона кардани блокҳои озодшуда, ки дигар аз ҷиҳати ҷисмонӣ нигоҳ дошта намешаванд) ба таври нобаёнӣ фаъол карда мешавад. Бартарии ин режим маҳсулнокии баланд аз ҳисоби гурӯҳбандии самараноки амалиёти "партофтан" дар навбат ва коркарди минбаъдаи навбат аз ҷониби коркардкунандаи замина мебошад, ки ба туфайли он амалиёти муқаррарии FS суст намешавад, ба мисли синхронӣ " партоед" зеро блокҳо озод карда мешаванд ва SSD метавонад қарорҳои беҳтар қабул кунад. Аз тарафи дигар, ба шумо дигар лозим нест, ки утилитаҳои монанди fstrim-ро истифода баред, зеро ҳамаи блокҳои мавҷуда дар FS бе зарурати сканкунии иловагӣ ва бе суст кардани амалиёт тоза карда мешаванд.

Манбаъ: opennet.ru

Илова Эзоҳ