Linux 6.2 kernel တွင် Btrfs တွင် RAID5/6 တိုးတက်မှုများ ပါ၀င်မည်ဖြစ်သည်။

RAID 6.2/5 အကောင်အထည်ဖော်မှုတွင် write hole ပြဿနာကို ဖြေရှင်းရန် Btrfs တိုးတက်မှုများကို Linux 6 kernel တွင် ထည့်သွင်းရန် အဆိုပြုထားသည်။ ပြဿနာ၏ အနှစ်သာရမှာ မှတ်တမ်းတင်နေစဉ်အတွင်း ပျက်ကျမှုတစ်ခု ဖြစ်ပွားပါက မည်သည့် RAID ကိရိယာကို မှန်ကန်စွာ ရေးသားခဲ့သည်နှင့် မှတ်တမ်းတင်ခြင်း မပြီးမြောက်ကြောင်း ကနဦးတွင် နားလည်ရန် မဖြစ်နိုင်ပေ။ ဤအခြေအနေတွင် RAID တစ်ခုကို ပြန်လည်ရယူရန် ကြိုးပမ်းပါက၊ RAID လုပ်ကွက်များ၏ အခြေအနေသည် ထပ်တူမကျသောကြောင့် ရေးထားသောလုပ်ကွက်များနှင့် သက်ဆိုင်သည့် ပိတ်ဆို့မှုများကို ဖျက်ဆီးနိုင်သည်။ ဤအကျိုးသက်ရောက်မှုကို တိုက်ဖျက်ရန် အထူးအစီအမံများ မလုပ်ဆောင်သည့် မည်သည့် RAID1/5/6 အခင်းအကျင်းများတွင် ဤပြဿနာ ဖြစ်ပေါ်ပါသည်။

btrfs တွင် RAID1 ကဲ့သို့ RAID အကောင်အထည်ဖော်မှုတွင်၊ ဤပြဿနာကို မိတ္တူနှစ်ခုစလုံးတွင် checksums ကိုအသုံးပြုခြင်းဖြင့် ဖြေရှင်းသည်၊ မကိုက်ညီပါက၊ ဒေတာကို ဒုတိယမိတ္တူမှ ရိုးရိုးပြန်လည်ရယူသည်။ ပြီးပြည့်စုံသော ချို့ယွင်းချက်အစား စက်ပစ္စည်းအချို့သည် မှားယွင်းသောဒေတာကို စတင်ပေးပို့ပါက ဤနည်းလမ်းသည် အလုပ်ဖြစ်နိုင်သည်။

သို့သော်လည်း RAID5/6 တွင်၊ parity blocks များအတွက် checksums များကို ဖိုင်စနစ်က မသိမ်းဆည်းထားပါ- ပုံမှန်အခြေအနေတွင်၊ blocks များ၏ တရားဝင်မှုကို ၎င်းတို့အားလုံးကို checksummed လုပ်ပြီး parity block ကို ပြန်လည်တည်ဆောက်နိုင်သည် data မှ သို့ရာတွင်၊ တစ်စိတ်တစ်ပိုင်းမှတ်တမ်းတင်ခြင်းကိစ္စတွင်၊ ဤချဉ်းကပ်မှုသည် အချို့သောအခြေအနေများတွင် အလုပ်မဖြစ်နိုင်ပါ။ ဤကိစ္စတွင်၊ array တစ်ခုကို ပြန်လည်ရယူသောအခါ၊ မပြည့်စုံသောမှတ်တမ်းတစ်ခုအောက်တွင် ကျရောက်နေသော ပိတ်ဆို့မှုများကို မမှန်မကန် ပြန်လည်ရယူသွားခြင်း ဖြစ်နိုင်သည်။

btrfs ကိစ္စတွင်၊ ထုတ်လုပ်သည့်မှတ်တမ်းသည် အစင်းထက်ငယ်ပါက၊ ဤပြဿနာသည် အသင့်လျော်ဆုံးဖြစ်သည်။ ဤကိစ္စတွင်၊ ဖိုင်စနစ်သည် read-modify-write လုပ်ဆောင်မှု (read-modify-write၊ RMW) ကို လုပ်ဆောင်ရပါမည်။ အကယ်၍ ၎င်းသည် မပြည့်စုံသောရေးသားမှုဖြင့် ပိတ်ဆို့မှုများကို ကြုံတွေ့ရပါက RMW လုပ်ဆောင်ချက်သည် checksums များ မည်သို့ပင်ရှိစေကာမူ ရှာဖွေတွေ့ရှိမည်မဟုတ်သော အကျင့်ပျက်ခြစားမှုကို ဖြစ်စေနိုင်သည်။ developer များသည် ဤလုပ်ဆောင်ချက်ကိုမလုပ်ဆောင်မီ RMW လည်ပတ်မှုမှ checksum များကိုစစ်ဆေးပြီး data များကိုပြန်လည်ရယူရန်လိုအပ်ပါက၊ မှတ်တမ်းတင်ပြီးနောက် checksums များကိုလည်းစစ်ဆေးသည်။ ကံမကောင်းစွာပဲ၊ မပြည့်စုံသောအစင်းကြောင်း (RMW) ရေးနေသည့်အခြေအနေတွင်၊ ၎င်းသည် checksums များတွက်ချက်ရန်အတွက် အပိုဆောင်းကုန်ကျစရိတ်ကို ဦးတည်သွားစေသော်လည်း ယုံကြည်စိတ်ချရမှုကို သိသိသာသာတိုးစေသည်။ RAID6 အတွက်၊ ထိုကဲ့သို့သော ယုတ္တိဗေဒသည် အဆင်သင့်မဖြစ်သေးသော်လည်း၊ RAID6 တွင် ထိုသို့သော ချို့ယွင်းချက်ကြောင့် စက်ပစ္စည်း 2 ခုတွင် တစ်ကြိမ်တည်းတွင် စာရေးခြင်းသည် ဖြစ်နိုင်ခြေနည်းပါသည်။

ထို့အပြင်၊ developer များထံမှ RAID5/6 ကိုအသုံးပြုရန် အကြံပြုချက်များကို ကျွန်ုပ်တို့မှတ်သားနိုင်သည်၊ ဆိုလိုသည်မှာ Btrfs တွင် metadata နှင့် data storage profile ကွာခြားနိုင်သည် ။ ဤကိစ္စတွင်၊ သင်သည် မက်တာဒေတာအတွက် RAID1 (ကြေးမုံ) သို့မဟုတ် RAID1C3 (3 မိတ္တူ) နှင့် ဒေတာအတွက် RAID5 သို့မဟုတ် RAID6 ကို အသုံးပြုနိုင်သည်။ ၎င်းသည် ယုံကြည်စိတ်ချရသော မက်တာဒေတာကာကွယ်ရေးနှင့် တစ်ဖက်တွင် "ရေးရန်အပေါက်" မရှိခြင်းနှင့် အခြားတစ်ဖက်တွင် နေရာလွတ်များကို ပိုမိုထိရောက်စွာအသုံးပြုခြင်း၊ RAID5/6 ၏လက္ခဏာများကို သေချာစေသည်။ ၎င်းသည် မက်တာဒေတာ အဂတိလိုက်စားမှုကို ရှောင်ရှားနိုင်စေပြီး ဒေတာဖောက်ပြန်မှုကို တည့်မတ်နိုင်သည်။

kernel 6.2 ရှိ Btrfs ရှိ SSDs များအတွက်၊ "discard" လုပ်ဆောင်ချက်၏ အဆက်မပြတ်လုပ်ဆောင်မှုကို ပုံသေဖြင့် အသက်သွင်းမည် (ရုပ်ပိုင်းဆိုင်ရာ သိမ်းဆည်းရန်မလိုအပ်တော့သော လွတ်မြောက်သွားသော ဘလောက်များကို အမှတ်အသားပြုခြင်း) ကိုလည်း မှတ်သားနိုင်ပါသည်။ ဤမုဒ်၏ အားသာချက်မှာ တန်းစီတစ်ခုတွင် ထိရောက်သော "ပယ်ချ" လုပ်ဆောင်ချက်များကို အုပ်စုဖွဲ့ခြင်းနှင့် နောက်ခံပရိုဆက်ဆာဖြင့် တန်းစီခြင်းကို ဆက်လက်လုပ်ဆောင်ခြင်းကြောင့် စွမ်းဆောင်ရည်မြင့်မားသောကြောင့်၊ ထို့ကြောင့် ပုံမှန် FS လုပ်ဆောင်ချက်များသည် synchronous "ကဲ့သို့ပင် နှေးကွေးခြင်းမရှိပေ။ ပိတ်ဆို့ခြင်းများကို ဖယ်ရှားလိုက်သောကြောင့် စွန့်ပစ်လိုက်ပါ၊ SSD သည် ပိုမိုကောင်းမွန်သော ဆုံးဖြတ်ချက်များကို ချမှတ်နိုင်ပါသည်။ အခြားတစ်ဖက်တွင်၊ သင်သည် fstrim ကဲ့သို့သော utilities များကို အသုံးပြုရန် မလိုအပ်တော့ပါ၊ အဘယ်ကြောင့်ဆိုသော် ရရှိနိုင်သော ဘလောက်များကို FS တွင် ထပ်လောင်းစကင်န်ဖတ်ရန် မလိုအပ်ဘဲ လုပ်ဆောင်ချက်များကို နှေးကွေးစေခြင်းမရှိဘဲ ရှင်းလင်းသွားမည်ဖြစ်သည်။

source: opennet.ru

မှတ်ချက် Add