Линук кернел 6.2 ће укључити побољшања РАИД5/6 у Бтрфс-у

Бтрфс побољшања су предложена за укључивање у Линук 6.2 кернел да би се решио проблем рупе у писању у имплементацији РАИД 5/6. Суштина проблема се своди на то да ако дође до пада током снимања, у почетку је немогуће разумети који блок на ком РАИД уређају је исправно написан, а у ком није завршено снимање. Ако покушате да вратите РАИД у овој ситуацији, блокови који одговарају уписаним блоковима могу бити уништени јер стање РАИД блокова није синхронизовано. Овај проблем се јавља у свим РАИД1/5/6 низовима где нису предузете посебне мере за борбу против овог ефекта.

У имплементацији РАИД-а, као што је РАИД1 у бтрфс-у, овај проблем се решава коришћењем контролних сума у ​​обе копије, ако постоји неслагање, подаци се једноставно враћају из друге копије. Овај приступ такође функционише ако неки уређај почне да шаље нетачне податке уместо потпуног квара.

Међутим, у случају РАИД5/6, систем датотека не чува контролне суме за блокове парности: у нормалној ситуацији, валидност блокова се проверава чињеницом да су сви контролно сумирани, а блок парности се може реконструисати из података. Међутим, у случају делимичног снимања, овај приступ можда неће радити у одређеним ситуацијама. У овом случају, приликом враћања низа, могуће је да ће блокови који потпадају под некомплетан запис бити враћени погрешно.

У случају бтрфс-а, овај проблем је најрелевантнији ако је снимљени запис мањи од траке. У овом случају, систем датотека мора да изврши операцију читања-измени-уписи (читај-модификуј-пиши, РМВ). Ако ово наиђе на блокове са непотпуним писањем, онда РМВ операција може изазвати оштећење које неће бити откривено, без обзира на контролне суме. Програмери су извршили измене у којима РМВ операција проверава контролну суму блокова пре извођења ове операције, а ако је потребно вратити податке, проверава и контролне суме након снимања. Нажалост, у ситуацији са писањем непотпуне траке (РМВ), ово доводи до додатних трошкова за израчунавање контролних сума, али значајно повећава поузданост. За РАИД6 таква логика још није спремна, међутим, за такав квар у РАИД6 неопходно је да упис не успе одједном на 2 уређаја, што је мање вероватно.

Поред тога, можемо приметити препоруке за коришћење РАИД5/6 од програмера, чија се суштина своди на чињеницу да се у Бтрфс-у метаподаци и профил складиштења података могу разликовати. У овом случају, можете користити РАИД1 профил (огледало) или чак РАИД1Ц3 (3 копије) за метаподатке, а РАИД5 или РАИД6 за податке. Ово обезбеђује поуздану заштиту метаподатака и одсуство „рупе за упис“, с једне стране, и ефикасније коришћење простора, карактеристично за РАИД5/6, с друге стране. Ово омогућава да се избегне оштећење метаподатака и да се исправи оштећење података.

Такође се може приметити да ће за ССД-ове у Бтрфс-у у кернелу 6.2, асинхроно извршавање операције „одбаци“ бити активирано подразумевано (означавање ослобођених блокова који више не морају да се физички чувају). Предност овог режима су високе перформансе због ефикасног груписања „одбаци” операција у реду и даље обраде реда од стране позадинског процесора, због чега нормалне ФС операције не успоравају, као што је случај са синхроним „ одбаци“ како се блокови ослобађају, а ССД може доносити боље одлуке. Са друге стране, више нећете морати да користите услужне програме као што је фстрим, пошто ће сви доступни блокови бити обрисани у ФС-у без потребе за додатним скенирањем и без успоравања операција.

Извор: опеннет.ру

Додај коментар