အလုပ်များသောပရောဂျက်များတွင် Ceph နှင့်အလုပ်လုပ်ရန် အကြံပြုချက်များနှင့် လှည့်ကွက်များ

အလုပ်များသောပရောဂျက်များတွင် Ceph နှင့်အလုပ်လုပ်ရန် အကြံပြုချက်များနှင့် လှည့်ကွက်များ

မတူညီသော load များရှိသော ပရောဂျက်များတွင် Ceph ကို အသုံးပြုခြင်းဖြင့်၊ ပထမတစ်ချက်တွင် ရိုးရှင်းသော သို့မဟုတ် အသေးအဖွဲပုံမပေါ်သည့် အလုပ်မျိုးစုံကို ကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်:

  • Ceph အဟောင်းမှ ဒေတာအသစ်သို့ အစုအဝေးအသစ်တွင် ယခင်ဆာဗာများကို တစ်စိတ်တစ်ပိုင်းအသုံးပြုခြင်းဖြင့်၊
  • Ceph ရှိ disk space ခွဲဝေမှုပြဿနာအတွက်ဖြေရှင်းချက်။

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

အောက်တွင်ဖော်ပြထားသောနည်းလမ်းများသည် Ceph ၏ မည်သည့်ဗားရှင်းအတွက်မဆို သက်ဆိုင်ပါသည်။ ထို့အပြင်၊ Ceph သည် ဒေတာအများအပြားကို သိမ်းဆည်းနိုင်သည်ဟူသောအချက်ကို ထည့်သွင်းစဉ်းစားရလိမ့်မည်- ဒေတာဆုံးရှုံးမှုနှင့် အခြားပြဿနာများကို ကာကွယ်ရန်၊ အချို့သောလုပ်ဆောင်ချက်များကို အခြားအများအပြားသို့ "ခွဲထုတ်" မည်ဖြစ်သည်။

OSD အကြောင်း အကြို

ဆွေးနွေးထားသော ဟင်းချက်နည်းသုံးမျိုးထဲမှ နှစ်ခုသည် OSD အတွက် သီးသန့်ဖြစ်သောကြောင့် (Object Storage Daemon) လက်တွေ့ကျသောအပိုင်းသို့မ၀င်မီ - Ceph တွင်၎င်းသည်ဘာကြောင့်အရေးကြီးသနည်း၊

ပထမဦးစွာ၊ Ceph အစုအဝေးတစ်ခုလုံးတွင် OSD များစွာပါဝင်သည်ဟု ဆိုရပါမည်။ ရှိလေလေ၊ Ceph တွင် အခမဲ့ဒေတာပမာဏ ပိုများလေဖြစ်သည်။ ဤနေရာမှ နားလည်ရန် လွယ်ကူပါသည်။ ပင်မ OSD လုပ်ဆောင်ချက်: ၎င်းသည် Ceph အရာဝတ္ထုဒေတာကို အစုအစည်းအားလုံး၏ ဖိုင်စနစ်များတွင် သိမ်းဆည်းထားပြီး ၎င်းထံသို့ ကွန်ရက်ဝင်ရောက်ခွင့် (စာဖတ်ခြင်း၊ စာရေးခြင်းနှင့် အခြားတောင်းဆိုမှုများအတွက်) ပေးသည်။

တူညီသောအဆင့်တွင်၊ မတူညီသော OSD များကြားရှိ အရာဝတ္ထုများကို ကူးယူခြင်းဖြင့် ကူးယူခြင်းဆိုင်ရာ ကန့်သတ်ချက်များကို သတ်မှတ်ပေးပါသည်။ ဤနေရာတွင် ပြဿနာအမျိုးမျိုးကို ကြုံတွေ့ရနိုင်ပြီး အောက်တွင် ဆွေးနွေးမည့် အဖြေများ။

နံပါတ် ၁။ ဒေတာမဆုံးရှုံးဘဲ OSD ကို Ceph အစုအဝေးမှ လုံခြုံစွာ ဖယ်ရှားပါ။

OSD ကို ဖယ်ရှားရန် လိုအပ်မှုသည် ဆာဗာကို အစုအဝေးမှ ဖယ်ရှားခြင်းကြောင့် ဖြစ်နိုင်သည် - ဥပမာအားဖြင့် ၎င်းကို အခြားဆာဗာတစ်ခုဖြင့် အစားထိုးရန် - ဤဆောင်းပါးကို ရေးသားရခြင်းသည် ကျွန်ုပ်တို့အတွက် ဖြစ်ခဲ့သည် ။ ထို့ကြောင့်၊ ခြယ်လှယ်ခြင်း၏ အဆုံးစွန်ပန်းတိုင်မှာ ပေးထားသောဆာဗာတစ်ခုပေါ်တွင် OSD နှင့် mons အားလုံးကို ထုတ်ယူရန်ဖြစ်ပြီး ၎င်းကိုရပ်တန့်နိုင်စေရန်ဖြစ်သည်။

လိုအပ်သော OSD ကို သတ်မှတ်ရာတွင် ကျွန်ုပ်တို့ အမှားလုပ်မိသည့် အခြေအနေမှ ရှောင်ရှားရန် အတွက်၊ ဖျက်ပစ်ရမည့် OSD ၏ နံပါတ်ဖြစ်သည့် တန်ဖိုးသည် သီးခြား variable တစ်ခုကို သတ်မှတ်ပါမည်။ သူမကို ခေါ်ရအောင် ${ID} — ဤနေရာနှင့် အောက်တွင်၊ ထိုသို့သော ကိန်းရှင်သည် ကျွန်ုပ်တို့လုပ်ဆောင်နေသည့် OSD အရေအတွက်ကို အစားထိုးသည်။

အလုပ်မစခင် အခြေအနေကို ကြည့်ရအောင်။

root@hv-1 ~ # ceph osd tree
ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF
-1       0.46857 root default
-3       0.15619      host hv-1
-5       0.15619      host hv-2
 1   ssd 0.15619      osd.1     up     1.00000  1.00000
-7       0.15619      host hv-3
 2   ssd 0.15619      osd.2     up     1.00000  1.00000

OSD ဖယ်ရှားခြင်းကို စတင်ရန်၊ ချောမွေ့စွာ လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ reweight အဲဒါကို သုည။ ဤနည်းဖြင့် ကျွန်ုပ်တို့သည် ၎င်းကို အခြား OSD များသို့ ချိန်ညှိခြင်းဖြင့် OSD တွင် ဒေတာပမာဏကို လျှော့ချပေးသည်။ ဒါကိုလုပ်ဖို့၊ အောက်ပါ command တွေကို run ပါ။

ceph osd reweight osd.${ID} 0.98
ceph osd reweight osd.${ID} 0.88
ceph osd reweight osd.${ID} 0.78

သုညအထိ … ဖြစ်သွားပြီ။

ချောမွေ့စွာ ဟန်ချက်ညီရန် လိုအပ်သည်။ဒေတာမဆုံးရှုံးစေရန်။ OSD တွင် ဒေတာ အများအပြား ပါဝင်နေပါက အထူးသဖြင့် မှန်ပါသည်။ အမိန့်များကို အကောင်အထည်ဖော်ပြီးနောက် သေချာစေရန် reweight အားလုံးအဆင်ပြေသွားပါပြီ၊ ပြီးအောင်လုပ်နိုင်ပါတယ်။ ceph -s သို့မဟုတ် သီးခြား terminal window တွင် run ပါ။ ceph -w အပြောင်းအလဲများကို အချိန်နှင့်တပြေးညီ စောင့်ကြည့်နိုင်ရန်။

OSD သည် "ဗလာ" ဖြစ်သောအခါ၊ ၎င်းကိုဖယ်ရှားရန် စံလုပ်ဆောင်ချက်ကို ဆက်လက်လုပ်ဆောင်နိုင်သည်။ ၎င်းကိုလုပ်ဆောင်ရန်၊ လိုချင်သော OSD ကိုပြည်နယ်သို့လွှဲပြောင်းပါ။ down:

ceph osd down osd.${ID}

OSD ကို အစုအဝေးမှ "ဆွဲထုတ်" ကြပါစို့။

ceph osd out osd.${ID}

OSD ဝန်ဆောင်မှုကို ရပ်တန့်ပြီး FS တွင် ၎င်း၏ အခန်းကန့်ကို ဖြုတ်လိုက်ကြပါစို့။

systemctl stop ceph-osd@${ID}
umount /var/lib/ceph/osd/ceph-${ID}

OSD ကို ဖယ်ရှားပါ။ CRUSH မြေပုံ:

ceph osd crush remove osd.${ID}

OSD အသုံးပြုသူကို ဖျက်လိုက်ကြရအောင်။

ceph auth del osd.${ID}

နောက်ဆုံးအနေနဲ့၊ OSD သူ့ဘာသာသူ ဖယ်ရှားလိုက်ကြရအောင်။

ceph osd rm osd.${ID}

ပွောဆို− သင် Ceph Luminous ဗားရှင်း သို့မဟုတ် ၎င်းထက် ပိုမြင့်ပါက၊ အထက်ဖော်ပြပါ OSD ဖယ်ရှားရေးအဆင့်များကို အမိန့်နှစ်ခုသို့ လျှော့ချနိုင်သည်-

ceph osd out osd.${ID}
ceph osd purge osd.${ID}

အထက်ဖော်ပြပါ အဆင့်များ ပြီးပါက၊ သင်သည် command ကို run ပါ။ ceph osd treeထို့နောက် အလုပ်လုပ်ဆောင်ခဲ့သည့် ဆာဗာတွင် အထက်ပါလုပ်ဆောင်ချက်များကို လုပ်ဆောင်ခဲ့သည့် OSD များမရှိတော့ကြောင်း ရှင်းရှင်းလင်းလင်းဖြစ်သင့်သည်-

root@hv-1 ~ # ceph osd tree
ID CLASS WEIGHT  TYPE NAME     STATUS REWEIGHT PRI-AFF
-1       0.46857      root default
-3       0.15619      host hv-1
-5       0.15619      host hv-2
-7       0.15619      host hv-3
 2   ssd 0.15619      osd.2    up     1.00000  1.00000

လမ်းတစ်လျှောက်တွင် Ceph အစုအဝေး၏ အခြေအနေသို့ ရောက်သွားမည်ကို သတိပြုပါ။ HEALTH_WARNနှင့် OSD အရေအတွက် နှင့် ရရှိနိုင်သော disk space ပမာဏ လျော့နည်းသွားသည်ကို ကျွန်ုပ်တို့တွေ့မြင်ရမည်ဖြစ်ပါသည်။

ဆာဗာကို လုံးဝရပ်တန့်လိုပါက Ceph မှ ဖယ်ရှားလိုပါက အောက်ပါတို့သည် လိုအပ်မည့် အဆင့်များကို ဖော်ပြပါမည်။ ဤကိစ္စတွင်၊ အဲဒါကိုသတိရဖို့အရေးကြီးတယ်။ ဆာဗာကို မပိတ်မီ၊ သင်သည် OSD အားလုံးကို ဖယ်ရှားရပါမည်။ ဤဆာဗာပေါ်တွင်

ဤဆာဗာတွင် OSD များ နောက်ထပ်မကျန်ပါက၊ ၎င်းတို့ကို ဖယ်ရှားပြီးနောက် သင်သည် OSD မြေပုံမှ ဆာဗာကို ဖယ်ထုတ်ရန် လိုအပ်ပါသည်။ hv-2အောက်ပါ command ကို run ခြင်းဖြင့်

ceph osd crush rm hv-2

ဖျက်ပါ mon server မှ hv-2အခြားဆာဗာပေါ်တွင်အောက်ပါ command ကို run ခြင်းဖြင့် (ဆိုလိုသည်မှာဤကိစ္စတွင်၊ on hv-1):

ceph-deploy mon destroy hv-2

၎င်းပြီးနောက်၊ သင်သည် ဆာဗာကို ရပ်တန့်နိုင်ပြီး နောက်ဆက်တွဲ လုပ်ဆောင်ချက်များကို စတင်နိုင်သည် (၎င်းကို ပြန်လည်အသုံးချခြင်း စသည်ဖြင့်)။

အမှုအမှတ် ၂။ ဖန်တီးပြီးသော Ceph အစုအဝေးအတွင်း ဒစ်ခ်နေရာကို ဖြန့်ဝေခြင်း။

ဒုတိယဇာတ်လမ်းကို PG အကြောင်း နိဒါန်းဖြင့် စတင်ပါမည် (နေရာချထားရေးအဖွဲ့များ) Ceph တွင် PG ၏ အဓိကအခန်းကဏ္ဍမှာ Ceph အရာဝတ္ထုများကို စုစည်းပြီး OSD တွင် ထပ်တူပွားရန်ဖြစ်သည်။ လိုအပ်သော PG ပမာဏကို တွက်ချက်နိုင်သော ဖော်မြူလာတွင် ပါဝင်ပါသည်။ သက်ဆိုင်ရာကဏ္ဍ Ceph စာရွက်စာတမ်း။ ဤပြဿနာကို သတ်သတ်မှတ်မှတ် ဥပမာများဖြင့်လည်း ဆွေးနွေးထားသည်။

ထို့ကြောင့်- Ceph ကိုအသုံးပြုသည့်အခါ အဖြစ်များသောပြဿနာတစ်ခုမှာ Ceph ရှိ pools များကြားရှိ OSD နှင့် PG ၏ မမျှတသောအရေအတွက်ဖြစ်သည်။

ပထမဦးစွာ၊ ဤအရာကြောင့်၊ အစုအဖွဲ့အတွင်းရှိ disk space ကို မရှိမဖြစ်လိုအပ်သော အသုံးမကျသောအသုံးပြုမှုဖြစ်သည့် ရေကူးကန်ငယ်တစ်ခုတွင် PGs အများအပြားသတ်မှတ်ထားသောအခါတွင် အခြေအနေတစ်ခုဖြစ်ပေါ်လာနိုင်သည်။ ဒုတိယအချက်မှာ၊ လက်တွေ့တွင် ပိုမိုဆိုးရွားသော ပြဿနာတစ်ခု ရှိသည်- OSD တစ်ခုတွင် ဒေတာများ ပြည့်လျှံနေပါသည်။ ၎င်းသည် အစုအဖွဲ့သည် ပြည်နယ်သို့ ဦးစွာကူးပြောင်းခြင်းကို ပါဝင်သည်။ HEALTH_WARN, ပြီးနောက် HEALTH_ERR. ယင်းအတွက် အကြောင်းရင်းမှာ ရရှိနိုင်သောဒေတာပမာဏကို တွက်ချက်သောအခါ Ceph (၎င်းကို သင်ရှာဖွေနိုင်သည်။ MAX AVAIL command output တွင် ceph df ရေကူးကန်တစ်ခုစီအတွက် သီးခြားစီ) သည် OSD တွင်ရရှိနိုင်သည့်ဒေတာပမာဏအပေါ်အခြေခံသည်။ အနည်းဆုံး OSD တစ်ခုတွင် နေရာအလုံအလောက်မရှိပါက၊ OSD များအားလုံးတွင် ဒေတာများ မှန်ကန်စွာ ဖြန့်ဝေမပြီးမချင်း ဒေတာများကို ထပ်မံရေးသားနိုင်မည်မဟုတ်ပေ။

ဒီပြဿနာတွေကို ရှင်းရှင်းလင်းလင်း သိဖို့ လိုပါတယ်။ Ceph အစုအဝေး ဖွဲ့စည်းမှု အဆင့်တွင် အများစု ဆုံးဖြတ်ကြသည်။. သင်သုံးနိုင်သောကိရိယာများထဲမှတစ်ခုဖြစ်သည်။ Ceph PGCalc. ၎င်း၏အကူအညီဖြင့် လိုအပ်သော PG ပမာဏကို ရှင်းလင်းစွာ တွက်ချက်ပါသည်။ သို့သော်၊ Ceph အစုအဝေးရှိသော အခြေအနေတွင် ၎င်းကို သင်လည်း အပန်းဖြေနိုင်သည်။ ပြီးပြီ မှားယွင်းစွာ ပြင်ဆင်ထားသည်။ ပြုပြင်ခြင်းလုပ်ငန်း၏တစ်စိတ်တစ်ပိုင်းအနေဖြင့် သင်သည် PG အရေအတွက်ကို လျှော့ချရန် ဖြစ်နိုင်ချေများပြီး ဤအင်္ဂါရပ်ကို Ceph ဗားရှင်းအဟောင်းများတွင် မရရှိနိုင်ပါ (၎င်းသည် ဗားရှင်းတွင်သာ ပေါ်လာသည် ကို Nautilus).

ထို့ကြောင့် အောက်ပါပုံကို စိတ်ကူးကြည့်ကြပါစို့- အစုအဝေးတွင် အခြေအနေတစ်ခုရှိသည်။ HEALTH_WARN OSD တစ်ခုသည် နေရာလွတ်မရှိသောကြောင့်ဖြစ်သည်။ ၎င်းကို အမှားတစ်ခုဖြင့် ညွှန်ပြပါမည်။ HEALTH_WARN: 1 near full osd. အောက်တွင် ဤအခြေအနေမှ ရုန်းထွက်ရန် algorithm တစ်ခုဖြစ်သည်။

ပထမဦးစွာ၊ ကျန်ရှိသော OSD များကြားတွင် ရရှိနိုင်သောဒေတာများကို ဖြန့်ဝေရန် လိုအပ်ပါသည်။ ကျွန်ုပ်တို့သည် ပထမကိစ္စတွင် အလားတူလုပ်ဆောင်မှုတစ်ခုကို လုပ်ဆောင်ခဲ့ပြီး၊ ကျွန်ုပ်တို့သည် node ကို "drained" သောအခါ - ယခု အနည်းငယ်လျှော့ချရန်လိုအပ်သည့် တစ်ခုတည်းသောကွာခြားချက်ဖြင့်၊ reweight. ဥပမာ၊ 0.95 အထိ၊

ceph osd reweight osd.${ID} 0.95

၎င်းသည် OSD တွင် disk space ကိုလွတ်စေပြီး ceph ကျန်းမာရေးဆိုင်ရာ error ကိုပြင်ပေးသည်။ သို့ရာတွင်၊ ဖော်ပြထားပြီးဖြစ်သည့်အတိုင်း၊ ဤပြဿနာသည် အဓိကအားဖြင့် Ceph ၏ ကနဦးအဆင့်များတွင် မှားယွင်းသောဖွဲ့စည်းပုံကြောင့် ဖြစ်တတ်သည်- နောင်တွင်မပေါ်စေရန်အတွက် ပြန်လည်ဖွဲ့စည်းမှုပြုလုပ်ရန် အလွန်အရေးကြီးပါသည်။

ကျွန်ုပ်တို့၏ အထူးကိစ္စရပ်တွင်၊ အားလုံးသည် အောက်ပါအတိုင်းဖြစ်သည်-

  • တန်ဖိုးအရမ်းမြင့်တယ်။ replication_count ရေကန်များအနက်၊
  • ရေကန်တစ်ခုတွင် PG အလွန်များပြီး အခြားတစ်ခုတွင် အလွန်နည်းသည်။

ဖော်ပြပြီးသားဂဏန်းတွက်စက်ကို သုံးကြည့်ရအောင်။ ၎င်းသည် ထည့်သွင်းရမည့်အရာကို ရှင်းရှင်းလင်းလင်းပြသပြီး မူအရအားဖြင့် ရှုပ်ထွေးသောအရာမရှိပါ။ လိုအပ်သော ကန့်သတ်ချက်များ သတ်မှတ်ပြီးပါက၊ ကျွန်ုပ်တို့သည် အောက်ပါအကြံပြုချက်များကို ရရှိပါသည်-

ပွောဆို: အကယ်၍ သင်သည် Ceph အစုအဝေးတစ်ခုကို အစမှစတင်တည်ဆောက်နေပါက၊ ဂဏန်းပေါင်းစက်၏နောက်ထပ်အသုံးဝင်သောလုပ်ဆောင်ချက်မှာ ဇယားရှိသတ်မှတ်ထားသောဘောင်များဖြင့် ပေါင်းစည်းများကို အစမှအဆုံးဖန်တီးပေးမည့် command များမျိုးဆက်ဖြစ်သည်။

နောက်ဆုံးကော်လံသည် သင့်အား လမ်းညွှန်ရန် ကူညီပေးသည်- အကြံပြုထားသည့် PG အရေအတွက်. ကျွန်ုပ်တို့၏အခြေအနေတွင်၊ ကျွန်ုပ်တို့သည် ပုံတူပွားမြှောက်ခြင်းကို ပြောင်းလဲရန် ဆုံးဖြတ်ထားသောကြောင့် ပွားခြင်းကန့်သတ်ချက်ကို ညွှန်ပြရာ ဒုတိယတစ်ခုသည်လည်း အသုံးဝင်ပါသည်။

ထို့ကြောင့်၊ ပထမဦးစွာ သင်သည် ပုံတူပွားခြင်းဆိုင်ရာ ကန့်သတ်ချက်များကို ပြောင်းလဲရန် လိုအပ်သည် - ၎င်းသည် ဦးစွာလုပ်ဆောင်ရကျိုးနပ်သည်၊ အဘယ်ကြောင့်ဆိုသော် မြှောက်ကိန်းကို လျှော့ချခြင်းဖြင့် ကျွန်ုပ်တို့သည် disk space ကို လွတ်စေမည်ဖြစ်သည်။ အမိန့်ကို လုပ်ဆောင်သည်နှင့်အမျှ ရရှိနိုင်သော disk space တိုးလာမည်ကို သင် သတိပြုမိလိမ့်မည်-

ceph osd pool $pool_name set $replication_size

၎င်းပြီးစီးပြီးနောက်၊ ကျွန်ုပ်တို့သည် ပါရာမီတာတန်ဖိုးများကို ပြောင်းလဲပါသည်။ pg_num и pgp_num အောက်ပါအတိုင်း:

ceph osd pool set $pool_name pg_num $pg_number
ceph osd pool set $pool_name pgp_num $pg_number

အရေးကြီးသော: ကျွန်ုပ်တို့သည် သတိပေးချက်များ ပျောက်ကွယ်သွားသည်အထိ ရေကူးကန်တစ်ခုစီတွင် PG အရေအတွက်ကို ဆက်တိုက်ပြောင်းလဲရမည်ဖြစ်ပြီး၊ သတိပေးချက်များ ပျောက်ကွယ်သွားသည်အထိ အခြားရေကူးကန်များရှိ တန်ဖိုးများကို မပြောင်းလဲရပါ။ "ပျက်စီးသွားသော ဒေတာ ထပ်လောင်းမှု" и "n-number of pgs ပျက်သွားသည်".

command outputs များကို အသုံးပြု၍ အရာအားလုံး ကောင်းမွန်ကြောင်း စစ်ဆေးနိုင်သည်။ ceph health detail и ceph -s.

အမှုအမှတ် ၃။ virtual machine တစ်ခုကို LVM မှ Ceph RBD သို့ ရွှေ့ပြောင်းခြင်း။

ပရောဂျက်တစ်ခုသည် ငှားရမ်းထားသော သတ္တုဗလာဆာဗာများပေါ်တွင် တပ်ဆင်ထားသည့် virtual machines များကို အသုံးပြုသည့် အခြေအနေတွင်၊ အမှားအယွင်းခံနိုင်ရည်ရှိသော သိုလှောင်မှုပြဿနာသည် မကြာခဏ ပေါ်ပေါက်ပါသည်။ ဤသိုလှောင်မှုတွင် နေရာအလုံအလောက်ရှိခြင်းသည်လည်း အလွန်နှစ်လိုဖွယ်ကောင်းပါသည်။... နောက်ထပ်အဖြစ်များသော အခြေအနေမှာ- ဆာဗာပေါ်တွင် စက်တွင်းသိုလှောင်မှုရှိသော virtual machine တစ်ခုရှိပြီး disk ကို ချဲ့ထွင်ရန် လိုအပ်သော်လည်း သွားစရာနေရာမရှိသောကြောင့်၊ ဆာဗာပေါ်တွင် အခမဲ့ဒစ်နေရာလွတ်ကျန်ခဲ့သည်။

ပြဿနာကို နည်းလမ်းအမျိုးမျိုးဖြင့် ဖြေရှင်းနိုင်သည် - ဥပမာ၊ အခြားဆာဗာတစ်ခု (တစ်ခုရှိလျှင်) သို့မဟုတ် ဆာဗာသို့ ဒစ်ခ်အသစ်များထည့်ခြင်းဖြင့် ပြဿနာကို ဖြေရှင်းနိုင်သည်။ ဒါပေမယ့် ဒါကိုလုပ်ဖို့ အမြဲတမ်းမဖြစ်နိုင်ပါဘူး၊ ထို့ကြောင့် LVM မှ Ceph သို့ ပြောင်းရွှေ့ခြင်းသည် ဤပြဿနာအတွက် အကောင်းဆုံးဖြေရှင်းချက်တစ်ခုဖြစ်သည်။ ဤရွေးချယ်မှုကို ရွေးချယ်ခြင်းဖြင့်၊ ကျွန်ုပ်တို့သည် ဒေသဆိုင်ရာသိုလှောင်မှုအား hypervisor တစ်ခုမှ အခြားတစ်ခုသို့ ပြောင်းရွှေ့ရန်မလိုအပ်သောကြောင့် ဆာဗာများအကြား ရွှေ့ပြောင်းခြင်းလုပ်ငန်းစဉ်ကို ပိုမိုရိုးရှင်းစေသည်။ တစ်ခုတည်းသောအချက်မှာ အလုပ်လုပ်ဆောင်နေစဉ်တွင် သင်သည် VM ကို ရပ်တန့်ရမည်ဖြစ်ပါသည်။

အောက်ဖော်ပြပါ ဟင်းချက်နည်းကို ယူသည်။ ဤဘလော့ဂ်မှဆောင်းပါးစမ်းသပ်စစ်ဆေးပြီးသော ညွှန်ကြားချက်များ။ စကားမစပ်, အရှုပ်အရှင်းကင်းသော ရွှေ့ပြောင်းခြင်းနည်းလမ်းကိုလည်း ထိုနေရာတွင် ဖော်ပြထားပါသည်။သို့သော် ကျွန်ုပ်တို့၏ကိစ္စတွင် ၎င်းသည် မလိုအပ်သောကြောင့် ကျွန်ုပ်တို့ မစစ်ဆေးခဲ့ပါ။ ၎င်းသည် သင့်ပရောဂျက်အတွက် အရေးကြီးပါက၊ ရလဒ်များကို မှတ်ချက်များတွင် ကြားသိရသည့်အတွက် ဝမ်းမြောက်ပါမည်။

လက်တွေ့ကျတဲ့အပိုင်းကို ဆက်သွားရအောင်။ ဥပမာတွင် ကျွန်ုပ်တို့သည် virsh နှင့် libvirt ကိုသုံးသည်။ ဦးစွာ၊ ဒေတာရွှေ့ပြောင်းမည့် Ceph pool ကို libvirt နှင့် ချိတ်ဆက်ထားကြောင်း သေချာပါစေ။

virsh pool-dumpxml $ceph_pool

ရေကူးကန်ဖော်ပြချက်တွင် ခွင့်ပြုချက်ဒေတာဖြင့် Ceph သို့ ချိတ်ဆက်မှုဒေတာ ပါဝင်ရပါမည်။

နောက်တစ်ဆင့်မှာ LVM ရုပ်ပုံအား Ceph RBD သို့ ပြောင်းလိုက်ခြင်း ဖြစ်သည်။ အကောင်အထည်ဖော်ချိန်သည် ပုံ၏အရွယ်အစားပေါ်တွင် အဓိကမူတည်သည်-

qemu-img convert -p -O rbd /dev/main/$vm_image_name rbd:$ceph_pool/$vm_image_name

ပြောင်းလဲပြီးနောက်၊ LVM ရုပ်ပုံတစ်ပုံ ကျန်ရှိနေမည်ဖြစ်ပြီး၊ ၎င်းသည် VM ကို RBD သို့ ပြောင်းရွှေ့ခြင်း မအောင်မြင်ပါက အသုံးဝင်မည်ဖြစ်ပြီး အပြောင်းအလဲများကို ပြန်လှည့်ရပါမည်။ ထို့အပြင်၊ အပြောင်းအလဲများကို လျင်မြန်စွာ ပြန်လှန်နိုင်စေရန်၊ virtual machine configuration ဖိုင်ကို အရန်ကူးလိုက်ကြပါစို့။

virsh dumpxml $vm_name > $vm_name.xml
cp $vm_name.xml $vm_name_backup.xml

... မူရင်းကို တည်းဖြတ်ပါ (vm_name.xml) ဒစ်၏ဖော်ပြချက်ပါရှိသော ဘလောက်တစ်ခုကို ရှာကြည့်ရအောင် (စာကြောင်းဖြင့် စတင်သည်။ <disk type='file' device='disk'> နှင့် အဆုံးသတ်သည်။ </disk>) ပြီးလျှင် အောက်ပါပုံစံသို့ လျှော့ချပါ။

<disk type='network' device='disk'>
<driver name='qemu'/>
<auth username='libvirt'>
  <secret type='ceph' uuid='sec-ret-uu-id'/>
 </auth>
<source protocol='rbd' name='$ceph_pool/$vm_image_name>
  <host name='10.0.0.1' port='6789'/>
  <host name='10.0.0.2' port='6789'/>
</source>
<target dev='vda' bus='virtio'/> 
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

အသေးစိတ်အချက်အလက်အချို့ကို ကြည့်ကြပါစို့။

  1. ပရိုတိုကောသို့ source Ceph RBD ရှိ သိုလှောင်မှုဆီသို့ လိပ်စာကို ညွှန်ပြသည် (၎င်းသည် Ceph pool ၏ အမည်နှင့် RBD ပုံ၊ ပထမအဆင့်တွင် ဆုံးဖြတ်ခဲ့သည့် လိပ်စာဖြစ်သည်)။
  2. လုပ်ကွက်ထဲမှာ secret အမျိုးအစားကိုဖော်ပြသည်။ cephအပြင် UUID ၏ လျှို့ဝှက်ချက်ကို ချိတ်ဆက်ရန်။ ၎င်း၏ uuid ကို command ကို အသုံးပြု၍ တွေ့ရှိနိုင်သည်။ virsh secret-list.
  3. လုပ်ကွက်ထဲမှာ host Ceph မော်နီတာများအတွက် လိပ်စာများကို ဖော်ပြထားပါသည်။

ဖွဲ့စည်းမှုပုံစံဖိုင်ကို တည်းဖြတ်ပြီး LVM သို့ RBD ပြောင်းလဲခြင်းကို ပြီးမြောက်ပြီးနောက်၊ သင်သည် ပြင်ဆင်ထားသော ဖွဲ့စည်းမှုပုံစံဖိုင်ကို အသုံးချပြီး virtual machine ကို စတင်နိုင်သည်-

virsh define $vm_name.xml
virsh start $vm_name

virtual machine သည် မှန်မှန်ကန်ကန် စတင်ခဲ့သည်ကို စစ်ဆေးရန် အချိန်တန်ပြီ- ဥပမာ၊ SSH မှတဆင့် သို့မဟုတ် မှတဆင့် ၎င်းကို ချိတ်ဆက်ခြင်းဖြင့် ရှာဖွေနိုင်သည်။ virsh.

virtual machine သည် မှန်ကန်စွာအလုပ်လုပ်နေပြီး အခြားပြဿနာများကို သင်မတွေ့ပါက၊ အသုံးမပြုတော့သော LVM ပုံကို ဖျက်နိုင်သည်-

lvremove main/$vm_image_name

ကောက်ချက်

လက်တွေ့တွင် ဖော်ပြထားသော အမှုအခင်းအားလုံးကို ကျွန်ုပ်တို့ ကြုံတွေ့ခဲ့ရသည် - ညွှန်ကြားချက်များသည် အခြားသော စီမံခန့်ခွဲသူများ အလားတူ ပြဿနာများကို ဖြေရှင်းရာတွင် ကူညီပေးလိမ့်မည်ဟု မျှော်လင့်ပါသည်။ သင့်တွင် Ceph ကို အသုံးပြုသည့် အတွေ့အကြုံမှ မှတ်ချက်များ သို့မဟုတ် အခြား အလားတူ ဇာတ်လမ်းများ ရှိပါက၊ ၎င်းတို့ကို မှတ်ချက်များတွင် မြင်တွေ့ရသည့်အတွက် ဝမ်းမြောက်မိပါသည်။

PS

ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ

source: www.habr.com

မှတ်ချက် Add