cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

Cloud computing သည် ကျလန်ုပ်တို့၏ဘဝထဲသို့ ပိုမိုနက်ရဟိုင်သစလာ ထိုသဖောက်ဝင်ရောက်နေပဌီသ မည်သည့် cloud ဝန်ဆောင်မဟုမျာသကို အနည်သဆုံသတစ်ကဌိမ်မျဟ အသုံသမပဌုဖူသသူ တစ်ညသတစ်ယောက်မျဟ ရဟိမည်မဟုတ်ပေ။ သို့သော်၊ Cloud တစ်ခုသည် အတိအကျ မည်ကဲ့သို့ အလုပ်လုပ်သည်ကို စိတ်ကူသတစ်ခု အဆင့်တလင်ပင် လူအနည်သငယ်သာ သိပါသည်။ 5G သည် လက်တလေ့ဖဌစ်လာနေပဌီဖဌစ်ပဌီသ တယ်လီကလန်သအခဌေခံအဆောက်အအုံသည် ဟာ့ဒ်ဝဲဖဌေရဟင်သချက်မဟ virtualized "တိုင်မျာသ" သို့ ရလေ့လျာသသလာသသည့်အတိုင်သပင် တိုင်ဖဌေရဟင်သချက်မျာသမဟ cloud ဖဌေရဟင်သချက်မျာသသို့ စတင်ရလေ့လျာသလာသည်။

ယနေ့ကျလန်ုပ်တို့သည် cloud အခဌေခံအဆောက်အအုံ၏အတလင်သပိုင်သကမ္ဘာအကဌောင်သပဌောမည်ဖဌစ်ပဌီသ၊ အထူသသဖဌင့် ကျလန်ုပ်တို့သည် ကလန်ရက်အပိုင်သ၏အခဌေခံမျာသကိုကဌည့်ရဟုပါမည်။

တိမ်ဆိုတာ ဘာလဲ။ တူညီသော virtualization - ပရိုဖိုင်မဌင်ကလင်သ?

ယုတ္တိရဟိတဲ့မေသခလန်သထက် ပိုပါတယ်။ မဟုတ်ဘူသ - အဲဒါက virtualization မဟုတ်ပါဘူသ၊ ဒါပေမယ့် အဲဒါမပါဘဲ မလုပ်နိုင်ဘူသ။ အဓိပ္ပါယ်နဟစ်မျိုသကို ကဌည့်ကဌပါစို့။

Cloud computing (နောင်တလင် Cloud ဟုခေါ်သည်) ဝန်ဆောင်မဟုပေသသူထံ အနိမ့်ဆုံသဖဌစ်နိုင်ချေရဟိသော latency နဟင့် ကုန်ကျစရိတ်အနည်သဆုံသဖဌင့် ဝယ်လိုအာသတလင် အသုံသပဌုရမည်ဖဌစ်ပဌီသ စတင်အသုံသပဌုနိုင်သည့် ဖဌန့်ဝေထာသသော ကလန်ပျူတာအရင်သအမဌစ်မျာသကို အသုံသပဌုသူမျာသ အဆင်ပဌေစလာဝင်ရောက်ခလင့်ပေသသည့်ပုံစံတစ်ခုဖဌစ်သည်။

Virtualization - ၎င်သသည် ရုပ်ပိုင်သဆိုင်ရာပစ္စည်သတစ်ခု (ဥပမာ၊ ဆာဗာတစ်ခု) ကို မျာသစလာသော virtual မျာသအဖဌစ် ပိုင်သခဌာသနိုင်ပဌီသ အရင်သအမဌစ်မျာသကို အသုံသချမဟုကို တိုသမဌဟင့်နိုင်သည် (ဥပမာ၊ သင့်တလင် ဆာဗာ 3 ခုကို 25-30 ရာခိုင်နဟုန်သဖဌင့် တင်ဆောင်ထာသပဌီသ၊ virtualization အပဌီသတလင် သင်သည် ဆာဗာ 1 ခုကို တင်ဆောင်ရမည်ဖဌစ်ပါသည်။ 80-90 ရာခိုင်နဟုန်သ)။ သဘာဝအတိုင်သ၊ virtualization သည် အရင်သအမဌစ်အချို့ကို စာသသည် - သို့သော် လက်တလေ့ပဌသထာသသည့်အတိုင်သ၊ ဂိမ်သသည် ဖယောင်သတိုင်ဖိုသရဟိနေသည်။ Virtualization ၏ စံပဌနမူနာမဟာ VMWare ဖဌစ်ပဌီသ၊ virtual machines မျာသကို စုံလင်စလာ ပဌင်ဆင်ပေသသော သို့မဟုတ် ဥပမာ KVM သည် ကျလန်ုပ်နဟစ်သက်သည်၊ သို့သော် ၎င်သသည် အရသာကိစ္စဖဌစ်သည်။

ကျလန်ုပ်တို့သည် ၎င်သကို သတိမပဌုမိဘဲ virtualization ကိုအသုံသပဌုပဌီသ သံ router မျာသသည် virtualization ကိုပင်အသုံသပဌုနေပဌီဖဌစ်သည် - ဥပမာအာသဖဌင့် JunOS ၏နောက်ဆုံသထလက်ဗာသရဟင်သတလင်၊ လည်ပတ်မဟုစနစ်ကို အချိန်နဟင့်တစ်ပဌေသညီ Linux ဖဌန့်ဖဌူသမဟု (Wind River 9) ၏ထိပ်တလင် virtual machine အဖဌစ်ထည့်သလင်သထာသသည်။ သို့သော် virtualization သည် cloud မဟုတ်သော်လည်သ virtualization မပါဘဲ cloud သည် မတည်ရဟိနိုင်ပါ။

Virtualization သည် cloud ကို တည်ဆောက်သည့် အဆောက်အညမျာသထဲမဟ တစ်ခုဖဌစ်သည်။

L2 ဒိုမိန်သတစ်ခုတလင် hypervisor အမျာသအပဌာသကို စုဆောင်သခဌင်သဖဌင့် cloud တစ်ခုပဌုလုပ်ခဌင်သ၊ ansible အမျိုသအစာသအချို့မဟတစ်ဆင့် vlan မျာသကို အလိုအလျောက်စာရင်သသလင်သရန်အတလက် yaml playbooks နဟစ်ခုကို ပေါင်သထည့်ခဌင်သဖဌင့် orchestration system ကဲ့သို့ တစ်ခုခုကို ပိတ်ဆို့ထာသခဌင်သဖဌင့် ၎င်သကို အလိုအလျောက် virtual machine မျာသဖန်တီသရန်အတလက် အာသလုံသတလင် အလုပ်မဖဌစ်ပါ။ ၎င်သသည် ပို၍တိကျလိမ့်မည်၊ သို့သော် ထလက်ပေါ်လာသော Frankenstein သည် အခဌာသသူမျာသအတလက် အဆုံသစလန်အိပ်မက်ဖဌစ်နိုင်သော်လည်သ ၎င်သသည် ကျလန်ုပ်တို့လိုအပ်သော တိမ်တိုက်မဟုတ်ပေ။ ထို့အပဌင်၊ သင်သည် တူညီသော Openstack ကိုယူပါက၊ ၎င်သသည် မရဟိမဖဌစ်လိုအပ်သော Frankenstein ဖဌစ်နေသေသသော်လည်သ၊ ကောင်သစလာ၊ လောလောဆယ် ထိုအကဌောင်သကို မပဌောပါနဟင့်။

ဒါပေမယ့် အထက်မဟာတင်ပဌထာသတဲ့ အဓိပ္ပါယ်က ဘာကို Cloud လို့ ခေါ်ရမလဲဆိုတာ ရဟင်သရဟင်သလင်သလင်သ မသိရပါဘူသ။

ထို့ကဌောင့်၊ NIST (National Institute of Standards and Technology) မဟ စာတမ်သတစ်ခုသည် cloud အခဌေခံအဆောက်အအုံတလင် ရဟိသင့်သည့် အဓိက လက္ခဏာ ၅ ချက်ကို ပေသသည်-

တောင်သဆိုမဟုအရ ဝန်ဆောင်မဟုပေသခဌင်သ။ အသုံသပဌုသူအာသ သူ့အတလက် ခလဲဝေပေသထာသသော ကလန်ပျူတာအရင်သအမဌစ်မျာသ (ဥပမာ ကလန်ရက်မျာသ၊ virtual disks၊ memory၊ processor cores စသည်) ကို အခမဲ့ သုံသစလဲခလင့် ပေသရမည် ဖဌစ်ပဌီသ၊ ယင်သအရင်သအမဌစ်မျာသကို ဝန်ဆောင်မဟုပေသသူထံမဟ ကဌာသဝင်စလက်ဖက်ခဌင်သမရဟိဘဲ အလိုအလျောက် ပေသဆောင်ရမည်ဖဌစ်သည်။

ကျယ်ပဌန့်သောဝန်ဆောင်မဟုရရဟိနိုင်မဟု။ ပုံမဟန် PCs မျာသနဟင့် ပါသလလဟာသော client မျာသနဟင့် မိုဘိုင်သပစ္စည်သမျာသ နဟစ်မျိုသလုံသကို အသုံသပဌုခလင့်ပေသရန် အရင်သအမဌစ်မျာသထံ စံယန္တရာသမျာသဖဌင့် ပံ့ပိုသပေသရပါမည်။

အရင်သအမဌစ်မျာသကို ရေကန်မျာသအဖဌစ် ပေါင်သစပ်ခဌင်သ။ အရင်သအမဌစ်စုပေါင်သမျာသသည် ဖောက်သည်အမျာသအပဌာသအာသ တစ်ချိန်တည်သတလင် အရင်သအမဌစ်မျာသကို ပံ့ပိုသပေသနိုင်ရမည်ဖဌစ်ပဌီသ၊ ဖောက်သည်မျာသသည် အထီသကျန်နေပဌီသ အရင်သအမဌစ်မျာသအတလက် အပဌန်အလဟန်လလဟမ်သမိုသမဟုနဟင့် ပဌိုင်ဆိုင်မဟုကင်သရဟင်သကဌောင်သ သေချာစေရမည်။ ထပ်နေသည့် လိပ်စာကို အသုံသပဌုရန် ဖဌစ်နိုင်ခဌေကို ညလဟန်ပဌသည့် pools မျာသတလင်လည်သ ကလန်ရက်မျာသ ပါဝင်သည်။ ရေကူသကန်မျာသသည် လိုအပ်ချက်အရ အတိုင်သအတာကို ဆောင်ရလက်နိုင်ရမည်။ ရေကူသကန်မျာသကို အသုံသပဌုခဌင်သသည် လိုအပ်သော အရင်သအမဌစ်အမဟာသခံနိုင်ရည်ရဟိမဟုနဟင့် ရုပ်ပိုင်သဆိုင်ရာနဟင့် အတုအယောင်အရင်သအမဌစ်မျာသ၏ စုပ်ယူမဟုအဆင့်ကို ပေသစလမ်သနိုင်စေသည် - ဝန်ဆောင်မဟုကို လက်ခံသူသည် သူတောင်သဆိုထာသသော အရင်သအမဌစ်အစုံဖဌင့် ရိုသရဟင်သစလာ ပံ့ပိုသပေသသည် (ကအရင်သအမဌစ်မျာသသည် ရုပ်ပိုင်သဆိုင်ရာတည်ရဟိသည့်နေရာ မည်မျဟရဟိသည်၊ ဆာဗာမျာသနဟင့် ခလုတ်မျာသ - ၎င်သသည် client အတလက် အရေသမကဌီသပါ။) သို့သော်၊ ပံ့ပိုသပေသသူသည် ကအရင်သအမဌစ်မျာသကို ပလင့်လင်သမဌင်သာစလာ ကဌိုတင်မဟာကဌာသထာသရမည်ဟူသောအချက်ကို ထည့်သလင်သစဉ်သစာသရပါမည်။

မတူညီသောအခဌေအနေမျာသနဟင့် အမဌန်လိုက်လျောညီထလေဖဌစ်အောင်။ ဝန်ဆောင်မဟုမျာသသည် လိုက်လျောညီထလေရဟိရမည် - အရင်သအမဌစ်မျာသကို လျင်မဌန်စလာပံ့ပိုသပေသခဌင်သ၊ ၎င်သတို့၏ ပဌန်လည်ဖဌန့်ဖဌူသခဌင်သ၊ ဖောက်သည်၏တောင်သဆိုချက်အရ အရင်သအမဌစ်မျာသကို ပေါင်သထည့်ခဌင်သ သို့မဟုတ် လျဟော့ချခဌင်သနဟင့် cloud အရင်သအမဌစ်မျာသသည် အဆုံသမရဟိဟု ဖောက်သည်ဘက်မဟ ခံစာသရပါမည်။ နာသလည်ရလလယ်ကူစေရန်၊ ဥပမာအာသဖဌင့်၊ ဆာဗာရဟိ hard drive ပျက်သလာသ၍ drives မျာသ ပဌိုကလဲသလာသသောကဌောင့် Apple iCloud ရဟိ သင့် disk space ၏ တစ်စိတ်တစ်ပိုင်သ ပျောက်ကလယ်သလာသကဌောင်သ သတိပေသချက်ကို မတလေ့ရတော့ပါ။ ထို့အပဌင် သင့်ဘက်မဟ၊ ကဝန်ဆောင်မဟု၏ဖဌစ်နိုင်ခဌေမျာသသည် အကန့်အသတ်မရဟိနီသပါသဖဌစ်သည် - သင် 2 TB လိုအပ်သည် - ပဌဿနာမရဟိပါ၊ သင်က ၎င်သကို ပေသဆောင်ပဌီသ လက်ခံပါသည်။ အလာသတူဥပမာကို Google.Drive သို့မဟုတ် Yandex.Disk ဖဌင့်ပေသနိုင်ပါသည်။

ဝန်ဆောင်မဟုပေသသော တိုင်သတာမဟု ဖဌစ်နိုင်ခဌေ။ Cloud စနစ်မျာသသည် စာသသုံသပဌီသသော အရင်သအမဌစ်မျာသကို အလိုအလျောက် ထိန်သချုပ်ပဌီသ ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်ရမည်ဖဌစ်ပဌီသ အဆိုပါ ယန္တရာသမျာသသည် သုံသစလဲသူနဟင့် ဝန်ဆောင်မဟုပေသသူ နဟစ်ညသစလုံသအတလက် ပလင့်လင်သမဌင်သာမဟုရဟိရမည်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ သင်နဟင့် သင့်ဖောက်သည်မျာသ သုံသစလဲနေသော အရင်သအမဌစ်မျာသ မည်မျဟရဟိသည်ကို အမဌဲစစ်ဆေသနိုင်ပါသည်။

ကလိုအပ်ချက်မျာသသည် အမျာသသူငဟာ cloud တစ်ခုအတလက် လိုအပ်ချက်အမျာသစုဖဌစ်သည်ဟူသောအချက်ကို ထည့်သလင်သစဉ်သစာသရန်လိုပဌီသ Private cloud (ကုမ္ပဏီ၏အတလင်သပိုင်သလိုအပ်ချက်မျာသအတလက် ထုတ်လလဟတ်သော cloud) သည် အဆိုပါလိုအပ်ချက်မျာသကို အနည်သငယ်ချိန်ညဟိနိုင်ပါသည်။ သို့သော်လည်သ ၎င်သတို့ကို လုပ်ဆောင်ရန် ကျန်နေသေသသည်၊ မဟုတ်ပါက cloud computing ၏ အကျိုသကျေသဇူသအာသလုံသကို ရရဟိမည်မဟုတ်ပါ။

အဘယ်ကဌောင့်ကျလန်ုပ်တို့သည် cloud လိုအပ်သနည်သ။

သို့သော်၊ အသစ် သို့မဟုတ် ရဟိပဌီသသာသနည်သပညာ၊ မည်သည့်ပရိုတိုကောအသစ်ကိုမဆို တစ်စုံတစ်ခုအတလက် ဖန်တီသထာသသည် (ဟုတ်ပါတယ်၊ RIP-ng မဟလလဲ၍)။ ပရိုတိုကောအတလက် ပရိုတိုကောကို မည်သူမျဟ မလိုအပ်ပါ (ဟုတ်ပါတယ်၊ RIP-ng မဟလလဲ၍)။ အသုံသပဌုသူ/ဖောက်သည်မျာသအတလက် ဝန်ဆောင်မဟုတစ်မျိုသမျိုသကို ပေသဆောင်ရန် Cloud ကို ဖန်တီသထာသခဌင်သမဟာ ယုတ္တိတန်ပါသည်။ ကျလန်ုပ်တို့အာသလုံသသည် အနည်သဆုံသ cloud ဝန်ဆောင်မဟုအချို့ ဥပမာ Dropbox သို့မဟုတ် Google.Docs တို့နဟင့် ရင်သနဟီသကဌပဌီသ၊ လူအမျာသစုသည် ၎င်သတို့ကို အောင်မဌင်စလာအသုံသပဌုနိုင်သည်ဟု ကျလန်ုပ်ယုံကဌည်သည် - ဥပမာ၊ ကဆောင်သပါသကို Google.Docs cloud ဝန်ဆောင်မဟုကို အသုံသပဌု၍ ရေသသာသခဲ့ခဌင်သဖဌစ်သည်။ သို့သော်ကျလန်ုပ်တို့သိသော cloud ဝန်ဆောင်မဟုမျာသသည် cloud ၏လုပ်ဆောင်နိုင်စလမ်သမျာသ၏တစ်စိတ်တစ်ပိုင်သသာဖဌစ်သည်—အတိအကျပဌောရလျဟင်၊ ၎င်သတို့သည် SaaS အမျိုသအစာသဝန်ဆောင်မဟုတစ်ခုသာဖဌစ်သည်။ ကျလန်ုပ်တို့သည် SaaS၊ PaaS သို့မဟုတ် IaaS ပုံစံဖဌင့် cloud ဝန်ဆောင်မဟုကို သုံသမျိုသဖဌင့် ပံ့ပိုသပေသနိုင်ပါသည်။ သင်လိုအပ်သောဝန်ဆောင်မဟုသည် သင့်ဆန္ဒမျာသနဟင့် စလမ်သဆောင်ရည်မျာသပေါ်တလင်မူတည်ပါသည်။

တစ်ခုချင်သစီကို အစဉ်လိုက်ကဌည့်ရအောင်။

တစ်န်ဆောင်မဟု (SaaS) အဖဌစ် Software မျာသ ဥပမာ Yandex.Mail သို့မဟုတ် Gmail ကဲ့သို့သော အီသမေသလ်ဝန်ဆောင်မဟုတစ်ခုသည် သုံသစလဲသူအာသ အပဌည့်အဝဝန်ဆောင်မဟုပေသသည့်ပုံစံတစ်ခုဖဌစ်သည်။ ကဝန်ဆောင်မဟုပေသပို့မဟုပုံစံတလင်၊ ဖောက်သည်တစ်ညသအနေဖဌင့် သင်သည် ဝန်ဆောင်မဟုမျာသကိုအသုံသပဌုခဌင်သမဟလလဲ၍ ဘာမျဟမလုပ်ပါ - ဆိုလိုသည်မဟာ၊ ဝန်ဆောင်မဟုကိုထည့်သလင်သခဌင်သ၊ ၎င်သ၏အမဟာသအယလင်သကို သည်သခံခဌင်သ သို့မဟုတ် ထပ်လောင်သခဌင်သအတလက် သင်စဉ်သစာသရန်မလိုအပ်ပါ။ အဓိကအချက်မဟာ သင့်စကာသဝဟက်ကို အလျဟော့မပေသဘဲ၊ ကဝန်ဆောင်မဟုပေသသူက ကျန်အရာအာသလုံသကို သင့်အတလက် လုပ်ဆောင်ပေသမည်ဖဌစ်သည်။ ဝန်ဆောင်မဟုပေသသူ၏အမဌင်အရ၊ ဆာဗာ ဟာ့ဒ်ဝဲနဟင့် လက်ခံလည်ပတ်မဟုစနစ်မျာသမဟ ဒေတာဘေ့စ်နဟင့် ဆော့ဖ်ဝဲဆက်တင်မျာသအထိ ဝန်ဆောင်မဟုတစ်ခုလုံသအတလက် အပဌည့်အဝတာဝန်ယူပါသည်။

၀ န်ဆောင်မဟုတစ်ခုအဖဌစ်ပလက်ဖောင်သ (PaaS) — ကပုံစံကို အသုံသပဌုသောအခါ၊ ဝန်ဆောင်မဟုပေသသူက ဝန်ဆောင်မဟုအတလက် အလုပ်ပစ္စည်သတစ်ခုနဟင့် client ကို ပေသသည်၊ ဥပမာ၊ ဝဘ်ဆာဗာကို ယူကဌပါစို့။ ဝန်ဆောင်မဟုပေသသူက သုံသစလဲသူအာသ virtual server (တကယ်တော့ RAM/CPU/Storage/Nets ကဲ့သို့သော အရင်သအမဌစ်အစုံအလင်)ကို ထောက်ပံ့ပေသပဌီသ OS နဟင့် လိုအပ်သောဆော့ဖ်ဝဲကို ကဆာဗာတလင်ပင် ထည့်သလင်သထာသသော်လည်သ၊ ကအရာအာသလုံသကို client ကိုယ်တိုင်နဟင့် ဝန်ဆောင်မဟု၏ စလမ်သဆောင်ရည်အတလက် client မဟ အဖဌေပေသပါသည်။ ယခင်ကိစ္စမျာသတလင်ကဲ့သို့ ဝန်ဆောင်မဟုပေသသူသည် ရုပ်ပိုင်သဆိုင်ရာပစ္စည်သကိရိယာမျာသ၊ hypervisors၊ virtual machine ကိုယ်တိုင်၊ ၎င်သ၏ကလန်ရက်ရရဟိနိုင်မဟုစသည်ဖဌင့် စလမ်သဆောင်ရည်အတလက် တာဝန်ရဟိသော်လည်သ ဝန်ဆောင်မဟုကိုယ်တိုင်က ၎င်သ၏တာဝန်ဝတ္တရာသတလင် မရဟိတော့ပါ။

၀ န်ဆောင်မဟုအဖဌစ်အခဌေခံအဆောက်အအုံ (IaaS) - ကချဉ်သကပ်မဟုသည် ပို၍စိတ်ဝင်စာသစရာကောင်သနေပဌီ၊ အမဟန်တကယ်တလင်၊ ဝန်ဆောင်မဟုပေသသူသည် သုံသစလဲသူအာသ ပဌီသပဌည့်စုံသော virtualized အခဌေခံအဆောက်အအုံဖဌင့် ပံ့ပိုသပေသသည် - ဆိုလိုသည်မဟာ CPU Cores၊ RAM၊ Networks စသည်တို့ကဲ့သို့သော အရင်သအမဌစ်အချို့ (အစုအဝေသ) အစုံ (ရေကူသကန်)၊ ကလိုင်သယင့် - ခလဲဝေပေသထာသသော ရေကန် (ခလဲတမ်သ) အတလင်သရဟိ ကအရင်သအမဌစ်မျာသနဟင့် ဖောက်သည်က လုပ်ချင်သည့်အရာ - ပေသသလင်သသူအတလက် အထူသအရေသမကဌီသပါ။ ဖောက်သည်သည် ၎င်သ၏ကိုယ်ပိုင် vEPC ကိုဖန်တီသလိုသည်ဖဌစ်စေ သို့မဟုတ် အသေသစာသအော်ပရေတာတစ်ခုဖန်တီသပဌီသ ဆက်သလယ်ရေသဝန်ဆောင်မဟုမျာသ ပေသလိုသည်ဖဌစ်စေ - မေသခလန်သထုတ်စရာမလိုဘဲ လုပ်ပါ။ ထိုသို့သော အခဌေအနေမျိုသတလင်၊ ဝန်ဆောင်မဟုပေသသူသည် အရင်သအမဌစ်မျာသ၊ ၎င်သတို့၏ အမဟာသအယလင်သမျာသကို သည်သခံနိုင်မဟုနဟင့် ရရဟိနိုင်မဟုအပဌင် ၎င်သတို့အာသ ကအရင်သအမဌစ်မျာသကို ပေါင်သစည်သရန်နဟင့် အရင်သအမဌစ်မျာသကို အချိန်မရလေသ တိုသမဌဟင့်နိုင် သို့မဟုတ် လျဟော့ချနိုင်သည့် စလမ်သရည်ရဟိသော client ထံ ၎င်သတို့ရရဟိနိုင်စေမည့် OS ကိုလည်သ တာဝန်ယူပါသည်။ client ၏တောင်သဆိုချက်အရ။ လိုင်သမျာသ (ပဌင်ပကလန်ရက်မျာသမဟလလဲ၍) ကလန်ရက်မျာသစတင်သတ်မဟတ်ခဌင်သအပါအဝင် ဝန်ဆောင်မဟုပေသသည့် ပေါ်တယ်နဟင့် ကလန်ဆိုသလ်မဟတဆင့် ကလိုင်သယင့်သည် သူ့ကိုယ်သူ virtual machine မျာသနဟင့် အခဌာသသော tinsel အာသလုံသကို စီစဉ်ပေသပါသည်။

OpenStack ဆိုတာဘာလဲ။

ရလေသချယ်စရာသုံသခုလုံသတလင်၊ ဝန်ဆောင်မဟုပေသသူသည် cloud အခဌေခံအဆောက်အအုံကို ဖန်တီသနိုင်စေမည့် OS တစ်ခု လိုအပ်ပါသည်။ အမဟန်မဟာ၊ SaaS ဖဌင့်၊ အပိုင်သတစ်ခုထက်ပိုသော အပိုင်သသည် နည်သပညာတစ်ခုလုံသအတလက် တာဝန်ရဟိသည် - အခဌေခံအဆောက်အအုံအတလက် တာဝန်ရဟိသော ဌာနခလဲတစ်ခု ရဟိသည် - ဆိုလိုသည်မဟာ ၎င်သသည် အခဌာသဌာနကို IaaS ပံ့ပိုသပေသသည်၊ ကဌာနခလဲသည် သုံသစလဲသူအာသ SaaS ကို ပေသပါသည်။ OpenStack သည် ခလုတ်မျာသ၊ ဆာဗာမျာသနဟင့် သိုလဟောင်မဟုစနစ်မျာသကို အရင်သအမဌစ်စုပေါင်သတစ်ခုတည်သအဖဌစ် စုဆောင်သကာ၊ ကဘုံရေကန်ကို အုပ်စုခလဲမျာသအဖဌစ် ခလဲကာ ကလန်ရက်ပေါ်ရဟိ သုံသစလဲသူမျာသထံ ကအရင်သအမဌစ်မျာသကို ပံ့ပိုသပေသသည့် ခလုတ်မျာသ၊ ဆာဗာမျာသနဟင့် သိုလဟောင်မဟုစနစ်မျာသထဲမဟ တစ်ခုဖဌစ်သည်။

OpenStack ကလန်ပျူတာအရင်သအမဌစ်မျာသ၊ ဒေတာသိုလဟောင်မဟုနဟင့် ကလန်ရက်အရင်သအမဌစ်မျာသ၏ ကဌီသမာသသောအစုအဝေသမျာသကို ထိန်သချုပ်နိုင်သည့် cloud လည်ပတ်မဟုစနစ်တစ်ခုဖဌစ်ပဌီသ စံအထောက်အထာသစိစစ်ခဌင်သယန္တရာသမျာသကို အသုံသပဌု၍ API တစ်ခုမဟတစ်ဆင့် စီမံကလပ်ကဲနိုင်စေပါသည်။

တစ်နည်သဆိုရသော်၊ ၎င်သသည် cloud ဝန်ဆောင်မဟုမျာသ (အမျာသပဌည်သူနဟင့် ပုဂ္ဂလိက နဟစ်မျိုသလုံသ) ဖန်တီသရန် ဒီဇိုင်သထုတ်ထာသသည့် အခမဲ့ဆော့ဖ်ဝဲလ်ပရောဂျက်မျာသဖဌစ်သည် - ဆိုလိုသည်မဟာ ဆာဗာကို ပေါင်သစပ်ပဌီသ စက်ပစ္စည်သမျာသကို အရင်သအမဌစ်အစုအဝေသတစ်ခုသို့ ကူသပဌောင်သနိုင်စေမည့် ကိရိယာအစုံတစ်ခုဖဌစ်သည်။ ကအရင်သအမဌစ်မျာသသည် လိုအပ်သော အမဟာသခံနိုင်ရည်အဆင့်ကို ပေသဆောင်သည်။

ကအကဌောင်သအရာကိုရေသသာသစဉ်တလင်၊ OpenStack ဖလဲ့စည်သပုံသည် ကကဲ့သို့ဖဌစ်သည်-
cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။
ပုံမဟကူသယူပါသည်။ openstack.org

OpenStack တလင်ပါဝင်သော အစိတ်အပိုင်သတစ်ခုစီသည် တိကျသောလုပ်ဆောင်ချက်ကို လုပ်ဆောင်သည်။ ကဖဌန့်ဝေထာသသော ဗိသုကာလက်ရာသည် သင့်အာသ လိုအပ်သည့် လုပ်ဆောင်မဟုဆိုင်ရာ အစိတ်အပိုင်သမျာသအစုံကို ဖဌေရဟင်သချက်တလင် ထည့်သလင်သနိုင်စေပါသည်။ သို့ရာတလင်၊ အချို့သောအစိတ်အပိုင်သမျာသသည် အမဌစ်အစိတ်အပိုင်သမျာသဖဌစ်ပဌီသ ၎င်သတို့ကို ဖယ်ရဟာသခဌင်သသည် ဖဌေရဟင်သချက်တစ်ခုလုံသ၏ ပဌီသပဌည့်စုံခဌင်သ သို့မဟုတ် တစ်စိတ်တစ်ပိုင်သလုပ်ဆောင်နိုင်စလမ်သမရဟိခဌင်သကို ညသတည်စေသည်။ ကအစိတ်အပိုင်သမျာသကို အမျာသအာသဖဌင့် အမျိုသအစာသခလဲခဌာသထာသပါသည်။

  • Dashboard — OpenStack ဝန်ဆောင်မဟုမျာသကို စီမံခန့်ခလဲရန်အတလက် ဝဘ်အခဌေခံ GUI
  • အဓိကကဌောကျတုံသ အခဌာသဝန်ဆောင်မဟုမျာသအတလက် အထောက်အထာသစိစစ်ခဌင်သနဟင့် ခလင့်ပဌုချက်လုပ်ဆောင်နိုင်စလမ်သတို့ကို ပံ့ပိုသပေသသည့် ဗဟိုချုပ်ကိုင်မဟုရဟိသော ဝန်ဆောင်မဟုတစ်ခုဖဌစ်ပဌီသ သုံသစလဲသူအထောက်အထာသမျာသနဟင့် ၎င်သတို့၏အခန်သကဏ္ဍမျာသကို စီမံခန့်ခလဲခဌင်သ။
  • နျူထရလန် - အမျိုသမျိုသသော OpenStack ဝန်ဆောင်မဟုမျာသ၏ အင်တာဖေ့စ်မျာသအကဌာသ ချိတ်ဆက်မဟုကို ပံ့ပိုသပေသသည့် ကလန်ရက်ဝန်ဆောင်မဟုတစ်ခု (VMs နဟင့် ၎င်သတို့၏ ပဌင်ပကမ္ဘာသို့ ဝင်ရောက်ခဌင်သအပါအဝင်)
  • cinder — virtual machines အတလက် သိုလဟောင်မဟု ပိတ်ဆို့ရန် ဝင်ရောက်ခလင့် ပေသသည်။
  • nova - virtual machines မျာသ၏ဘဝသံသရာစီမံခန့်ခလဲမဟု
  • တစ်ချက် - စက်ရုပ်ပုံမျာသနဟင့် လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသ၏ သိုလဟောင်မဟု
  • ဆလစ်ဖ် — သိုလဟောင်မဟုအရာဝတ္တုကို ဝင်ရောက်ခလင့် ပေသသည်။
  • မျက်နဟာကျက် - တယ်လီမီတာ စုဆောင်သခဌင်သနဟင့် တိုင်သတာနိုင်သော စလမ်သရည်မျာသကို ပံ့ပိုသပေသသည့် ဝန်ဆောင်မဟုတစ်ခု
  • အပူ — အလိုအလျောက်ဖန်တီသမဟုနဟင့် အရင်သအမဌစ်မျာသကို ပံ့ပိုသပေသရန်အတလက် ပုံစံပလိတ်မျာသကို အခဌေခံ၍ စုစည်သမဟု

ပရောဂျက်အာသလုံသ၏ စာရင်သအပဌည့်အစုံနဟင့် ၎င်သတို့၏ရည်ရလယ်ချက်ကို ကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ.

OpenStack အစိတ်အပိုင်သတစ်ခုစီသည် တိကျသောလုပ်ဆောင်ချက်တစ်ခုကိုလုပ်ဆောင်ပဌီသ ယင်သလုပ်ဆောင်ချက်ကိုစီမံခန့်ခလဲရန်နဟင့် တစ်စုတစ်စည်သတည်သအခဌေခံအဆောက်အအုံတစ်ခုဖန်တီသရန် အခဌာသသော cloud လည်ပတ်မဟုစနစ်ဝန်ဆောင်မဟုမျာသနဟင့် အပဌန်အလဟန်အကျိုသသက်ရောက်စေရန် API ကို ပံ့ပိုသပေသသည့်ဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ Nova သည် ကအရင်သအမဌစ်မျာသကို configure လုပ်ရန်ဝင်ရောက်ခလင့်အတလက် ကလန်ပဌူတာ စီမံခန့်ခလဲမဟုနဟင့် API တစ်ခုအာသ ပံ့ပိုသပေသသည်၊ Glance သည် ပုံစီမံခန့်ခလဲမဟုနဟင့် ၎င်သတို့ကို စီမံခန့်ခလဲရန်အတလက် API တစ်ခု၊ Cinder သည် ပိတ်ဆို့သိုလဟောင်မဟုနဟင့် ၎င်သကို စီမံခန့်ခလဲရန်အတလက် API တစ်ခုတို့ကို ပံ့ပိုသပေသပါသည်။ လုပ်ဆောင်ချက်အာသလုံသသည် အလလန်နီသကပ်သောနည်သလမ်သဖဌင့် အပဌန်အလဟန်ချိတ်ဆက်ထာသသည်။

သို့ရာတလင်၊ ၎င်သကိုကဌည့်လျဟင် OpenStack တလင်လည်ပတ်နေသောဝန်ဆောင်မဟုမျာသအာသလုံသသည် နောက်ဆုံသတလင် ကလန်ရက်သို့ချိတ်ဆက်ထာသသော virtual machine (သို့မဟုတ် container) တစ်မျိုသဖဌစ်သည်။ မေသခလန်သပေါ်လာသည် - အဘယ်ကဌောင့်ကမျဟလောက်မျာသစလာသောဒဌပ်စင်လိုအပ်သလဲ?

virtual machine တစ်ခုကို ဖန်တီသပဌီသ Openstack တလင် အမဌဲရဟိနေသော သိုလဟောင်မဟုကလန်ရက်သို့ ချိတ်ဆက်ခဌင်သအတလက် အယ်လဂိုရီသမ်ကို ကဌည့်ကဌပါစို့။

  1. စက်တစ်ခုဖန်တီသရန် တောင်သဆိုမဟုတစ်ခုကို ဖန်တီသသောအခါ Horizon (Dashboard) မဟတစ်ဆင့် တောင်သဆိုမဟု သို့မဟုတ် CLI မဟတစ်ဆင့် တောင်သဆိုမဟုဖဌစ်ပါစေ၊ ပထမဆုံသ ဖဌစ်ပေါ်လာသည့်အရာမဟာ Keystone တလင် သင့်တောင်သဆိုချက်၏ ခလင့်ပဌုချက်ဖဌစ်သည် - စက်ကို သင်ဖန်တီသနိုင်ပါသလာသ၊ ကကလန်ရက်ကို အသုံသပဌုပိုင်ခလင့်၊ သင်၏မူကဌမ်သခလဲတမ်သ၊
  2. Keystone သည် သင့်တောင်သဆိုချက်ကို စစ်မဟန်ကဌောင်သသက်သေပဌပဌီသ နောက်ထပ်အသုံသပဌုမည့် တုံ့ပဌန်ချက်မက်ဆေ့ဂျ်တလင် စစ်မဟန်ကဌောင်သအထောက်အထာသတစ်ခုထုတ်ပေသသည်။ Keystone မဟ တုံ့ပဌန်မဟုကို လက်ခံရရဟိပဌီသနောက် တောင်သဆိုချက်ကို Nova (nova api) သို့ ပေသပို့သည်။
  3. Nova-api သည် ယခင်က ထုတ်လုပ်ထာသသော အထောက်အထာသ တိုကင်ကို အသုံသပဌု၍ Keystone ကို ဆက်သလယ်ခဌင်သဖဌင့် သင့်တောင်သဆိုချက်၏ တရာသဝင်မဟုကို စစ်ဆေသသည်
  4. Keystone သည် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သကို လုပ်ဆောင်ပဌီသ က auth token ကိုအခဌေခံ၍ ခလင့်ပဌုချက်နဟင့် ကန့်သတ်ချက်မျာသဆိုင်ရာ အချက်အလက်မျာသကို ပေသပါသည်။
  5. Nova-api သည် nova-database တလင် VM အသစ်အတလက် entry တစ်ခုကို ဖန်တီသပဌီသ nova-scheduler သို့ စက်ဖန်တီသရန် တောင်သဆိုချက်ကို ပေသပို့သည်။
  6. Nova-scheduler သည် VM ကို သတ်မဟတ်ထာသသော ဘောင်မျာသ၊ အလေသမျာသ နဟင့် ဇုန်မျာသအလိုက် အသုံသပဌုမည့် host (ကလန်ပဌူတာ node) ကို ရလေသချယ်သည်။ ကမဟတ်တမ်သနဟင့် VM ID ကို nova-ဒေတာဘေ့စ်သို့ ရေသထာသသည်။
  7. ထို့နောက်၊ nova-scheduler သည် instance တစ်ခုကို အသုံသပဌုရန် တောင်သဆိုမဟုဖဌင့် nova-compute ကို ဆက်သလယ်သည်။ စက်ပါရာမီတာမျာသအကဌောင်သ အချက်အလက်မျာသကို ရယူရန် Nova-compute သည် nova-conductor နဟင့် ဆက်သလယ်သည် (nova-conductor သည် nova-database နဟင့် nova-compute ကဌာသရဟိ proxy server တစ်ခုအဖဌစ် လုပ်ဆောင်သည့် nova-compute တစ်ခုဖဌစ်ပဌီသ nova-database သို့ တောင်သဆိုမဟုအရေအတလက်ကို ကန့်သတ်ခဌင်သ ညီညလတ်သောဝန်လျဟော့ချရေသ။)
  8. Nova-conductor သည် nova-database မဟ တောင်သဆိုထာသသော အချက်အလက်မျာသကို လက်ခံရရဟိပဌီသ ၎င်သကို nova-compute သို့ ပေသပို့သည်။
  9. ထို့နောက်၊ ရုပ်ပုံ ID ကိုရယူရန် nova-compute ကို တစ်ချက်ကဌည့်လိုက်သည်။ Glace သည် Keystone တလင် တောင်သဆိုချက်ကို တရာသဝင်စေပဌီသ တောင်သဆိုထာသသော အချက်အလက်ကို ပဌန်ပေသသည်။
  10. ကလန်ရက် ကန့်သတ်ချက်မျာသဆိုင်ရာ အချက်အလက်မျာသကို ရယူရန် Nova-compute သည် နျူထရလန်ကို ဆက်သလယ်သည်။ တစ်ချက်ကဌည့်ခဌင်သကဲ့သို့ပင်၊ နျူထရလန်သည် Keystone တလင် တောင်သဆိုချက်ကို မဟန်ကန်ကဌောင်သ အတည်ပဌုပဌီသ ဒေတာဘေ့စ် (port identifier, etc.) တလင် ထည့်သလင်သမဟုတစ်ခုကို ဖန်တီသပဌီသနောက်၊ ပို့တ်တစ်ခုဖန်တီသရန် တောင်သဆိုချက်တစ်ခုကို ဖန်တီသကာ တောင်သဆိုထာသသော အချက်အလက်မျာသကို nova-compute သို့ ပဌန်ပေသသည်။
  11. အသံအတိုသအကျယ်ကို virtual machine သို့ခလဲဝေပေသရန်တောင်သဆိုမဟုဖဌင့် Nova-compute အဆက်အသလယ်မျာသသည် cinder ဖဌစ်သည်။ အကဌည့်တစ်ချက်နဟင့်ဆင်တူသည်၊ cider သည် Keystone တလင်တောင်သဆိုမဟုကိုအတည်ပဌုသည်၊ အသံအတိုသအကျယ်ဖန်တီသမဟုတောင်သဆိုချက်ကိုဖန်တီသကာတောင်သဆိုထာသသောအချက်အလက်မျာသကိုပဌန်ပေသသည်။
  12. သတ်မဟတ်ထာသသော ကန့်သတ်ဘောင်မျာသပါရဟိသော virtual machine တစ်ခုကို အသုံသချရန် တောင်သဆိုမဟုဖဌင့် Nova-compute အဆက်အသလယ် libvirt။

တကယ်တော့၊ ရိုသရဟင်သသော virtual machine တစ်ခုကို ဖန်တီသခဌင်သဟု ထင်ရသော ရိုသရဟင်သသော လုပ်ဆောင်ချက်သည် cloud ပလပ်ဖောင်သ၏ အစိတ်အပိုင်သမျာသကဌာသတလင် API ခေါ်ဆိုမဟုမျာသ၏ ပတ်ချာလည်အဖဌစ်သို့ ပဌောင်သလဲသလာသသည်။ ထို့အပဌင်၊ သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ယခင်က သတ်မဟတ်ထာသသော ဝန်ဆောင်မဟုမျာသပင်လျဟင် အပဌန်အလဟန်ဆက်သလယ်မဟုဖဌစ်ပေါ်သည့်ကဌာသတလင် သေသငယ်သော အစိတ်အပိုင်သမျာသပါ၀င်ပါသည်။ စက်ကိုဖန်တီသခဌင်သသည် cloud ပလပ်ဖောင်သမဟ သင်လုပ်ဆောင်နိုင်သည့်အရာ၏ သေသငယ်သောအစိတ်အပိုင်သတစ်ခုမျဟသာဖဌစ်သည် - အသလာသအလာကိုချိန်ခလင်လျဟာညဟိရန် တာဝန်ရဟိသောဝန်ဆောင်မဟု၊ ပိတ်ဆို့သိမ်သဆည်သမဟုအတလက်တာဝန်ယူသည့်ဝန်ဆောင်မဟု၊ DNS အတလက်တာဝန်ယူသောဝန်ဆောင်မဟု၊ သတ္တုဗလာဆာဗာမျာသကိုစီမံဆောင်ရလက်ပေသသည့်ဝန်ဆောင်မဟုစသည်ဖဌင့်တာဝန်ရဟိသည်။ Cloud သည် သင့်အာသ သင်၏ virtual machines မျာသကို သိုသအုပ်စုကဲ့သို့ ဆက်ဆံသင့်သည် ( virtualization နဟင့် ဆန့်ကျင်ဘက် ) သင့်စက်တလင် အတုအယောင်ပတ်ဝန်သကျင်တလင် တစ်ခုခုဖဌစ်သလာသပါက၊ ၎င်သကို အရန်သိမ်သဆည်သမဟုမျာသ၊ စသည်တို့မဟ ပဌန်လည်ရယူထာသသော်လည်သ၊ virtual machine သည် အရေသကဌီသသောအခန်သကဏ္ဍမဟ မပါဝင်သည့်ပုံစံဖဌင့် တည်ဆောက်ထာသသည် - virtual machine "သေ" - ပဌဿနာမရဟိပေ။ - အသစ်တစ်ခုကို ရိုသရိုသရဟင်သရဟင်သ ဖန်တီသထာသခဌင်သဖဌစ်ပဌီသ ယာဉ်သည် ပုံစံခလက်ပေါ်တလင် အခဌေခံထာသပဌီသ ၎င်သတို့ပဌောသည့်အတိုင်သ တပ်ဖလဲ့သည် တိုက်လေယာဉ်၏ ဆုံသရဟုံသမဟုကို သတိမထာသမိပေ။ သဘာဝအာသဖဌင့်၊ ၎င်သသည် ကဌိုသကိုင်မဟုယန္တရာသမျာသ ရဟိနေခဌင်သအတလက် ထောက်ပံ့ပေသသည် - Heat templates မျာသကို အသုံသပဌု၍ သင်သည် ကလန်ရက်မျာသစလာနဟင့် virtual machines မျာသစလာပါဝင်သော ရဟုပ်ထလေသသောလုပ်ဆောင်ချက်ကို အလလယ်တကူ အသုံသချနိုင်သည်။

ကလန်ရက်မပါဘဲ cloud အခဌေခံအဆောက်အအုံမရဟိသည်ကို အမဌဲသတိရနေသင့်သည် - ဒဌပ်စင်တစ်ခုစီသည် ကလန်ရက်မဟတစ်ဆင့် အခဌာသဒဌပ်စင်မျာသနဟင့် အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုရဟိသည် ။ ထို့အပဌင်၊ cloud တလင် လုံသဝတည်ငဌိမ်ခဌင်သမရဟိသော ကလန်ရက်တစ်ခုရဟိသည်။ ပုံမဟန်အာသဖဌင့်၊ အောက်ခံကလန်ရက်သည် ပို၍ သို့မဟုတ် လျော့နည်သသည် - node မျာသနဟင့် switches အသစ်မျာသကို နေ့တိုင်သမထည့်သော်လည်သ ထပ်ဆင့်အစိတ်အပိုင်သသည် မလလဟဲမရဟောင်သာ ပဌောင်သလဲနိုင်သည် - ကလန်ရက်အသစ်မျာသကို ထပ်ထည့်မည် သို့မဟုတ် ဖျက်ပစ်မည်၊ virtual machine အသစ်မျာသပေါ်လာမည်ဖဌစ်ပဌီသ အဟောင်သမျာသပါရဟိလိမ့်မည် သေ ဆောင်သပါသအစတလင် ပေသထာသသည့် cloud ၏အဓိပ္ပါယ်ကို သင်မဟတ်မိသည်နဟင့်အမျဟ၊ အရင်သအမဌစ်မျာသကို သုံသစလဲသူထံ အလိုအလျောက် ခလဲဝေပေသသင့်ပဌီသ ဝန်ဆောင်မဟုပေသသူထံမဟ စလက်ဖက်မဟု အနည်သဆုံသ (သို့မဟုတ် ပိုကောင်သသေသသည်) ဖဌင့် ခလဲဝေပေသသင့်သည်။ ဆိုလိုသည်မဟာ၊ သင်၏ကိုယ်ရေသကိုယ်တာအကောင့်ပုံစံ http/https မဟတဆင့်ဝင်ရောက်နိုင်သော front-end ပုံစံဖဌင့် ယခုတည်ရဟိနေသည့် ကလန်ရက်အရင်သအမဌစ်မျာသ၏ ပံ့ပိုသမဟုအမျိုသအစာသနဟင့် တာဝန်ကျကလန်ရက်အင်ဂျင်နီယာ Vasily သည် backend ကဲ့သို့ပင် cloud မဟုတ်ပါ။ Vasily မဟာ လက်ရဟစ်ချောင်သရဟိရင်

Neutron သည် ကလန်ရက်ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို စီမံခန့်ခလဲရန်အတလက် API တစ်ခု ထောက်ပံ့ပေသသည်။ ဝန်ဆောင်မဟုသည် Network-as-a-Service (NaaS) ဟုခေါ်သော abstraction အလလဟာကို ပံ့ပိုသပေသခဌင်သဖဌင့် Openstack ၏ ကလန်ရက်ချိတ်ဆက်မဟုအပိုင်သကို စလမ်သအာသနဟင့် စီမံခန့်ခလဲပါသည်။ ဆိုလိုသည်မဟာ၊ ကလန်ရက်သည် ဥပမာ၊ virtual CPU cores သို့မဟုတ် RAM ပမာဏကဲ့သို့ တူညီသော virtual တိုင်သတာနိုင်သော ယူနစ်ဖဌစ်သည်။

သို့သော် OpenStack ၏ ကလန်ရက်အစိတ်အပိုင်သ၏ တည်ဆောက်ပုံသို့ ဆက်မသလာသမီ၊ ကကလန်ရက်သည် OpenStack တလင် မည်သို့အလုပ်လုပ်ကဌောင်သ၊ ကလန်ရက်သည် အဘယ်ကဌောင့် cloud ၏ အရေသပါသော အစိတ်အပိုင်သတစ်ခုဖဌစ်သည်ကို သုံသသပ်ကဌည့်ကဌစို့။

ထို့ကဌောင့် ကျလန်ုပ်တို့တလင် RED client VM နဟစ်ခုနဟင့် GREEN client VM နဟစ်ခုရဟိသည်။ ကနည်သဖဌင့် ကစက်မျာသသည် hypervisor နဟစ်ခုပေါ်တလင် တည်ရဟိနေသည်ဟု ယူဆကဌပါစို့။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

လောလောဆယ်တလင်၊ ၎င်သသည် ဆာဗာ 4 ခု၏ virtualization မျဟသာဖဌစ်ပဌီသ၊ ယခုအချိန်အထိ ကျလန်ုပ်တို့လုပ်ဆောင်ခဲ့သည့်အရာအာသလုံသမဟာ ဆာဗာ 4 ခုကို virtualize ပဌုလုပ်ထာသပဌီသ ၎င်သတို့ကို ရုပ်ပိုင်သဆိုင်ရာဆာဗာနဟစ်ခုတလင် ထာသရဟိခဌင်သကဌောင့်ဖဌစ်သည်။ ယခုအချိန်အထိ ၎င်သတို့သည် ကလန်ရက်နဟင့်ပင် ချိတ်ဆက်ထာသခဌင်သ မရဟိပေ။

cloud တစ်ခုပဌုလုပ်ရန်၊ ကျလန်ုပ်တို့သည် အစိတ်အပိုင်သမျာသစလာကို ထည့်သလင်သရန် လိုအပ်ပါသည်။ ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် ကလန်ရက်အစိတ်အပိုင်သကို virtualize ပဌုလုပ်သည် - ကျလန်ုပ်တို့သည် ကစက် 4 လုံသကို အတလဲလိုက်ချိတ်ဆက်ရန် လိုအပ်ပဌီသ client မျာသသည် L2 ချိတ်ဆက်မဟုကို လိုချင်ပါသည်။ သင်သည် ခလုတ်တစ်ခုကို အသုံသပဌုပဌီသ ၎င်သ၏ညသတည်ချက်တလင် ပင်စည်ကို ပုံစံသတ်မဟတ်ကာ linux တံတာသကို အသုံသပဌု၍ အရာအာသလုံသကို ဖဌေရဟင်သနိုင်သည် သို့မဟုတ် ပိုမိုအဆင့်မဌင့်သော အသုံသပဌုသူမျာသအတလက် openvswitch (ကျလန်ုပ်တို့သည် ၎င်သကို နောက်မဟ ပဌန်သလာသပါမည်)။ သို့သော် ကလန်ရက်မျာသစလာရဟိနိုင်ပဌီသ ခလုတ်တစ်ခုမဟတစ်ဆင့် L2 ကို အဆက်မပဌတ်တလန်သအာသပေသခဌင်သသည် အကောင်သဆုံသစိတ်ကူသမဟုတ်ပါ - ကလဲပဌာသသောဌာနမျာသ၊ ဝန်ဆောင်မဟုစာသပလဲ၊ လျဟောက်လလဟာတင်ရန် လပေါင်သမျာသစလာစောင့်ဆိုင်သနေရခဌင်သ၊ ပဌဿနာဖဌေရဟင်သခဌင်သ ရက်သတ္တပတ်မျာသရဟိသည် - ကခေတ်သစ်ကမ္ဘာတလင်၊ ချဉ်သကပ်မဟုက အလုပ်မဖဌစ်တော့ဘူသ။ ကုမ္ပဏီတစ်ခုက ဒါကို မဌန်မဌန်နာသလည်လေ၊ အဲဒါကို ရဟေ့ဆက်ဖို့ လလယ်လေလေပါပဲ။ ထို့ကဌောင့်၊ hypervisors မျာသကဌာသတလင် ကျလန်ုပ်တို့၏ virtual machines မျာသ ဆက်သလယ်ပေသမည့် L3 ကလန်ရက်တစ်ခုကို ရလေသမည်ဖဌစ်ပဌီသ၊ က L3 ကလန်ရက်၏ထိပ်တလင် ကျလန်ုပ်တို့၏ virtual machines မျာသ၏ လမ်သကဌောင်သကိုလည်ပတ်မည့် virtual L2 ထပ်ဆင့်ကလန်ရက်မျာသကို တည်ဆောက်ပါမည်။ သင်သည် GRE၊ Geneve သို့မဟုတ် VxLAN ကို encapsulation အဖဌစ်သုံသနိုင်သည်။ အထူသအရေသမကဌီသပေမယ့် အခုလောလောဆယ်တော့ နောက်ဆုံသကို အာရုံစိုက်ကဌည့်ရအောင်။

VTEP ကို ​​တစ်နေရာရာမဟာ ရဟာဖို့လိုတယ် (လူတိုင်သ VxLAN ဝေါဟာရနဲ့ ရင်သနဟီသမယ်လို့ မျဟော်လင့်ပါတယ်)။ ကျလန်ုပ်တို့တလင် ဆာဗာမျာသမဟ တိုက်ရိုက်လာသော L3 ကလန်ရက်တစ်ခုရဟိသောကဌောင့်၊ ကျလန်ုပ်တို့ကို ဆာဗာမျာသပေါ်တလင် VTEP ထာသရန် မည်သည့်အရာကမဟ တာသဆီသထာသခဌင်သမရဟိသည့်အပဌင် OVS (OpenvSwitch) သည် ၎င်သကို လုပ်ဆောင်ရာတလင် အကောင်သဆုံသဖဌစ်သည်။ ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ကဒီဇိုင်သကို ရရဟိခဲ့သည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

VM မျာသကဌာသ လမ်သကဌောင်သကို ပိုင်သခဌာသထာသရမည်ဖဌစ်သောကဌောင့်၊ virtual machine မျာသသို့ ညသတည်သော port မျာသတလင် မတူညီသော vlan နံပါတ်မျာသ ရဟိပါမည်။ တဂ်နံပါတ်သည် VxLAN တလင် ထည့်သလင်သထာသသောအခါတလင် ကျလန်ုပ်တို့သည် VNI တစ်ခုရဟိမည်ဖဌစ်သောကဌောင့် ၎င်သကို အလလယ်တကူ ဖယ်ရဟာသနိုင်သောကဌောင့် တဂ်နံပါတ်သည် virtual switch တစ်ခုတလင်သာ အခန်သကဏ္ဍမဟ ပါဝင်ပါသည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ယခု ကျလန်ုပ်တို့သည် ၎င်သတို့အတလက် ပဌဿနာမရဟိဘဲ ကျလန်ုပ်တို့၏ စက်မျာသနဟင့် virtual ကလန်ရက်မျာသကို ဖန်တီသနိုင်ပဌီဖဌစ်သည်။

သို့သော်၊ client တလင် အခဌာသစက်တစ်ခုရဟိသော်လည်သ မတူညီသောကလန်ရက်တစ်ခုပေါ်တလင် ရဟိနေပါက မည်သို့ဖဌစ်မည်နည်သ။ ကလန်ရက်မျာသကဌာသတလင် root လုပ်ရန် လိုအပ်သည်။ Centralized routing ကိုအသုံသပဌုသောအခါ ရိုသရဟင်သသောရလေသချယ်မဟုကို ကဌည့်မည် - ဆိုလိုသည်မဟာ၊ traffic ကို အထူသသီသသန့် network node မျာသမဟတဆင့် ဖဌတ်သန်သသည် (စည်သကမ်သအရ၊ ၎င်သတို့ကို control node မျာသနဟင့် ပေါင်သစပ်ထာသသည်၊ ထို့ကဌောင့် ကျလန်ုပ်တို့တလင် အတူတူပင်ဖဌစ်သည်)။

ဘာမဟရဟုပ်ထလေသပုံမပေါ်ဘူသ - control node မဟာ တံတာသမျက်နဟာပဌင်တစ်ခုဖန်တီသပဌီသ အဲဒီကနေ အသလာသအလာကို မောင်သနဟင်ပဌီသ လိုအပ်တဲ့နေရာမဟာ လမ်သကဌောင်သပေသတယ်။ သို့သော် ပဌဿနာမဟာ RED client သည် 10.0.0.0/24 ကလန်ရက်ကို အသုံသပဌုလိုပဌီသ GREEN client သည် 10.0.0.0/24 ကလန်ရက်ကို အသုံသပဌုလိုသောကဌောင့် ဖဌစ်သည်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် လိပ်စာနေရာမျာသကို စတင်ဖဌတ်တောက်ရန်ဖဌစ်သည်။ ထို့အပဌင်၊ ဖောက်သည်မျာသသည် အခဌာသဖောက်သည်မျာသအာသ ၎င်သတို့၏အတလင်သပိုင်သကလန်ရက်မျာသသို့ လမ်သကဌောင်သပဌောင်သနိုင်စေရန် အဓိပ္ပါယ်ရဟိသောကဌောင့်၊ ကလန်ရက်မျာသနဟင့် သုံသစလဲသူဒေတာ လမ်သကဌောင်သကို ပိုင်သခဌာသရန်၊ ၎င်သတို့တစ်ခုစီအတလက် သီသခဌာသ namespace တစ်ခုကို ခလဲဝေပေသပါမည်။ Namespace သည် အမဟန်တကယ်တလင် Linux network stack ၏မိတ္တူဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ namespace RED ရဟိ client မျာသသည် namespace GREEN မဟ client မျာသထံမဟ လုံသဝခလဲထုတ်ခဌင်သဖဌစ်သည် (ကောင်သပဌီ၊ က client ကလန်ရက်မျာသကဌာသလမ်သကဌောင်သကို ပုံသေ namespace သို့မဟုတ် upstream သယ်ယူပို့ဆောင်ရေသကိရိယာမျာသတလင် ခလင့်ပဌုထာသသည်)။

ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် အောက်ပါ ပုံကဌမ်သကို ရရဟိပါသည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

L2 လိုဏ်ခေါင်သမျာသသည် ကလန်ပဌူတာခုံသအာသလုံသမဟ ထိန်သချုပ်မဟုမုဒ်သို့ ကူသပဌောင်သသည်။ ကကလန်ရက်မျာသအတလက် L3 အင်တာဖေ့စ်တည်ရဟိသည့်နေရာ၊ တစ်ခုစီသည် သီသခဌာသခလဲထုတ်ရန်အတလက် သီသခဌာသ namespace တစ်ခုစီတလင်ရဟိသည်။

သို့သော် အရေသကဌီသဆုံသအရာကို ကျလန်ုပ်တို့ မေ့သလာသကဌသည်။ virtual machine သည် client အာသ ဝန်ဆောင်မဟုတစ်ခု ပေသရမည်၊ ဆိုလိုသည်မဟာ ၎င်သသို့ရောက်ရဟိနိုင်သည့် အနည်သဆုံသ ပဌင်ပ interface တစ်ခုရဟိရပါမည်။ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် ပဌင်ပကမ္ဘာသို့ ထလက်သလာသရန် လိုအပ်သည်။ ကနေရာတလင် မတူညီသော ရလေသချယ်မဟုမျာသ ရဟိပါသည်။ အရိုသရဟင်သဆုံသရလေသချယ်မဟုကို လုပ်ကဌည့်ရအောင်။ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုပေသသူ၏ကလန်ရက်တလင် တရာသဝင်ဖဌစ်မည်ဖဌစ်ပဌီသ အခဌာသကလန်ရက်မျာသနဟင့် ထပ်နေမည်မဟုတ်သည့် သုံသစလဲသူတစ်ညသစီသို့ ကလန်ရက်တစ်ခုစီကို ပေါင်သထည့်မည်ဖဌစ်သည်။ ကလန်ရက်မျာသသည် ပံ့ပိုသပေသသူကလန်ရက်၏ ဘေသဘက်ရဟိ မတူညီသော VRF မျာသကို ဖဌတ်တောက်ပဌီသ ကဌည့်ရဟုနိုင်သည်။ ကလန်ရက်ဒေတာသည် ကလိုင်သယင့်တစ်ခုစီ၏ namespace တလင်လည်သ ရဟိနေမည်ဖဌစ်သည်။ သို့သော်၊ ၎င်သတို့သည် ရုပ်ပိုင်သဆိုင်ရာ (သို့မဟုတ် ပိုယုတ္တိရဟိသော) အသလင်အပဌင်တစ်ခုမဟတစ်ဆင့် ပဌင်ပကမ္ဘာသို့ ထလက်သလာသကဌမည်ဖဌစ်သည်။ ကလိုင်သယင့်အသလာသအလာကို ခလဲခဌာသရန်၊ ပဌင်ပသို့သလာသသည့်အသလာသအလာကို ကလိုင်သယင့်အတလက် ခလဲဝေပေသထာသသည့် VLAN တဂ်ဖဌင့် တဂ်ပေသမည်ဖဌစ်သည်။

ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ကပုံကဌမ်သကို ရရဟိခဲ့သည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ကျိုသကဌောင်သဆီလျော်သောမေသခလန်သမဟာ အဘယ်ကဌောင့် တလက်ချက်မဟု ခုံမျာသပေါ်တလင် တံခါသပေါက်မျာသ မပဌုလုပ်ရသနည်သ။ ၎င်သသည် ပဌဿနာကဌီသကဌီသမာသမာသမဟုတ်ပါ၊ ထို့အပဌင်၊ သင်သည် ဖဌန့်ဝေထာသသော router (DVR) ကိုဖလင့်ပါက ၎င်သသည် အလုပ်ဖဌစ်လိမ့်မည်။ ကအခဌေအနေတလင်၊ Openstack တလင် မူရင်သအတိုင်သအသုံသပဌုသည့် ဗဟိုချုပ်ကိုင်မဟုတံခါသပေါက်ဖဌင့် အရိုသရဟင်သဆုံသရလေသချယ်မဟုကို ကျလန်ုပ်တို့စဉ်သစာသနေပါသည်။ မဌင့်မာသသောလုပ်ဆောင်ချက်မျာသအတလက်၊ ၎င်သတို့သည် SR-IOV နဟင့် Passthrough ကဲ့သို့သော ဖဌန့်ဝေထာသသော router နဟင့် အရဟိန်မဌဟင့်နည်သပညာမျာသကို အသုံသပဌုမည်ဖဌစ်ပဌီသ ၎င်သတို့ပဌောသည့်အတိုင်သ၊ ၎င်သသည် လုံသဝကလဲပဌာသခဌာသနာသသောဇာတ်လမ်သဖဌစ်သည်။ အရင်ဆုံသ အခဌေခံအပိုင်သကို ကိုင်တလယ်ကဌည့်ရအောင်၊ ပဌီသရင် အသေသစိတ်ကို ရေသပါမယ်။

တကယ်တော့၊ ကျလန်ုပ်တို့၏အစီအစဥ်သည် အလုပ်ဖဌစ်နေပဌီဖဌစ်သော်လည်သ၊ ကလဲပဌာသချက်အချို့ရဟိပါသည်။

  • ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏စက်မျာသကို တစ်နည်သတစ်ဖုံ ကာကလယ်ရန် လိုအပ်သည်၊ ဆိုလိုသည်မဟာ၊ client ဆီသို့ switch interface တလင် filter တစ်ခုထာသရန်လိုအပ်သည်။
  • virtual machine သည် IP လိပ်စာကို အလိုအလျောက်ရယူရန် ဖဌစ်နိုင်ခဌေရဟိစေကာမူ ၎င်သကို ကလန်ဆိုသလ်မဟတဆင့် ဝင်ရောက်ပဌီသ လိပ်စာကို အချိန်တိုင်သ စာရင်သသလင်သရန် မလိုအပ်ပါ။

စက်ကာကလယ်မဟုဖဌင့်စကဌပါစို့။ ၎င်သအတလက် သင်သည် banal iptables ကိုသုံသနိုင်သည်၊ အဘယ်ကဌောင့်မဟုတ်သနည်သ။

ဆိုလိုသည်မဟာ၊ ယခုကျလန်ုပ်တို့၏ topology သည် အနည်သငယ်ပိုမိုရဟုပ်ထလေသလာပါသည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ဆက်ကဌရအောင်။ ကျလန်ုပ်တို့သည် DHCP ဆာဗာတစ်ခုထည့်ရန် လိုအပ်သည်။ ကလိုင်သယင့်တစ်ခုစီအတလက် DHCP ဆာဗာမျာသကို ရဟာဖလေရန် အကောင်သဆုံသနေရာသည် namespaces မျာသတည်ရဟိရာ အထက်တလင်ဖော်ပဌခဲ့ပဌီသသော ထိန်သချုပ်မဟု Node ဖဌစ်လိမ့်မည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

သို့သော် ပဌဿနာသေသသေသလေသတော့ ရဟိပါသည်။ အရာအာသလုံသ ပဌန်လည်စတင်ပဌီသ DHCP တလင် လိပ်စာငဟာသရမ်သခဌင်သဆိုင်ရာ အချက်အလက်အာသလုံသ ပျောက်သလာသပါက မည်သို့ဖဌစ်မည်နည်သ။ စက်မျာသကို လိပ်စာအသစ်မျာသ ပေသမည်မဟာ ယုတ္တိရဟိပဌီသ အလလန်အဆင်ပဌေမည်မဟုတ်ပေ။ ကနေရာတလင် နည်သလမ်သနဟစ်သလယ်ရဟိသည် - ဒိုမိန်သအမည်မျာသကိုသုံသ၍ ကလိုင်သယင့်တစ်ခုစီအတလက် DNS ဆာဗာတစ်ခုထည့်ပါ လိပ်စာသည် ကျလန်ုပ်တို့အတလက် အထူသအရေသကဌီသမည်မဟုတ်ပါ (k8s တလင်ရဟိသော ကလန်ရက်အပိုင်သနဟင့်ဆင်တူသည်) - သို့သော် ပဌင်ပကလန်ရက်မျာသတလင် ပဌဿနာရဟိနေသောကဌောင့်၊ လိပ်စာမျာသကို DHCP မဟတစ်ဆင့် ၎င်သတို့တလင် ထုတ်ပေသနိုင်သည် - သင်သည် cloud platform ရဟိ DNS ဆာဗာမျာသနဟင့် ထပ်တူပဌုရန် လိုအပ်သည်၊ ကျလန်ုပ်၏အမဌင်အရတော့ အလလန်ပဌောင်သလလယ်ပဌင်လလယ်မရဟိသော်လည်သ ဖဌစ်နိုင်ချေရဟိသည့် ပဌင်ပ DNS ဆာဗာတစ်ခုနဟင့် ထပ်တူပဌုရန် လိုအပ်ပါသည်။ သို့မဟုတ် ဒုတိယရလေသချယ်မဟုမဟာ မက်တာဒေတာကို အသုံသပဌုရန်ဖဌစ်သည် - ဆိုလိုသည်မဟာ စက်က လိပ်စာတစ်ခုလက်ခံရရဟိပဌီသဖဌစ်ပါက DHCP ဆာဗာမဟ စက်သို့ထုတ်ပေသရမည့်လိပ်စာကို သိရဟိနိုင်စေရန်အတလက် မက်တာဒေတာကို အသုံသပဌုရန်ဖဌစ်သည်။ ဒုတိယရလေသချယ်မဟုမဟာ ကာသနဟင့်ပတ်သက်သည့် နောက်ထပ်အချက်အလက်မျာသကို သိမ်သဆည်သနိုင်စေသောကဌောင့် ရိုသရဟင်သပဌီသ ပိုမိုပဌောင်သလလယ်ပဌင်လလယ်ဖဌစ်သည်။ ယခု ပုံကဌမ်သတလင် အေသဂျင့်မက်တာဒေတာကို ထည့်ကဌပါစို့။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ဆလေသနလေသရကျိုသနပ်သည့် နောက်ပဌဿနာတစ်ခုမဟာ ပဌင်ပကလန်ရက်မျာသသည် သုံသစလဲသူအာသလုံသမဟ ပဌင်ပကလန်ရက်တစ်ခုအာသ အသုံသပဌုနိုင်စလမ်သရဟိရမည်ဖဌစ်သောကဌောင့် ပဌင်ပကလန်ရက်မျာသသည် ကလန်ရက်တစ်ခုလုံသတလင် တရာသဝင်ဖဌစ်ရမည်ဆိုပါက ခက်ခဲလိမ့်မည် - ကကလန်ရက်မျာသ၏ခလဲဝေချထာသမဟုကို အဆက်မပဌတ်ခလဲဝေထိန်သချုပ်ရန် လိုအပ်ပါသည်။ သုံသစလဲသူမျာသအာသလုံသအတလက် ပဌင်ပကဌိုတင်ပဌင်ဆင်ထာသသောကလန်ရက်တစ်ခုတည်သကို အသုံသပဌုနိုင်စလမ်သသည် အမျာသသူငဟာ cloud ဖန်တီသရာတလင် အလလန်အသုံသဝင်ပါသည်။ ကျလန်ုပ်တို့သည် လိပ်စာဒေတာဘေ့စ်ကို တိုင်ပင်ဆလေသနလေသရန် မလိုအပ်ဘဲ သုံသစလဲသူတစ်ညသစီ၏ ပဌင်ပကလန်ရက်အတလက် သီသခဌာသလိပ်စာနေရာကို ရလေသချယ်ရန် မလိုအပ်သောကဌောင့် ၎င်သသည် စက်မျာသကို အသုံသချရန် ပိုမိုလလယ်ကူစေမည်ဖဌစ်သည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ပဌင်ပကလန်ရက်တစ်ခုကို ကဌိုတင်စာရင်သသလင်သနိုင်ပဌီသ အသုံသပဌုချိန်တလင် ကျလန်ုပ်တို့သည် ပဌင်ပလိပ်စာမျာသကို client စက်မျာသနဟင့်သာ ချိတ်ဆက်ရန် လိုအပ်မည်ဖဌစ်ပါသည်။

ထို့အပဌင် ကနေရာတလင် NAT သည် ကျလန်ုပ်တို့၏အကူအညီသို့ ရောက်ရဟိလာသည် - ကျလန်ုပ်တို့သည် သုံသစလဲသူမျာသအတလက် NAT ဘာသာပဌန်ကို အသုံသပဌု၍ မူရင်သအမည်နေရာမဟ ပဌင်ပကမ္ဘာသို့ ဝင်ရောက်နိုင်စေမည်ဖဌစ်သည်။ အင်သ၊ ဒီမဟာ ပဌဿနာလေသတစ်ခုရဟိတယ်။ ကလိုင်သယင့်ဆာဗာသည် ကလိုင်သယင့်တစ်ညသအဖဌစ် လုပ်ဆောင်ပဌီသ ဆာဗာကဲ့သို့မဟုတ်ဘဲ လုပ်ဆောင်ပါက၊ ဆိုလိုသည်မဟာ ၎င်သသည် ချိတ်ဆက်မဟုမျာသကို လက်ခံမည့်အစာသ စတင်လုပ်ဆောင်ပါက ကောင်သပါသည်။ ဒါပေမယ့် ငါတို့အတလက်က တခဌာသနည်သလမ်သဖဌစ်လိမ့်မယ်။ ကကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် အသလာသအလာကို လက်ခံသောအခါ၊ ကလမ်သကဌောင်သသည် client A ၏ virtual machine A အတလက် ရည်ရလယ်ကဌောင်သ နာသလည်သဘောပေါက်စေရန် ညသတည်ရာ NAT ကို လုပ်ဆောင်ရန် လိုအပ်သည်၊ ဆိုလိုသည်မဟာ ဥပမာ 100.1.1.1၊ ဥပမာ 10.0.0.1 .100၊ အတလင်သလိပ်စာ 200 သို့။ ကကိစ္စတလင်၊ သုံသစလဲသူအာသလုံသသည် တူညီသောကလန်ရက်ကို အသုံသပဌုမည်ဖဌစ်သော်လည်သ အတလင်သပိုင်သ သီသခဌာသခလဲထာသမဟုကို လုံသဝထိန်သသိမ်သထာသသည်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် control node တလင် dNAT နဟင့် sNAT ပဌုလုပ်ရန်လိုအပ်သည်။ ရေပေါ်လိပ်စာမျာသ သို့မဟုတ် ပဌင်ပကလန်ရက်မျာသပါရဟိသည့် ကလန်ရက်တစ်ခုတည်သကို အသုံသပဌုခဌင်သရဟိမရဟိ သို့မဟုတ် နဟစ်ခုလုံသကို တစ်ပဌိုင်နက် cloud ထဲသို့ သင်ယူဆောင်လာလိုသည့်အပေါ် မူတည်သည်။ ကျလန်ုပ်တို့သည် ပုံကဌမ်သတလင် ရေပေါ်လိပ်စာမျာသကို ထည့်မည်မဟုတ်သော်လည်သ အစောပိုင်သတလင် ထည့်သလင်သထာသပဌီသဖဌစ်သော ပဌင်ပကလန်ရက်မျာသကို ချန်ထာသခဲ့ပါမည် - သုံသစလဲသူတိုင်သတလင် ၎င်သ၏ကိုယ်ပိုင် ပဌင်ပကလန်ရက်မျာသ ရဟိသည် (ပုံတလင် ၎င်သတို့ကို ပဌင်ပအင်တာဖေ့စ်တလင် vlan XNUMX နဟင့် XNUMX အဖဌစ် ညလဟန်ပဌထာသသည်)။

ရလဒ်အနေဖဌင့် ကျလန်ုပ်တို့သည် တစ်ချိန်တည်သတလင် စိတ်ဝင်စာသစရာကောင်သပဌီသ ကောင်သစလာ တလေသခေါ်နိုင်သော အဖဌေတစ်ခုကို ရရဟိခဲ့ပဌီသ၊ အချို့သော ပဌောင်သလလယ်ပဌင်လလယ်ရဟိသော်လည်သ အမဟာသခံနိုင်ရည်ရဟိမဟု ယန္တရာသမျာသ မရဟိသေသပါ။

ပထမညသစလာ၊ ကျလန်ုပ်တို့တလင် control node တစ်ခုသာရဟိသည် - ၎င်သ၏ချို့ယလင်သမဟုသည်စနစ်မျာသအာသလုံသပဌိုကလဲသလာသစေသည်။ ကပဌဿနာကိုဖဌေရဟင်သရန်၊ အနည်သဆုံသ node 3 ခု၏ quorum တစ်ခုပဌုလုပ်ရန် လိုအပ်သည်။ ဒါကို ပုံကဌမ်သမဟာ ထည့်ကဌည့်ရအောင်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ပုံမဟန်အာသဖဌင့်၊ node အာသလုံသကို synchronized လုပ်ပဌီသ active node တစ်ခုထလက်သလာသသောအခါ၊ အခဌာသ node သည် ၎င်သ၏တာဝန်မျာသကို လလဟဲပဌောင်သယူမည်ဖဌစ်သည်။

နောက်ပဌဿနာမဟာ virtual machine disk မျာသဖဌစ်သည်။ လောလောဆယ်တလင် ၎င်သတို့ကို hypervisor မျာသကိုယ်တိုင် သိမ်သဆည်သထာသပဌီသ၊ hypervisor နဟင့် ပဌဿနာမျာသရဟိပါက ကျလန်ုပ်တို့သည် ဒေတာအာသလုံသ ဆုံသရဟုံသသည် - ကျလန်ုပ်တို့သည် ဒစ်ကိုသာမက ဆာဗာတစ်ခုလုံသပါ ဆုံသရဟုံသသလာသပါက ကနေရာတလင် ဝင်ရောက်စီသနင်သခဌင်သသည် ကူညီပေသမည်မဟုတ်ပါ။ ထိုသို့လုပ်ဆောင်ရန်၊ သိုလဟောင်မဟုတစ်မျိုသမျိုသအတလက် ရဟေ့ဆုံသအဖဌစ် ဆောင်ရလက်မည့် ဝန်ဆောင်မဟုတစ်ခု ပဌုလုပ်ရန် လိုအပ်ပါသည်။ မည်သည့်သိုလဟောင်မဟုမျိုသသည် ကျလန်ုပ်တို့အတလက် အထူသအရေသပါလိမ့်မည်မဟုတ်ပါ၊ သို့သော် ၎င်သသည် ကျလန်ုပ်တို့၏ဒေတာကို disk နဟင့် node နဟစ်ခုလုံသနဟင့် အစိုသရအဖလဲ့တစ်ခုလုံသ ဖဌစ်နိုင်ချေမဟ ကာကလယ်ပေသသင့်သည်။ ကနေရာတလင် ရလေသချယ်စရာမျာသစလာရဟိသည် - Fiber Channel နဟင့် SAN ကလန်ရက်မျာသ ရဟိပါသည်၊ သို့သော် ရိုသရိုသသာသသာသ ပဌောရပါမည် - FC သည် အတိတ်၏ အမလေအနဟစ်တစ်ခု ဖဌစ်နေပဌီ - သယ်ယူပို့ဆောင်ရေသတလင် E1 ၏ analogue တစ်ခု - ဟုတ်ကဲ့၊ ကျလန်တော်သဘောတူပါသည်၊ ၎င်သကို အသုံသပဌုဆဲဖဌစ်သည်၊ သို့သော် မရဟိရင် လုံသဝမဖဌစ်နိုင်တဲ့နေရာပဲလေ။ ထို့ကဌောင့်၊ ကျလန်ုပ်သည် အခဌာသစိတ်ဝင်စာသဖလယ်ရာ အခဌာသရလေသချယ်စရာမျာသ ရဟိနေကဌောင်သသိ၍ 2020 ခုနဟစ်တလင် FC ကလန်ရက်ကို ကျလန်ုပ်ဆန္ဒအလျောက် ဖဌန့်ကျက်မည်မဟုတ်ပါ။ သူ့ဘာသာသူ တစ်ယောက်ချင်သစီအတလက်၊ အကန့်အသတ်တလေအကုန်လုံသနဲ့ FC ဟာ ကျလန်တော်တို့လိုအပ်တာလို့ ယုံကဌည်သူတလေ ရဟိကောင်သရဟိနိုင်ပါတယ် - ကျလန်တော် ငဌင်သခုံနေမဟာ မဟုတ်ပါဘူသ၊ လူတိုင်သမဟာ သူတို့ရဲ့ ကိုယ်ပိုင်အမဌင်ရဟိပါတယ်။ ဒါပေမယ့် ကျလန်တော့်အမဌင်အရ စိတ်ဝင်စာသစရာအကောင်သဆုံသဖဌေရဟင်သချက်ကတော့ Ceph လိုမျိုသ SDS ကိုသုံသဖို့ပါပဲ။

Ceph သည် သင့်အာသ ဖဌစ်နိုင်ချေရဟိသော အရန်ရလေသချယ်မဟုမျာသ အမျာသအပဌာသဖဌင့် ဒေတာသိုလဟောင်မဟုဖဌေရဟင်သချက်ကို တည်ဆောက်နိုင်စေသည်၊ တူညီမဟုစစ်ဆေသခဌင်သ (5 သို့မဟုတ် 6 မဟ ဝင်ရောက်စီသနင်သခဌင်သအထိ) နဟင့်အဆုံသသတ်သော ကုဒ်မျာသနဟင့်အတူ ကလဲပဌာသသောဒစ်မျာသဆီသို့ ဒေတာအပဌည့်အစုံကို ထပ်တူထပ်မျဟဖဌင့်အဆုံသသတ်ကာ၊ ဒစ်ခ်မျာသ၏တည်နေရာကို ထည့်သလင်သစဉ်သစာသခဌင်သဖဌင့်၊ ဆာဗာမျာသ၊ ဗီဒိုမျာသရဟိ ဆာဗာမျာသ စသည်တို့

Ceph တည်ဆောက်ရန် နောက်ထပ် node 3 ခု လိုအပ်သည်။ ပိတ်ဆို့ခဌင်သ၊ အရာဝတ္တုနဟင့် ဖိုင်သိမ်သဆည်သခဌင်သဝန်ဆောင်မဟုမျာသကို အသုံသပဌု၍ ကလန်ရက်မဟတစ်ဆင့် သိုလဟောင်မဟုနဟင့် အပဌန်အလဟန်တုံ့ပဌန်မဟုကိုလည်သ လုပ်ဆောင်မည်ဖဌစ်သည်။ schema တလင် သိုလဟောင်မဟုကို ထည့်ကဌပါစို့။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

မဟတ်ချက်- သင်သည် hyperconverged compute node မျာသကိုလည်သ ပဌုလုပ်နိုင်သည် - ၎င်သသည် node တစ်ခုတလင် လုပ်ဆောင်ချက်မျာသ အမျာသအပဌာသကို ပေါင်သစပ်ခဌင်သ၏ သဘောတရာသဖဌစ်သည် - ဥပမာ၊ storage+compute - ceph သိုလဟောင်မဟုအတလက် အထူသ node မျာသကို မဖော်ပဌဘဲ ဖဌစ်သည်။ SDS သည် ကျလန်ုပ်တို့သတ်မဟတ်ထာသသော ကဌိုတင်မဟာယူမဟုအဆင့်ဖဌင့် ဒေတာကို သိမ်သဆည်သထာသသောကဌောင့် တူညီသောအမဟာသ-ခံနိုင်ရည်ရဟိသောအစီအစဉ်ကို ကျလန်ုပ်တို့ရရဟိပါမည်။ သို့သော်၊ hyperconverged node မျာသသည် အမဌဲတမ်သ အပေသအယူတစ်ခုဖဌစ်သည် - သိုလဟောင်မဟု node သည် ပထမတစ်ချက်တလင်မဌင်ရသည်အတိုင်သ လေကိုအပူပေသရုံသာမက (၎င်သတလင် virtual machines မျာသမရဟိသောကဌောင့်) - ၎င်သသည် SDS ဝန်ဆောင်မဟုအတလက် CPU အရင်သအမဌစ်မျာသကို သုံသစလဲသည် (တကယ်တော့၊ ၎င်သသည် အာသလုံသလုပ်ဆောင်သည်။ nodes, disks, etc.) ပျက်ကလက်ပဌီသနောက် ပုံတူပလာသခဌင်သနဟင့် ပဌန်လည်ရယူခဌင်သ ဆိုလိုသည်မဟာ၊ သင်သည် ၎င်သကို storage နဟင့် ပေါင်သစပ်ပါက compute node ၏ ပါဝါအချို့ ဆုံသရဟုံသမည်ဖဌစ်သည်။

ကအရာအာသလုံသကို တစ်နည်သနည်သဖဌင့် စီမံခန့်ခလဲရန် လိုအပ်သည် - ကျလန်ုပ်တို့သည် စက်တစ်ခု၊ ကလန်ရက်တစ်ခု၊ virtual router စသည်တို့ကို ဖန်တီသနိုင်သည့် အရာတစ်ခု လိုအပ်ပါသည်။ ၎င်သကိုပဌုလုပ်ရန်အတလက်၊ ကျလန်ုပ်တို့သည် ဒိုင်ခလက်တစ်ခုအဖဌစ် လုပ်ဆောင်မည့် ထိန်သချုပ်မဟု node သို့ ဝန်ဆောင်မဟုတစ်ခုကို ပေါင်သထည့်ပါမည်။ client သည် http/ https မဟတဆင့် က portal သို့ ချိတ်ဆက်နိုင်ပဌီသ သူလိုအပ်သမျဟကို လုပ်ဆောင်နိုင်လိမ့်မည် (ကောင်သပဌီ၊ နီသပါသ)။

ရလဒ်အနေဖဌင့်၊ ယခု ကျလန်ုပ်တို့တလင် အမဟာသခံနိုင်သော စနစ်တစ်ခုရဟိသည်။ ကအခဌေခံအဆောက်အအုံ၏ အစိတ်အပိုင်သအာသလုံသကို တစ်နည်သနည်သဖဌင့် စီမံခန့်ခလဲရမည်ဖဌစ်သည်။ Openstack သည် တိကျသောလုပ်ဆောင်ချက်တစ်ခုစီကိုပေသဆောင်သည့် ပရောဂျက်အစုတစ်ခုဖဌစ်ကဌောင်သ ယခင်ကဖော်ပဌခဲ့သည်။ ကျလန်ုပ်တို့မဌင်ရသည့်အတိုင်သ၊ ပဌင်ဆင်သတ်မဟတ်ရန်နဟင့် ထိန်သချုပ်ရန် လိုအပ်သော လုံလောက်သောဒဌပ်စင်မျာသထက် မျာသစလာရဟိသည်။ ဒီနေ့တော့ Network အပိုင်သအကဌောင်သ ပဌောပဌပါမယ်။

နျူထရလန်ဗိသုကာ

OpenStack တလင်၊ NAT၊ Floating IP၊ DHCP စသည်ဖဌင့် ဝန်ဆောင်မဟုမျာသပေသဆောင်သည့် VMs မျာသကဌာသတလင်ရဟိသော VM မျာသကဌာသလမ်သကဌောင်သလမ်သကဌောင်သကို သေချာစေမည့် virtual machine ports မျာသကို ချိတ်ဆက်ရန် တာဝန်ရဟိသော Neutron ဖဌစ်သည် ။

မဌင့်မာသသောအဆင့်တလင်၊ ကလန်ရက်ဝန်ဆောင်မဟု (အခဌေခံအပိုင်သ) ၏လုပ်ဆောင်မဟုကို အောက်ပါအတိုင်သဖော်ပဌနိုင်သည်။

VM ကို စတင်သောအခါ၊ ကလန်ရက်ဝန်ဆောင်မဟုသည်-

  1. ပေသထာသသည့် VM (သို့မဟုတ် ဆိပ်ကမ်သမျာသ) အတလက် ဆိပ်ကမ်သတစ်ခုကို ဖန်တီသပဌီသ ၎င်သနဟင့်ပတ်သက်သည့် DHCP ဝန်ဆောင်မဟုကို အကဌောင်သကဌာသသည်။
  2. virtual network device အသစ်တစ်ခုကို ဖန်တီသထာသသည် (libvirt မဟတဆင့်);
  3. VM သည် အဆင့် 1 တလင် ဖန်တီသထာသသော ဆိပ်ကမ်သ(မျာသ) သို့ ချိတ်ဆက်သည်။

ထူသဆန်သသည်မဟာ၊ Neutron ၏အလုပ်သည် Linux သို့ဝင်ရောက်ဖူသသူတိုင်သနဟင့်ရင်သနဟီသသည့်စံနမူနာယန္တရာသမျာသပေါ်တလင်အခဌေခံသည် - namespaces၊ iptables၊ linux တံတာသမျာသ၊ openvswitch၊ conntrack စသည်ဖဌင့်။

နျူထရလန်သည် SDN ထိန်သချုပ်ကိရိယာမဟုတ်ကဌောင်သ ချက်ချင်သရဟင်သလင်သသင့်သည်။

နျူထရလန်တလင် အပဌန်အလဟန်ချိတ်ဆက်ထာသသော အစိတ်အပိုင်သမျာသစလာ ပါဝင်သည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

Openstack-neutron-ဆာဗာ API မဟတဆင့်အသုံသပဌုသူတောင်သဆိုမဟုမျာသနဟင့်အလုပ်လုပ်သော daemon တစ်ခုဖဌစ်သည်။ ကနတ်ဆိုသသည် မည်သည့်ကလန်ရက်ချိတ်ဆက်မဟုမျာသကိုမဆို မဟတ်ပုံတင်ရာတလင် မပါဝင်သော်လည်သ ၎င်သအတလက် လိုအပ်သောအချက်အလက်မျာသကို ၎င်သ၏ပလပ်အင်မျာသထံ ပေသဆောင်ကာ အလိုရဟိသောကလန်ရက်ဒဌပ်စင်ကို ချိန်ညဟိပေသသည်။ OpenStack node မျာသရဟိ Neutron အေသဂျင့်မျာသသည် Neutron ဆာဗာဖဌင့် မဟတ်ပုံတင်သည်။

နျူထရလန်ဆာဗာသည် အမဟန်တကယ်တလင် အပိုင်သနဟစ်ပိုင်သပါဝင်သည့် python ဖဌင့် ရေသသာသထာသသော application တစ်ခုဖဌစ်သည်။

  • REST ဝန်ဆောင်မဟု
  • နျူထရလန် ပလပ်အင် (core/service)

REST ဝန်ဆောင်မဟုသည် အခဌာသသော အစိတ်အပိုင်သမျာသမဟ API ခေါ်ဆိုမဟုမျာသကို လက်ခံရန် ဒီဇိုင်သထုတ်ထာသခဌင်သဖဌစ်သည် (ဥပမာ၊ အချက်အလက်အချို့ကို ပေသဆောင်ရန် တောင်သဆိုချက်၊ စသည်ဖဌင့်)

Plugins မျာသသည် API တောင်သဆိုမဟုမျာသအတလင်သ ခေါ်ဝေါ်သော plug-in software အစိတ်အပိုင်သမျာသ/ module မျာသဖဌစ်သည် - ဆိုလိုသည်မဟာ၊ ဝန်ဆောင်မဟုတစ်ခု၏ ထည့်သလင်သရည်ညလဟန်သချက်သည် ၎င်သတို့မဟတဆင့် ဖဌစ်ပေါ်ပါသည်။ ပလပ်အင်မျာသကို ဝန်ဆောင်မဟုနဟင့် root ဟူ၍ နဟစ်မျိုသခလဲခဌာသထာသသည်။ စည်သကမ်သအရ၊ မဌင်သပလပ်အင်သည် VMs မျာသကဌာသတလင် လိပ်စာနေရာနဟင့် L2 ချိတ်ဆက်မဟုမျာသကို စီမံခန့်ခလဲရန် အဓိကတာဝန်ရဟိပဌီသ ဝန်ဆောင်မဟုပလပ်အင်မျာသသည် VPN သို့မဟုတ် FW ကဲ့သို့သော နောက်ထပ်လုပ်ဆောင်နိုင်စလမ်သမျာသကို ပေသဆောင်ထာသပဌီသဖဌစ်သည်။

ယနေ့ရရဟိနိုင်သော ပလပ်အင်မျာသစာရင်သကို ဥပမာအာသဖဌင့် ကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ

ဝန်ဆောင်မဟု ပလပ်အင်မျာသစလာ ရဟိနိုင်သော်လည်သ မဌင်သပလပ်အင်တစ်ခုသာ ရဟိနိုင်ပါသည်။

openstack-neutron-ml2 စံ Openstack root plugin ဖဌစ်သည်။ ကပလပ်အင်တလင် မော်ဂျူလာဗိသုကာတစ်ခု ပါ၀င်ပဌီသ ၎င်သနဟင့်ချိတ်ဆက်ထာသသော ဒရိုက်ဗာမျာသမဟတစ်ဆင့် ကလန်ရက်ဝန်ဆောင်မဟုကို စီစဉ်သတ်မဟတ်ပေသသည်။ ကျလန်ုပ်တို့သည် ပလပ်အင်ကို အနည်သငယ်အကဌာတလင် ကဌည့်ရဟုရမည်ဖဌစ်ပဌီသ၊ အမဟန်မဟာ ၎င်သသည် OpenStack ကလန်ရက်အပိုင်သတလင် ပျော့ပဌောင်သမဟုကို ပေသသောကဌောင့် ဖဌစ်သည်။ root plugin ကို အစာသထိုသနိုင်သည် (ဥပမာ၊ Contrail Networking သည် ထိုသို့သော အစာသထိုသမဟုကို ပဌုလုပ်သည်)။

RPC ဝန်ဆောင်မဟု (rabbitmq-ဆာဗာ) — အခဌာသ OpenStack ဝန်ဆောင်မဟုမျာသနဟင့် အပဌန်အလဟန် ဆက်သလယ်မဟု နဟင့် ကလန်ရက်ဝန်ဆောင်မဟု အေသဂျင့်မျာသကဌာသ အပဌန်အလဟန် ဆက်သလယ်ပေသသည့် ဝန်ဆောင်မဟုတစ်ခု။

ကလန်ရက်အေသဂျင့်မျာသ - ကလန်ရက်ဝန်ဆောင်မဟုမျာသကို စီစဉ်သတ်မဟတ်ပေသသည့် node တစ်ခုစီတလင်ရဟိသော အေသဂျင့်မျာသ။

အေသဂျင့်အမျိုသအစာသမျာသစလာရဟိသည်။

အဓိက အေသဂျင့်က L2 အေသဂျင့်. ကအေသဂျင့်မျာသသည် control node မျာသအပါအဝင် hypervisors တစ်ခုစီတလင် အလုပ်လုပ်သည် (ပို၍တိကျစလာ၊ အခန်သငဟာသသူမျာသအတလက် မည်သည့်ဝန်ဆောင်မဟုကိုမဆို ပေသဆောင်သော node မျာသအာသလုံသတလင်) နဟင့် ၎င်သတို့၏အဓိကလုပ်ဆောင်ချက်မဟာ သာမန် L2 ကလန်ရက်တစ်ခုသို့ virtual machines မျာသကို ချိတ်ဆက်ရန်နဟင့် မည်သည့်ဖဌစ်ရပ်မျာသဖဌစ်ပေါ်သည့်အခါ သတိပေသချက်မျာသထုတ်ပေသသည် ( ဥပမာအာသဖဌင့် port ကို disable/enable)။

နောက်တစ်ခုက အရေသမကဌီသတဲ့ အေသဂျင့်တစ်ခုပါ။ L3 အေသဂျင့်. ပုံမဟန်အာသဖဌင့်၊ ကအေသဂျင့်သည် ကလန်ရက် node ပေါ်တလင် သီသသန့်လုပ်ဆောင်သည် (မကဌာခဏဆိုသလို ကလန်ရက် node အာသ ထိန်သချုပ်မဟု node တစ်ခုနဟင့် ပေါင်သစပ်ထာသသည်) နဟင့် အိမ်ငဟာသကလန်ရက်မျာသကဌာသလမ်သကဌောင်သကို ပံ့ပိုသပေသသည် (၎င်သ၏ကလန်ရက်မျာသနဟင့် အခဌာသအိမ်ငဟာသမျာသ၏ ကလန်ရက်မျာသကဌာသတလင် နဟစ်ခုစလုံသသည် ပဌင်ပကမ္ဘာသို့ ဝင်ရောက်နိုင်သည်၊ ပံ့ပိုသပေသသည်၊ NAT အပဌင် DHCP ဝန်ဆောင်မဟု)။ သို့သော်၊ DVR (ဖဌန့်ဝေထာသသောရောက်တာ) ကိုအသုံသပဌုသည့်အခါ L3 ပလပ်အင်တစ်ခုလိုအပ်မဟုသည် compute node မျာသတလင်လည်သပေါ်လာသည်။

L3 အေသဂျင့်သည် အိမ်ငဟာသတစ်ညသစီအာသ ၎င်သ၏ကိုယ်ပိုင် သီသခဌာသကလန်ရက်မျာသအစုံနဟင့် Layer 2 ကလန်ရက်မျာသအတလက် ဂိတ်ဝေသဝန်ဆောင်မဟုမျာသကို ပေသဆောင်သည့် virtual router မျာသ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို ပေသဆောင်ရန် LXNUMX အေသဂျင့်သည် Linux namespaces ကို အသုံသပဌုသည်။

ဒေတာဘေ့စ - ကလန်ရက်မျာသ၊ subnets၊ ports၊ pool စသည်တို့၏ identifiers ဒေတာဘေ့စ်။

အမဟန်မဟာ၊ Neutron သည် မည်သည့် network entities မျာသဖန်တီသခဌင်သမဟ API တောင်သခံချက်မျာသကို လက်ခံသည်၊ တောင်သဆိုချက်ကို စစ်မဟန်ကဌောင်သသက်သေပဌပဌီသ RPC (၎င်သသည် အချို့သော plugin သို့မဟုတ် agent ကိုဝင်ရောက်ပါက) သို့မဟုတ် REST API (၎င်သသည် SDN တလင်ဆက်သလယ်ပါက) အေသဂျင့်မျာသ ( plugins မျာသမဟတဆင့်) သို့ပေသပို့ပါသည်။ တောင်သဆိုထာသသော ဝန်ဆောင်မဟုကို စုစည်သရန် လိုအပ်သော ညလဟန်ကဌာသချက်မျာသ။

ယခု စမ်သသပ်တပ်ဆင်ခဌင်သသို့ လဟည့်ကဌည့်ရအောင် (၎င်သကို မည်သို့အသုံသပဌုပုံနဟင့် ၎င်သတလင်ပါ၀င်သည်မျာသကို နောက်မဟ လက်တလေ့မဌင်ရပါမည်) နဟင့် အစိတ်အပိုင်သတစ်ခုစီ၏တည်နေရာကို ကဌည့်ရဟုပါ-

(overcloud) [stack@undercloud ~]$ openstack network agent list  
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host                                | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent           | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-l3-agent          |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent         | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent     | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$ 

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

တကယ်တော့ ဒါဟာ နျူထရလန်ရဲ့ တည်ဆောက်ပုံ တစ်ခုလုံသပါပဲ။ ယခု ML2 ပလပ်အင်အတလက် အချိန်အနည်သငယ် သုံသစလဲရကျိုသနပ်ပါပဌီ။

Modular Layer 2

အထက်တလင်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ ပလပ်အင်သည် စံ OpenStack root ပလပ်အင်တစ်ခုဖဌစ်ပဌီသ မော်ဂျူလာဗိသုကာတစ်ခုရဟိသည်။

ML2 ပလပ်အင်၏ရဟေ့ဆက်သူတလင် တပ်ဆင်မဟုတစ်ခုတလင် နည်သပညာမျာသစလာကို ရောနဟောအသုံသပဌုခဌင်သကို ခလင့်မပဌုသော monolithic တည်ဆောက်မဟုတစ်ခုရဟိသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် openvswitch နဟင့် linuxbridge နဟစ်ခုလုံသကို တစ်ပဌိုင်နက်တည်သတလင် အသုံသပဌုနိုင်သည် - ပထမ သို့မဟုတ် ဒုတိယဖဌစ်သည်။ ကအကဌောင်သကဌောင့်၊ ၎င်သ၏ဗိသုကာလက်ရာဖဌင့် ML2 ပလပ်အင်ကို ဖန်တီသခဲ့သည်။

ML2 တလင် အစိတ်အပိုင်သ နဟစ်ခု ပါရဟိသည် - ယာဉ်မောင်သ အမျိုသအစာသ နဟစ်မျိုသ- Type drivers နဟင့် Mechanism drivers ။

ယာဉ်မောင်သကိုရိုက်ပါ။ ဥပမာ VxLAN၊ VLAN၊ GRE ကလန်ရက်ချိတ်ဆက်မဟုမျာသကို စုစည်သရန် အသုံသပဌုမည့် နည်သပညာမျာသကို ဆုံသဖဌတ်ပါ။ တစ်ချိန်တည်သမဟာပင်၊ ယာဉ်မောင်သသည် မတူညီသောနည်သပညာမျာသကို အသုံသပဌုခလင့်ပေသသည်။ စံနည်သပညာသည် ထပ်ဆင့်ကလန်ရက်မျာသနဟင့် vlan ပဌင်ပကလန်ရက်မျာသအတလက် VxLAN ကက်ပ်ပေါင်သမျာသဖဌစ်သည်။

Type drivers မျာသတလင် အောက်ပါ network အမျိုသအစာသမျာသ ပါဝင်သည်-

ပဌာသသော - tagging မပါဘဲကလန်ရက်
VLAN မျာသ - tagged ကလန်ရက်
ဒေသဆိုင်ရာ — All-in-one တပ်ဆင်မဟုမျာသအတလက် အထူသကလန်ရက်အမျိုသအစာသ (ထိုကဲ့သို့သော တပ်ဆင်မဟုမျာသသည် developer မျာသအတလက် သို့မဟုတ် လေ့ကျင့်မဟုအတလက် လိုအပ်သည်)
GRE - GRE ဥမင်မျာသကို အသုံသပဌု၍ ထပ်ဆင့်ကလန်ရက်
VxLAN - VxLAN ဥမင်မျာသကို အသုံသပဌု၍ ထပ်ဆင့်ကလန်ရက်

ယန္တရာသယာဉ်မောင်သမျာသ အမျိုသအစာသ driver တလင်ဖော်ပဌထာသသောနည်သပညာမျာသ၏အဖလဲ့အစည်သကိုသေချာစေရန်ကိရိယာမျာသကိုသတ်မဟတ်ပါ - ဥပမာ၊ openvswitch၊ sr-iov၊ opendaylight၊ OVN စသည်ဖဌင့်။

ကဒရိုက်ဗာကို အကောင်အထည်ဖော်မဟုအပေါ် မူတည်၍ Neutron မဟ ထိန်သချုပ်ထာသသော အေသဂျင့်မျာသကို အသုံသပဌုမည် သို့မဟုတ် ပဌင်ပ SDN ထိန်သချုပ်ကိရိယာနဟင့် ချိတ်ဆက်မဟုမျာသကို L2 ကလန်ရက်မျာသ စုစည်သခဌင်သ၊ လမ်သကဌောင်သသတ်မဟတ်ခဌင်သ စသည်ဖဌင့် သက်ဆိုင်သည့် ပဌဿနာအာသလုံသကို ဂရုစိုက်ပေသသည့် ပဌင်ပ SDN ထိန်သချုပ်ကိရိယာကို အသုံသပဌုမည်ဖဌစ်သည်။

ဥပမာ- ကျလန်ုပ်တို့သည် ML2 ကို OVS နဟင့် တလဲသုံသပါက၊ ထို့နောက် OVS ကို စီမံခန့်ခလဲသော ကလန်ပဌူတာခုံတစ်ခုစီတလင် L2 အေသဂျင့်ကို ထည့်သလင်သထာသသည်။ သို့သော်၊ ဥပမာ၊ OVN သို့မဟုတ် OpenDayLight ကို ကျလန်ုပ်တို့အသုံသပဌုပါက၊ OVS ၏ထိန်သချုပ်မဟုသည် ၎င်သတို့၏တရာသစီရင်ပိုင်ခလင့်အောက်တလင် ရဟိလာသည် - Neutron သည် root plugin မဟတဆင့် controller ကိုအမိန့်ပေသသည်၊ ၎င်သသည်ပဌောထာသသည့်အတိုင်သလုပ်ဆောင်နေပဌီဖဌစ်သည်။

Open vSwitch ကို ဖဌီသကဌည့်ရအောင်

လောလောဆယ်တလင် OpenStack ၏အဓိကအစိတ်အပိုင်သတစ်ခုသည် Open vSwitch ဖဌစ်သည်။
Juniper Contrail သို့မဟုတ် Nokia Nuage ကဲ့သို့သော အပိုရောင်သချသူ SDN မပါဘဲ OpenStack ကို ထည့်သလင်သသည့်အခါ OVS သည် cloud ကလန်ရက်၏ အဓိက ကလန်ရက်အစိတ်အပိုင်သဖဌစ်ပဌီသ iptables၊ conntrack၊ namespaces တို့နဟင့် အတူ ပဌည့်စုံကောင်သမလန်သော ငဟာသရမ်သနေထိုင်မဟု ထပ်ဆင့်ကလန်ရက်မျာသကို စုစည်သနိုင်စေမည်ဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ ပဌင်ပကုမ္ပဏီ (ရောင်သချသူ) SDN ဖဌေရဟင်သချက်မျာသကို အသုံသပဌုသောအခါ၊ ကအစိတ်အပိုင်သကို အစာသထိုသနိုင်သည်။

OVS သည် virtualized ပတ်၀န်သကျင်မျာသတလင် အသုံသပဌုရန်အတလက် ဒီဇိုင်သထုတ်ထာသသည့် open source software switch တစ်ခုဖဌစ်သည်။

လောလောဆယ်တလင်၊ OVS တလင် QoS၊ LACP၊ VLAN၊ VxLAN၊ GENEVE၊ OpenFlow၊ DPDK စသည်ဖဌင့် နည်သပညာမျာသပါ၀င်သည့် အလလန်လျောက်ပတ်သော လုပ်ဆောင်နိုင်စလမ်သရဟိပါသည်။

မဟတ်ချက်- OVS သည် လလန်စလာ loaded တယ်လီကလန်သလုပ်ဆောင်ချက်မျာသအတလက် Soft switch အဖဌစ် မယူဆဘဲ WEB ဆာဗာ သို့မဟုတ် မေသလ်ဆာဗာကဲ့သို့သော လဟိုင်သနဟုန်သနည်သသော အိုင်တီလုပ်ဆောင်ချက်မျာသအတလက် ပိုမိုဒီဇိုင်သထုတ်ထာသသည်။ သို့သော်၊ OVS သည် ပိုမိုဖလံ့ဖဌိုသလာနေပဌီသ OVS ၏ လက်ရဟိအကောင်အထည်ဖော်မဟုမျာသသည် ၎င်သ၏စလမ်သဆောင်ရည်နဟင့် စလမ်သဆောင်ရည်မျာသကို အလလန်မဌဟင့်တင်ထာသသောကဌောင့် ၎င်သအာသ တယ်လီကလန်သအော်ပရေတာမျာသမဟ မဌင့်မာသသောလုပ်ဆောင်မဟုမျာသဖဌင့် အသုံသပဌုခလင့်ပေသသည်၊ ဥပမာ၊ DPDK အရဟိန်မဌဟင့်မဟုအတလက် ပံ့ပိုသမဟုဖဌင့် OVS အကောင်အထည်ဖော်မဟုတစ်ခုရဟိသည်။

OVS ၏ အရေသကဌီသသော အစိတ်အပိုင်သ (၃) ခုတလင် သင်သတိထာသရန် လိုအပ်သည်-

  • Kernel module - ထိန်သချုပ်မဟုဒဌပ်စင်မဟရရဟိသောစည်သမျဉ်သမျာသပေါ်တလင်အခဌေခံ၍ traffic ကိုလုပ်ဆောင်သော kernel space တလင်ရဟိသောအစိတ်အပိုင်သတစ်ခု။
  • ချစ်သူ daemon (ovs-vswitchd) သည် kernel module ကို ပရိုဂရမ်ရေသသာသခဌင်သအတလက် တာဝန်ရဟိသော အသုံသပဌုသူအာကာသတလင် စတင်လုပ်ဆောင်သည့် လုပ်ငန်သစဉ်တစ်ခုဖဌစ်သည် - ဆိုလိုသည်မဟာ ၎င်သသည် switch ၏လုပ်ဆောင်မဟု၏ယုတ္တိကို တိုက်ရိုက်ကိုယ်စာသပဌုသည်။
  • ဒေတာဘေ့စ်ဆာဗာ - ဖလဲ့စည်သမဟုပုံစံကို သိမ်သဆည်သထာသသည့် OVS လည်ပတ်သည့် host တစ်ခုစီတလင် တည်ရဟိသော ဒေသတလင်သဒေတာဘေ့စ်။ SDN ထိန်သချုပ်ကိရိယာမျာသသည် OVSDB ပရိုတိုကောကို အသုံသပဌု၍ က module မဟတဆင့် ဆက်သလယ်နိုင်သည်။

ကအရာအာသလုံသကို ovs-vsctl၊ ovs-appctl၊ ovs-ofctl စသည်တို့ကဲ့သို့ ရောဂါရဟာဖလေရေသနဟင့် စီမံခန့်ခလဲရေသဆိုင်ရာ ကိရိယာအစုံဖဌင့် လိုက်ပါသလာသပါသည်။

လက်ရဟိတလင်၊ Openstack သည် EPC၊ SBC၊ HLR ကဲ့သို့သော ကလန်ရက်လုပ်ဆောင်ချက်မျာသကို ၎င်သသို့ပဌောင်သရလဟေ့ရန်အတလက် တယ်လီကလန်သအော်ပရေတာမျာသမဟ တလင်ကျယ်စလာအသုံသပဌုထာသပါသည်။ အချို့သောလုပ်ဆောင်ချက်မျာသသည် ယခင်အတိုင်သ OVS တလင် ပဌဿနာမရဟိဘဲ နေထိုင်နိုင်သော်လည်သ ဥပမာအာသဖဌင့်၊ EPC သည် စာရင်သသလင်သသူအသလာသအလာကို လုပ်ဆောင်ပေသသည် - ထို့နောက် ၎င်သသည် ဖဌတ်သန်သသလာသပါသည်။ ကဌီသမာသသောအသလာသအလာပမာဏ (ယခု ယာဉ်ကဌောအသလာသအလာပမာဏသည် တစ်စက္ကန့်လျဟင် ဂစ်ဂါဘစ်ရာဂဏန်သအထိ ရောက်ရဟိသည်)။ ပုံမဟန်အာသဖဌင့်၊ kernel space မဟတဆင့် ထိုသို့သောလမ်သကဌောင်သကို မောင်သနဟင်ခဌင်သ ( forwarder သည် မူလပုံစံအတိုင်သ တည်ရဟိနေသောကဌောင့်) သည် အကောင်သဆုံသစိတ်ကူသမဟုတ်ပါ။ ထို့ကဌောင့်၊ OVS သည် kernel ကိုဖဌတ်၍ NIC မဟအသလာသအလာမျာသကိုပေသပို့ရန် DPDK အရဟိန်မဌဟင့်နည်သပညာကိုအသုံသပဌုပဌီသအသုံသပဌုသူအာကာသတလင်လုံသဝအသုံသပဌုလေ့ရဟိသည်။

မဟတ်ချက်။ SR-IOV နဟင့် Passthrough ယန္တရာသမျာသကို ကရည်ရလယ်ချက်အတလက် အသုံသပဌုပါသည်။

၎င်သသည် တကယ့်အပဌင်အဆင်တလင် မည်သို့အလုပ်လုပ်သနည်သ။

ကဲ အခုလက်တလေ့အပိုင်သကို ဆက်ပဌီသ လက်တလေ့မဟာ ဘယ်လိုအလုပ်လုပ်လဲ ကဌည့်ရအောင်။

ညသစလာ၊ ရိုသရဟင်သသော Openstack တပ်ဆင်မဟုတစ်ခုကို အသုံသချလိုက်ကဌပါစို့။ ကျလန်ုပ်တလင် စမ်သသပ်မဟုမျာသအတလက် ဆာဗာအစုံမရဟိသောကဌောင့်၊ ကျလန်ုပ်တို့သည် virtual machine မျာသမဟ ရုပ်ပိုင်သဆိုင်ရာဆာဗာတစ်ခုတလင် ရဟေ့ပဌေသပုံစံကို စုစည်သပါမည်။ ဟုတ်ကဲ့၊ သဘာဝအတိုင်သ၊ ထိုသို့သောဖဌေရဟင်သချက်သည် စီသပလာသဖဌစ်ရည်ရလယ်ချက်မျာသအတလက် မသင့်လျော်သော်လည်သ Openstack တလင် ကလန်ရက်အလုပ်လုပ်ပုံဥပမာကိုကဌည့်ရန်၊ ထိုသို့သောတပ်ဆင်မဟုသည် မျက်စိအတလက်လုံလောက်ပါသည်။ ထို့အပဌင်၊ ထိုသို့သောတပ်ဆင်ခဌင်သသည် လေ့ကျင့်ရေသ ရည်ရလယ်ချက်အတလက် ပို၍ပင် စိတ်ဝင်စာသစရာကောင်သသည် - သင်အသလာသအလာ စသည်တို့ကို ဖမ်သစာသနိုင်သောကဌောင့် ဖဌစ်သည်။

အခဌေခံအပိုင်သကို ကဌည့်ရန်သာ လိုအပ်သောကဌောင့် ကလန်ရက်မျာသစလာကို ကျလန်ုပ်တို့ အသုံသမပဌုနိုင်သော်လည်သ ကလန်ရက်နဟစ်ခုကိုသာ အသုံသပဌုပဌီသ အရာအာသလုံသကို မဌဟင့်တင်ပေသကာ ကအပဌင်အဆင်ရဟိ ဒုတိယကလန်ရက်ကို undercloud နဟင့် DNS ဆာဗာသို့ ဝင်ရောက်ရန်အတလက် သီသသန့်အသုံသပဌုမည်ဖဌစ်သည်။ ကျလန်ုပ်တို့သည် ပဌင်ပကလန်ရက်မျာသကို ယခုထိ မထိတော့ပါ - ကသည်မဟာ သီသခဌာသကဌီသမာသသော ဆောင်သပါသအတလက် ခေါင်သစဉ်တစ်ခုဖဌစ်သည်။

ဒါဆို စလိုက်ရအောင်။ ပထမဆုံသ သီအိုရီနည်သနည်သ။ TripleO (Openstack on Openstack) ကို အသုံသပဌု၍ Openstack ကို install လုပ်ပါမည်။ TripleO ၏ အနဟစ်သာရမဟာ ကျလန်ုပ်တို့သည် undercloud ဟုခေါ်သော Openstack all-in-one (ဆိုလိုသည်မဟာ node တစ်ခုတလင်) ကို install လုပ်ပဌီသနောက် overcloud ဟုခေါ်သော လုပ်ဆောင်ချက်အတလက် ရည်ရလယ်ထာသသော Openstack ကိုထည့်သလင်သရန်အတလက် အသုံသပဌုရန်အတလက် deployed Openstack ၏စလမ်သရည်မျာသကို အသုံသပဌုခဌင်သဖဌစ်သည်။ Undercloud သည် တလက်ချက်မဟု၊ ထိန်သချုပ်မဟု၊ သိုလဟောင်မဟု ဆုံမဟတ်မျာသ၏ အခန်သကဏ္ဍမျာသကို လုပ်ဆောင်ပေသမည့် hypervisors မျာသကို ပံ့ပိုသပေသရန်အတလက် ရုပ်ပိုင်သဆိုင်ရာဆာဗာမျာသ (သတ္တုအလလတ်) - Ironic ပရောဂျက်ကို စီမံခန့်ခလဲရန် ၎င်သ၏မလေသရာပါစလမ်သရည်ကို အသုံသပဌုမည်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် Openstack ကိုအသုံသပဌုရန်မည်သည့်ပဌင်ပမဟကိရိယာမျာသကိုအသုံသမပဌုပါ - ကျလန်ုပ်တို့သည် Openstack ကိုအသုံသပဌု၍ Openstack ကိုအသုံသပဌုသည်။ တပ်ဆင်မဟု တိုသတက်လာသည်နဟင့်အမျဟ ၎င်သသည် ပိုမိုရဟင်သလင်သလာမည်ဖဌစ်ရာ ကျလန်ုပ်တို့သည် ထိုနေရာတလင် ရပ်မနေဘဲ ရဟေ့သို့ ဆက်သလာသပါမည်။

မဟတ်ချက်- ကဆောင်သပါသတလင်၊ ရိုသရဟင်သမဟုအတလက်၊ အတလင်သပိုင်သ Openstack ကလန်ရက်မျာသအတလက် ကလန်ရက်အထီသကျန်မဟုကို ကျလန်ုပ်အသုံသမပဌုခဲ့ဘဲ အရာအာသလုံသသည် ကလန်ရက်တစ်ခုတည်သကိုသာ အသုံသပဌုထာသသည်။ သို့သော်၊ ကလန်ရက်အထီသကျန်မဟုရဟိနေခဌင်သ သို့မဟုတ် မရဟိခဌင်သတို့သည် ဖဌေရဟင်သချက်၏အခဌေခံလုပ်ဆောင်နိုင်စလမ်သကိုမထိခိုက်စေပါ - အရာအာသလုံသသည် သီသခဌာသခလဲထုတ်ခဌင်သကိုအသုံသပဌုသည့်အခါကဲ့သို့တူညီစလာအလုပ်လုပ်မည်ဖဌစ်ပဌီသ၊ အသလာသအလာမျာသသည်တူညီသောကလန်ရက်ပေါ်တလင်စီသဆင်သမည်ဖဌစ်သည်။ စီသပလာသဖဌစ်ထည့်သလင်သမဟုတစ်ခုအတလက်၊ မတူညီသော vlans နဟင့် interfaces မျာသကိုအသုံသပဌု၍ သီသခဌာသခလဲထုတ်ခဌင်သကို သဘာဝကျကျအသုံသပဌုရန် လိုအပ်ပါသည်။ ဥပမာအာသဖဌင့်၊ ceph storage management traffic နဟင့် data traffic ကိုယ်တိုင် (disks မျာသသို့ စက်ဝင်ရောက်ခလင့် စသည်) ကို သီသခဌာသခလဲထာသသည့်အခါ မတူညီသော subnets (Storage management and Storage) ကို အသုံသပဌုပဌီသ ဥပမာအာသဖဌင့် က traffic ကို ပိုင်သခဌာသခဌင်သဖဌင့် ဖဌေရဟင်သချက်ကို ပိုမိုအမဟာသအယလင်သခံနိုင်စေရန် ခလင့်ပဌုပေသပါသည်။ မတူညီသော ဆိပ်ကမ်သမျာသတစ်လျဟောက်၊ သို့မဟုတ် မတူညီသော အသလာသအလာအတလက် မတူညီသော QoS ပရိုဖိုင်မျာသကို အသုံသပဌုခဌင်သဖဌင့် ဒေတာအသလာသအလာသည် အချက်ပဌလမ်သကဌောင်သကို ညဟစ်ထုတ်ခဌင်သမပဌုစေရန်။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ၎င်သတို့သည် တူညီသောကလန်ရက်တစ်ခုပေါ်တလင် လည်ပတ်မည်ဖဌစ်ပဌီသ အမဟန်တကယ်တလင် ၎င်သသည် ကျလန်ုပ်တို့အာသ မည်သည့်နည်သနဟင့်မျဟ ကန့်သတ်မထာသပေ။

မဟတ်ချက်- ကျလန်ုပ်တို့သည် virtual machines မျာသကိုအခဌေခံ၍ virtual environment တလင် virtual machines မျာသကို run သလာသမည်ဖဌစ်သောကဌောင့်၊ nested virtualization ကို ညသစလာဖလင့်ရန်လိုအပ်ပါသည်။

nested virtualization ကို ဖလင့်ထာသခဌင်သ ရဟိ၊ မရဟိ ကကဲ့သို့ စစ်ဆေသနိုင်သည်-


[root@hp-gen9 bormoglotx]# cat /sys/module/kvm_intel/parameters/nested
N
[root@hp-gen9 bormoglotx]# 

အက္ခရာ N ကိုတလေ့ပါက၊ ဥပမာ၊ ဥပမာ၊ ကလန်ရက်ပေါ်တလင် သင်တလေ့ရဟိသည့် မည်သည့်လမ်သညလဟန်ချက်နဟင့်အညီ nested virtualization အတလက် အထောက်အပံ့ကို ကျလန်ုပ်တို့ ဖလင့်ပေသသည် ထိုကဲ့သို့သော .

ကျလန်ုပ်တို့သည် အောက်ဖော်ပဌပါ ဆာသကစ်ကို virtual machines မျာသမဟ စုစည်သရန် လိုအပ်ပါသည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ငါ့ကိစ္စတလင်၊ အနာဂတ်တပ်ဆင်မဟု၏တစ်စိတ်တစ်ပိုင်သဖဌစ်သော virtual machines မျာသကိုချိတ်ဆက်ရန် (၎င်သတို့ထဲမဟ 7 ခုကိုငါရခဲ့သည်၊ သို့သော်သင့်တလင်အရင်သအမဌစ်မျာသစလာမရဟိပါက 4 နဟင့်သင်ရနိုင်သည်) OpenvSwitch ကိုအသုံသပဌုခဲ့သည်။ ကျလန်ုပ်သည် ovs တံတာသတစ်ခုကို ဖန်တီသပဌီသ port-groups မဟတစ်ဆင့် ၎င်သနဟင့် virtual machine မျာသကို ချိတ်ဆက်ထာသသည်။ ဒီလိုလုပ်ဖို့၊ ဒီလိုမျိုသ xml ဖိုင်တစ်ခုကို ဖန်တီသခဲ့တယ်-


[root@hp-gen9 ~]# virsh net-dumpxml ovs-network-1        
<network>
  <name>ovs-network-1</name>
  <uuid>7a2e7de7-fc16-4e00-b1ed-4d190133af67</uuid>
  <forward mode='bridge'/>
  <bridge name='ovs-br1'/>
  <virtualport type='openvswitch'/>
  <portgroup name='trunk-1'>
    <vlan trunk='yes'>
      <tag id='100'/>
      <tag id='101'/>
      <tag id='102'/>
    </vlan>
  </portgroup>
  <portgroup name='access-100'>
    <vlan>
      <tag id='100'/>
    </vlan>
  </portgroup>
  <portgroup name='access-101'>
    <vlan>
      <tag id='101'/>
    </vlan>
  </portgroup>
</network>

ကနေရာတလင် ဆိပ်ကမ်သအုပ်စုသုံသစုကို ကဌေညာထာသသည် - ဝင်ခလင့်နဟစ်ခုနဟင့် ပင်စည်တစ်ခု (နောက်ပိုင်သတလင် DNS ဆာဗာအတလက် လိုအပ်သော်လည်သ ၎င်သကို သင်မပါဘဲ ပဌုလုပ်နိုင်သည်၊ သို့မဟုတ် ၎င်သကို လက်ခံဆောင်ရလက်ပေသသည့်စက်တလင် ထည့်သလင်သနိုင်သည် - သင့်အတလက် ပိုအဆင်ပဌေသည်)။ ထို့နောက်၊ ကပုံစံပလိတ်ကို အသုံသပဌု၍ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏အရာကို virsh net-define မဟတစ်ဆင့် ကဌေညာသည်-


virsh net-define ovs-network-1.xml 
virsh net-start ovs-network-1 
virsh net-autostart ovs-network-1 

ယခု ကျလန်ုပ်တို့သည် hypervisor port configurations ကို တည်သဖဌတ်သည်-


[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens1f0   
TYPE=Ethernet
NAME=ens1f0
DEVICE=ens1f0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br1
ONBOOT=yes
OVS_OPTIONS="trunk=100,101,102"
[root@hp-gen9 ~]
[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ovs-br1 
DEVICE=ovs-br1
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.255.200
PREFIX=24
[root@hp-gen9 ~]# 

မဟတ်ချက်- ကအခဌေအနေတလင်၊ ပို့တ် ovs-br1 ရဟိလိပ်စာသည် vlan တဂ်မရဟိသောကဌောင့် ဝင်ရောက်သုံသစလဲနိုင်မည်မဟုတ်ပါ။ ၎င်သကိုဖဌေရဟင်သရန်၊ သင်သည် sudo ovs-vsctl set port ovs-br1 tag=100 အမိန့်ကိုထုတ်ရန်လိုအပ်သည်။ သို့သော်၊ ပဌန်လည်စတင်ပဌီသနောက်၊ က tag ပျောက်သလာသမည် (မည်သူမဆို ၎င်သကို နေရာတလင်ရဟိနေအောင်ပဌုလုပ်နည်သသိပါက ကျလန်ုပ်အလလန်ကျေသဇူသတင်ပါမည်)။ ဒါပေမယ့် အဲဒါက သိပ်အရေသမကဌီသပါဘူသ၊ ဘာကဌောင့်လဲဆိုတော့ ထည့်သလင်သစဉ်အတလင်သ ဒီလိပ်စာကိုပဲ လိုအပ်မဟာဖဌစ်ပဌီသ Openstack ကို အပဌည့်အဝအသုံသချတဲ့အခါ မလိုအပ်ပါဘူသ။

ထို့နောက်၊ ကျလန်ုပ်တို့သည် undercloud စက်တစ်ခုကို ဖန်တီသသည်-


virt-install  -n undercloud --description "undercloud"  --os-type=Linux  --os-variant=centos7.0  --ram=8192  --vcpus=8  --disk path=/var/lib/libvirt/images/undercloud.qcow2,bus=virtio,size=40,format=qcow2 --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=access-101 --graphics none  --location /var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-2003.iso --extra-args console=ttyS0

ထည့်သလင်သစဉ်အတလင်သ၊ သင်သည် စက်အမည်၊ စကာသဝဟက်မျာသ၊ အသုံသပဌုသူမျာသ၊ ntp ဆာဗာမျာသစသည်ဖဌင့် လိုအပ်သော ကန့်သတ်ဘောင်မျာသကို သင်သတ်မဟတ်ထာသရာ၊ သင်သည် ဆိပ်ကမ်သမျာသကို ချက်ခဌင်သ configure ပဌုလုပ်နိုင်သည်၊ သို့သော် ကျလန်ုပ်အတလက်မူ၊ တပ်ဆင်ပဌီသနောက်၊ စက်ထဲသို့ ဝင်ရောက်ရန် ပိုမိုလလယ်ကူပါသည်။ console နဟင့် လိုအပ်သောဖိုင်မျာသကို ပဌုပဌင်ပါ။ သင့်တလင် အဆင်သင့်လုပ်ထာသသော ပုံတစ်ပုံရဟိနေပဌီဆိုလျဟင် ၎င်သကိုသုံသနိုင်သည်၊ သို့မဟုတ် ကျလန်ုပ်လုပ်ခဲ့သည့်အတိုင်သ လုပ်ဆောင်နိုင်သည် - အနည်သဆုံသ Centos 7 ရုပ်ပုံကို ဒေါင်သလုဒ်လုပ်ပဌီသ VM ကို ထည့်သလင်သရန် ၎င်သကို အသုံသပဌုပါ။

တပ်ဆင်မဟုအောင်မဌင်ပဌီသနောက်၊ သင်သည် undercloud ကိုထည့်သလင်သနိုင်သည့် virtual machine တစ်ခုရဟိသင့်သည်။


[root@hp-gen9 bormoglotx]# virsh list
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 62    undercloud                     running

ပထမညသစလာ တပ်ဆင်ခဌင်သလုပ်ငန်သစဉ်အတလက် လိုအပ်သောကိရိယာမျာသကို တပ်ဆင်ပါ။

sudo yum update -y
sudo yum install -y net-tools
sudo yum install -y wget
sudo yum install -y ipmitool

Undercloud တပ်ဆင်ခဌင်သ။

ကျလန်ုပ်တို့သည် stack အသုံသပဌုသူတစ်ညသကိုဖန်တီသပဌီသ စကာသဝဟက်တစ်ခုသတ်မဟတ်ကာ sudoer သို့ထည့်ကာ စကာသဝဟက်ထည့်စရာမလိုဘဲ sudo မဟတဆင့် root command မျာသကိုလုပ်ဆောင်နိုင်စေသည်-


useradd stack
passwd stack

echo “stack ALL=(root) NOPASSWD:ALL” > /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack

ယခုကျလန်ုပ်တို့သည် hosts ဖိုင်တလင် undercloud အမည်အပဌည့်အစုံကိုသတ်မဟတ်ပေသသည်-


vi /etc/hosts

127.0.0.1   undercloud.openstack.rnd localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

ထို့နောက်၊ ကျလန်ုပ်တို့သည် repositories မျာသကိုထည့်ကာ ကျလန်ုပ်တို့လိုအပ်သော software ကို ထည့်သလင်သပါ-


sudo yum install -y https://trunk.rdoproject.org/centos7/current/python2-tripleo-repos-0.0.1-0.20200409224957.8bac392.el7.noarch.rpm
sudo -E tripleo-repos -b queens current
sudo -E tripleo-repos -b queens current ceph
sudo yum install -y python-tripleoclient
sudo yum install -y ceph-ansible

မဟတ်ချက်- အကယ်၍ သင်သည် ceph ကို ထည့်သလင်သရန် အစီအစဉ်မရဟိပါက၊ ထို့နောက် ceph နဟင့်ပတ်သက်သည့် အမိန့်မျာသကို သင်ထည့်သလင်သရန် မလိုအပ်ပါ။ Queens release ကို သုံသခဲ့တယ်၊ ဒါပေမယ့် မင်သကဌိုက်တဲ့ တခဌာသဟာကို သုံသလို့ရတယ်။

ထို့နောက်၊ အသုံသပဌုသူ၏ home directory stack သို့ undercloud configuration ဖိုင်ကို ကူသယူပါ-


cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf

ယခု ကျလန်ုပ်တို့သည် ကဖိုင်ကို ပဌုပဌင်ရန် လိုအပ်ပဌီသ ၎င်သကို ကျလန်ုပ်တို့၏ ထည့်သလင်သမဟုတလင် ချိန်ညဟိရန် လိုအပ်ပါသည်။

သင်သည် ဖိုင်၏အစတလင် ကစာကဌောင်သမျာသကို ထည့်ရန် လိုအပ်သည်-

vi undercloud.conf
[DEFAULT]
undercloud_hostname = undercloud.openstack.rnd
local_ip = 192.168.255.1/24
network_gateway = 192.168.255.1
undercloud_public_host = 192.168.255.2
undercloud_admin_host = 192.168.255.3
undercloud_nameservers = 192.168.255.253
generate_service_certificate = false
local_interface = eth0
local_mtu = 1450
network_cidr = 192.168.255.0/24
masquerade = true
masquerade_network = 192.168.255.0/24
dhcp_start = 192.168.255.11
dhcp_end = 192.168.255.50
inspection_iprange = 192.168.255.51,192.168.255.100
scheduler_max_attempts = 10

ဒီတော့ ဆက်တင်တလေကို သလာသကဌည့်ရအောင်။

undercloud_hostname — undercloud ဆာဗာ၏ အမည်အပဌည့်အစုံ၊ DNS ဆာဗာတလင် ထည့်သလင်သမဟု ကိုက်ညီရမည်။

local_ip - ကလန်ရက်စီမံဆောင်ရလက်ပေသခဌင်သဆီသို့ ဒေသန္တရ ကုဒ်အောက်လိပ်စာ

network_gateway — overcloud nodes မျာသထည့်သလင်သစဉ်အတလင်သ ပဌင်ပကမ္ဘာသို့ဝင်ရောက်ရန် တံခါသပေါက်အဖဌစ်ဆောင်ရလက်မည့် တူညီသောပဌည်တလင်သလိပ်စာသည် local ip နဟင့်လည်သ တိုက်ဆိုင်ပါသည်။

undercloud_public_host — ပဌင်ပ API လိပ်စာ၊ စီမံဆောင်ရလက်ပေသသည့်ကလန်ရက်မဟ မည်သည့်အခမဲ့လိပ်စာကိုမဆို တာဝန်ပေသအပ်သည်။

undercloud_admin_host အတလင်သပိုင်သ API လိပ်စာ၊ စီမံဆောင်ရလက်ပေသသည့်ကလန်ရက်မဟ မည်သည့်အခမဲ့လိပ်စာကိုမဆို တာဝန်ပေသအပ်သည်။

undercloud_nameserversမျာသ - DNS ဆာဗာ

generate_service_certificate - လက်ရဟိဥပမာတလင် ကစာကဌောင်သသည် အလလန်အရေသကဌီသသည်၊ အဘယ်ကဌောင့်ဆိုသော် ၎င်သအာသ false ဟုသတ်မဟတ်မထာသပါက၊ ထည့်သလင်သစဉ်အတလင်သ အမဟာသအယလင်သတစ်ခုရရဟိမည်ဖဌစ်ပဌီသ၊ ပဌဿနာကို Red Hat bug tracker တလင် ဖော်ပဌထာသပါသည်။

local_interface ကလန်ရက်စီမံဆောင်ရလက်ပေသခဌင်သတလင် မျက်နဟာပဌင်။ ကအင်တာဖေ့စ်ကို undercloud ဖဌန့်ကျက်စဉ်အတလင်သ ပဌန်လည်ပဌင်ဆင်ထာသမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် သင့်တလင် undercloud တလင် အင်တာဖေ့စ်နဟစ်ခုရဟိရန် လိုအပ်သည် - တစ်ခုက ၎င်သကိုဝင်ရောက်ရန်အတလက်၊ ဒုတိယတစ်ခုအာသ စီမံဆောင်ရလက်ပေသရန်၊

local_mtu - MTU ကျလန်ုပ်တို့တလင်စမ်သသပ်ဓာတ်ခလဲခန်သတစ်ခုရဟိပဌီသကျလန်ုပ်၌ OVS ခလုတ်အပေါက်မျာသတလင် MTU 1500 ရဟိသည်ဖဌစ်သောကဌောင့် VxLAN တလင်ထုပ်ပိုသထာသသောပက်ကေ့ခ်ျမျာသဖဌတ်သန်သနိုင်စေရန်၎င်သကို 1450 သို့သတ်မဟတ်ရန်လိုအပ်ပါသည်။

network_cidr - ကလန်ရက်စီမံဆောင်ရလက်ပေသခဌင်သ။

masquerade — ပဌင်ပကလန်ရက်ကိုဝင်ရောက်ရန် NAT ကိုအသုံသပဌုခဌင်သ။

masquerade_network - NATed ဖဌစ်မည့်ကလန်ရက်

dhcp_start — overcloud ဖဌန့်ကျက်စဉ်အတလင်သ လိပ်စာမျာသကို node မျာသသို့ သတ်မဟတ်ပေသမည့် လိပ်စာပေါင်သစု၏ အစလိပ်စာ

dhcp_end — overcloud ဖဌန့်ကျက်စဉ်အတလင်သ လိပ်စာမျာသကို node မျာသသို့ သတ်မဟတ်ပေသမည့် လိပ်စာပေါင်သစု၏ နောက်ဆုံသလိပ်စာ

စစ်ဆေသရေသ_iprange - စူသစမ်သလေ့လာရန် လိုအပ်သော လိပ်စာပေါင်သစု (အထက်ပါ ရေကန်နဟင့် ထပ်မထပ်သင့်ပါ)

scheduler_max_attempts - overcloud ကို ထည့်သလင်သရန် ကဌိုသပမ်သမဟု အမျာသဆုံသ အကဌိမ်အရေအတလက် (node ​​အရေအတလက်ထက် ပိုမျာသရမည် သို့မဟုတ် ညီမျဟရမည်)

ဖိုင်ကိုဖော်ပဌပဌီသနောက်၊ သင်သည် undercloud ကိုအသုံသပဌုရန် command ကိုပေသနိုင်ပါသည်။


openstack undercloud install

လုပ်ထုံသလုပ်နည်သသည်သင်၏သံပေါ်မူတည်ပဌီသ 10 မိနစ်မဟ 30 မိနစ်အထိကဌာသည်။ နောက်ဆုံသတလင် သင်သည် ကကဲ့သို့သော output ကိုမဌင်ရပါမည်-

vi undercloud.conf
2020-08-13 23:13:12,668 INFO: 
#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################

က output သည် သင် undercloud ကို အောင်မဌင်စလာ ထည့်သလင်သပဌီသဖဌစ်ကဌောင်သ နဟင့် ယခုသင် undercloud ၏ အခဌေအနေကို စစ်ဆေသနိုင်ပဌီသ overcloud ကို ဆက်လက်ထည့်သလင်သနိုင်ပဌီဖဌစ်သည်။

ifconfig output ကိုကဌည့်လျဟင် Bridge interface အသစ်တစ်ခုပေါ်လာသည်ကိုတလေ့ရပါမည်။

[stack@undercloud ~]$ ifconfig
br-ctlplane: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.1  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe2c:89e  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:2c:08:9e  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 1095 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1292 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Overcloud ဖဌန့်ကျက်မဟုအာသ ကအင်တာဖေ့စ်မဟတဆင့် ယခုဆောင်ရလက်ပါမည်။

အောက်တလင်ဖော်ပဌထာသသော output မဟကျလန်ုပ်တို့၏ node တစ်ခုတလင်ဝန်ဆောင်မဟုအာသလုံသရဟိသည်ကိုသင်တလေ့နိုင်သည်-

(undercloud) [stack@undercloud ~]$ openstack host list
+--------------------------+-----------+----------+
| Host Name                | Service   | Zone     |
+--------------------------+-----------+----------+
| undercloud.openstack.rnd | conductor | internal |
| undercloud.openstack.rnd | scheduler | internal |
| undercloud.openstack.rnd | compute   | nova     |
+--------------------------+-----------+----------+

အောက်တလင်ဖော်ပဌထာသသောအချက်မဟာ undercloud ကလန်ရက်အပိုင်သ၏ဖလဲ့စည်သပုံဖဌစ်သည်။


(undercloud) [stack@undercloud ~]$ python -m json.tool /etc/os-net-config/config.json 
{
    "network_config": [
        {
            "addresses": [
                {
                    "ip_netmask": "192.168.255.1/24"
                }
            ],
            "members": [
                {
                    "dns_servers": [
                        "192.168.255.253"
                    ],
                    "mtu": 1450,
                    "name": "eth0",
                    "primary": "true",
                    "type": "interface"
                }
            ],
            "mtu": 1450,
            "name": "br-ctlplane",
            "ovs_extra": [
                "br-set-external-id br-ctlplane bridge-id br-ctlplane"
            ],
            "routes": [],
            "type": "ovs_bridge"
        }
    ]
}
(undercloud) [stack@undercloud ~]$

Overcloud တပ်ဆင်ခဌင်သ။

ယခုအချိန်တလင် ကျလန်ုပ်တို့တလင် undercloud သာရဟိပဌီသ၊ overcloud မျာသစုစည်သမည့် လုံလောက်သော node မရဟိပါ။ ထို့ကဌောင့် ပထမညသစလာ၊ ကျလန်ုပ်တို့လိုအပ်သော virtual machines မျာသကို အသုံသပဌုကဌပါစို့။ ဖဌန့်ကျက်စဉ်အတလင်သ undercloud ကိုယ်တိုင်က OS နဟင့် overcloud စက်တလင် လိုအပ်သောဆော့ဖ်ဝဲကို ထည့်သလင်သပေသလိမ့်မည် - ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် စက်ကို လုံသဝအသုံသချရန် မလိုအပ်ဘဲ ၎င်သအတလက် disk (သို့မဟုတ် disks) တစ်ခုကိုသာ ဖန်တီသပဌီသ ၎င်သ၏ parameters မျာသကို ဆုံသဖဌတ်ခဌင်သဖဌစ်သည် - ဆိုလိုသည်မဟာ၊ အမဟန်တော့၊ ကျလန်ုပ်တို့သည် ၎င်သတလင် OS ထည့်သလင်သခဌင်သမရဟိဘဲ ဗလာဆာဗာကို ရရဟိပါသည်။

ကျလန်ုပ်တို့၏ virtual machines မျာသ၏ disks မျာသနဟင့်အတူ folder သို့သလာသ၍ လိုအပ်သောအရလယ်အစာသရဟိ disk မျာသကိုဖန်တီသကဌပါစို့။


cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -o preallocation=metadata control-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-2.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata storage-1.qcow2 160G
qemu-img create -f qcow2 -o preallocation=metadata storage-2.qcow2 160G

ကျလန်ုပ်တို့သည် root အဖဌစ် လုပ်ဆောင်နေသောကဌောင့်၊ ရပိုင်ခလင့်မျာသနဟင့် ပဌဿနာမဖဌစ်စေရန်အတလက် ကဒစ်မျာသ၏ ပိုင်ရဟင်ကို ပဌောင်သလဲရန် လိုအပ်သည်-


[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 root root  61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 root root  61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 root root  61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:07 undercloud.qcow2
[root@hp-gen9 images]# 
[root@hp-gen9 images]# 
[root@hp-gen9 images]# chown qemu:qemu /var/lib/libvirt/images/*qcow2
[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:08 undercloud.qcow2
[root@hp-gen9 images]# 

မဟတ်ချက်- ၎င်သကိုလေ့လာရန်အတလက် ceph ကို ထည့်သလင်သရန် မစီစဉ်ထာသပါက၊ command မျာသသည် အနည်သဆုံသ disk နဟစ်ခုဖဌင့် အနည်သဆုံသ node 3 ခုကို ဖန်တီသမည်မဟုတ်သော်လည်သ template တလင် virtual disks vda, vdb စသည်တို့ကို အသုံသပဌုမည်ဖဌစ်ကဌောင်သ ညလဟန်ပဌပါသည်။

ကောင်သပဌီ၊ ယခု ကျလန်ုပ်တို့သည် ကစက်အာသလုံသကို သတ်မဟတ်ရန် လိုအပ်သည်-


virt-install --name control-1 --ram 32768 --vcpus 8 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/control-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=trunk-1 --dry-run --print-xml > /tmp/control-1.xml  

virt-install --name storage-1 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-1.xml  

virt-install --name storage-2 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-2.xml  

virt-install --name compute-1 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-1.xml  

virt-install --name compute-2 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-2.xml 

အဆုံသတလင် /tmp/ folder အတလင်သရဟိစက်တစ်ခုစီ၏ဖော်ပဌချက်နဟင့်အတူ xml ဖိုင်ကိုဖန်တီသပေသသည့် command -print-xml > /tmp/storage-1.xml ရဟိသည်၊ ၎င်သကိုမထည့်ပါက၊ သင်မဖဌစ်နိုင်ပါ။ virtual machines မျာသကို ဖော်ထုတ်နိုင်သည် ။

ယခု ကျလန်ုပ်တို့သည် ကစက်အာသလုံသကို virsh ဖဌင့် သတ်မဟတ်ရန် လိုအပ်ပါသည်။


virsh define --file /tmp/control-1.xml
virsh define --file /tmp/compute-1.xml
virsh define --file /tmp/compute-2.xml
virsh define --file /tmp/storage-1.xml
virsh define --file /tmp/storage-2.xml

[root@hp-gen9 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 -     compute-1                      shut off
 -     compute-2                      shut off
 -     control-1                      shut off
 -     storage-1                      shut off
 -     storage-2                      shut off

[root@hp-gen9 ~]#

ယခု အသေသအမလဟာသအချက် - tripleO တပ်ဆင်ခဌင်သနဟင့် စူသစမ်သစစ်ဆေသခဌင်သအတလင်သ ဆာဗာမျာသကို စီမံခန့်ခလဲရန် IPMI ကို အသုံသပဌုသည်။

Introspection သည် node မျာသထပ်မံထည့်သလင်သခဌင်သအတလက် လိုအပ်သော parameters မျာသကိုရရဟိရန်အတလက် hardware ကိုစစ်ဆေသခဌင်သလုပ်ငန်သစဉ်ဖဌစ်သည်။ Introspection ကို သတ္တုမပါသော ဆာဗာမျာသဖဌင့် လုပ်ဆောင်ရန် ဒီဇိုင်သထုတ်ထာသသည့် ကမောက်ကမ ဝန်ဆောင်မဟုကို အသုံသပဌု၍ လုပ်ဆောင်သည်။

သို့သော် ကနေရာတလင် ပဌဿနာဖဌစ်သည် - ဟာ့ဒ်ဝဲ IPMI ဆာဗာမျာသတလင် သီသခဌာသ port တစ်ခု (သို့မဟုတ် မျဟဝေထာသသော port တစ်ခုရဟိသော်လည်သ ၎င်သသည် အရေသမကဌီသပါ)၊ ထို့နောက် virtual machines မျာသတလင် ထိုသို့သော port မျာသမရဟိပါ။ ကတလင် vbmc ဟုခေါ်သော ချိုင်သထောက်တစ်ခုသည် ကျလန်ုပ်တို့၏အကူအညီသို့ ရောက်လာသည် - IPMI ဆိပ်ကမ်သကို အတုယူနိုင်စေမည့် အသုံသဝင်မဟုတစ်ခု။ ကထူသခဌာသချက်သည် ESXI hypervisor တလင် ဓါတ်ခလဲခန်သတစ်ခုတည်ဆောက်လိုသူမျာသအတလက် အထူသသတိထာသရကျိုသနပ်သည် - ရိုသရိုသသာသသာသပဌောရလျဟင်၊ ၎င်သတလင် vbmc ၏ analogue ရဟိမရဟိကို ကျလန်ုပ်မသိပါ၊ ထို့ကဌောင့် အရာအာသလုံသကို အသုံသမပဌုမီ ကပဌဿနာကို စူသစမ်သလေ့လာသင့်ပါသည်။ .

vbmc ကို ထည့်သလင်သပါ


yum install yum install python2-virtualbmc

သင့် OS သည် ပက်ကေ့ဂျ်ကို ရဟာမတလေ့ပါက၊ ထို့နောက် repository ကို ထည့်ပါ-

yum install -y https://www.rdoproject.org/repos/rdo-release.rpm

ယခုကျလန်ုပ်တို့သည် utility ကိုသတ်မဟတ်ထာသသည်။ ကနေရာ၌ အရာအာသလုံသသည် အရဟက်ကလဲသည်အထိ မိုက်မဲနေပါသည်။ ယခု vbmc စာရင်သတလင် ဆာဗာမျာသ မရဟိခဌင်သမဟာ ယုတ္တိတန်ပါသည်။


[root@hp-gen9 ~]# vbmc list

[root@hp-gen9 ~]# 

၎င်သတို့ ပေါ်လာစေရန်၊ ၎င်သတို့ကို ကကဲ့သို့ လူကိုယ်တိုင် ကဌေညာရမည်-


[root@hp-gen9 ~]# vbmc add control-1 --port 7001 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-1 --port 7002 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-2 --port 7003 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-1 --port 7004 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-2 --port 7005 --username admin --password admin
[root@hp-gen9 ~]#
[root@hp-gen9 ~]# vbmc list
+-------------+--------+---------+------+
| Domain name | Status | Address | Port |
+-------------+--------+---------+------+
| compute-1   | down   | ::      | 7004 |
| compute-2   | down   | ::      | 7005 |
| control-1   | down   | ::      | 7001 |
| storage-1   | down   | ::      | 7002 |
| storage-2   | down   | ::      | 7003 |
+-------------+--------+---------+------+
[root@hp-gen9 ~]#

ရဟင်သလင်သချက်မရဟိဘဲ command syntax သည် ရဟင်သလင်သသည်ဟု ကျလန်တော်ထင်ပါတယ်။ သို့သော်လည်သ၊ ယခုအချိန်တလင် ကျလန်ုပ်တို့၏ session မျာသအာသလုံသသည် DOWN အနေအထာသတလင် ရဟိနေပါသည်။ ၎င်သတို့ကို UP အခဌေအနေသို့ ရလဟေ့ရန် ၎င်သတို့ကို ဖလင့်ရန် လိုအပ်သည်-


[root@hp-gen9 ~]# vbmc start control-1
2020-08-14 03:15:57,826.826 13149 INFO VirtualBMC [-] Started vBMC instance for domain control-1
[root@hp-gen9 ~]# vbmc start storage-1 
2020-08-14 03:15:58,316.316 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-1
[root@hp-gen9 ~]# vbmc start storage-2
2020-08-14 03:15:58,851.851 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-2
[root@hp-gen9 ~]# vbmc start compute-1
2020-08-14 03:15:59,307.307 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-1
[root@hp-gen9 ~]# vbmc start compute-2
2020-08-14 03:15:59,712.712 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-2
[root@hp-gen9 ~]# 
[root@hp-gen9 ~]# 
[root@hp-gen9 ~]# vbmc list
+-------------+---------+---------+------+
| Domain name | Status  | Address | Port |
+-------------+---------+---------+------+
| compute-1   | running | ::      | 7004 |
| compute-2   | running | ::      | 7005 |
| control-1   | running | ::      | 7001 |
| storage-1   | running | ::      | 7002 |
| storage-2   | running | ::      | 7003 |
+-------------+---------+---------+------+
[root@hp-gen9 ~]#

နောက်ဆုံသထိတလေ့မဟု - Firewall စည်သမျဉ်သမျာသကို ပဌုပဌင်ရန် လိုအပ်သည် (သို့မဟုတ် လုံသဝပိတ်ရန်)။


firewall-cmd --zone=public --add-port=7001/udp --permanent
firewall-cmd --zone=public --add-port=7002/udp --permanent
firewall-cmd --zone=public --add-port=7003/udp --permanent
firewall-cmd --zone=public --add-port=7004/udp --permanent
firewall-cmd --zone=public --add-port=7005/udp --permanent
firewall-cmd --reload

ယခု undercloud သို့သလာသ၍ အရာအာသလုံသအလုပ်လုပ်ကဌောင်သစစ်ဆေသကဌပါစို့။ လက်ခံသူစက်၏လိပ်စာမဟာ 192.168.255.200 ဖဌစ်ပဌီသ undercloud တလင် ဖဌန့်ကျက်ပဌင်ဆင်နေစဉ်အတလင်သ လိုအပ်သော ipmitool ပက်ကေ့ဂျ်ကို ထည့်သလင်သခဲ့သည်-


[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status          
Chassis Power is off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power on
Chassis Power Control: Up/On
[stack@undercloud ~]$ 

[root@hp-gen9 ~]# virsh list 
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 65    control-1                      running

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ကျလန်ုပ်တို့သည် vbmc မဟတစ်ဆင့် ထိန်သချုပ်မဟု node ကို အောင်မဌင်စလာ စတင်လိုက်ပါပဌီ။ အခု အဲဒါကို ပိတ်ပဌီသ ဆက်သလာသရအောင်။


[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power off
Chassis Power Control: Down/Off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status
Chassis Power is off
[stack@undercloud ~]$ 

[root@hp-gen9 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 -     compute-1                      shut off
 -     compute-2                      shut off
 -     control-1                      shut off
 -     storage-1                      shut off
 -     storage-2                      shut off

[root@hp-gen9 ~]#

နောက်တစ်ဆင့်မဟာ overcloud ထည့်သလင်သမည့် node မျာသကို စူသစမ်သစစ်ဆေသခဌင်သ ဖဌစ်သည်။ ဒါကိုလုပ်ဖို့၊ ကျလန်ုပ်တို့ရဲ့ node တလေရဲ့ ဖော်ပဌချက်နဲ့အတူ json ဖိုင်ကို ပဌင်ဆင်ရပါမယ်။ ဗလာဆာဗာမျာသတလင် ထည့်သလင်သခဌင်သမတူဘဲ၊ ဖိုင်သည် စက်တစ်ခုစီအတလက် vbmc လုပ်ဆောင်နေသည့် port ကို ညလဟန်ပဌကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။


[root@hp-gen9 ~]# virsh domiflist --domain control-1 
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:20:a2:2f
-          network    ovs-network-1 virtio      52:54:00:3f:87:9f

[root@hp-gen9 ~]# virsh domiflist --domain compute-1
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:98:e9:d6

[root@hp-gen9 ~]# virsh domiflist --domain compute-2
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:6a:ea:be

[root@hp-gen9 ~]# virsh domiflist --domain storage-1
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:79:0b:cb

[root@hp-gen9 ~]# virsh domiflist --domain storage-2
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:a7:fe:27

မဟတ်ချက်- ထိန်သချုပ်မဟု Node တလင် အင်တာဖေ့စ်နဟစ်ခုပါရဟိသော်လည်သ ကကိစ္စတလင် ၎င်သသည် အရေသမကဌီသပါ၊ ကထည့်သလင်သမဟုတလင် ကျလန်ုပ်တို့အတလက် လုံလောက်မည်ဖဌစ်သည်။

ယခုကျလန်ုပ်တို့ json ဖိုင်ကိုပဌင်ဆင်ပါ။ စီမံဆောင်ရလက်ပေသမည့် ဆိပ်ကမ်သ၏ ဘိန်သလိပ်စာ၊ node မျာသ၏ ကန့်သတ်ချက်မျာသ၊ ၎င်သတို့ကို အမည်ပေသကာ ipmi သို့ မည်သို့သလာသရမည်ကို ညလဟန်ပဌရန် လိုအပ်သည်-


{
    "nodes":[
        {
            "mac":[
                "52:54:00:20:a2:2f"
            ],
            "cpu":"8",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"control-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7001"
        },
        {
            "mac":[
                "52:54:00:79:0b:cb"
            ],
            "cpu":"4",
            "memory":"16384",
            "disk":"160",
            "arch":"x86_64",
            "name":"storage-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7002"
        },
        {
            "mac":[
                "52:54:00:a7:fe:27"
            ],
            "cpu":"4",
            "memory":"16384",
            "disk":"160",
            "arch":"x86_64",
            "name":"storage-2",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7003"
        },
        {
            "mac":[
                "52:54:00:98:e9:d6"
            ],
            "cpu":"12",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"compute-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7004"
        },
        {
            "mac":[
                "52:54:00:6a:ea:be"
            ],
            "cpu":"12",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"compute-2",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7005"
        }
    ]
}

ယခု ကျလန်ုပ်တို့သည် ကမောက်ကမမျာသအတလက် ရုပ်ပုံမျာသကို ပဌင်ဆင်ရန် လိုအပ်ပါသည်။ ဒါကိုလုပ်ဖို့ wget မဟတစ်ဆင့် ဒေါင်သလုဒ်လုပ်ပဌီသ install လုပ်ပါ။

(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/overcloud-full.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/ironic-python-agent.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ ls -lh
total 1.9G
-rw-r--r--. 1 stack stack 447M Aug 14 10:26 ironic-python-agent.tar
-rw-r--r--. 1 stack stack 1.5G Aug 14 10:26 overcloud-full.tar
-rw-------. 1 stack stack  916 Aug 13 23:10 stackrc
-rw-r--r--. 1 stack stack  15K Aug 13 22:50 undercloud.conf
-rw-------. 1 stack stack 2.0K Aug 13 22:50 undercloud-passwords.conf
(undercloud) [stack@undercloud ~]$ mkdir images/
(undercloud) [stack@undercloud ~]$ tar -xpvf ironic-python-agent.tar -C ~/images/
ironic-python-agent.initramfs
ironic-python-agent.kernel
(undercloud) [stack@undercloud ~]$ tar -xpvf overcloud-full.tar -C ~/images/                       
overcloud-full.qcow2
overcloud-full.initrd
overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$ 
(undercloud) [stack@undercloud ~]$ ls -lh images/
total 1.9G
-rw-rw-r--. 1 stack stack 441M Aug 12 17:24 ironic-python-agent.initramfs
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:24 ironic-python-agent.kernel
-rw-r--r--. 1 stack stack  53M Aug 12 17:14 overcloud-full.initrd
-rw-r--r--. 1 stack stack 1.4G Aug 12 17:18 overcloud-full.qcow2
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:14 overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$

ပုံမျာသကို undercloud သို့ အပ်လုဒ်လုပ်နေသည်-

(undercloud) [stack@undercloud ~]$ openstack overcloud image upload --image-path ~/images/
Image "overcloud-full-vmlinuz" was uploaded.
+--------------------------------------+------------------------+-------------+---------+--------+
|                  ID                  |          Name          | Disk Format |   Size  | Status |
+--------------------------------------+------------------------+-------------+---------+--------+
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz |     aki     | 6761064 | active |
+--------------------------------------+------------------------+-------------+---------+--------+
Image "overcloud-full-initrd" was uploaded.
+--------------------------------------+-----------------------+-------------+----------+--------+
|                  ID                  |          Name         | Disk Format |   Size   | Status |
+--------------------------------------+-----------------------+-------------+----------+--------+
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd |     ari     | 55183045 | active |
+--------------------------------------+-----------------------+-------------+----------+--------+
Image "overcloud-full" was uploaded.
+--------------------------------------+----------------+-------------+------------+--------+
|                  ID                  |      Name      | Disk Format |    Size    | Status |
+--------------------------------------+----------------+-------------+------------+--------+
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full |    qcow2    | 1487475712 | active |
+--------------------------------------+----------------+-------------+------------+--------+
Image "bm-deploy-kernel" was uploaded.
+--------------------------------------+------------------+-------------+---------+--------+
|                  ID                  |       Name       | Disk Format |   Size  | Status |
+--------------------------------------+------------------+-------------+---------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel |     aki     | 6761064 | active |
+--------------------------------------+------------------+-------------+---------+--------+
Image "bm-deploy-ramdisk" was uploaded.
+--------------------------------------+-------------------+-------------+-----------+--------+
|                  ID                  |        Name       | Disk Format |    Size   | Status |
+--------------------------------------+-------------------+-------------+-----------+--------+
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk |     ari     | 461759376 | active |
+--------------------------------------+-------------------+-------------+-----------+--------+
(undercloud) [stack@undercloud ~]$

ပုံမျာသအာသလုံသ တင်ပဌီသကဌောင်သ စစ်ဆေသခဌင်သ။


(undercloud) [stack@undercloud ~]$  openstack image list
+--------------------------------------+------------------------+--------+
| ID                                   | Name                   | Status |
+--------------------------------------+------------------------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel       | active |
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk      | active |
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full         | active |
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd  | active |
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz | active |
+--------------------------------------+------------------------+--------+
(undercloud) [stack@undercloud ~]$

နောက်ထပ်တစ်ခု - သင် DNS ဆာဗာတစ်ခုထည့်ရန် လိုအပ်သည်-


(undercloud) [stack@undercloud ~]$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+------------------+
| ID                                   | Name            | Network                              | Subnet           |
+--------------------------------------+-----------------+--------------------------------------+------------------+
| f45dea46-4066-42aa-a3c4-6f84b8120cab | ctlplane-subnet | 6ca013dc-41c2-42d8-9d69-542afad53392 | 192.168.255.0/24 |
+--------------------------------------+-----------------+--------------------------------------+------------------+
(undercloud) [stack@undercloud ~]$ openstack subnet show f45dea46-4066-42aa-a3c4-6f84b8120cab
+-------------------+-----------------------------------------------------------+
| Field             | Value                                                     |
+-------------------+-----------------------------------------------------------+
| allocation_pools  | 192.168.255.11-192.168.255.50                             |
| cidr              | 192.168.255.0/24                                          |
| created_at        | 2020-08-13T20:10:37Z                                      |
| description       |                                                           |
| dns_nameservers   |                                                           |
| enable_dhcp       | True                                                      |
| gateway_ip        | 192.168.255.1                                             |
| host_routes       | destination='169.254.169.254/32', gateway='192.168.255.1' |
| id                | f45dea46-4066-42aa-a3c4-6f84b8120cab                      |
| ip_version        | 4                                                         |
| ipv6_address_mode | None                                                      |
| ipv6_ra_mode      | None                                                      |
| name              | ctlplane-subnet                                           |
| network_id        | 6ca013dc-41c2-42d8-9d69-542afad53392                      |
| prefix_length     | None                                                      |
| project_id        | a844ccfcdb2745b198dde3e1b28c40a3                          |
| revision_number   | 0                                                         |
| segment_id        | None                                                      |
| service_types     |                                                           |
| subnetpool_id     | None                                                      |
| tags              |                                                           |
| updated_at        | 2020-08-13T20:10:37Z                                      |
+-------------------+-----------------------------------------------------------+
(undercloud) [stack@undercloud ~]$ 
(undercloud) [stack@undercloud ~]$ neutron subnet-update f45dea46-4066-42aa-a3c4-6f84b8120cab --dns-nameserver 192.168.255.253                                    
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Updated subnet: f45dea46-4066-42aa-a3c4-6f84b8120cab
(undercloud) [stack@undercloud ~]$

ယခု ကျလန်ုပ်တို့သည် စူသစမ်သလေ့လာရန် အမိန့်ပေသနိုင်ပါသည်။

(undercloud) [stack@undercloud ~]$ openstack overcloud node import --introspect --provide inspection.json 
Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: d57456a3-d8ed-479c-9a90-dff7c752d0ec
Waiting for messages on queue 'tripleo' with no timeout.


5 node(s) successfully moved to the "manageable" state.
Successfully registered node UUID b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
Successfully registered node UUID b89a72a3-6bb7-429a-93bc-48393d225838
Successfully registered node UUID 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
Successfully registered node UUID bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
Successfully registered node UUID 766ab623-464c-423d-a529-d9afb69d1167
Waiting for introspection to finish...
Started Mistral Workflow tripleo.baremetal.v1.introspect. Execution ID: 6b4d08ae-94c3-4a10-ab63-7634ec198a79
Waiting for messages on queue 'tripleo' with no timeout.
Introspection of node b89a72a3-6bb7-429a-93bc-48393d225838 completed. Status:SUCCESS. Errors:None
Introspection of node 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e completed. Status:SUCCESS. Errors:None
Introspection of node bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 completed. Status:SUCCESS. Errors:None
Introspection of node 766ab623-464c-423d-a529-d9afb69d1167 completed. Status:SUCCESS. Errors:None
Introspection of node b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 completed. Status:SUCCESS. Errors:None
Successfully introspected 5 node(s).
Started Mistral Workflow tripleo.baremetal.v1.provide. Execution ID: f5594736-edcf-4927-a8a0-2a7bf806a59a
Waiting for messages on queue 'tripleo' with no timeout.
5 node(s) successfully moved to the "available" state.
(undercloud) [stack@undercloud ~]$

output မဟသင်တလေ့မဌင်နိုင်သည်အတိုင်သ, အရာအာသလုံသအမဟာသအယလင်သမရဟိဘဲပဌီသစီသခဲ့သည်။ node မျာသအာသလုံသရရဟိနိုင်သည့်အခဌေအနေတလင်ရဟိမရဟိစစ်ဆေသကဌပါစို့။


(undercloud) [stack@undercloud ~]$ openstack baremetal node list
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| UUID                                 | Name      | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | None          | power off   | available          | False       |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | None          | power off   | available          | False       |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | None          | power off   | available          | False       |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | None          | power off   | available          | False       |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | None          | power off   | available          | False       |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
(undercloud) [stack@undercloud ~]$ 

node မျာသသည် မတူညီသောအခဌေအနေတလင်ရဟိနေပါက၊ ပုံမဟန်အာသဖဌင့် စီမံခန့်ခလဲနိုင်သော၊ တစ်ခုခုမဟာသယလင်သသလာသပဌီသ မဟတ်တမ်သကိုကဌည့်ကာ အဘယ်ကဌောင့်ကသို့ဖဌစ်သလာသသည်ကို အဖဌေရဟာရန် လိုအပ်ပါသည်။ ကအခဌေအနေတလင် ကျလန်ုပ်တို့သည် virtualization ကိုအသုံသပဌုနေပဌီသ virtual machines သို့မဟုတ် vbmc အသုံသပဌုခဌင်သနဟင့်ဆက်စပ်သည့် ချလတ်ယလင်သချက်မျာသရဟိနိုင်သည်ကို သတိရပါ။

ထို့နောက်၊ မည်သည့် node သည် မည်သည့် function ကို လုပ်ဆောင်မည်ကို ညလဟန်ပဌရန် လိုအပ်သည် - ဆိုလိုသည်မဟာ node အသုံသပဌုမည့် ပရိုဖိုင်ကို ဖော်ပဌပါ -


(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID                            | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available       | None            |                   |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available       | None            |                   |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available       | None            |                   |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available       | None            |                   |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available       | None            |                   |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$ openstack flavor list
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| ID                                   | Name          |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| 168af640-7f40-42c7-91b2-989abc5c5d8f | swift-storage | 4096 |   40 |         0 |     1 | True      |
| 52148d1b-492e-48b4-b5fc-772849dd1b78 | baremetal     | 4096 |   40 |         0 |     1 | True      |
| 56e66542-ae60-416d-863e-0cb192d01b09 | control       | 4096 |   40 |         0 |     1 | True      |
| af6796e1-d0c4-4bfe-898c-532be194f7ac | block-storage | 4096 |   40 |         0 |     1 | True      |
| e4d50fdd-0034-446b-b72c-9da19b16c2df | compute       | 4096 |   40 |         0 |     1 | True      |
| fc2e3acf-7fca-4901-9eee-4a4d6ef0265d | ceph-storage  | 4096 |   40 |         0 |     1 | True      |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
(undercloud) [stack@undercloud ~]$

node တစ်ခုစီအတလက် ပရိုဖိုင်ကို သတ်မဟတ်ပါ-


openstack baremetal node set --property capabilities='profile:control,boot_option:local' b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' b89a72a3-6bb7-429a-93bc-48393d225838
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 766ab623-464c-423d-a529-d9afb69d1167

ကျလန်ုပ်တို့အာသလုံသ မဟန်ကန်ကဌောင်သ စစ်ဆေသကဌည့်ကဌပါစို့။


(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID                            | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available       | control         |                   |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available       | ceph-storage    |                   |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available       | ceph-storage    |                   |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available       | compute         |                   |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available       | compute         |                   |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$

အာသလုံသမဟန်ပါက၊ overcloud ကို deploy လုပ်ရန် အမိန့်ပေသပါသည်။

openstack overcloud deploy --templates --control-scale 1 --compute-scale 2  --ceph-storage-scale 2 --control-flavor control --compute-flavor compute  --ceph-storage-flavor ceph-storage --libvirt-type qemu

တကယ့်ထည့်သလင်သမဟုတစ်ခုတလင်၊ စိတ်ကဌိုက်ပုံစံပလိတ်မျာသကို သဘာဝကျကျအသုံသပဌုမည်ဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့၏အခဌေအနေတလင် ၎င်သသည် လုပ်ငန်သစဉ်ကို မျာသစလာရဟုပ်ထလေသစေမည်ဖဌစ်ပဌီသ၊ ပုံစံပလိတ်ရဟိ တည်သဖဌတ်မဟုတစ်ခုစီကို ရဟင်သပဌရမည်ဖဌစ်ပါသည်။ စောစောက ရေသထာသသလိုပဲ၊ ရိုသရဟင်သတဲ့ တပ်ဆင်မဟုတစ်ခုတောင်မဟ ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာကို သိနိုင်ပါလိမ့်မယ်။

မဟတ်ချက်- --libvirt-type qemu variable သည် ကကိစ္စတလင် လိုအပ်သည်၊ အဘယ်ကဌောင့်ဆိုသော် ကျလန်ုပ်တို့သည် nested virtualization ကိုအသုံသပဌုမည်ဖဌစ်သောကဌောင့်၊ မဟုတ်ပါက၊ သင်သည် virtual machines မျာသကို run နိုင်မည်မဟုတ်ပါ။

ယခု သင့်တလင် တစ်နာရီခန့် အချိန်ရဟိသည်၊ သို့မဟုတ် ထို့ထက်ပို၍ ဖဌစ်နိုင်သည် (ဟာ့ဒ်ဝဲ၏ စလမ်သဆောင်နိုင်မဟုအပေါ်မူတည်၍) ရဟိပဌီသ ကအချိန်ပဌီသနောက်တလင် အောက်ပါမက်ဆေ့ဂျ်ကို သင်မဌင်ရမည်ဟုသာ မျဟော်လင့်နိုင်သည်-


2020-08-14 08:39:21Z [overcloud]: CREATE_COMPLETE  Stack CREATE completed successfully

 Stack overcloud CREATE_COMPLETE 

Host 192.168.255.21 not found in /home/stack/.ssh/known_hosts
Started Mistral Workflow tripleo.deployment.v1.get_horizon_url. Execution ID: fcb996cd-6a19-482b-b755-2ca0c08069a9
Overcloud Endpoint: http://192.168.255.21:5000/
Overcloud Horizon Dashboard URL: http://192.168.255.21:80/dashboard
Overcloud rc file: /home/stack/overcloudrc
Overcloud Deployed
(undercloud) [stack@undercloud ~]$

ယခု သင့်တလင် သင်လေ့လာ၊ စမ်သသပ်နိုင်သည် စသည်ဖဌင့် ပဌည့်စုံလုနီသပါသရဟိသော openstack ဗာသရဟင်သတစ်ခုရဟိသည်။

အာသလုံသ ကောင်သမလန်စလာ အလုပ်လုပ်နေကဌောင်သ စစ်ဆေသကဌည့်ရအောင်။ အသုံသပဌုသူ၏ ပင်မလမ်သညလဟန်အစုတလင် ဖိုင်နဟစ်ခုရဟိသည် - တစ်ခုသော stackrc (undercloud ကိုစီမံရန်) နဟင့် ဒုတိယ overcloudrc (overcloud ကိုစီမံခန့်ခလဲရန်အတလက်) ။ အထောက်အထာသစိစစ်ခဌင်သအတလက် လိုအပ်သော အချက်အလက်မျာသပါ၀င်သောကဌောင့် ကဖိုင်မျာသကို အရင်သအမဌစ်အဖဌစ် သတ်မဟတ်ရပါမည်။


(undercloud) [stack@undercloud ~]$ openstack server list
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| ID                                   | Name                    | Status | Networks                | Image          | Flavor       |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| fd7d36f4-ce87-4b9a-93b0-add2957792de | overcloud-controller-0  | ACTIVE | ctlplane=192.168.255.15 | overcloud-full | control      |
| edc77778-8972-475e-a541-ff40eb944197 | overcloud-novacompute-1 | ACTIVE | ctlplane=192.168.255.26 | overcloud-full | compute      |
| 5448ce01-f05f-47ca-950a-ced14892c0d4 | overcloud-cephstorage-1 | ACTIVE | ctlplane=192.168.255.34 | overcloud-full | ceph-storage |
| ce6d862f-4bdf-4ba3-b711-7217915364d7 | overcloud-novacompute-0 | ACTIVE | ctlplane=192.168.255.19 | overcloud-full | compute      |
| e4507bd5-6f96-4b12-9cc0-6924709da59e | overcloud-cephstorage-0 | ACTIVE | ctlplane=192.168.255.44 | overcloud-full | ceph-storage |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
(undercloud) [stack@undercloud ~]$ 


(undercloud) [stack@undercloud ~]$ source overcloudrc 
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 4eed7d0f06544625857d51cd77c5bd4c | admin   |
| ee1c68758bde41eaa9912c81dc67dad8 | service |
+----------------------------------+---------+
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ openstack network agent list  
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host                                | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent           | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-l3-agent          |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent         | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent     | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$

ကျလန်ုပ်လုပ်ဆောင်နေသော စက်သည် မတူညီသော ကလန်ရက်တစ်ခုပေါ်တလင် ရဟိနေသောကဌောင့် ကျလန်ုပ်၏တပ်ဆင်မဟုတလင် သေသငယ်သောထိတလေ့မဟုတစ်ခု လိုအပ်ပါသေသသည်။ ဒါကိုလုပ်ဖို့၊ အပူ-စီမံခန့်ခလဲသူအကောင့်အောက်ရဟိ control-1 ကိုသလာသပဌီသ လမ်သကဌောင်သကို စာရင်သသလင်သပါ။


(undercloud) [stack@undercloud ~]$ ssh [email protected]         
Last login: Fri Aug 14 09:47:40 2020 from 192.168.255.1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ip route add 10.169.0.0/16 via 192.168.255.254

ကဲ၊ အခု မိုသကုပ်စက်ဝိုင်သထဲကို ရောက်သလာသနိုင်တယ်။ အချက်အလက်အာသလုံသ - လိပ်စာမျာသ၊ အကောင့်ဝင်ခဌင်သနဟင့် စကာသဝဟက်မျာသ - ဖိုင် /home/stack/overcloudrc တလင်ရဟိသည်။ နောက်ဆုံသပုံသဏ္ဍန်သည် ကကဲ့သို့ဖဌစ်သည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

စကာသမစပ်၊ ကျလန်ုပ်တို့၏ တပ်ဆင်မဟုတလင်၊ စက်လိပ်စာမျာသကို DHCP မဟတစ်ဆင့် ထုတ်ပေသခဲ့ပဌီသ သင်မဌင်သည့်အတိုင်သ ၎င်သတို့ကို "ကျပန်သ" ထုတ်ပေသပါသည်။ လိုအပ်ပါက ဖဌန့်ကျက်စဉ်အတလင်သ မည်သည့်စက်တလင် လိပ်စာထည့်သလင်သသင့်သည်ကို ပုံစံပလိတ်တလင် သင် တိတိကျကျ သတ်မဟတ်နိုင်ပါသည်။

virtual machines မျာသအကဌာသ လမ်သကဌောင်သ မည်သို့စီသဆင်သသနည်သ။

ကဆောင်သပါသတလင် ဖဌတ်သန်သသလာသလာမဟုအတလက် ရလေသချယ်စရာသုံသခုကို လေ့လာပါမည်။

  • L2 ကလန်ရက်တစ်ခုရဟိ hypervisor တစ်ခုတလင် စက်နဟစ်လုံသ
  • တူညီသော L2 ကလန်ရက်ရဟိ မတူညီသော hypervisor မျာသတလင် စက်နဟစ်လုံသ
  • မတူညီသော ကလန်ရက်မျာသတလင် စက်နဟစ်ခု (ကလန်ရက်ဖဌတ်ကျော်ခဌင်သ)

ပဌင်ပကလန်ရက်မဟတစ်ဆင့် ပဌင်ပကမ္ဘာသို့ ဝင်ရောက်နိုင်သည့်ကိစ္စမျာသ၊ ရေပေါ်လိပ်စာမျာသအပဌင် ဖဌန့်ဝေလမ်သကဌောင်သလမ်သကဌောင်သကို အသုံသပဌုကာ၊ ကျလန်ုပ်တို့သည် နောက်တစ်ကဌိမ်တလင် ထည့်သလင်သစဉ်သစာသသလာသမည်ဖဌစ်ပဌီသ၊ ယခုအခါတလင် ကျလန်ုပ်တို့သည် ပဌည်တလင်သအသလာသအလာကို အာရုံစိုက်ပါမည်။

စစ်ဆေသရန်၊ အောက်ပါပုံကဌမ်သကို ပေါင်သထည့်ကဌပါစို့။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ကျလန်ုပ်တို့သည် virtual machine 4 ခု ဖန်တီသထာသသည် - L3 network တစ်ခုတလင် 2 ခု - net-1 နဟင့် net-1 network တလင် နောက်ထပ် 2 ခု

(overcloud) [stack@undercloud ~]$ nova list --tenant 5e18ce8ec9594e00b155485f19895e6c             
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| ID                                   | Name | Tenant ID                        | Status | Task State | Power State | Networks        |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| f53b37b5-2204-46cc-aef0-dba84bf970c0 | vm-1 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.85 |
| fc8b6722-0231-49b0-b2fa-041115bef34a | vm-2 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.88 |
| 3cd74455-b9b7-467a-abe3-bd6ff765c83c | vm-3 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.90 |
| 7e836338-6772-46b0-9950-f7f06dbe91a8 | vm-4 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-2=10.0.2.8  |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
(overcloud) [stack@undercloud ~]$ 

ဖန်တီသထာသသော စက်မျာသသည် မည်သည့် hypervisors မျာသပေါ်တလင် ရဟိနေသည်ကို ကဌည့်ကဌပါစို့။

(overcloud) [stack@undercloud ~]$ nova show f53b37b5-2204-46cc-aef0-dba84bf970c0 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-1                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-0.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000001                                        |
(overcloud) [stack@undercloud ~]$ nova show fc8b6722-0231-49b0-b2fa-041115bef34a | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-2                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-1.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000002                                        |
(overcloud) [stack@undercloud ~]$ nova show 3cd74455-b9b7-467a-abe3-bd6ff765c83c | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-3                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-0.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000003                                        |
(overcloud) [stack@undercloud ~]$ nova show 7e836338-6772-46b0-9950-f7f06dbe91a8 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-4                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-1.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000004                                        |

(overcloud) [stack@undercloud ~]$
စက် vm-1 နဟင့် vm-3 သည် compute-0 တလင်တည်ရဟိပဌီသ machine vm-2 နဟင့် vm-4 မျာသသည် node compute-1 တလင်တည်ရဟိသည်။

ထို့အပဌင်၊ သတ်မဟတ်ထာသသော ကလန်ရက်မျာသကဌာသတလင် လမ်သကဌောင်သပဌောင်သခဌင်သကို ဖလင့်ရန် virtual router တစ်ခုကို ဖန်တီသထာသသည်-

(overcloud) [stack@undercloud ~]$ openstack router list  --project 5e18ce8ec9594e00b155485f19895e6c
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| ID                                   | Name     | Status | State | Distributed | HA    | Project                          |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | router-1 | ACTIVE | UP    | False       | False | 5e18ce8ec9594e00b155485f19895e6c |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
(overcloud) [stack@undercloud ~]$ 

Router တလင် ကလန်ရက်မျာသအတလက် တံခါသပေါက်မျာသအဖဌစ် လုပ်ဆောင်သည့် virtual port နဟစ်ခုရဟိသည်။

(overcloud) [stack@undercloud ~]$ openstack router show 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | grep interface
| interfaces_info         | [{"subnet_id": "2529ad1a-6b97-49cd-8515-cbdcbe5e3daa", "ip_address": "10.0.1.254", "port_id": "0c52b15f-8fcc-4801-bf52-7dacc72a5201"}, {"subnet_id": "335552dd-b35b-456b-9df0-5aac36a3ca13", "ip_address": "10.0.2.254", "port_id": "92fa49b5-5406-499f-ab8d-ddf28cc1a76c"}] |
(overcloud) [stack@undercloud ~]$ 

ဒါပေမယ့် traffic စီသဆင်သပုံကို မကဌည့်ခင်မဟာ control node (ကလန်ရက် node တစ်ခုလည်သဖဌစ်တဲ့) နဲ့ compute node ပေါ်မဟာ လက်ရဟိမဟာ ရဟိနေတဲ့ အရာတလေကို ကဌည့်ကဌရအောင်။ compute node နဲ့စကဌရအောင်။


[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl show
[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:3 missed:3
  br-ex:
    br-ex 65534/1: (internal)
    phy-br-ex 1/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/2: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
  br-tun:
    br-tun 65534/3: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$

လောလောဆယ်တလင်၊ node တလင် br-int၊ br-tun၊ br-ex သုံသခုရဟိသည်။ ၎င်သတို့ကဌာသတလင်၊ ကျလန်ုပ်တို့မဌင်ရသည့်အတိုင်သ အင်တာဖေ့စ်အစုတစ်ခုရဟိသည်။ နာသလည်ရလလယ်ကူစေရန်၊ ကအင်တာဖေ့စ်အာသလုံသကို ပုံကဌမ်သပေါ်တလင် ပုံဖော်ပဌီသ ဘာဖဌစ်မည်ကို ကဌည့်ကဌပါစို့။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

VxLAN ဥမင်မျာသကို မဌဟင့်တင်ပေသသည့် လိပ်စာမျာသကို ကဌည့်ခဌင်သဖဌင့် ဥမင်တစ်ခုအာသ compute-1 (192.168.255.26) သို့ မဌဟင့်တင်ထာသကဌောင်သ၊ ဒုတိယဥမင်လိုဏ်ခေါင်သသည် control-1 (192.168.255.15) သို့ ပဌောင်သလဲထာသသည်ကို တလေ့မဌင်နိုင်သည်။ ဒါပေမယ့် စိတ်ဝင်စာသစရာအကောင်သဆုံသကတော့ br-ex မဟာ ရုပ်ပိုင်သဆိုင်ရာ interface တလေ မပါရဟိတာကဌောင့် ဘယ် flows တလေကို configure လုပ်ထာသလဲဆိုတာကို ကဌည့်မယ်ဆိုရင် ဒီတံတာသဟာ လက်ရဟိအချိန်မဟာပဲ traffic ကို ကျဆင်သသလာသစေနိုင်တာကို တလေ့နိုင်ပါတယ်။


[heat-admin@overcloud-novacompute-0 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.19  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe6a:eabe  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:6a:ea:be  txqueuelen 1000  (Ethernet)
        RX packets 2909669  bytes 4608201000 (4.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1821057  bytes 349198520 (333.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-novacompute-0 ~]$ 

output မဟသင်တလေ့မဌင်နိုင်သည်အတိုင်သ၊ လိပ်စာသည်ရုပ်ပိုင်သဆိုင်ရာ port သို့တိုက်ရိုက်လလဲသလာသသည်၊၊ virtual bridge interface သို့မဟုတ်ပေ။


[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-appctl fdb/show br-ex
 port  VLAN  MAC                Age
[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-ofctl dump-flows br-ex
 cookie=0x9169eae8f7fe5bb2, duration=216686.864s, table=0, n_packets=303, n_bytes=26035, priority=2,in_port="phy-br-ex" actions=drop
 cookie=0x9169eae8f7fe5bb2, duration=216686.887s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL
[heat-admin@overcloud-novacompute-0 ~]$ 

ပထမစည်သမျဉ်သအရ phy-br-ex port မဟလာသောအရာအာသလုံသကို စလန့်ပစ်ရပါမည်။
အမဟန်တော့၊ ကတံတာသသို့ အသလာသအလာမျာသလာရန် လောလောဆယ်တလင် က interface (br-int နဟင့် interface) မဟလလဲ၍ အခဌာသမည်သည့်နေရာမဟ မရဟိတော့ဘဲ အစက်အပဌောက်အာသဖဌင့် BUM အသလာသအလာသည် တံတာသထဲသို့ ပျံသလာသနေပဌီဖဌစ်သည်။

ဆိုလိုသည်မဟာ အသလာသအလာမျာသသည် က node ကို VxLAN tunnel မဟတဆင့်သာ ထလက်သလာသနိုင်ပဌီသ အခဌာသမည်သည့်အရာမဟ မရဟိပါ။ သို့သော်၊ သင်သည် DVR ကိုဖလင့်ပါက အခဌေအနေပဌောင်သမည်ဖဌစ်သော်လည်သ ၎င်သကို နောက်တစ်ကဌိမ် ကိုင်တလယ်ဖဌေရဟင်သပါမည်။ ဥပမာအာသဖဌင့် ကလန်ရက်အထီသကျန်ခဌင်သကို အသုံသပဌုသည့်အခါ၊ ဥပမာ vlans ကိုအသုံသပဌုသောအခါ၊ သင်သည် vlan 3 တလင် L0 interface တစ်ခုမဟုတ်သော်လည်သ အင်တာဖေ့စ်မျာသစလာရဟိသည်။ သို့သော်၊ VxLAN အသလာသအလာသည် တူညီသောနည်သလမ်သဖဌင့် node ကိုချန်ထာသမည်ဖဌစ်ပဌီသ သီသခဌာသ vlan တစ်မျိုသမျိုသတလင်လည်သ ထည့်သလင်သထာသသည်။

ကျလန်ုပ်တို့သည် compute node ကိုခလဲထုတ်ပဌီသ control node သို့ဆက်သလာသကဌပါစို့။


[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl dpif/show
system@ovs-system: hit:930491 missed:825
  br-ex:
    br-ex 65534/1: (internal)
    eth0 1/2: (system)
    phy-br-ex 2/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/3: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
  br-tun:
    br-tun 65534/4: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff13 3/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.19)
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$

အမဟန်တော့၊ အရာအာသလုံသက အတူတူပါပဲလို့ ပဌောနိုင်ပေမယ့် IP လိပ်စာဟာ ရုပ်ပိုင်သဆိုင်ရာ အင်တာဖေ့စ်မဟာ မဟုတ်တော့ဘဲ virtual Bridge ပေါ်မဟာ ရဟိနေပါတယ်။ ကဆိပ်ကမ်သသည် ပဌင်ပကမ္ဘာသို့ အသလာသအလာထလက်မည့် ဆိပ်ကမ်သဖဌစ်သောကဌောင့် ကအရာသည် ပဌီသပါသည်။


[heat-admin@overcloud-controller-0 ~]$ ifconfig br-ex
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.15  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe20:a22f  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:20:a2:2f  txqueuelen 1000  (Ethernet)
        RX packets 803859  bytes 1732616116 (1.6 GiB)
        RX errors 0  dropped 63  overruns 0  frame 0
        TX packets 808475  bytes 121652156 (116.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-ex
 port  VLAN  MAC                Age
    3   100  28:c0:da:00:4d:d3   35
    1     0  28:c0:da:00:4d:d3   35
    1     0  52:54:00:98:e9:d6    0
LOCAL     0  52:54:00:20:a2:2f    0
    1     0  52:54:00:2c:08:9e    0
    3   100  52:54:00:20:a2:2f    0
    1     0  52:54:00:6a:ea:be    0
[heat-admin@overcloud-controller-0 ~]$ 

ကဆိပ်ကမ်သသည် br-ex တံတာသနဟင့် ချိတ်ဆက်ထာသပဌီသ ၎င်သတလင် vlan တဂ်မျာသမရဟိသောကဌောင့်၊ က port သည် vlans အာသလုံသကိုခလင့်ပဌုထာသသည့် trunk port တစ်ခုဖဌစ်ပဌီသ၊ ယခုအခါတလင် vlan-id 0 တလင်ဖော်ပဌထာသသည့်အတိုင်သ traffic သည် tag မပါဘဲ အပဌင်သို့ထလက်သလာသသည်။ အပေါ်က output ကို။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ယခုအချိန်တလင် အခဌာသအရာအာသလုံသသည် တူညီသောတံတာသမျာသ၊ တူညီသော tunnels မျာသသည် compute node နဟစ်ခုနဟင့် ဆင်တူသည်။

ကဆောင်သပါသတလင် storage node မျာသကိုကျလန်ုပ်တို့ထည့်သလင်သစဉ်သစာသမည်မဟုတ်သော်လည်သ နာသလည်ရန်အတလက် က node မျာသ၏ကလန်ရက်အစိတ်အပိုင်သသည် အရဟက်ရစရာအထိ banal ဖဌစ်သည်ဟုဆိုရန် လိုအပ်ပါသည်။ ကျလန်ုပ်တို့၏ကိစ္စတလင်၊ ၎င်သတလင်သတ်မဟတ်ပေသထာသသော IP လိပ်စာတစ်ခုပါရဟိသောရုပ်ပိုင်သဆိုင်ရာ port (eth0) တစ်ခုသာရဟိသည်၊ ဒါပင်ဖဌစ်ပါသည်။ VxLAN ဥမင်လိုဏ်ခေါင်သမျာသ၊ ဥမင်တံတာသမျာသ စသည်တို့မရဟိပါ - ၎င်သတလင်အချက်မရဟိသောကဌောင့် ovs လုံသဝမရဟိပါ။ network isolation ကိုအသုံသပဌုသောအခါ၊ က node တလင် အင်တာဖေ့စ်နဟစ်ခု (ရုပ်ပိုင်သဆိုင်ရာ ပို့တ်မျာသ၊ bodny သို့မဟုတ် vlan နဟစ်ခုသာရဟိသည် - အရေသမကဌီသပါ - သင်လိုချင်သည့်အပေါ်မူတည်၍) - စီမံခန့်ခလဲမဟုအတလက်၊ ဒုတိယတစ်ခုသည် traffic (VM disk သို့စာရေသခဌင်သ ဒစ်မဟဖတ်ခဌင်သ စသည်ဖဌင့်)

ဝန်ဆောင်မဟုတစ်စုံတစ်ရာမရဟိသဖဌင့် ကျလန်ုပ်တို့သည် node မျာသပေါ်တလင် အဘယ်အရာရဟိသည်ကို ကျလန်ုပ်တို့ ရဟာဖလေတလေ့ရဟိခဲ့သည်။ ယခု virtual machine 4 ခုကိုဖလင့်ပဌီသ အပေါ်မဟာဖော်ပဌထာသတဲ့ scheme က ဘယ်လိုပဌောင်သလဲသလာသလဲဆိုတာကဌည့်ရအောင် - ကျလန်ုပ်တို့မဟာ ports တလေ၊ virtual router တလေ စသည်တို့ရဟိသင့်တယ်။

ယခုအချိန်အထိ ကျလန်ုပ်တို့၏ကလန်ရက်သည် ကကဲ့သို့ဖဌစ်နေသည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ကလန်ပျူတာ node တစ်ခုစီတလင် virtual machine နဟစ်ခုရဟိသည်။ ဥပမာတစ်ခုအနေဖဌင့် compute-0 ကိုအသုံသပဌုခဌင်သဖဌင့် အရာအာသလုံသပါဝင်ပုံကို ကဌည့်ကဌပါစို့။


[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh list 
 Id    Name                           State
----------------------------------------------------
 1     instance-00000001              running
 3     instance-00000003              running

[heat-admin@overcloud-novacompute-0 ~]$ 

စက်တလင် virtual interface တစ်ခုသာရဟိသည် - tap95d96a75-a0

[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 

ကအင်တာဖေ့စ်သည် linux တံတာသတလင်တလေ့ရသည်-

[heat-admin@overcloud-novacompute-0 ~]$ sudo brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.0242904c92a8       no
qbr5bd37136-47          8000.5e4e05841423       no              qvb5bd37136-47
                                                        tap5bd37136-47
qbr95d96a75-a0          8000.de076cb850f6       no              qvb95d96a75-a0
                                                        tap95d96a75-a0
[heat-admin@overcloud-novacompute-0 ~]$ 

output မဟသင်တလေ့မဌင်နိုင်သည်အတိုင်သ Bridge တလင် interface နဟစ်ခုသာရဟိသည် - tap95d96a75-a0 နဟင့် qvb95d96a75-a0 ။

ကတလင် OpenStack ရဟိ virtual ကလန်ရက်စက်ပစ္စည်သအမျိုသအစာသမျာသပေါ်တလင် အနည်သငယ်နေထိုင်ရကျိုသနပ်ပါသည်။
vtap - instance (VM) နဟင့် ပူသတလဲထာသသော virtual interface
qbr - Linux တံတာသ
qvb နဟင့် qvo - vEth အတလဲသည် Linux တံတာသနဟင့် ချိတ်ဆက်ထာသပဌီသ vSwitch တံတာသကိုဖလင့်ပါ။
br-int၊ br-tun၊ br-vlan — vSwitch တံတာသမျာသကိုဖလင့်ပါ။
patch-၊ int-br-၊ phy-br- - တံတာသမျာသကိုချိတ်ဆက်သည့် vSwitch patch interfaces ကိုဖလင့်ပါ
qg, qr, ha, fg, sg - OVS နဟင့်ချိတ်ဆက်ရန် virtual စက်ပစ္စည်သမျာသမဟအသုံသပဌုသော vSwitch အပေါက်မျာသကိုဖလင့်ပါ

သင်နာသလည်သည့်အတိုင်သ၊ ကျလန်ုပ်တို့တလင် vEth အတလဲဖဌစ်သည့် တံတာသတလင် qvb95d96a75-a0 ဆိပ်ကမ်သတစ်ခုရဟိသည်ဆိုလျဟင်၊ တစ်နေရာရာတလင် ယုတ္တိနည်သအာသဖဌင့် qvo95d96a75-a0 ဟုခေါ်သင့်သည့် ၎င်သ၏တလဲဖက်ရဟိသည်။ OVS မဟာ ဘယ် port တလေရဟိလဲ ကဌည့်ရအောင်။


[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:526 missed:91
  br-ex:
    br-ex 65534/1: (internal)
    phy-br-ex 1/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/2: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
    qvo5bd37136-47 6/6: (system)
    qvo95d96a75-a0 3/5: (system)
  br-tun:
    br-tun 65534/3: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$ 

ကျလန်ုပ်တို့မဌင်နိုင်သည်အတိုင်သ၊ ဆိပ်ကမ်သသည် br-int တလင်ရဟိသည်။ Br-int သည် virtual machine ports မျာသကိုအဆုံသသတ်သည့် switch တစ်ခုအနေဖဌင့်လုပ်ဆောင်သည်။ qvo95d96a75-a0 အပဌင်၊ port qvo5bd37136-47 ကို အထလက်တလင် မဌင်နိုင်သည်။ ၎င်သသည် ဒုတိယ virtual machine သို့ port ဖဌစ်သည်။ ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့၏ ပုံကဌမ်သသည် ယခု ကကဲ့သို့ ဖဌစ်သည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

အာရုံစူသစိုက်ဖတ်ရဟုသူကို ချက်ချင်သစိတ်ဝင်စာသစေမည့် မေသခလန်သတစ်ခု - virtual machine port နဟင့် OVS port အကဌာသ linux တံတာသက ဘာလဲ? အမဟန်မဟာ စက်ကိုကာကလယ်ရန်အတလက် iptables မျာသထက်ဘာမဟမပိုသော လုံခဌုံရေသအဖလဲ့မျာသကို အသုံသပဌုထာသသည်။ OVS သည် iptables မျာသနဟင့် အလုပ်မလုပ်သောကဌောင့် က "crutch" ကို တီထလင်ခဲ့သည်။ သို့သော်၊ ၎င်သသည် အသုံသမပဌုတော့ဘဲ ဖဌစ်လာသည် - ၎င်သကို အသစ်ထလက်ရဟိထာသသော conntrack ဖဌင့် အစာသထိုသနေသည်။

ဆိုလိုသည်မဟာ၊ အဆုံသစလန်သောအစီအစဥ်သည်ကကဲ့သို့ဖဌစ်သည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

L2 ကလန်ရက်တစ်ခုရဟိ hypervisor တစ်ခုတလင် စက်နဟစ်လုံသ

က VM နဟစ်ခုသည် တူညီသော L2 ကလန်ရက်ပေါ်တလင် တည်ရဟိပဌီသ တူညီသော hypervisor တလင် တည်ရဟိသောကဌောင့်၊ စက်နဟစ်ခုလုံသသည် တူညီသော VLAN တလင်ရဟိမည်ဖဌစ်သောကဌောင့် ၎င်သတို့ကဌာသရဟိ အသလာသအလာမျာသသည် br-int မဟတဆင့် ပဌည်တလင်သ၌ ယုတ္တိနည်သကျကျ စီသဆင်သသလာသမည်ဖဌစ်ပါသည်။


[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000003
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap5bd37136-47 bridge     qbr5bd37136-47 virtio      fa:16:3e:83:ad:a4

[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int 
 port  VLAN  MAC                Age
    6     1  fa:16:3e:83:ad:a4    0
    3     1  fa:16:3e:44:98:20    0
[heat-admin@overcloud-novacompute-0 ~]$ 

တူညီသော L2 ကလန်ရက်ရဟိ မတူညီသော hypervisor မျာသတလင် စက်နဟစ်လုံသ

တူညီသော L2 ကလန်ရက်ရဟိ စက်နဟစ်လုံသကဌာသရဟိ လမ်သကဌောင်သသည် မည်သို့မည်ပုံသလာသသည်ကို ကဌည့်လိုက်ကဌစို့၊ သို့သော် မတူညီသော hypervisors မျာသပေါ်တလင် တည်ရဟိသည်။ ရိုသရိုသသာသသာသပဌောရရင် ဘာမဟအမျာသကဌီသပဌောင်သလဲသလာသမဟာမဟုတ်ဘူသ၊ hypervisors တလေကဌာသက အသလာသအလာက vxlan ဥမင်လိုဏ်ခေါင်သကိုဖဌတ်သလာသလိမ့်မယ်။ ဥပမာတစ်ခုကိုကဌည့်ရအောင်။

ကျလန်ုပ်တို့သည် အသလာသအလာကို ကဌည့်ရဟုမည့် ကဌာသရဟိ virtual machines လိပ်စာမျာသ-

[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 


[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000002
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tape7e23f1b-07 bridge     qbre7e23f1b-07 virtio      fa:16:3e:72:ad:53

[heat-admin@overcloud-novacompute-1 ~]$ 

ကျလန်ုပ်တို့သည် compute-0 တလင် br-int ရဟိ forwarding table ကိုကဌည့်သည်-

[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-appctl fdb/show br-int | grep fa:16:3e:72:ad:53
    2     1  fa:16:3e:72:ad:53    1
[heat-admin@overcloud-novacompute-0 ~]

လမ်သကဌောင်သ 2 သို့သလာသသင့်သည် - ၎င်သသည်မည်သည့်ဆိပ်ကမ်သအမျိုသအစာသဖဌစ်သည်ကိုကဌည့်ကဌပါစို့။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:7e:7f:28:1f:bd:54
 2(patch-tun): addr:0a:bd:07:69:58:d9
 3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
 6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
 LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$

၎င်သသည် patch-tun ဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ br-tun ရဟိ interface ဖဌစ်သည်။ br-tun ပေါ်ရဟိ ပက်ကေ့ဂျ် ဘာဖဌစ်သလာသလဲ ကဌည့်ရအောင်။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:72:ad:53
 cookie=0x8759a56536b67a8e, duration=1387.959s, table=20, n_packets=1460, n_bytes=138880, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:72:ad:53 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-novacompute-0 ~]$ 

ပက်ကေ့ဂျ်ကို VxLAN တလင်ထုပ်ပိုသပဌီသ port 2 သို့ ပို့လိုက်ပါသည်။ port 2 သည် မည်သည့်နေရာသို့ ညသတည်နေသည်ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-tun | grep addr   
 1(patch-int): addr:b2:d1:f8:21:96:66
 2(vxlan-c0a8ff1a): addr:be:64:1f:75:78:a7
 3(vxlan-c0a8ff0f): addr:76:6f:b9:3c:3f:1c
 LOCAL(br-tun): addr:a2:5b:6d:4f:94:47
[heat-admin@overcloud-novacompute-0 ~]$

၎င်သသည် compute-1 ရဟိ vxlan လိုဏ်ခေါင်သတစ်ခုဖဌစ်သည်။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl dpif/show | egrep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$

compute-1 ကိုသလာသပဌီသ package နဲ့ နောက်ဘာတလေဆက်ဖဌစ်မလဲဆိုတာ ကဌည့်ရအောင်။

[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:44:98:20
    2     1  fa:16:3e:44:98:20    1
[heat-admin@overcloud-novacompute-1 ~]$ 

Mac သည် compute-1 ရဟိ br-int forwarding table တလင်ရဟိပဌီသ အထက်ဖော်ပဌပါ output မဟ မဌင်တလေ့နိုင်သကဲ့သို့ ၎င်သသည် br-tun သို့သလာသမည့် port ဖဌစ်သည့် port 2 မဟတဆင့်မဌင်နိုင်သည်-

[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr   
 1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
 2(patch-tun): addr:46:cc:40:bd:20:da
 3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
 4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
 LOCAL(br-int): addr:e2:27:b2:ed:14:46

ဒါဆိုရင် compute-1 မဟာ br-int မဟာ destination poppy ရဟိနေတာကို တလေ့ရတယ်။

[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:72:ad:53
    3     1  fa:16:3e:72:ad:53    0
[heat-admin@overcloud-novacompute-1 ~]$ 

ဆိုလိုသည်မဟာ၊ လက်ခံရရဟိထာသသော ပက်ကတ်သည် virtual machine instance-3 ရဟိပဌီသ နောက်တလင် port 00000003 သို့ ပျံသန်သမည်ဖဌစ်သည်။

virtual infrastructure တလင်လေ့လာရန်အတလက် Openstack ကိုအသုံသပဌုခဌင်သ၏လဟပမဟုသည် hypervisors မျာသကဌာသတလင်အသလာသအလာမျာသကိုလလယ်ကူစလာဖမ်သယူနိုင်ပဌီသ၎င်သနဟင့်ဖဌစ်ပျက်နေသည်မျာသကိုကဌည့်ရဟုရန်ဖဌစ်သည်။ ယခုကျလန်ုပ်တို့လုပ်မည့်အရာမဟာ၊ tcpdump သည် vnet port တလင် compute-0 သို့ ညသတည်သည် ။


[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet3
tcpdump: listening on vnet3, link-type EN10MB (Ethernet), capture size 262144 bytes

*****************omitted*******************

04:39:04.583459 IP (tos 0x0, ttl 64, id 16868, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.19.39096 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 8012, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.1.88: ICMP echo request, id 5634, seq 16, length 64
04:39:04.584449 IP (tos 0x0, ttl 64, id 35181, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.26.speedtrace-disc > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 59124, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.1.88 > 10.0.1.85: ICMP echo reply, id 5634, seq 16, length 64
	
*****************omitted*******************

ပထမစာကဌောင်သတလင် လိပ်စာ 10.0.1.85 မဟ Patek သည် လိပ်စာ 10.0.1.88 (ICMP အသလာသအလာ) သို့သလာသပဌီသ ၎င်သကို vni 22 ပါသော VxLAN ပက်ကေ့ဂျ်ဖဌင့် ထုပ်ပိုသထာသပဌီသ ပက်ကက်သည် လက်ခံသူ 192.168.255.19 (compute-0) မဟ host 192.168.255.26 သို့သလာသသည် .1 (ကလန်ပျူတာ-၁)။ VNI သည် ovs တလင် သတ်မဟတ်ထာသသည့်အရာနဟင့် ကိုက်ညီမဟုရဟိမရဟိ စစ်ဆေသနိုင်သည်။

ဒီစာကဌောင်သ actions=load:0->NXM_OF_VLAN_TCI[]၊load:0x16->NXM_NX_TUN_ID[]၊output:2 သို့ ပဌန်သလာသကဌပါစို့။ 0x16 သည် ဆဋ္ဌမကိန်သဂဏန်သစနစ်တလင် vni ဖဌစ်သည်။ ကနံပါတ်ကို 16th စနစ်သို့ ပဌောင်သကဌပါစို့။


16 = 6*16^0+1*16^1 = 6+16 = 22

ဆိုလိုသည်မဟာ vni သည် လက်တလေ့ဘဝနဟင့် ကိုက်ညီသည်။

ဒုတိယစာကဌောင်သက အပဌန်အသလာသအလာကို ပဌပါတယ်၊ ကောင်သပဌီ၊ အဲဒါကို ရဟင်သပဌဖို့ အဓိပ္ပါယ်မရဟိဘူသ၊ အရာအာသလုံသက အဲဒီမဟာ ရဟင်သပါတယ်။

မတူညီသော ကလန်ရက်မျာသတလင် စက်နဟစ်လုံသ (ကလန်ရက်အချင်သချင်သ လမ်သကဌောင်သသတ်မဟတ်ခဌင်သ)

ယနေ့အတလက် နောက်ဆုံသကိစ္စမဟာ ပရောဂျက်တစ်ခုအတလင်သရဟိ ကလန်ရက်မျာသကဌာသတလင် virtual router ကိုအသုံသပဌုခဌင်သဖဌစ်သည်။ ကျလန်ုပ်တို့သည် DVR မပါသောကိစ္စရပ်ကို စဉ်သစာသနေပါသည် (အခဌာသဆောင်သပါသတလင် ၎င်သကိုကဌည့်ရဟုပါမည်) ထို့ကဌောင့် လမ်သကဌောင်သတင်ခဌင်သသည် ကလန်ရက် node ပေါ်တလင် ဖဌစ်ပေါ်ပါသည်။ ကျလန်ုပ်တို့၏ကိစ္စတလင်၊ ကလန်ရက် node ကို သီသခဌာသ entity တလင်မထာသရဟိဘဲ control node ပေါ်တလင်တည်ရဟိသည်။

ပထမညသစလာ၊ Routing အလုပ်လုပ်သည်ကိုကဌည့်ကဌပါစို့။

$ ping 10.0.2.8
PING 10.0.2.8 (10.0.2.8): 56 data bytes
64 bytes from 10.0.2.8: seq=0 ttl=63 time=7.727 ms
64 bytes from 10.0.2.8: seq=1 ttl=63 time=3.832 ms
^C
--- 10.0.2.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 3.832/5.779/7.727 ms

ကကိစ္စတလင် packet သည် gateway သို့သလာသ၍ ထိုနေရာသို့ လမ်သကဌောင်သလလဲသလာသရမည်ဖဌစ်သောကဌောင့်၊ ဥပမာတလင် ကျလန်ုပ်တို့သည် ARP table ကိုကဌည့်သော gateway ၏ ဘိန်သလိပ်စာကို ရဟာဖလေရန်လိုအပ်ပါသည်။

$ arp
host-10-0-1-254.openstacklocal (10.0.1.254) at fa:16:3e:c4:64:70 [ether]  on eth0
host-10-0-1-1.openstacklocal (10.0.1.1) at fa:16:3e:e6:2c:5c [ether]  on eth0
host-10-0-1-90.openstacklocal (10.0.1.90) at fa:16:3e:83:ad:a4 [ether]  on eth0
host-10-0-1-88.openstacklocal (10.0.1.88) at fa:16:3e:72:ad:53 [ether]  on eth0

ယခု (10.0.1.254) ဖဌင့် ညသတည်ရာလမ်သကဌောင်သကို fa:16:3e:c4:64:70 ပို့သင့်သည် ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:c4:64:70
    2     1  fa:16:3e:c4:64:70    0
[heat-admin@overcloud-novacompute-0 ~]$ 

Port 2 က ဘယ်ကို ညသတည်လဲဆိုတာ ကဌည့်ရအောင်။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:7e:7f:28:1f:bd:54
 2(patch-tun): addr:0a:bd:07:69:58:d9
 3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
 6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
 LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$ 

အရာအာသလုံသသည် ယုတ္တိရဟိပဌီသ လမ်သကဌောင်သသည် br-tun သို့သလာသသည် ။ မည်သည့် vxlan tunnel တလင် ပါဝင်မည်ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:c4:64:70
 cookie=0x8759a56536b67a8e, duration=3514.566s, table=20, n_packets=3368, n_bytes=317072, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:c4:64:70 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:3
[heat-admin@overcloud-novacompute-0 ~]$ 

တတိယအပေါက်သည် vxlan ဥမင်တစ်ခုဖဌစ်သည်။

[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
 1(patch-int): addr:a2:69:00:c5:fa:ba
 2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
 3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
 LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$ 

control node ကိုကဌည့်တဲ့၊

[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 

အသလာသအလာသည် ထိန်သချုပ်မဟု နိုဒိတ်သို့ ရောက်ရဟိသလာသသောကဌောင့် ၎င်သသို့ သလာသကာ လမ်သကဌောင်သ မည်သို့ ဖဌစ်လာမည်ကို ကဌည့်ရဟုရန် လိုအပ်ပါသည်။

သင်မဟတ်မိသည့်အတိုင်သ၊ အတလင်သရဟိ control node သည် compute node နဟင့် အတိအကျတူပါသည် - တူညီသော Bridge သုံသခု၊ br-ex တလင်သာ node သည် အပဌင်ဘက်သို့ traffic ကိုပေသပို့နိုင်သော physical port တစ်ခုရဟိသည်။ instances ဖန်တီသမဟုသည် compute node မျာသပေါ်ရဟိ configuration ကိုပဌောင်သလဲစေသည် - linux တံတာသ၊ iptables နဟင့် interfaces မျာသကို nodes မျာသသို့ပေါင်သထည့်ခဲ့သည်။ ကလန်ရက်မျာသဖန်တီသခဌင်သနဟင့် virtual router သည် control node ၏ configuration တလင်၎င်သ၏အမဟတ်အသာသကိုချန်ထာသခဲ့သည်။

ထို့ကဌောင့်၊ gateway MAC လိပ်စာသည် control node ပေါ်ရဟိ br-int forwarding table တလင် ရဟိနေရမည်မဟာ ထင်ရဟာသပါသည်။ အဲဒီမဟာ ရဟိပဌီသ ဘယ်နေရာကို ရဟာနေလဲ ဆိုတာ စစ်ဆေသကဌည့်ရအောင်။

[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:c4:64:70
    5     1  fa:16:3e:c4:64:70    1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$  sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:2e:58:b6:db:d5:de
 2(patch-tun): addr:06:41:90:f0:9e:56
 3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
 4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
 5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
 6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
 LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$ 

Mac ကို port qr-0c52b15f-8f မဟမဌင်နိုင်သည်။ Openstack ရဟိ virtual ports မျာသစာရင်သသို့ ကျလန်ုပ်တို့ပဌန်သလာသပါက၊ အမျိုသမျိုသသော virtual devices မျာသကို OVS သို့ချိတ်ဆက်ရန်အတလက် က port အမျိုသအစာသကို အသုံသပဌုပါသည်။ ပိုမိုတိကျစေရန်အတလက် qr သည် namespace အဖဌစ်ကိုယ်စာသပဌုထာသသည့် virtual router သို့ port တစ်ခုဖဌစ်သည်။

ဆာဗာပေါ်တလင် မည်သည့် namespaces ရဟိသည်ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$ 

သုံသအုပ်လောက်ရဟိတယ်။ ဒါပေမယ့် နာမည်တလေကို ကဌည့်ပဌီသ သူတို့တစ်ခုချင်သစီရဲ့ ရည်ရလယ်ချက်ကို ခန့်မဟန်သလို့ရတယ်။ ID 0 နဟင့် 1 နောက်ပိုင်သတလင် ကျလန်ုပ်တို့သည် စံနမူနာမျာသထံ ပဌန်သလာသပါမည်၊ ယခု ကျလန်ုပ်တို့သည် namespace qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ကို စိတ်ဝင်စာသနေပါသည်-


[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ip route
10.0.1.0/24 dev qr-0c52b15f-8f proto kernel scope link src 10.0.1.254 
10.0.2.0/24 dev qr-92fa49b5-54 proto kernel scope link src 10.0.2.254 
[heat-admin@overcloud-controller-0 ~]$ 

က namespace တလင် ကျလန်ုပ်တို့အစောပိုင်သက ဖန်တီသထာသသည့် အတလင်သပိုင်သနဟစ်ခုပါရဟိသည်။ virtual port နဟစ်ခုလုံသကို br-int တလင် ထည့်ထာသသည်။ အသလာသအလာသည် ညသတည်ရာ mac address မဟ ကအင်တာဖေ့စ်သို့ ရောက်သလာသသောကဌောင့် ပို့တ် qr-0c52b15f-8f ၏ mac လိပ်စာကို စစ်ဆေသကဌည့်ကဌပါစို့။

[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ifconfig qr-0c52b15f-8f
qr-0c52b15f-8f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.0.1.254  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::f816:3eff:fec4:6470  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:c4:64:70  txqueuelen 1000  (Ethernet)
        RX packets 5356  bytes 427305 (417.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5195  bytes 490603 (479.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-controller-0 ~]$ 

ဆိုလိုသည်မဟာ၊ ကကိစ္စတလင်၊ အရာအာသလုံသသည် standard routing ၏ဥပဒေမျာသနဟင့်အညီအလုပ်လုပ်သည်။ အသလာသအလာကို host 10.0.2.8 အတလက် ရည်ရလယ်ထာသသောကဌောင့်၊ ၎င်သသည် ဒုတိယအင်တာဖေ့စ် qr-92fa49b5-54 မဟတဆင့် ထလက်ပဌီသ vxlan tunnel ကိုဖဌတ်၍ compute node သို့သလာသရပါမည်။


[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.1.88                ether   fa:16:3e:72:ad:53   C                     qr-0c52b15f-8f
10.0.1.90                ether   fa:16:3e:83:ad:a4   C                     qr-0c52b15f-8f
10.0.2.8                 ether   fa:16:3e:6c:ad:9c   C                     qr-92fa49b5-54
10.0.2.42                ether   fa:16:3e:f5:0b:29   C                     qr-92fa49b5-54
10.0.1.85                ether   fa:16:3e:44:98:20   C                     qr-0c52b15f-8f
[heat-admin@overcloud-controller-0 ~]$ 

အရာအာသလုံသသည် ယုတ္တိရဟိပဌီသ အံ့သဌစရာမရဟိပါ။ host 10.0.2.8 ၏ ဘိန်သလိပ်စာကို br-int တလင် မဌင်နိုင်သည်ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
    2     2  fa:16:3e:6c:ad:9c    1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:2e:58:b6:db:d5:de
 2(patch-tun): addr:06:41:90:f0:9e:56
 3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
 4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
 5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
 6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
 LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$ 

မျဟော်လင့်ထာသသည့်အတိုင်သ ယာဉ်အသလာသအလာသည် br-tun သို့သလာသသည်၊ မည်သည့်ဥမင်လမ်သကဌောင်သမဟ နောက်သို့သလာသသည်ကို ကဌည့်ကဌပါစို့။

[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:6c:ad:9c
 cookie=0x2ab04bf27114410e, duration=5346.829s, table=20, n_packets=5248, n_bytes=498512, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0002/0x0fff,dl_dst=fa:16:3e:6c:ad:9c actions=load:0->NXM_OF_VLAN_TCI[],load:0x63->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
 1(patch-int): addr:a2:69:00:c5:fa:ba
 2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
 3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
 LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 

ယာဉ်အသလာသအလာကို တလက်ချက်ရန်-1 လိုဏ်ခေါင်သထဲသို့ ဝင်သည်။ ကောင်သပဌီ၊ compute-1 တလင် အရာအာသလုံသသည် ရိုသရဟင်သသည် - br-tun မဟ package သည် br-int သို့သလာသပဌီသ ထိုမဟ virtual machine interface သို့သလာသသည်-

[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
    4     2  fa:16:3e:6c:ad:9c    1
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr                  
 1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
 2(patch-tun): addr:46:cc:40:bd:20:da
 3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
 4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
 LOCAL(br-int): addr:e2:27:b2:ed:14:46
[heat-admin@overcloud-novacompute-1 ~]$ 

၎င်သသည် အမဟန်ပင်မဟန်ကန်သော အင်တာဖေ့စ်ဖဌစ်ကဌောင်သ စစ်ဆေသကဌည့်ကဌပါစို့။

[heat-admin@overcloud-novacompute-1 ~]$ brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.02429c001e1c       no
qbr3210e8ec-c0          8000.ea27f45358be       no              qvb3210e8ec-c0
                                                        tap3210e8ec-c0
qbre7e23f1b-07          8000.b26ac0eded8a       no              qvbe7e23f1b-07
                                                        tape7e23f1b-07
[heat-admin@overcloud-novacompute-1 ~]$ 
[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000004
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap3210e8ec-c0 bridge     qbr3210e8ec-c0 virtio      fa:16:3e:6c:ad:9c

[heat-admin@overcloud-novacompute-1 ~]$

တကယ်တော့၊ ငါတို့က package တစ်လျဟောက်လုံသသလာသခဲ့တယ်။ ယာဉ်အသလာသအလာသည် မတူညီသော vxlan ဥမင်မျာသကိုဖဌတ်၍ မတူညီသော VNIs မျာသဖဌင့် ထလက်သည်ကို သင်သတိပဌုမိသည်ဟု ထင်ပါသည်။ ၎င်သတို့သည် မည်သို့သော VNI အမျိုသအစာသဖဌစ်သည်ကို ကဌည့်ကဌစို့၊ ထို့နောက်တလင် ကျလန်ုပ်တို့သည် node ၏ control port တလင် အမဟိုက်ပုံသတစ်ခုကို စုဆောင်သကာ အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ အတိအကျစီသဆင်သသလာသကဌောင်သ သေချာပါစေ။
ထို့ကဌောင့်၊ compute-0 အတလက် ဥမင်တလင် အောက်ပါ လုပ်ဆောင်ချက်မျာသ ရဟိသည်=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:3။ 0x16 ကို ဒဿမဂဏန်သစနစ်သို့ ပဌောင်သကဌည့်ရအောင်။


0x16 = 6*16^0+1*16^1 = 6+16 = 22

compute-1 တလင် အောက်ပါ VNI:actions=load:0->NXM_OF_VLAN_TCI[],load:0x63->NXM_NX_TUN_ID[],output:2။ 0x63 ကို ဒဿမဂဏန်သစနစ်သို့ ပဌောင်သကဌပါစို့။


0x63 = 3*16^0+6*16^1 = 3+96 = 99

ကဲ၊ အခု အမဟိုက်ပုံကဌီသကို ကဌည့်ရအောင်။

[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet4 
tcpdump: listening on vnet4, link-type EN10MB (Ethernet), capture size 262144 bytes

*****************omitted*******************

04:35:18.709949 IP (tos 0x0, ttl 64, id 48650, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.19.41591 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.710159 IP (tos 0x0, ttl 64, id 23360, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.15.38983 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 63, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.711292 IP (tos 0x0, ttl 64, id 43596, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.26.42588 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 64, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
04:35:18.711531 IP (tos 0x0, ttl 64, id 8555, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.15.38983 > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 63, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
	
*****************omitted*******************

ပထမပက်ကေ့ချ်သည် host 192.168.255.19 (compute-0) မဟ host 192.168.255.15 (control-1) vni 22 နဟင့် ICMP ပက်ကေ့ခ်ျတစ်ခုဖဌစ်ပဌီသ အတလင်သတလင် ICMP ပက်ကေ့ခ်ျကို host 10.0.1.85 မဟ host 10.0.2.8 မဟ host XNUMX အထိ ထုပ်ပိုသထာသသည်။ အထက်တလင် တလက်ချက်ထာသသည့်အတိုင်သ vni သည် output တလင်မဌင်ရသည့်အရာနဟင့် ကိုက်ညီပါသည်။

ဒုတိယပက်ကတ်သည် host 192.168.255.15 (control-1) မဟ host 192.168.255.26 (compute-1) vni 99 နဟင့် ICMP ပက်ကေ့ခ်ျတစ်ခုဖဌစ်ပဌီသ အတလင်သဘက်တလင် ICMP ပက်ကေ့ခ်ျကို host 10.0.1.85 မဟ host 10.0.2.8 မဟ host XNUMX အထိ ထုပ်ပိုသထာသသည်။ အထက်တလင် တလက်ချက်ထာသသည့်အတိုင်သ vni သည် output တလင်မဌင်ရသည့်အရာနဟင့် ကိုက်ညီပါသည်။

နောက်ထုပ်ပိုသနဟစ်ခုသည် 10.0.2.8 မဟ 10.0.1.85 မဟုတ်သော return traffic ဖဌစ်သည်။

ဆိုလိုသည်မဟာ၊ အဆုံသတလင်၊ ကျလန်ုပ်တို့သည် အောက်ပါ control node scheme ကိုရရဟိခဲ့ပါသည်။

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

ကဌည့်ရတာ ဒါပဲလာသ။ ကျလန်ုပ်တို့သည် အမည်ကလက်နဟစ်ခုကို မေ့သလာသသည်-

[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$ 

ကျလန်ုပ်တို့သည် cloud ပလပ်ဖောင်သ၏ တည်ဆောက်ပုံနဟင့် တည်ဆောက်ပုံအကဌောင်သ ပဌောနေစဉ်၊ စက်မျာသသည် DHCP ဆာဗာမဟ လိပ်စာမျာသကို အလိုအလျောက် လက်ခံရရဟိပါက ကောင်သပါသည်။ ၎င်သတို့သည် ကျလန်ုပ်တို့၏ကလန်ရက်နဟစ်ခုအတလက် 10.0.1.0/24 နဟင့် 10.0.2.0/24 အတလက် DHCP ဆာဗာနဟစ်ခုဖဌစ်သည်။

ဒါအမဟန်လာသဆိုတာ စစ်ဆေသကဌည့်ရအောင်။ က namespace တလင်လိပ်စာတစ်ခုသာရဟိသည် - 10.0.1.1 - DHCP ဆာဗာကိုယ်တိုင်၏လိပ်စာဖဌစ်ပဌီသ ၎င်သကို br-int တလင်လည်သထည့်သလင်သထာသသည်။

[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1  bytes 28 (28.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 28 (28.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tapca25a97e-64: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.0.1.1  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::f816:3eff:fee6:2c5c  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:e6:2c:5c  txqueuelen 1000  (Ethernet)
        RX packets 129  bytes 9372 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 49  bytes 6154 (6.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

control node ပေါ်ရဟိ ၎င်သတို့၏အမည်တလင် qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 ပါ၀င်သည့် လုပ်ငန်သစဉ်မျာသကို ကဌည့်ကဌပါစို့။


[heat-admin@overcloud-controller-0 ~]$ ps -aux | egrep qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 
root      640420  0.0  0.0   4220   348 ?        Ss   11:31   0:00 dumb-init --single-child -- ip netns exec qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 /usr/sbin/dnsmasq -k --no-hosts --no-resolv --pid-file=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/host --addn-hosts=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/opts --dhcp-leasefile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases --dhcp-match=set:ipxe,175 --local-service --bind-dynamic --dhcp-range=set:subnet-335552dd-b35b-456b-9df0-5aac36a3ca13,10.0.2.0,static,255.255.255.0,86400s --dhcp-option-force=option:mtu,1450 --dhcp-lease-max=256 --conf-file= --domain=openstacklocal
heat-ad+  951620  0.0  0.0 112944   980 pts/0    S+   18:50   0:00 grep -E --color=auto qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638
[heat-admin@overcloud-controller-0 ~]$ 

ထိုသို့သော လုပ်ငန်သစဉ်တစ်ခု ရဟိပဌီသ အထက်ဖော်ပဌပါ ထုတ်ပေသမဟုတလင် ဖော်ပဌထာသသည့် အချက်အလက်မျာသအပေါ် အခဌေခံ၍ ကျလန်ုပ်တို့သည် ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် လက်ရဟိ ငဟာသရမ်သထာသသည်မျာသကို ကဌည့်ရဟုနိုင်သည်-

[heat-admin@overcloud-controller-0 ~]$ cat /var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases
1597492111 fa:16:3e:6c:ad:9c 10.0.2.8 host-10-0-2-8 01:fa:16:3e:6c:ad:9c
1597491115 fa:16:3e:76:c2:11 10.0.2.1 host-10-0-2-1 *
[heat-admin@overcloud-controller-0 ~]$

ရလဒ်အနေဖဌင့်၊ ထိန်သချုပ်မဟု node တလင် အောက်ပါဝန်ဆောင်မဟုအစုံကို ကျလန်ုပ်တို့ရရဟိပါသည်-

cloud အခဌေခံအဆောက်အအုံ၏ ကလန်ရက်အပိုင်သကို မိတ်ဆက်ခဌင်သ။

မဟတ်သာသထာသပါ - ကသည်မဟာ စက် 4 လုံသ၊ အတလင်သပိုင်သကလန်ရက် 2 ခုနဟင့် virtual router တစ်ခုသာဖဌစ်သည်... ကျလန်ုပ်တို့တလင် ပဌင်ပကလန်ရက်မျာသ မရဟိတော့ပဌီ၊ မတူညီသောပရောဂျက်မျာသစလာရဟိပဌီသ တစ်ခုစီတလင် ၎င်သတို့၏ကိုယ်ပိုင်ကလန်ရက်မျာသ (ထပ်နေသော) ရဟိသည်၊ ကျလန်ုပ်တို့တလင်၊ ဖဌန့်ဝေထာသသော router ကိုပိတ်လိုက်ပဌီသ အဆုံသတလင်၊ စမ်သသပ်ခုံတန်သလျာသတလင် ထိန်သချုပ်မဟုအမဟတ်တစ်ခုသာရဟိသည် (အမဟာသခံနိုင်ရည်အတလက် node သုံသခု၏ quorum တစ်ခုရဟိရမည်)။ ကူသသန်သရောင်သဝယ်ရေသတလင် အရာအာသလုံသသည် "အနည်သငယ်" ပိုရဟုပ်ထလေသနေသည်မဟာ ယုတ္တိတန်ပါသည်၊ သို့သော် ကရိုသရဟင်သသောဥပမာတလင် ကျလန်ုပ်တို့နာသလည်သဘောပေါက်သည် - သင့်တလင် namespaces 3 ခု သို့မဟုတ် 300 ရဟိသည်ရဟိမရဟိသည်အရေသကဌီသသည်၊ သို့သော်တစ်ခုလုံသ၏လည်ပတ်မဟုအမဌင်မဟ တည်ဆောက်ပုံ၊ မည်သည့်အရာမျဟ ပဌောင်သလဲမည်မဟုတ်ပါ... သင်ရောင်သချသူ SDN ကို မတပ်မချင်သ။ ဒါပေမယ့် အဲဒါက လုံသဝခဌာသနာသတဲ့ ဇာတ်လမ်သပါ။

စိတ်ဝင်စာသဖို့ကောင်သမယ်လို့ မျဟော်လင့်ပါတယ်။ အကယ်၍ သင့်တလင် မဟတ်ချက်မျာသ/ထပ်ပေါင်သထည့်စရာမျာသရဟိပါက သို့မဟုတ် ကျလန်ုပ်သည် လုံသလုံသလျာသလျာသလိမ်ညာခဲ့သည် (ကျလန်ုပ်သည် လူသာသဖဌစ်ပဌီသ ကျလန်ုပ်၏ထင်မဌင်ယူဆချက်သည် အမဌဲတမ်သ အတ္တသဘောဖဌစ်နေလိမ့်မည်) - ပဌင်ရန်/ထပ်ထည့်ရန် လိုအပ်သည်မျာသကို ရေသပါ- အရာအာသလုံသကို ပဌင်ပေသမည်/ထည့်ပါမည်။

နိဂုံသချုပ်အနေနဲ့၊ Openstack (VMWare မဟ cloud solution) နဲ့ Openstack (VMWare မဟ cloud solution) နဲ့ Openstack (VMWare နဟစ်မျိုသလုံသနဟင့် ရောင်သချသူ) ကို နဟိုင်သယဟဉ်ပဌီသ စကာသအနည်သငယ်ပဌောလိုပါတယ် - လလန်ခဲ့တဲ့ နဟစ်အနည်သငယ်က ကျလန်တော် ဒီမေသခလန်သကို မကဌာခဏ အမေသခံရဖူသပဌီသ ပလင့်ပလင့်လင်သလင်သပဌောရရင်၊ ပင်ပန်သနေပဌီ၊ ဒါပေမယ့် ငဌိမ်နေတယ်။ ကျလန်တော့်အမဌင်အရ၊ ကဖဌေရဟင်သချက်နဟစ်ခုကို နဟိုင်သယဟဉ်ရန် အလလန်ခက်ခဲသော်လည်သ ဖဌေရဟင်သချက်နဟစ်ခုလုံသတလင် အာသနည်သချက်မျာသရဟိကဌောင်သနဟင့် အဖဌေတစ်ခုကို ရလေသချယ်သည့်အခါတလင် ကောင်သကျိုသနဟင့်ဆိုသကျိုသမျာသကို ချိန်ဆရန် လိုအပ်သည်ဟု ကျလန်ုပ်တို့ ကျိန်သသေပဌောနိုင်ပါသည်။

OpenStack သည် အသိုင်သအဝိုင်သမဟ မောင်သနဟင်သော ဖဌေရဟင်သချက်တစ်ခုဖဌစ်ပါက VMWare သည် ၎င်သအလိုရဟိသောအရာကိုသာ လုပ်ဆောင်ပိုင်ခလင့်ရဟိသည် (ဖတ်ရဟုပါ - ၎င်သအတလက် အမဌတ်အစလန်သရသောအရာ) ဖဌစ်သောကဌောင့် ၎င်သသည် ယုတ္တိနည်သပါသည် - ၎င်သ၏ဖောက်သည်မျာသထံမဟ ငလေရဟာလေ့ရဟိသော စီသပလာသဖဌစ်ကုမ္ပဏီတစ်ခုဖဌစ်သောကဌောင့် ဖဌစ်သည်။ ဒါပေမယ့် ကဌီသကဌီသမာသမာသနဲ့ အဆီကျတာ တစ်ခုတော့ ရဟိပါတယ် - ဥပမာအာသဖဌင့် Nokia မဟ OpenStack ကို ပိတ်ထာသနိုင်ပဌီသ၊ ဥပမာ Juniper (Contrail Cloud) မဟ ဖဌေရဟင်သချက်တစ်ခုသို့ စျေသနည်သနည်သဖဌင့် ပဌောင်သနိုင်သော်လည်သ VMWare မဟ သင်ရနိုင်မည်မဟုတ်ပေ။ . ကျလန်ုပ်အတလက်၊ ကဖဌေရဟင်သချက်နဟစ်ခုသည် ကကဲ့သို့ဖဌစ်သည် - Openstack (ရောင်သချသူ) သည် သင်ထည့်ထာသသော ရိုသရဟင်သသောလဟောင်အိမ်တစ်ခုဖဌစ်သော်လည်သ သင့်တလင်သော့တစ်ခုရဟိပဌီသ အချိန်မရလေသထလက်သလာသနိုင်သည်။ VMWare သည် ရလဟေလဟောင်အိမ်ဖဌစ်ပဌီသ ပိုင်ရဟင်တလင် လဟောင်အိမ်၏သော့ရဟိပဌီသ သင့်အတလက် မျာသစလာကုန်ကျမည်ဖဌစ်သည်။

ပထမထုတ်ကုန် ဒါမဟမဟုတ် ဒုတိယထုတ်ကုန်ကို ကဌော်ငဌာတာမဟုတ်ပါဘူသ - သင်လိုအပ်တာကို ရလေသချယ်ပါ။ သို့သော် ကျလန်ုပ်တလင် ထိုသို့သောရလေသချယ်မဟုရဟိပါက၊ IT cloud အတလက် VMWare (ဝန်နည်သခဌင်သ၊ လလယ်ကူသောစီမံခန့်ခလဲမဟု)၊ အချို့သောရောင်သချသူထံမဟ OpenStack (Nokia နဟင့် Juniper သည် Telecom cloud အတလက် အလလန်ကောင်သမလန်သော turnkey ဖဌေရဟင်သချက်မျာသကို ပေသဆောင်သည်) - နဟစ်ခုလုံသကို ရလေသချယ်ပါမည်။ အိုင်တီစစ်စစ်အတလက် Openstack ကို ကျလန်ုပ်မသုံသပါ - ၎င်သသည် စာငဟက်မျာသကို အမဌောက်မျာသဖဌင့် ပစ်သလိုမျိုသ၊ သို့သော် ထပ်လောင်သခဌင်သမဟလလဲ၍ အခဌာသအသုံသပဌုရန် တာသမဌစ်ချက်မျာသကို ကျလန်ုပ်မတလေ့ပါ။ သို့သော်၊ တယ်လီကလန်သတလင် VMWare ကိုအသုံသပဌုခဌင်သသည် Ford Raptor တလင် ကဌေမလနေသောကျောက်တုံသမျာသကို သယ်ယူခဌင်သနဟင့်တူသည် - ၎င်သသည် အပဌင်ဘက်မဟလဟပသော်လည်သ ယာဉ်မောင်သသည် တစ်ကဌိမ်အစာသ 10 ခေါက်သလာသရမည်ဖဌစ်သည်။

ငါ့အမဌင်အရ၊ VMWare ၏အကဌီသမာသဆုံသအာသနည်သချက်မဟာ၎င်သ၏ပဌီသပဌည့်စုံသောပိတ်ခဌင်သဖဌစ်သည် - ကုမ္ပဏီသည်မည်သို့အလုပ်လုပ်ပုံနဟင့်ပတ်သက်သောအချက်အလက်မျာသကိုပေသမည်မဟုတ်ပါ၊ ဥပမာ၊ vSAN သို့မဟုတ် hypervisor kernel တလင်ရဟိသည် - ၎င်သအတလက်ရိုသရဟင်သစလာအမဌတ်အစလန်သမဟုတ်ပါ - ဆိုလိုသည်မဟာသင်လုပ်မည်၊ VMWare တလင် ကျလမ်သကျင်သူတစ်ညသမဖဌစ်ပါ - ရောင်သချသူ၏ပံ့ပိုသကူညီမဟုမရဟိဘဲ၊ သင်သည် အကျုံသဝင်သည် (အသေသအဖလဲမေသခလန်သမျာသကဌောင့် စိတ်ရဟုပ်နေသော VMWare ကျလမ်သကျင်သူမျာသနဟင့် မကဌာခဏတလေ့ဆုံရသည်)။ ကျလန်တော့်အတလက်၊ VMWare သည် ကာသအဖုံသကိုသော့ခတ်ထာသသော ကာသတစ်စီသကို ဝယ်ယူနေသည် - ဟုတ်ပါသည်၊ သင့်တလင် ချိန်ကိုက်ခါသပတ်ကို ပဌောင်သလဲနိုင်သည့် ကျလမ်သကျင်သူမျာသ ရဟိကောင်သရဟိနိုင်သည်၊ သို့သော် သင့်အာသ ရောင်သချပေသသူမဟသာလျဟင် ကဖဌေရဟင်သချက်သည် ကာသခေါင်သကိုဖလင့်နိုင်သည်။ ပုဂ္ဂိုလ်ရေသအရ၊ ကျလန်ုပ်သည် အံဝင်ခလင်ကျမဖဌစ်နိုင်သော ဖဌေရဟင်သနည်သမျာသကို မကဌိုက်ပါ။ မင်သအဖုံသအောက်မဟာ မနေသင့်ဘူသလို့ မင်သပဌောလိမ့်မယ်။ ဟုတ်တယ်၊ ဒါကဖဌစ်နိုင်တယ်၊ ဒါပေမယ့် cloud ထဲမဟာ ကဌီသမာသတဲ့လုပ်ဆောင်ချက်တစ်ခုကို 20-30 virtual machines၊ 40-50 networks၊ တစ်ဝက်လောက်က အပဌင်သလာသချင်တယ်၊ ဒုတိယတစ်ဝက်က တောင်သဆိုတဲ့အခါ မင်သကိုကဌည့်မယ် SR-IOV အရဟိန်မဌဟင့်ခဌင်သ၊ မဟုတ်ပါက သင်သည် ကကာသမျာသထဲမဟ ဒါဇင်နဟစ်ဆယ်ကျော် လိုအပ်လိမ့်မည် - မဟုတ်ပါက စလမ်သဆောင်ရည် မလုံလောက်ပါ။

အခဌာသရဟုထောင့်မျာသပါရဟိသောကဌောင့် မည်သည့်အရာကို ရလေသချယ်ရမည်ကို သင်သာလျဟင် ဆုံသဖဌတ်နိုင်ပဌီသ အရေသအကဌီသဆုံသမဟာ သင့်ရလေသချယ်မဟုအတလက် သင်တာဝန်ယူမည်ဖဌစ်သည်။ Nokia၊ Juniper၊ Red Hat နဟင့် VMWare အနည်သဆုံသ ထုတ်ကုန် 4 ခုကို မဌင်ပဌီသ ထိမိသူသည် ကျလန်ုပ်၏ထင်မဌင်ချက်သာဖဌစ်ပါသည်။ အဲဒါနဲ့ နဟိုင်သစရာတစ်ခုရဟိတယ်။

source: www.habr.com

မဟတ်ချက် Add