Linux kernel 6.2 bakal kalebu dandan kanggo RAID5/6 ing Btrfs

Btrfs dandan wis ngajokaken kanggo Gawan ing Linux 6.2 kernel kanggo ndandani masalah bolongan nulis ing RAID 5/6 implementasine. Inti saka masalah kasebut yaiku yen ana kacilakan nalika ngrekam, mula ora bisa dingerteni pemblokiran ing piranti RAID sing ditulis kanthi bener, lan rekaman ora rampung. Yen sampeyan nyoba kanggo mulihake RAID ing kahanan iki, pamblokiran sing cocog karo pamblokiran underwritten bisa numpes amarga negara pamblokiran RAID ora sinkron. Masalah iki dumadi ing sembarang RAID1/5/6 susunan ngendi langkah khusus durung dijupuk kanggo pertempuran efek iki.

Ing implementasi RAID, kaya RAID1 ing btrfs, masalah iki ditanggulangi kanthi nggunakake checksums ing loro salinan; yen ana mismatch, data mung dibalèkaké saka salinan kapindho. Pendekatan iki uga bisa digunakake yen sawetara piranti wiwit ngirim data sing salah tinimbang gagal lengkap.

Nanging, ing kasus RAID5/6, sistem file ora nyimpen checksums kanggo pamblokiran paritas: ing kahanan normal, validitas pamblokiran wis diverifikasi dening kasunyatan sing padha kabeh checksummed, lan pamblokiran paritas bisa direkonstruksi. saka data. Nanging, ing kasus rekaman parsial, pendekatan iki bisa uga ora bisa digunakake ing kahanan tartamtu. Ing kasus iki, nalika mulihake array, bisa uga pamblokiran sing ana ing rekaman sing ora lengkap bakal dibalèkaké kanthi ora bener.

Ing kasus btrfs, masalah iki paling relevan yen rekaman sing diprodhuksi luwih cilik tinimbang belang. Ing kasus iki, sistem file kudu nindakake operasi maca-modify-write (read-modify-write, RMW). Yen iki ketemu pamblokiran karo nulis ora lengkap, banjur operasi RMW bisa nimbulaké korupsi sing ora bakal dideteksi, preduli saka checksums. Pangembang wis nggawe owah-owahan ing operasi RMW mriksa checksum pamblokiran sadurunge nindakake operasi iki, lan yen perlu kanggo mulihake data, uga mriksa checksums sawise ngrekam. Sayange, ing kahanan karo nulis belang ora pepak (RMW), iki ndadékaké kanggo nduwur sirah tambahan kanggo ngitung checksums, nanging Ngartekno mundhak linuwih. Kanggo RAID6, logika kuwi durung siap, Nanging, kanggo Gagal kuwi ing RAID6 perlu yen nulis gagal ing 2 piranti bebarengan, kang kurang kamungkinan.

Kajaba iku, kita bisa nyathet rekomendasi kanggo nggunakake RAID5 / 6 saka pangembang, sing intine yaiku ing Btrfs metadata lan profil panyimpenan data bisa uga beda. Ing kasus iki, sampeyan bisa nggunakake profil RAID1 (pangilon) utawa malah RAID1C3 (3 salinan) kanggo metadata, lan RAID5 utawa RAID6 kanggo data. Iki njamin proteksi metadata sing dipercaya lan ora ana "bolongan nulis," ing tangan siji, lan panggunaan spasi sing luwih efisien, karakteristik RAID5 / 6, ing sisih liyane. Iki ngidini korupsi metadata bisa nyingkiri lan korupsi data bisa didandani.

Sampeyan uga bisa dicathet yen kanggo SSD ing Btrfs ing kernel 6.2, eksekusi asynchronous saka operasi "mbucal" bakal diaktifake kanthi gawan (marking blok sing dibebasake sing ora perlu disimpen sacara fisik). Kauntungan saka mode iki yaiku kinerja dhuwur amarga klompok efektif "mbucal" operasi ing antrian lan proses antrian luwih dening prosesor latar mburi, mulane operasi FS normal ora alon, kaya kasus sinkron " discard" minangka pamblokiran dibebaske, lan SSD bisa nggawe keputusan sing luwih apik. Ing tangan liyane, sampeyan ora perlu maneh nggunakake utilitas kaya fstrim, amarga kabeh pamblokiran kasedhiya bakal dibusak ing FS tanpa perlu kanggo mindhai tambahan lan tanpa kalem mudhun operasi.

Source: opennet.ru

Add a comment