Linux 6.2 nüvəsi Btrfs-də RAID5/6 təkmilləşdirmələrini əhatə edəcək

RAID 6.2/5 tətbiqində yazma dəliyi problemini həll etmək üçün Linux 6 nüvəsinə daxil etmək üçün Btrfs təkmilləşdirmələri təklif edilmişdir. Problemin mahiyyəti ondan ibarətdir ki, qeyd zamanı qəza baş verərsə, ilkin olaraq hansı blokda RAID cihazının düzgün yazıldığını və qeydin tamamlanmadığını başa düşmək mümkün deyil. Bu vəziyyətdə RAID-i bərpa etməyə cəhd etsəniz, RAID bloklarının vəziyyəti sinxronizasiya olunmadığına görə, anderrinizə edilmiş bloklara uyğun olan bloklar məhv edilə bilər. Bu problem, bu təsirlə mübarizə üçün xüsusi tədbirlər görülməmiş istənilən RAID1/5/6 massivlərində baş verir.

RAID tətbiqində, btrfs-də RAID1 kimi, bu problem hər iki nüsxədə yoxlama məbləğlərindən istifadə etməklə həll edilir; uyğunsuzluq varsa, məlumat sadəcə ikinci nüsxədən bərpa olunur. Bu yanaşma, bəzi cihaz tam uğursuzluq əvəzinə yanlış məlumat göndərməyə başladıqda da işləyir.

Bununla belə, RAID5/6 vəziyyətində, fayl sistemi paritet blokları üçün yoxlama məbləğlərini saxlamır: normal vəziyyətdə blokların etibarlılığı onların hamısının yoxlama cəmlənməsi ilə yoxlanılır və paritet bloku yenidən qurula bilər. məlumatlardan. Bununla belə, qismən qeyd edildiyi təqdirdə, bu yanaşma müəyyən hallarda işləməyə bilər. Bu halda massivi bərpa edərkən natamam qeydin altına düşən blokların səhv bərpa olunması mümkündür.

Btrfs vəziyyətində, istehsal olunan qeyd zolaqdan kiçik olduqda bu problem ən aktualdır. Bu halda fayl sistemi oxumaq-dəyişiklik etmək-yazmaq əməliyyatını yerinə yetirməlidir (oxumaq-dəyişiklik etmək-yazmaq, RMW). Əgər bu, natamam yazı ilə bloklarla qarşılaşarsa, onda RMW əməliyyatı yoxlama məbləğlərindən asılı olmayaraq aşkar edilməyəcək korrupsiyaya səbəb ola bilər. Tərtibatçılar dəyişikliklər etmişlər ki, RMW əməliyyatı bu əməliyyatı yerinə yetirməzdən əvvəl blokların yoxlama məbləğini yoxlayır və əgər məlumatları bərpa etmək lazımdırsa, qeyddən sonra yoxlama məbləğlərini də yoxlayır. Təəssüf ki, natamam zolağın (RMW) yazılması vəziyyətində bu, yoxlama məbləğlərinin hesablanması üçün əlavə xərclərə səbəb olur, lakin etibarlılığı əhəmiyyətli dərəcədə artırır. RAID6 üçün belə məntiq hələ hazır deyil, lakin RAID6-da belə bir uğursuzluq üçün yazmanın eyni vaxtda 2 cihazda uğursuz olması lazımdır, bu da daha azdır.

Əlavə olaraq, tərtibatçıların RAID5/6 istifadəsinə dair tövsiyələrini qeyd edə bilərik, bunun mahiyyəti Btrfs-də metadata və məlumat saxlama profilinin fərqli ola biləcəyidir. Bu halda, metadata üçün RAID1 (güzgü) və ya hətta RAID1C3 (3 nüsxə) profilindən, məlumat üçün isə RAID5 və ya RAID6 profilindən istifadə edə bilərsiniz. Bu, bir tərəfdən metadataların etibarlı qorunmasını və “yazma dəliyinin” olmamasını, digər tərəfdən isə RAID5/6 üçün xarakterik olan məkandan daha səmərəli istifadəni təmin edir. Bu, metadata korrupsiyasının qarşısını almağa və məlumatların korreksiyasına imkan verir.

Onu da qeyd etmək olar ki, nüvə 6.2-də Btrfs-də SSD-lər üçün "atmaq" əməliyyatının asinxron icrası standart olaraq aktivləşdiriləcək (artıq fiziki olaraq saxlanmağa ehtiyacı olmayan azad edilmiş blokları qeyd etməklə). Bu rejimin üstünlüyü, növbədə "atmaq" əməliyyatlarının effektiv qruplaşdırılması və növbənin fon prosessoru tərəfindən sonrakı işlənməsi səbəbindən yüksək performansdır, buna görə də sinxron rejimdə olduğu kimi normal FS əməliyyatları yavaşlamır. bloklar boşaldıqca atın” və SSD daha yaxşı qərarlar qəbul edə bilər. Digər tərəfdən, fstrim kimi kommunal proqramlardan artıq istifadə etməyə ehtiyacınız olmayacaq, çünki bütün mövcud bloklar əlavə skan etmədən və əməliyyatları yavaşlatmadan FS-də silinəcək.

Mənbə: opennet.ru

Добавить комментарий