မတူညီသော load များရှိသော ပရောဂျက်များတွင် Ceph ကို အသုံးပြုခြင်းဖြင့်၊ ပထမတစ်ချက်တွင် ရိုးရှင်းသော သို့မဟုတ် အသေးအဖွဲပုံမပေါ်သည့် အလုပ်မျိုးစုံကို ကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်:
- Ceph အဟောင်းမှ ဒေတာအသစ်သို့ အစုအဝေးအသစ်တွင် ယခင်ဆာဗာများကို တစ်စိတ်တစ်ပိုင်းအသုံးပြုခြင်းဖြင့်၊
- Ceph ရှိ disk space ခွဲဝေမှုပြဿနာအတွက်ဖြေရှင်းချက်။
ထိုကဲ့သို့သောပြဿနာများကိုဖြေရှင်းရာတွင်၊ ဒေတာအများအပြားနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အရေးကြီးသည့်အရာသည်ဒေတာဆုံးရှုံးခြင်းမရှိဘဲ OSD ကိုမှန်ကန်စွာဖယ်ရှားရန်လိုသည်။ ဒီဆောင်းပါးမှာ ဆွေးနွေးပါမယ်။
အောက်တွင်ဖော်ပြထားသောနည်းလမ်းများသည် Ceph ၏ မည်သည့်ဗားရှင်းအတွက်မဆို သက်ဆိုင်ပါသည်။ ထို့အပြင်၊ Ceph သည် ဒေတာအများအပြားကို သိမ်းဆည်းနိုင်သည်ဟူသောအချက်ကို ထည့်သွင်းစဉ်းစားရလိမ့်မည်- ဒေတာဆုံးရှုံးမှုနှင့် အခြားပြဿနာများကို ကာကွယ်ရန်၊ အချို့သောလုပ်ဆောင်ချက်များကို အခြားအများအပြားသို့ "ခွဲထုတ်" မည်ဖြစ်သည်။
OSD အကြောင်း အကြို
ဆွေးနွေးထားသော ဟင်းချက်နည်းသုံးမျိုးထဲမှ နှစ်ခုသည် OSD အတွက် သီးသန့်ဖြစ်သောကြောင့် (
ပထမဦးစွာ၊ 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 ကို ဖယ်ရှားပါ။
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 ကိုအသုံးပြုသည့်အခါ အဖြစ်များသောပြဿနာတစ်ခုမှာ Ceph ရှိ pools များကြားရှိ OSD နှင့် PG ၏ မမျှတသောအရေအတွက်ဖြစ်သည်။
ပထမဦးစွာ၊ ဤအရာကြောင့်၊ အစုအဖွဲ့အတွင်းရှိ disk space ကို မရှိမဖြစ်လိုအပ်သော အသုံးမကျသောအသုံးပြုမှုဖြစ်သည့် ရေကူးကန်ငယ်တစ်ခုတွင် PGs အများအပြားသတ်မှတ်ထားသောအခါတွင် အခြေအနေတစ်ခုဖြစ်ပေါ်လာနိုင်သည်။ ဒုတိယအချက်မှာ၊ လက်တွေ့တွင် ပိုမိုဆိုးရွားသော ပြဿနာတစ်ခု ရှိသည်- OSD တစ်ခုတွင် ဒေတာများ ပြည့်လျှံနေပါသည်။ ၎င်းသည် အစုအဖွဲ့သည် ပြည်နယ်သို့ ဦးစွာကူးပြောင်းခြင်းကို ပါဝင်သည်။ HEALTH_WARN
, ပြီးနောက် HEALTH_ERR
. ယင်းအတွက် အကြောင်းရင်းမှာ ရရှိနိုင်သောဒေတာပမာဏကို တွက်ချက်သောအခါ Ceph (၎င်းကို သင်ရှာဖွေနိုင်သည်။ MAX AVAIL
command output တွင် ceph df
ရေကူးကန်တစ်ခုစီအတွက် သီးခြားစီ) သည် OSD တွင်ရရှိနိုင်သည့်ဒေတာပမာဏအပေါ်အခြေခံသည်။ အနည်းဆုံး OSD တစ်ခုတွင် နေရာအလုံအလောက်မရှိပါက၊ OSD များအားလုံးတွင် ဒေတာများ မှန်ကန်စွာ ဖြန့်ဝေမပြီးမချင်း ဒေတာများကို ထပ်မံရေးသားနိုင်မည်မဟုတ်ပေ။
ဒီပြဿနာတွေကို ရှင်းရှင်းလင်းလင်း သိဖို့ လိုပါတယ်။ Ceph အစုအဝေး ဖွဲ့စည်းမှု အဆင့်တွင် အများစု ဆုံးဖြတ်ကြသည်။. သင်သုံးနိုင်သောကိရိယာများထဲမှတစ်ခုဖြစ်သည်။
ထို့ကြောင့် အောက်ပါပုံကို စိတ်ကူးကြည့်ကြပါစို့- အစုအဝေးတွင် အခြေအနေတစ်ခုရှိသည်။ 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>
အသေးစိတ်အချက်အလက်အချို့ကို ကြည့်ကြပါစို့။
- ပရိုတိုကောသို့
source
Ceph RBD ရှိ သိုလှောင်မှုဆီသို့ လိပ်စာကို ညွှန်ပြသည် (၎င်းသည် Ceph pool ၏ အမည်နှင့် RBD ပုံ၊ ပထမအဆင့်တွင် ဆုံးဖြတ်ခဲ့သည့် လိပ်စာဖြစ်သည်)။ - လုပ်ကွက်ထဲမှာ
secret
အမျိုးအစားကိုဖော်ပြသည်။ceph
အပြင် UUID ၏ လျှို့ဝှက်ချက်ကို ချိတ်ဆက်ရန်။ ၎င်း၏ uuid ကို command ကို အသုံးပြု၍ တွေ့ရှိနိုင်သည်။virsh secret-list
. - လုပ်ကွက်ထဲမှာ
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
ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ
- «
ကျွန်ုပ်တို့၏လက်များသည် K8s ရှိ Rook အစုအဝေးကို ပြန်လည်ရယူခြင်းအတွက် ပျင်းစရာမဟုတ်ပေ။ "; - «
Rook သို့မဟုတ် Rook သို့မဟုတျ - အဲဒါက မေးစရာပါ။ "; - «
Rook - Kubernetes အတွက် "ကိုယ်တိုင်ဝန်ဆောင်မှု" ဒေတာဂိုဒေါင် "; - «
Ceph ကိုအခြေခံ၍ Kubernetes တွင် စီမံဆောင်ရွက်ပေးခြင်းဖြင့် အမြဲမပြတ်သိုလှောင်မှုကို ဖန်တီးခြင်း။ "။
source: www.habr.com