Linux နှင့် FreeBSD အတွက် OpenZFS 2.3.0၊ ZFS အကောင်အထည်ဖော်မှုများ

ဖွံ့ဖြိုးတိုးတက်မှု တစ်နှစ်ကျော်အကြာတွင်၊ OpenZFS 2.3.0 ပရောဂျက်ကို ထုတ်ဝေခဲ့ပြီး Linux နှင့် FreeBSD အတွက် ZFS ဖိုင်စနစ်၏ အကောင်အထည်ဖော်မှုကို ဖော်ဆောင်ခဲ့သည်။ ပရောဂျက်ကို "ZFS on Linux" ဟုလူသိများလာပြီး ယခင်က Linux kernel အတွက် module တစ်ခုတည်ဆောက်ရန် ကန့်သတ်ထားသော်လည်း FreeBSD မှကုဒ်နှင့် ပေါင်းစည်းပြီးနောက် ၎င်းကို OpenZFS ၏ အဓိကအကောင်အထည်ဖော်မှုအဖြစ် အသိအမှတ်ပြုပြီး အမည်ပြောင်းခဲ့သည်။

OpenZFS ကို Linux kernels 4.18 မှ 6.12 နှင့် 13.3 မှစတင်၍ FreeBSD အခွဲများအားလုံးနှင့် စမ်းသပ်ထားသည်။ ကုဒ်ကို အခမဲ့ CDDL လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ OpenZFS ကို FreeBSD တွင် အသုံးပြုထားပြီးဖြစ်ပြီး Debian၊ Ubuntu၊ Gentoo၊ NixOS နှင့် ALT Linux ဖြန့်ဝေမှုများတွင် ထည့်သွင်းထားသည်။ ဗားရှင်းအသစ်ပါသော Packages များသည် Debian၊ Ubuntu၊ Fedora၊ RHEL/CentOS အပါအဝင် အဓိက Linux ဖြန့်ဖြူးမှုအတွက် မကြာမီ ပြင်ဆင်တော့မည်ဖြစ်သည်။

OpenZFS သည် ဖိုင်စနစ်နှင့် အသံအတိုးအကျယ် မန်နေဂျာ နှစ်ခုလုံးနှင့် သက်ဆိုင်သည့် ZFS အစိတ်အပိုင်းများကို အကောင်အထည်ဖော်ပေးပါသည်။ အကောင်အထည်ဖော်ခဲ့သည့် အစိတ်အပိုင်းများ- SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) နှင့် ZPL (ZFS POSIX Layer)။ ပရောဂျက်သည် Luster အစုလိုက်အပြုံလိုက် ဖိုင်စနစ်အတွက် ZFS အား နောက်ကွယ်တစ်ခုအဖြစ် အသုံးပြုရန်လည်း ခွင့်ပြုထားသည်။ OpenZFS ၏အလုပ်သည် OpenSolaris ပရောဂျက်မှတင်သွင်းသောမူရင်း ZFS ကုဒ်ပေါ်တွင်အခြေခံပြီး Illumos အသိုင်းအဝိုင်းမှ တိုးတက်မှုများနှင့် ပြင်ဆင်မှုများဖြင့် တိုးချဲ့ထားသည်။ အမေရိကန်စွမ်းအင်ဌာနနှင့် စာချုပ်အရ Livermore National Laboratory မှ ဝန်ထမ်းများ၏ ပူးပေါင်းပါဝင်မှုဖြင့် အဆိုပါပရောဂျက်ကို တီထွင်လျက်ရှိသည်။

GPLv2 နှင့် CDDL လိုင်စင်များအောက်တွင် ကုဒ်ကို ရောနှောထားခြင်းကို လက်မခံနိုင်သောကြောင့် OpenZFS ကို Linux kernel ၏ အဓိကဌာနခွဲသို့ ပေါင်းစည်းခြင်းကို ခွင့်မပြုသော GPLv2 နှင့် ကိုက်ညီမှုမရှိသော အခမဲ့ CDDL လိုင်စင်အောက်တွင် ကုဒ်ကို ဖြန့်ဝေထားသည်။ လိုင်စင်နှင့် လိုက်ဖက်မှုမရှိခြင်းကို ရှောင်ရှားရန်၊ kernel မှ သီးခြားပံ့ပိုးပေးထားသည့် သီးခြားတင်ထားသော module တစ်ခုအနေဖြင့် CDDL လိုင်စင်အောက်တွင် Linux အတွက် ထုတ်ကုန်တစ်ခုလုံးကို ဖြန့်ဝေရန် ဆုံးဖြတ်ခဲ့သည်။ OpenZFS codebase ၏တည်ငြိမ်မှုကို Linux အတွက် အခြားသော FS များနှင့် နှိုင်းယှဉ်အကဲဖြတ်ပါသည်။

အဓိကပြောင်းလဲမှုများ-

  • အလုပ်မရပ်ဘဲနှင့် drive အဖွဲ့အသစ်တစ်ခုဖန်တီးရန်မလိုအပ်ဘဲ သိုလှောင်မှုအရွယ်အစားကို တိုးမြှင့်ရန်အတွက် လက်ရှိ RAIDZ အခင်းအကျင်းတစ်ခုသို့ ဒစ်ခ်အသစ်များထည့်နိုင်စွမ်းကို အကောင်အထည်ဖော်ပြီးဖြစ်သည်။ ဒစ်ခ်အသစ်များကို ထည့်သွင်း၍ မလိုအပ်သောဒေတာများကို ပြန်လည်ဖြန့်ဝေခြင်းသည် အလိုအလျောက်လုပ်ဆောင်သည်။ ရှိပြီးသားအဖွဲ့တစ်ခုသို့ ဒစ်တစ်ခုထည့်ရန်၊ သင်သည် “zpool attach POOL raidzP-N NEW_DEVICE” ညွှန်ကြားချက်ကို အသုံးပြုနိုင်ပြီး နောက်ခံခင်းကျင်းချဲ့ထွင်မှုလုပ်ငန်းစဉ် ပြီးဆုံးမှုကို စောင့်ကြည့်ရန်၊ သင်သည် “zpool အခြေအနေ” ကို အသုံးပြုနိုင်သည်။
  • ဒေတာဘလောက်များကို ထပ်ပွားခြင်းနှင့် ပတ်သက်သည့် လုပ်ငန်းဆောင်ရွက်မှုများကို သိသိသာသာ အရှိန်မြှင့်ခဲ့သည်။ ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများသည် အခြားအရာများကြားတွင် ထုတ်ယူခြင်းဇယားများ၏ ဖော်မတ်အပေါ် သက်ရောက်မှုရှိသည်၊ ထို့ကြောင့် ရှိပြီးသား pools များတွင် အဆိုပြုထားသော optimizations ကိုဖွင့်ရန်၊ သင်သည် "fast_dedup" option ကိုဖွင့်ထားရမည်ဖြစ်ပြီး၊ ထို့နောက်တွင် ထပ်တူပွားခြင်းဇယားအသစ်များကို ဖန်တီးမည်ဖြစ်ပြီး၊ ၎င်းနှင့်အပြိုင်အသုံးပြုမည်ဖြစ်သည်။ စားပွဲဟောင်းများ။
  • ARC ကက်ရှ် (Adaptive Replacement Cache) ကိုကျော်ဖြတ်၍ ဖတ်ရှုခြင်း နှင့် ရေးခြင်းဆိုင်ရာ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်နိုင်စေမည့် Direct IO မုဒ်ကို ထည့်သွင်းထားသည်။ NVMe စက်ပစ္စည်းများကိုအသုံးပြုသည့်အခါကဲ့သို့သော ထပ်ဆောင်းမှတ်ဉာဏ်မိတ္တူကူးယူလုပ်ဆောင်မှုများကြောင့် ကက်ရှ်လုပ်ခြင်းအား အပျက်သဘောဆောင်သော စွမ်းဆောင်ရည်ကို ထိခိုက်စေနိုင်သည့် အခြေအနေများတွင် ဤမုဒ်သည် စွမ်းဆောင်ရည်ကို မြှင့်တင်ပေးပါသည်။
  • ညွှန်ကြားချက်အများစု (zfs list|get|mount|ဗားရှင်း၊ zpool အခြေအနေ|list|get|version) သည် JSON ဖော်မတ်အတွက် output အတွက် “-j” ရွေးချယ်မှုကို ထည့်သွင်းထားသည်။
  • ခွင့်ပြုထားသော ဖိုင်အရွယ်အစားနှင့် လမ်းညွှန်အမည်များကို စာလုံးရေ 255 လုံးမှ 1023 လုံးအထိ တိုးမြှင့်ထားသည် (အရွယ်အစားအသစ်သည် 255 4-byte စာလုံးများကို ထားရှိရန် ရွေးချယ်ထားသည်)။
  • codebase ၏ အစိတ်အပိုင်းအမျိုးမျိုးတွင် စွမ်းဆောင်ရည် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ထားပါသည်။
  • ရွေးချယ်စရာများကို kernel မော်ဂျူးသို့ ပေါင်းထည့်လိုက်သည်-
    • dmu_ddt_copies
    • raidz_expand_max_copy_bytes
    • raidz_expand_max_reflow_bytes
    • raidz_io_aggregate_rows
    • spa_cpus_per_allocator
    • spa_num_allocators
    • zap_shrink_enabled
    • zfetch_max_idistance
    • zfs_active_allocator
    • zfs_arc_shrinker_seeks
    • zfs_dedup_log_flush_entries_min
    • .zfs_dedup_log_flush_flow_rate_txgs
    • zfs_dedup_log_flush_min_time_ms
    • zfs_dedup_log_flush_passes_max
    • zfs_dedup_log_mem_max
    • zfs_dedup_log_mem_max_percent
    • zfs_dedup_log_txg_max
    • zfs_dio_enabled
    • zfs_dio_write_verify_events_per_second
    • zfs_resilver_defer_percent
    • zfs_scrub_after_expand
    • zfs_snapshot_no_setuid
    • zfs_vdev_direct_write_verify
    • zio_taskq_write_tpq

source: opennet.ru

မှတ်ချက် Add