开源openstack
Network Functions Virtualization ?infrastructure?? ?網(wǎng)絡(luò)功能虛擬化 基礎(chǔ)設(shè)施?? ??? ?
NFV最大吸引力是運(yùn)營(yíng)商降低成本,提高管理、維護(hù)、網(wǎng)絡(luò)及業(yè)務(wù)部署效率、節(jié)能、以及未來(lái)的開放和創(chuàng)新潛力
NFV架構(gòu):橫向三層 基礎(chǔ)設(shè)施層(即NFV-I),虛擬網(wǎng)絡(luò)層(UNC/UDG),運(yùn)營(yíng)支撐層(BSS/OSS)
?? ??? ??? ? ? 縱向二層 業(yè)務(wù)網(wǎng)絡(luò)域(NFVI+VNF+OSS/BSS)管理編排域(MANO:VIM+VNFM+O)
?? ??? ??? ? ??
management and orchestration 管理和編排
MANO:VNF的部署(上線/下線/自動(dòng)擴(kuò)減容調(diào)整)ETSI標(biāo)準(zhǔn)定義的組件名稱
MAE:(華為網(wǎng)管,實(shí)現(xiàn)了MANO功能)
包含:VNF LCM ? 是MAE產(chǎn)品的一個(gè)功能組件,實(shí)現(xiàn)虛VNF的部署(上線/下線/自動(dòng)擴(kuò)減容調(diào)整)
? ? ? ? ?NFVO ? ? ? ?是MAE產(chǎn)品的一個(gè)功能組件,實(shí)現(xiàn)虛VNF的部署(上線/下線/自動(dòng)擴(kuò)減容調(diào)整)
?? ??? ? NFVO與VNF LCM差別: ? NFVO可加載VNFD模板+NSD模板,安裝SDN組網(wǎng)的VNF(VNF LCM只能安裝非SDN組網(wǎng)的VNF)。
? ? ? ? ?NFVO安裝VNF時(shí),NFVO僅下發(fā)命令到VNF LCM,由VNF LCM和VIM安裝VNF。
Oenstack是云操作系統(tǒng)
?? ??? ??
①用戶從操作管理界面(Horizon門戶功能)提交虛擬機(jī)創(chuàng)建請(qǐng)求,同時(shí)攜帶虛擬機(jī)的資源量需求(資源配置文件等)。
②該需求會(huì)下發(fā)給Nova組件。Nova首先根據(jù)虛擬機(jī)的資源需求分配計(jì)算資源。Nova檢索全部計(jì)算資源,過(guò)濾掉不可用的計(jì)算資源,將剩余的計(jì)算資源進(jìn)行排序,選擇最優(yōu)的資源。
③Nova必須保證所創(chuàng)建的虛擬機(jī)有鏡像資源可以使用,以便分配完全部資源之后可以使用鏡像來(lái)啟動(dòng)虛擬機(jī)。Nova向Glance申請(qǐng)鏡像資源。該鏡像資源也是由資源配置文件指定。隨后Glance啟動(dòng)鏡像相關(guān)管理工作,查找鏡像資源。如果自身目錄沒(méi)有對(duì)應(yīng)鏡像資源,Glance會(huì)去后端Swift存儲(chǔ)請(qǐng)求對(duì)應(yīng)的鏡像資源。此時(shí)Swift類似一個(gè)文件服務(wù)器。找到對(duì)應(yīng)的鏡像資源后,Glance將鏡像資源(就是文件)傳遞給Nova組件。
④Nova隨即請(qǐng)求網(wǎng)絡(luò)資源。即為虛擬機(jī)分配端口資源、配置IP地址、配置二層互通資源(VLAN、VxLAN等等)、打通三層路由。
⑤通過(guò)Cinder請(qǐng)求存儲(chǔ)。同Nova申請(qǐng)計(jì)算資源一樣,Cinder也經(jīng)過(guò)查找、篩選和排序過(guò)程選定存儲(chǔ)資源,將相應(yīng)磁盤參數(shù)傳遞給Nova組件。最后Nova組件將計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源組合,創(chuàng)建虛擬機(jī)。利用鏡像文件引導(dǎo)啟動(dòng)虛擬機(jī)的系統(tǒng),虛擬機(jī)即可運(yùn)行。
⑥如果上述鏡像中的上層應(yīng)用不完整,用戶也可以在虛擬機(jī)啟動(dòng)之后安裝自己所需的應(yīng)用。
⑦安裝完成后,使用Glance將包含新裝應(yīng)用的虛擬機(jī)打包創(chuàng)建鏡像;
⑧通過(guò)Swift將新創(chuàng)建的鏡像保存。后續(xù)如果Nova使用新的鏡像啟動(dòng)虛擬機(jī),新啟動(dòng)的虛擬機(jī)就會(huì)包含本次新裝的應(yīng)用,用戶不必重新安裝該應(yīng)用。
nova是核心部件,負(fù)責(zé)管理計(jì)算資源(CPU內(nèi)存),還是存儲(chǔ)和網(wǎng)絡(luò)資源的總協(xié)調(diào)
提供計(jì)算服務(wù),虛擬機(jī)生命周期管理
neutron 網(wǎng)絡(luò)資源(IP、Vlan、路由),虛擬機(jī)與外部網(wǎng)絡(luò)的互通與隔離
數(shù)據(jù)轉(zhuǎn)發(fā)的集中控制節(jié)點(diǎn),未來(lái)發(fā)展方向是SDN(軟件定義網(wǎng)絡(luò)) Controller
glance ?鏡像管理(提供鏡像查詢/上傳/下載) 只負(fù)責(zé)創(chuàng)建/刪除/傳遞鏡像信息,保存鏡像文件的是后端存儲(chǔ)swift
glance用來(lái)記錄鏡像存儲(chǔ)在哪個(gè)swift里了
nova讀取鏡像內(nèi)容,將鏡像復(fù)制到虛擬機(jī)磁盤,虛擬機(jī)從磁盤引導(dǎo)啟動(dòng)鏡像中的Guest OS
swift對(duì)象存儲(chǔ) 只為glane服務(wù)(適合靜態(tài)數(shù)據(jù),長(zhǎng)期存放的)
cinder 為虛擬機(jī)提供塊存儲(chǔ)資源 (塊指的是操作系統(tǒng)將磁盤劃分一個(gè)個(gè)塊),分配的存儲(chǔ)資源其實(shí)就是虛擬機(jī)的本地磁盤
對(duì)卷的管理,允許對(duì)卷,卷的類型,卷的快照,卷備份進(jìn)行處理
cinder本身并不是存儲(chǔ)技術(shù),只是為后端存儲(chǔ)提供統(tǒng)一的接口,比如DAS/NAS/SAN/對(duì)象存儲(chǔ)/分布式存儲(chǔ)
ceilometer 資源的計(jì)量和監(jiān)控 ?計(jì)量各租戶使用的計(jì)算/存儲(chǔ)/網(wǎng)絡(luò)資源,從而計(jì)費(fèi)
Horizon 為幾乎所有組件提供基于web的操作界面(各組件只提供命令行模式,horizon提供了圖形化封裝)
keystone 鑒權(quán)(所有需要鑒權(quán)才能繼續(xù)的操作,各組件都要先通過(guò)API與keystone交互進(jìn)行鑒權(quán)和認(rèn)證)
邏輯網(wǎng)絡(luò)
external_api ?用于VNFM進(jìn)入VIM (VIM就是FM)
external_om ?登錄的ip
internal_base ?I層內(nèi)部管理網(wǎng)絡(luò),用于控制節(jié)點(diǎn)管理計(jì)算節(jié)點(diǎn)
stroage_date1 存儲(chǔ)數(shù)據(jù)網(wǎng)絡(luò)
OVS(open vSwitch 開源以太網(wǎng)虛擬交換機(jī)):傳遞虛擬機(jī)VM之間的流量,實(shí)現(xiàn)VM和外界網(wǎng)絡(luò)的通信
vEPC中OVS用于I層和CSM的數(shù)據(jù)轉(zhuǎn)發(fā)
EVS 彈性虛擬交換機(jī) ? 華為自研基于OVS 兩者區(qū)別 ? (應(yīng)用于CloudCore或CloudMSE業(yè)務(wù)數(shù)據(jù)面)
1.基于DPDK技術(shù)提升了端口IO性能(需要網(wǎng)卡支持inter的DPDK技術(shù), 占用專門的CPU內(nèi)核來(lái)負(fù)責(zé)收發(fā)包功能)
2.EVS會(huì)在vswitchd啟動(dòng)線程接管內(nèi)核收發(fā)包功能,而OVS沒(méi)有專門線程。
3.OVS數(shù)據(jù)接收和發(fā)送是在內(nèi)核態(tài)完成,EVS是在用戶態(tài)完成。
SRIOV硬直通(與硬件I/O性能相近) ? 一種基于硬件的虛擬化技術(shù),借助直通網(wǎng)卡虛擬出的PCI設(shè)備直接掛載到虛擬機(jī)
應(yīng)用在CloudEdge 中vEPC OM, vEPC業(yè)務(wù)及Intra vAPP 流量
FusionSphere Openstack OM ?物理資源管理,虛擬化資源管理,基于角色的訪問(wèn)控制、自動(dòng)化運(yùn)維、虛擬負(fù)載均衡管理等
VIM:由FS、FM和eSight來(lái)實(shí)現(xiàn),主要負(fù)責(zé)資源管理和自動(dòng)資源發(fā)放,運(yùn)維,告警和KPI上報(bào)。
DC(物理數(shù)據(jù)中心)下面劃分AZ(數(shù)據(jù)中心中有資源共同依賴的資源集合),再出HA(FM上創(chuàng)建的主機(jī)組),HA上創(chuàng)建VDC(虛擬數(shù)據(jù)中心),VDC下面再細(xì)分VPC(虛擬私有云)給不同網(wǎng)元
一個(gè)DC規(guī)劃一個(gè)AZ(版本主推),支持多個(gè)AZ,比如管理域劃分一個(gè)AZ,業(yè)務(wù)域劃分另外一個(gè)AZ。AZ分計(jì)算AZ和存儲(chǔ)AZ。計(jì)算AZ關(guān)聯(lián)HA(?Host Aggregate?主機(jī)組)。存儲(chǔ)AZ關(guān)聯(lián)后端存儲(chǔ)
不同VDC之間是隔離的,又分管理域(U2020/VNFM) 業(yè)務(wù)域(UNC/UDG),VPC也分管理VPC和業(yè)務(wù)VPC
VPC具有完全獨(dú)立的IP地址空間設(shè)置,與其他不在該私有云中的虛擬機(jī)完全網(wǎng)絡(luò)隔離(一個(gè)VPC就是一個(gè)網(wǎng)元)
為了容災(zāi)保證,不同的AZ不能用公用的數(shù)通、電源節(jié)點(diǎn)
正向代理 ?客戶端通過(guò)代理服務(wù)器訪問(wèn)網(wǎng)絡(luò)服務(wù)器(隱藏客戶端信息)
反向代理 ?客戶端訪問(wèn)代理服務(wù)器,代理服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)絡(luò)服務(wù)器(隱藏服務(wù)端信息,或?yàn)槎嗯_(tái)web服務(wù)器提供負(fù)載均衡或者緩沖)
VNF部署流程
1、登錄LCM,導(dǎo)入VNFD和TOSCA模板,同時(shí)導(dǎo)入Guest OS鏡像包(Euler OS)和業(yè)務(wù)Pod鏡像包,啟動(dòng)VNF部署過(guò)程。
2、LCM接收到VNF啟動(dòng)部署通知后,向FusionSphere申請(qǐng)創(chuàng)建VM的相關(guān)I層資源。
3、LCM與FusionSphere交互創(chuàng)建,根據(jù)VNFD模板和GuestOS鏡像完成VM的創(chuàng)建。
4、LCM通知FusionStage進(jìn)行VM納管。FusionStage在納管VM時(shí),會(huì)把VM作為K8S系統(tǒng)中的Node節(jié)點(diǎn)(一個(gè)VM對(duì)應(yīng)一個(gè)Node節(jié)點(diǎn)),在Node節(jié)點(diǎn)中裝載Docker、Kubelet、Kube-proxy等服務(wù)。
5、FusionStage在Node節(jié)點(diǎn)中根據(jù)TOSCA模板和Pod鏡像,創(chuàng)建業(yè)務(wù)所需的Pod和容器,完成網(wǎng)元的創(chuàng)建。
VNFD: Virtualized Network Function Descriptor描述符 ?部署VNF的詳細(xì)描述文件,包含了VNF的部署策略、依賴軟件包、彈性策略
template模板---scripts劇本---blue_prints藍(lán)圖
plan 規(guī)劃(Deployment plan 安裝網(wǎng)元,Scaling plan 擴(kuò)縮容,Upgrade Plan 升級(jí)或回退,Disaster Recovery Plan 容災(zāi)備份,Termination Plan卸載)
關(guān)鍵參數(shù):input定義,plan定義,network定義,VM定義
NUMA (Non-Uniform Memory Access,非一致內(nèi)存訪問(wèn))
當(dāng)前服務(wù)器架構(gòu)中,一般都會(huì)有多個(gè)物理CPU,每個(gè)物理CPU都有對(duì)應(yīng)的內(nèi)存資源。這些分配給指定CPU的內(nèi)存與CPU之間的通信是最快的。另外還可能有IO設(shè)備和這個(gè)CPU綁定。
這些和CPU綁定的所有內(nèi)存和IO資源,我們就把其歸為一個(gè)NUMA節(jié)點(diǎn),也稱為node。
親和:以虛擬機(jī)為例,兩個(gè)虛擬機(jī)必須部署在一個(gè)XX里,叫XX親和。
反親和:以虛擬機(jī)為例,兩個(gè)虛擬機(jī)必須部署在不同的XX里,叫XX反親和。
NUMA親和:兩個(gè)虛擬機(jī)必須部署在1個(gè)numa里,也就是不能跨numa。這樣性能佳。
主機(jī)反親和:兩個(gè)虛擬機(jī)必須部署在不同的主機(jī)里,也就是不能放到一個(gè)主機(jī),這樣可靠性佳。
vm_antii_affinity:
?? ?policy_level:host 代表反親和的粒度,如host、region等。vEPC場(chǎng)景一般使用的是host為粒度
?? ?max_num_per_location:1 代表了確認(rèn)反親和過(guò)后,其上最多承載多少虛擬機(jī),如這里指單個(gè)??host上最多承載1個(gè)虛擬機(jī)
?? ?enforced:true 當(dāng)取值為true時(shí),即使資源或者其他條件不夠的情況下也必須強(qiáng)制執(zhí)行設(shè)置好的反親和性;當(dāng)取值為false時(shí),會(huì)根據(jù)實(shí)際情況進(jìn)度適度的變化;
cross_numa_zone:disallowed 取值為allowed時(shí)表示VM的多個(gè)vCPU可以跨numa node部署,disallowed時(shí)表示只能單node部署;
cross_io_numa_zone:disallowed 取值為allowed時(shí)表示VM可以共享IO NUMA資源,disallowed時(shí)表示只能獨(dú)占
--------磁盤陣列---------- ? ? ? ------FS----- ? ? ? ?------FM------
硬盤域---生成---存儲(chǔ)池---映射---后端存儲(chǔ)---映射---卷類型---分配指定資源---VM
1、 在FM中,1個(gè)“卷類型”對(duì)應(yīng)1個(gè)“后端存儲(chǔ)”;
2、 在FS中, 1 個(gè)“后端存儲(chǔ)”對(duì)應(yīng) 1個(gè)或者多個(gè) ?“存儲(chǔ)池”,“存儲(chǔ)池”配置為RAID10;
3、在磁陣中,1 個(gè)“硬盤域”對(duì)應(yīng) 1個(gè) “存儲(chǔ)池”;
4、若干個(gè)硬盤(不超過(guò)50)組成1個(gè) “硬盤域”,硬盤域不能跨磁陣。
非SDN組網(wǎng)方案
基于機(jī)架服務(wù)器網(wǎng)絡(luò)架構(gòu)說(shuō)明
采用三層架構(gòu):TOR+EOR+DC-GW;
TOR,EOR,工作在L2模式,基于VLAN/MAC轉(zhuǎn)發(fā)。
DC-GW作為業(yè)務(wù)&管理 L3GW,同時(shí)支持靜態(tài)路由/OSPF/BGP及BFD協(xié)議。
業(yè)務(wù)EOR和業(yè)務(wù)TOR分別采用M-LAG組網(wǎng)。
DC-GW獨(dú)立雙主(兩臺(tái)DCGW不同IP不同MAC),之間三層級(jí)聯(lián)(BGP/OSPF)。
硬件管理TOR由于對(duì)可靠性要求不高,不需要成對(duì)配置。
主推用戶面和控制面分機(jī)柜部署。
主推用戶面和控制面獨(dú)立業(yè)務(wù)TOR,共用管理&存儲(chǔ)TOR、共用硬件管理TOR。
基于E9000服務(wù)器網(wǎng)絡(luò)架構(gòu)說(shuō)明
采用三層架構(gòu):CX交換板+EOR+DC-GW;
CX交換板,EOR,工作在L2模式,基于VLAN/MAC轉(zhuǎn)發(fā)。
DC-GW作為業(yè)務(wù)&管理 L3GW,同時(shí)支持靜態(tài)路由/OSPF/BGP及BFD協(xié)議。
業(yè)務(wù)EOR和CX交換板分別采用M-LAG組網(wǎng)。
DC-GW獨(dú)立雙主,之間三層級(jí)聯(lián)(BGP/OSPF)。
E9000下一般不配置單獨(dú)的設(shè)備管理TOR,設(shè)備管理和存儲(chǔ)管理TOR合一。
E9000下,交換板已經(jīng)對(duì)服務(wù)器進(jìn)行收斂,不需要再單獨(dú)配置TOR 。
采用Leaf-Spine(圖中業(yè)務(wù)TOR和EOR)網(wǎng)絡(luò)架構(gòu),交換設(shè)備間全I(xiàn)P互聯(lián)互通。
業(yè)務(wù)EOR作為大帶寬管道,不感知業(yè)務(wù),提供高性能的轉(zhuǎn)發(fā)能力。
DC-GW引入大容量路由器作為VNF業(yè)務(wù)網(wǎng)關(guān),與外部交換路由。
E9000場(chǎng)景,單框E9000只允許歸屬于一對(duì)Leaf,不能跨多對(duì)Leaf接入。
業(yè)務(wù)TOR作為硬件VTEP,同時(shí)部署 DVR功能進(jìn)行東西向流量就近轉(zhuǎn)發(fā)。
E2E自動(dòng)化,支持VNF相關(guān)L2/L3網(wǎng)絡(luò)、靜態(tài)路由+BFD、BGP路由等業(yè)務(wù)在網(wǎng)絡(luò)側(cè)的配置自動(dòng)化。
IMS確定部署在非SDN資源池上。其余EPC/5GC網(wǎng)元部署在SDN資源池中。
AZ分為2個(gè)業(yè)務(wù)AZ與1個(gè)VIM AZ:
AZ1?? ??? ??? ?與硬件分區(qū)A對(duì)應(yīng),命名舉例:NFV-AZ-HDNJIH-12A-HW-01-AZ1 ? ? ? ? ? ? ? ? ?業(yè)務(wù)AZ
AZ2?? ??? ??? ?與硬件分區(qū)B對(duì)應(yīng),命名舉例:NFV-AZ-HDNJIH-12A-HW-01-AZ2 ? ? ? ? ? ? ? ? 業(yè)務(wù)AZ
VIM AZ ? ? 華為VIM按需劃分的獨(dú)立AZ,命名舉例:NFV-AZ-HDNJIH-12A-HW-01-AZM ? 把硬件分區(qū)A的VIM服務(wù)器單獨(dú)劃分AZ。
HA劃分為以下五種類型:
MNG?? ? ? ?用于部署MANO、OMC、漏掃等管理類網(wǎng)元的主機(jī)?? ? ? ?type=MgmtPlaneXX,ovs=C-plane,sriov=false
SVIC?? ?用于部署CSCF等控制面網(wǎng)元的主機(jī)?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?type=TrustPlaneXX,ovs=C-plane,sriov=false
SVIU?? ?用于部署SAE GW等轉(zhuǎn)發(fā)面網(wǎng)元的主機(jī)(初期不涉及)?? ?type=TrustPlaneXX,ovs=false,sriov= U-Plane
DMZC?? ?DMZ區(qū)的主機(jī) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?type=DmzPlaneXX,ovs=C-plane,sriov=false
VIM?? ? ? ?NFV-HA-HDNJIH-12A-HW-01-VIM?? ? ? ? ? ? ? ? ? ? ? ? ? ?規(guī)范新增VIM HA定義;包含PaaS服務(wù)器
劃分原則:
1、HA不跨AZ。
2、為保證資源共享效率,HA的虛擬網(wǎng)絡(luò)統(tǒng)一采用 OVS+DPDK(非SDN:用戶態(tài)OVS;混合SDN:CE1800V)。
3、不同安全域的計(jì)算服務(wù)器物理隔離,劃分獨(dú)立HA。
4、為便于維護(hù)管理,要求每個(gè) HA 內(nèi)主機(jī)數(shù)原則上不多于 256 臺(tái),并以N 個(gè)標(biāo)準(zhǔn)化服務(wù)器模塊為單位進(jìn)行劃分。(三期最新規(guī)范:為便于維護(hù)管理,本期項(xiàng)目SDN組網(wǎng)資源池每個(gè)HA內(nèi)主機(jī)數(shù)量最大可以等于單個(gè) AZ的服務(wù)器數(shù)量。)
5、建議新建HA為網(wǎng)元后續(xù)擴(kuò)容預(yù)留空間,比如規(guī)劃256臺(tái)但實(shí)際業(yè)務(wù)只使用200臺(tái),或規(guī)劃200臺(tái)以內(nèi)業(yè)務(wù)使用200臺(tái)將來(lái)可以擴(kuò)容到256臺(tái)。
6、網(wǎng)絡(luò)云三期2B/2C共HA。
7、建議每個(gè)HA盡量包含不同類型的網(wǎng)元5GC/UDM/PCF。
8、同省同類型網(wǎng)元,應(yīng)盡量按照:跨大區(qū)主備節(jié)點(diǎn)、跨資源池、跨AZ、跨HA的優(yōu)先級(jí)順序部署,以降低硬件故障的影響范圍。
9、安全類服務(wù)器HA規(guī)劃在AZ1,共享AZ1的VIM存儲(chǔ)池,避免規(guī)劃在AZ2導(dǎo)致跨AZ訪問(wèn)VIM存儲(chǔ)池。
10、為第三方廠家NFVO+/VNFM/OMC規(guī)劃獨(dú)立HA。
11、在保證共享效率的前提下,為便于維護(hù)管理,建議按省份、廠家劃分HA。
12、擴(kuò)容新增硬件,建議和原有硬件分HA部署。
1、存儲(chǔ)池個(gè)數(shù):
建議:單AZ內(nèi)業(yè)務(wù)存儲(chǔ)池劃分為3個(gè)或以上,3個(gè)存儲(chǔ)池的容量盡量均衡,以滿足“主備從”類型虛擬機(jī)跨存儲(chǔ)池部署的可靠性;對(duì)于IMS和CS只需要2個(gè)存儲(chǔ)池、卷類型的業(yè)務(wù),多個(gè)VNF在3個(gè)卷類型中輪選2個(gè)卷類型使用。“單AZ單存儲(chǔ)池”可支持商用,但從可靠性角度建議采用“單AZ多存儲(chǔ)池”。ToB、ToC網(wǎng)元共存儲(chǔ)池。安全、VIM,在硬件分區(qū)A的存儲(chǔ)集群劃分1個(gè)存儲(chǔ)池,避免跨區(qū)訪問(wèn)。
2、卷類型復(fù)用說(shuō)明:
不同卷QoS要求的業(yè)務(wù)不共卷類型。不同廠家不共卷類型。ToB、ToC共存儲(chǔ)池場(chǎng)景下,ToB、ToC網(wǎng)元采用相同的卷類型。不同解決方案不共卷類型,UNC和用戶數(shù)據(jù)劃分不同卷類型。
3、卷類型個(gè)數(shù):
每5GC VNF(含UNC/UDM/PCF)部署需要3個(gè)卷類型。每CS/IMS VNF部署需要2個(gè)卷類型。每AZ給MAE-CN規(guī)劃2個(gè)卷類型,分別為NFVO/G-VNFM、OMC/S-VNFM提供存儲(chǔ)。
卷類型名稱(假如多類網(wǎng)元都在一個(gè)存儲(chǔ)池中):
自定義部分需包含后端存儲(chǔ)配置名稱關(guān)鍵字、用途類型、廠家標(biāo)識(shí)、業(yè)務(wù)標(biāo)識(shí)與序號(hào),例如:
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-USC01/02/03(用于部署融合數(shù)據(jù)網(wǎng)元)
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-UNC01/02/03(用于部署數(shù)據(jù)域網(wǎng)元)
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-SPS01/02(用于部署信令域網(wǎng)元)
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-CMN01/02(用于部署CS域網(wǎng)元)
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-SVC01/02(用于部署二層增強(qiáng)資源池的IMS網(wǎng)元)
NFV-R-HNZJI-01A-HW-01-VOLT-A102-S-HW-ENS01/02(用于部署二層增強(qiáng)資源池的融合數(shù)據(jù)EnumDNS網(wǎng)元,不一定每資源池都有)
FusionStage作為容器化VNF的遠(yuǎn)端生命周期管理模塊,FusionStage 和VNFM的關(guān)系如下:
VNFM負(fù)責(zé)VNF生命周期管理動(dòng)作,觸發(fā)網(wǎng)元虛擬機(jī)創(chuàng)建任務(wù)。
FusionStage作為VNFM遠(yuǎn)端模塊,負(fù)責(zé)容器化VNF(workload)的管理。
VNFM完成虛擬機(jī)創(chuàng)建后通知FusionStage執(zhí)行虛擬機(jī)納管(作為容器集群的node)和容器化VNF的實(shí)例化等生命周期管理。
4套PaaS管理面VM全部部署在管理AZ、管理HA(指定服務(wù)器部署)。
4套PaaS所管轄的VNF按如下原則劃分:按AZ劃分,2B/2C VNF共享PaaS,建議VNF根據(jù)自身的容量和目標(biāo)擴(kuò)容規(guī)格,規(guī)劃部署時(shí)采用的PaaS,同一省的2B、2C網(wǎng)元分別在同一AZ的2套PAAS中輪選。
PaaS1/PaaS3:管理AZ1的 網(wǎng)元;PaaS2/PaaS4:管理AZ2的 網(wǎng)元
OpenStack 本身不會(huì)虛擬化資源,但會(huì)使用虛擬化資源來(lái)構(gòu)建云。OpenStack 也不執(zhí)行命令,但會(huì)將命令轉(zhuǎn)發(fā)到基礎(chǔ) OS。OpenStack、虛擬化軟件和基礎(chǔ)操作系統(tǒng),這 3 種技術(shù)必須協(xié)同工作。正是由于這種相互依賴性,所以許多人才會(huì)使用 Linux? 來(lái)部署 OpenStack 云,也因此,RackSpace 和 NASA 才會(huì)將 OpenStack 作為開源軟件來(lái)發(fā)布
glance-api 后臺(tái)運(yùn)行的服務(wù)進(jìn)程,對(duì)外提供restapi,響應(yīng)對(duì)鏡像的查詢,獲取和存儲(chǔ)的調(diào)用,服務(wù)安裝在usr/bin/目錄下
glane-api不會(huì)真正處理請(qǐng)求,會(huì)轉(zhuǎn)發(fā)給glance-registry(負(fù)責(zé)處理和存取 image 的 metadata,例如image 的大小和類型)和store backend(與image自身存取相關(guān)的操作)
glance支持的image格式類型:qcow2、iso、raw、vhd、vmdk、vdi、aki、ari、ami
metadate數(shù)據(jù)存儲(chǔ)在datebase中(數(shù)據(jù)庫(kù),默認(rèn)是mysql)
支持的store backend類型:1、A directory on a local file system本地文件(這是默認(rèn)配置)2、GridFS ?3、Ceph RBD ?4、Amazon S3 ?5、Sheepdog ?6、OpenStack Block Storage (Cinder) ?7、OpenStack Object Storage (Swift) ??
具體使用哪種 backend,是在cat /etc/glance/glance-api.conf | grep filesystem_store_datedir配置文件中配置的(現(xiàn)網(wǎng)UPF查到的目錄不是用來(lái)放鏡像的),
openstack默認(rèn)是在/var/lib/glance/images下,每個(gè) image 在該目錄下都對(duì)應(yīng)有一個(gè)文件,文件以 image 的 ID命名
glance創(chuàng)建鏡像(現(xiàn)網(wǎng)叫注冊(cè)鏡像):1、上傳鏡像到控制節(jié)點(diǎn)?? ?2、openstack image create "cirros" --file 鏡像文件名 --disk-format qcow2 --container-format bare --public
ps aux | grep glance-api/glance-registry 查看glance進(jìn)程
openstack image list 查看已存在的鏡像 或者 glance image-list
openstack endpoint list | grep list ?查看nova的endpoints
nova service-list 查看 nova子服務(wù)都分布在哪些節(jié)點(diǎn)上
cinder service list 查看 cinder-* 子服務(wù)都分布在哪些節(jié)點(diǎn)上
nova是最核心的部件,nova位于openstack架構(gòu)中心,其他組件都為nova提供支持,虛擬機(jī)生命周期管理就是通過(guò)noca實(shí)現(xiàn)的 ? ?虛擬機(jī)默認(rèn)保存在計(jì)算節(jié)點(diǎn)的/var/lib/nova/instances目錄下
用途與功能 :1) 實(shí)例生命周期管理?? ?2) 管理計(jì)算資源?? ?3) 網(wǎng)絡(luò)和認(rèn)證管理?? ?4)REST 風(fēng)格的 API?? ??? ?5) 異步的一致性通信?? ?6)Hypervisor
nova組件很多:
nova-api?? ?整個(gè)nova組件的門戶,所有對(duì)nova的請(qǐng)求都首先由nova-api處理(只要是跟虛擬機(jī)生命周期相關(guān)的操作,nova-api 都可以響應(yīng):關(guān)閉/重啟/刪除/重建虛擬機(jī)等等),并且兼容Amazon EC2 API
nova-api 對(duì)接收到的 HTTP API 請(qǐng)求會(huì)做如下處理:1. 檢查客戶端傳入的參數(shù)是否合法有效?? ?2. 調(diào)用 Nova 其他子服務(wù)的處理客戶端 HTTP 請(qǐng)求?? ?3. 格式化 Nova 其他子服務(wù)返回的結(jié)果并返回給客戶端
nova-scheduler虛機(jī)調(diào)度服務(wù),負(fù)責(zé)決定在哪個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行虛機(jī)。創(chuàng)建虛擬機(jī)時(shí),用戶會(huì)指定flavor(CPU、內(nèi)存、磁盤等資源需求定義在flavor)
配置文件:/etc/nova/nova-scheduler.config ?? ?nova 通 過(guò)driver=filter_scheduler 這個(gè)參數(shù)來(lái)配置 nova-scheduler
Filter scheduler 是 nova-scheduler 默認(rèn)的調(diào)度器,調(diào)度過(guò)程分為兩步:1. 通過(guò)過(guò)濾器filter選擇滿足條件的計(jì)算節(jié)點(diǎn)(運(yùn)行 nova-compute)?? ??? ?2. 通過(guò)打分(weighting權(quán)重計(jì)算)選擇在最優(yōu)(權(quán)重值最大)的計(jì)算節(jié)點(diǎn)上創(chuàng)建虛擬機(jī)【目前默認(rèn)是根據(jù)計(jì)算節(jié)點(diǎn)空閑的內(nèi)存量計(jì)算權(quán)重值】
Nova 允許使用第三方 scheduler,配置 scheduler_driver 即可。Scheduler 可以使用多個(gè) filter 依次進(jìn)行過(guò)濾,過(guò)濾之后的節(jié)點(diǎn)再通過(guò)計(jì)算權(quán)重選出最適合的節(jié)點(diǎn)。
nova-compute?? ?是管理虛機(jī)的核心服務(wù),在計(jì)算節(jié)點(diǎn)上運(yùn)行。通過(guò)調(diào)用Hypervisor API 實(shí)現(xiàn)節(jié)點(diǎn)上的 instance 的 生 命 周 期 管 理 。 OpenStack 對(duì)instance的操 作,最后都是交給nova-compute來(lái)完成的 。
nova-compute與Hypervisor(KVM,Xen, VMWare 等,nova-compute定義了統(tǒng)一的接口)一起實(shí)現(xiàn)OpenStack對(duì)instance生命周期的管理
nova-conductor ? nova-compute 經(jīng)常需要更新數(shù)據(jù)庫(kù),比如更新和獲取虛機(jī)的狀態(tài)。 出于安全性和伸縮性的考慮,nova-compute 并不會(huì)直接訪問(wèn)數(shù)據(jù)庫(kù),而是將這個(gè)任務(wù)委托給 nova-conductor
優(yōu)勢(shì):1. 更高的系統(tǒng)安全性?? ?2. 更好的系統(tǒng)伸縮性
Console Interface服務(wù):
nova-console: 用戶可以通過(guò)多種方式訪問(wèn)虛機(jī)的控制臺(tái):
nova-novncproxy: 基于 Web 瀏覽器的 VNC 訪問(wèn)
nova-spicehtml5proxy: 基于 HTML5 瀏覽器的 SPICE 訪問(wèn)
nova-xvpnvncproxy: 基于 Java 客戶端的 VNC 訪問(wèn)
nova-consoleauth: 負(fù)責(zé)對(duì)訪問(wèn)虛機(jī)控制臺(tái)請(qǐng)求提供 Token 認(rèn)證
nova-cert: 提供 x509 證書支持
Database服務(wù):Nova 會(huì)有一些數(shù)據(jù)需要存放到數(shù)據(jù)庫(kù)中,一般使用 MySQL。數(shù)據(jù)庫(kù)安裝在控制節(jié)點(diǎn)上。 Nova使用命名為 “nova” 的數(shù)據(jù)庫(kù)
進(jìn)入mysql數(shù)據(jù):mysql -uroot -p?? ??? ?然后切換服務(wù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),例如use nava、use cinder等
RabbitMQ 和 MySQL 通常放在控制節(jié)點(diǎn)上
Nova 包含眾多的子服務(wù),這些子服務(wù)之間需要相互協(xié)調(diào)和通信。為解耦各個(gè)子服務(wù),Nova 通過(guò) Message Queue (默認(rèn)是RabbitMQ,MQ也是opensatck的核心組件)作為子服務(wù)的信息中轉(zhuǎn)站。
1. 只有 nova-compute 需要放在計(jì)算節(jié)點(diǎn)上。?? ?2. 其他子服務(wù)則是放在控制節(jié)點(diǎn)上的。(控制節(jié)點(diǎn)可以也作為計(jì)算節(jié)點(diǎn),也安裝nova-compute服務(wù)。rabbitMQ和mysql)
虛擬機(jī)創(chuàng)建流程:
1、用戶或者其他程序向 API(nova-api)發(fā)送請(qǐng)求:“幫我創(chuàng)建一個(gè)虛機(jī)”?? ?2、API 對(duì)請(qǐng)求做一些必要處理后,向 Messaging(RabbitMQ)發(fā)送了一條消息:“讓Scheduler 創(chuàng)建一個(gè)虛機(jī)”
3、Scheduler(nova-scheduler)從 Messaging 獲取到 API 發(fā)給它的消息,然后讓scheduler執(zhí)行調(diào)度算法,從若干計(jì)算節(jié)點(diǎn)中選出節(jié)點(diǎn) A?? ??? ?4、Scheduler 向 Messaging 發(fā)送了一條消息:“在計(jì)算節(jié)點(diǎn) A 上創(chuàng)建這個(gè)虛機(jī)”
計(jì)算節(jié)點(diǎn) A 的 Compute(nova-compute)從 Messaging 中獲取到 Scheduler 發(fā)給它的消息,然后在本節(jié)點(diǎn)的 Hypervisor 上啟動(dòng)虛機(jī)。
在虛機(jī)創(chuàng)建的過(guò)程中,Compute如果需要查詢或更新數(shù)據(jù)庫(kù)信息,會(huì)通過(guò)Messaging向Conductor(nova-conductor)發(fā)送消息,Conductor負(fù)責(zé)數(shù)據(jù)庫(kù)訪問(wèn)。
network?? ?是隔離的二層廣播域(local,flat,vlan,vxlan,gre),一個(gè) subnet 只能屬于某個(gè) network;一個(gè) network 可以有多個(gè) subnet。network 必須屬于某個(gè) Project( Tenant 租戶),Project 中可以創(chuàng)建多個(gè) network。 network與 Project 之間是 1 對(duì)多 關(guān)系。
同一 vlan 中的 instance可以通信,不同 vlan 只能通過(guò) router 通信。vlan 網(wǎng)絡(luò)可跨節(jié)點(diǎn)
vxlan 是基于隧道技術(shù)的 overlay 網(wǎng)絡(luò)。vxlan 網(wǎng)絡(luò)通過(guò)唯一的 segmentation ID(也叫 VNI)與其他 vxlan 網(wǎng)絡(luò)區(qū)分。vxlan 中數(shù)據(jù)包會(huì)通過(guò) VNI 封裝成 UDP 包進(jìn)行傳輸。因?yàn)槎拥陌ㄟ^(guò)封裝在三層傳輸,能夠克服 vlan 和物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的限制。
subnet子網(wǎng) 是一個(gè)ipv4或者ipv6地址段,虛擬機(jī)的ip從subnet中分配,subnet 與 port 是 1 對(duì)多 關(guān)系。一個(gè) port 必須屬于某個(gè) subnet;一個(gè) subnet 可以有多個(gè)port
port 虛擬交換機(jī)上的端口,當(dāng)虛擬機(jī)的虛擬網(wǎng)卡綁定到port上時(shí),port會(huì)將分配mac和ip分配給虛擬機(jī)網(wǎng)卡
二層交換:instance是通過(guò)虛擬交換機(jī)(Linux Bridge 或者 Open vSwitch)連接到虛擬二層網(wǎng)絡(luò)的
三層路由:neutron 的 router(IP forwarding 或者 iptables 來(lái)實(shí)現(xiàn)路由和NAT)實(shí)現(xiàn) instance 跨網(wǎng)段通信
負(fù)載均衡:LBaaS 支持多種負(fù)載均衡產(chǎn)品和方案,不同的實(shí)現(xiàn)以 Plugin(目前默認(rèn)的是HAProxy)的形式集成到 Neutron
防火墻:兩種方式來(lái)保障 instance 和網(wǎng)絡(luò)的安全性?? ?1、security group(安全組)通過(guò) iptables 限制進(jìn)出 instance 的網(wǎng)絡(luò)包?? ?2、FWaaS,限制進(jìn)出虛擬路由器的網(wǎng)絡(luò)包,也是通過(guò) iptables 實(shí)現(xiàn)
neutron部署方案:
控制節(jié)點(diǎn)neutron-server(集成core-plugin-agent和service-plugin-agent)+計(jì)算節(jié)點(diǎn)core-plugin-agent(提供二層網(wǎng)絡(luò)功能)?? ??? ??? ?控制節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過(guò)core-plugin-agent建立二層連接
控制節(jié)點(diǎn)neutron-server+網(wǎng)絡(luò)節(jié)點(diǎn)core-plugin-agent/service-plugin-agent+計(jì)算節(jié)點(diǎn)core-plugin-agent?? ??? ??? ?(適合規(guī)模較大的環(huán)境)
這個(gè)方案的要點(diǎn)是將所有的 agent 從控制節(jié)點(diǎn)分離出來(lái),部署到獨(dú)立的網(wǎng)絡(luò)節(jié)點(diǎn)上。控制節(jié)點(diǎn)只負(fù)責(zé)通過(guò) neutron server 響應(yīng) API 請(qǐng)求。由獨(dú)立的網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的交換,路由以及 load balance 等高級(jí)網(wǎng)絡(luò)服務(wù)。
網(wǎng)絡(luò)流量至少要包含:
Management:用于節(jié)點(diǎn)之間 message queue 內(nèi)部通信以及訪問(wèn) database 服務(wù),所有的節(jié)點(diǎn)都需要連接到management 網(wǎng)絡(luò)。
API:各 組 件 通 過(guò) 該 網(wǎng) 絡(luò) 向 用 戶 暴 露 API 服 務(wù) 。 Keystone, Nova, Neutron, Glance, Cinder, Horizon 的 endpoints 均配置在 API 網(wǎng)絡(luò)上。通常,管理員也通過(guò) API 網(wǎng)絡(luò) SSH 管理各個(gè)節(jié)點(diǎn)
VM:也叫 tenant (租戶)網(wǎng)絡(luò),用于 instance 之間通信。VM 網(wǎng)絡(luò)可以選擇的類型包括 local, flat, vlan, vxlan 和 gre。VM 網(wǎng)絡(luò)由 Neutron 配置和管理。
External:VM 網(wǎng)絡(luò)之外的網(wǎng)絡(luò),該網(wǎng)絡(luò)不由 Neutron 管理。 Neutron 可以將router attach 到 External 網(wǎng)絡(luò),為 instance 提供訪問(wèn)外部網(wǎng)絡(luò)的能力。 External 網(wǎng)絡(luò)可能是企業(yè)的 intranet(內(nèi)聯(lián)網(wǎng)),也可能是 internet。
一般三個(gè)網(wǎng)卡:eth0 Management+API?? ?eth1 VM ? ? eth2 External(控制節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)不需要)
neutron組件:
neutron server 對(duì)外提供opensatack網(wǎng)絡(luò)的api,并調(diào)用plugin處理請(qǐng)求
agent 處理 Plugin 的請(qǐng)求,負(fù)責(zé)在 network provider 上真正實(shí)現(xiàn)各種網(wǎng)絡(luò)功能
Queue ? Neutron Server,Plugin 和 Agent 之間通過(guò) Messaging Queue 通信和調(diào)用。
Database ? 存放 OpenStack 的網(wǎng)絡(luò)狀態(tài)信息,包括 Network, Subnet, Port, Router 等。
plugin 處理 Neutron Server 發(fā)來(lái)的請(qǐng)求,維護(hù) OpenStack 邏輯網(wǎng)絡(luò)狀態(tài), 并調(diào)用 Agent 處理請(qǐng)求(ML2 plugin,各種 network provider 無(wú)需開發(fā)自己的 plugin,只需要針對(duì) ML2 開發(fā)相應(yīng)的 driver 就可以了)
plugin按功能分為2類:1、core plugin 維護(hù) Neutron 的netowrk, subnet 和 port 相關(guān)資源的信息,與 core plugin 對(duì)應(yīng)的 agent 包括 linux bridge,OVS 等; ?? ?2、service plugin 提供 routing, firewall, load balance 等服務(wù),也有相應(yīng)的 agent。
network創(chuàng)建流程:
1、Neutron Server 接收到創(chuàng)建 network 的請(qǐng)求,通過(guò) Message Queue(RabbitMQ)通知已注冊(cè)的 Linux Bridge Plugin(其中network provider 是 linuxbridge,那么就得使用 linux bridge 的 plungin 和 agent;如果 network provider 換成了OVS 或者物理交換機(jī),plugin 和 agent 也得替換。)
2、Plugin 將要?jiǎng)?chuàng)建的 network 的信息(例如名稱、VLAN ID 等)保存到數(shù)據(jù)庫(kù)中,并通過(guò)Message Queue 通知運(yùn)行在各節(jié)點(diǎn)上的 Agent。
3、Agent 收到消息后會(huì)在節(jié)點(diǎn)上的物理網(wǎng)卡(比如 eth2)上創(chuàng)建 VLAN 設(shè)備(比如 eth2.100),并創(chuàng)建 bridge (比如 brqXXX) 橋接 VLAN 設(shè)備。
neutron service分層模型:(1. 提供 API 服務(wù)。2. 運(yùn)行 Plugin。)
core api (對(duì)外提供管理 network, subnet 和 port 的 RESTful API) ? ?extension API(對(duì)外提供管理 router, load balance, firewall ,security groups等資源 的 RESTful API)
Commnon Service:認(rèn)證和校驗(yàn) API 請(qǐng)求(validation、authn、authz)
Neutron Core:Neutron server 的核心處理程序,通過(guò)調(diào)用相應(yīng)的 Plugin 處理請(qǐng)求
Core Plugin API:定義了 Core Plgin 的抽象功能集合,Neutron Core 通過(guò)該 API 調(diào)用相應(yīng)的Core Plgin?? ??? ??? ?Extension Plugin API:定義了 Service Plgin 的抽象功能集合,Neutron Core 通過(guò)該 API 調(diào)用相應(yīng)的 Service Plgin。
Core Plugin:實(shí)現(xiàn)了 Core Plugin API,在數(shù)據(jù)庫(kù)中維護(hù) network, subnet 和 port 的狀態(tài),并負(fù)責(zé)調(diào)用相應(yīng)的 agent 在 network provider 上執(zhí)行相關(guān)操作,比如創(chuàng)建 network。
Service Plugin:實(shí)現(xiàn)了 Extension Plugin API,在數(shù)據(jù)庫(kù)中維護(hù) router, load balance, security group 等資源的狀態(tài),并負(fù)責(zé)調(diào)用相應(yīng)的 agent 在 network provider 上執(zhí)行相關(guān)操作,比如創(chuàng)建 router
DB:數(shù)據(jù)庫(kù)
操作系統(tǒng)獲得存儲(chǔ)空間的方式有2種:
塊存儲(chǔ):通過(guò)某種協(xié)議(SAS,SCSI,SAN,iSCSI 等)掛接裸硬盤,然后分區(qū)、格式化、創(chuàng)建文件系統(tǒng);或者直接使用裸硬盤存儲(chǔ)數(shù)據(jù)(數(shù)據(jù)庫(kù))。每個(gè)裸硬盤也稱為卷volume,從instance角度看每一個(gè)volume都是一塊硬盤
文件系統(tǒng)存儲(chǔ):通過(guò) NFS、CIFS 等 協(xié)議,mount 遠(yuǎn)程的文件系統(tǒng)(NAS 和 NFS 服務(wù)器,以及各種分布式文件系統(tǒng)提供的都是這種存儲(chǔ))
Cinder 提供block stroage service(vloume從創(chuàng)建到刪除整個(gè)生命周期管理)
1、提供 REST API 使用戶能夠查詢和管理 volume、volume snapshot 以及 volume type
2、提供 scheduler 調(diào)度 volume 創(chuàng)建請(qǐng)求,合理優(yōu)化存儲(chǔ)資源的分配
3、通過(guò) driver 架構(gòu)支持多種 back-end(后端)存儲(chǔ)方式,包括 LVM,NFS,Ceph 和其他諸如 EMC、IBM 等商業(yè)存儲(chǔ)產(chǎn)品和方案
cinder-api?? ?客戶端將vloume生命周期相關(guān)的請(qǐng)求發(fā)送到cinder-api的endpoints指定的地址,cinder-api調(diào)用其他子服務(wù)處理請(qǐng)求,然后返回處理結(jié)果(控制節(jié)點(diǎn))
cinder-volume 管理volume的生命周期(包括 volume 的 create、extend、attach、snapshot、delete 等),運(yùn)行cinder-volume的節(jié)點(diǎn)稱為存儲(chǔ)節(jié)點(diǎn),與volume provider一起實(shí)現(xiàn)volume的生命周期管理(cinder-volume自身并不管理存儲(chǔ)設(shè)備,存儲(chǔ)設(shè)備由volume provider管理)
cinder-volume 會(huì)定期向 Cinder 報(bào)告存儲(chǔ)節(jié)點(diǎn)的空閑容量來(lái)做篩選啟動(dòng) volume,在 cinder-volume 的配置文件 /etc/cinder/cinder.conf 中 volume_driver 配置項(xiàng)設(shè)置該存儲(chǔ)節(jié)點(diǎn)使用哪種 volume provider。
volume provider數(shù)據(jù)的存儲(chǔ)設(shè)備,為 volume 提供物理存儲(chǔ)空間(存儲(chǔ)解決方案,市面上有很多),cinder-volume為這些存儲(chǔ)解決方案定義了統(tǒng)一的接口(driver架構(gòu),即插即用,一般只需要將driver和cinder-volume放在一起就行,/usr/lib/python2.7/site-packges/cinder/volume/drivers源代碼目錄下有很多driver)
conder-scheduler 通過(guò)調(diào)度算法選擇最合適的存儲(chǔ)節(jié)點(diǎn)創(chuàng)建 volume。創(chuàng)建 Volume 時(shí),cinder-scheduler 會(huì)基于容量、Volume Type 等條件選擇出最合適的存儲(chǔ)節(jié)點(diǎn),然后讓其創(chuàng)建 Volume(控制節(jié)點(diǎn))
Message Queue ?Cinder 各個(gè)子服務(wù)通過(guò)消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信和相互協(xié)作。因?yàn)橛辛讼㈥?duì)列,子服務(wù)之間實(shí)現(xiàn)了解耦,這種松散的結(jié)構(gòu)也是分布式系統(tǒng)的重要特征
volume創(chuàng)建流程:
1、用戶或其他程序)向 API(cinder-api)發(fā)送請(qǐng)求:“幫我創(chuàng)建一個(gè) volume”?? ?2、API 對(duì)請(qǐng)求做一些必要處理后,向 Messaging(RabbitMQ)發(fā)送了一條消息:“讓 Scheduler 創(chuàng)建一個(gè) volume”
3、Scheduler(cinder-scheduler)從 Messaging 獲取到 API 發(fā)給它的消息,然后執(zhí)行調(diào)度算法,從若干計(jì)存儲(chǔ)點(diǎn)中選出節(jié)點(diǎn) A
4、Scheduler 向 Messaging 發(fā)送了一條消息:“讓存儲(chǔ)節(jié)點(diǎn) A 創(chuàng)建這個(gè) volume”,存儲(chǔ)節(jié)點(diǎn) A 的 Volume(cinder-volume)從 Messaging 中獲取到 Scheduler 發(fā)給它的消息,然后通過(guò) driver 在 volume provider 上創(chuàng)建 volume。
Horizon(地平線)提供web ui界面進(jìn)行操作,提供DashBoard(儀表盤)服務(wù)
Ceph 分布式文件系統(tǒng)(在國(guó)內(nèi)一些公司的云環(huán)境中,通常會(huì)采用 ceph 作為 openstack 的唯一后端存儲(chǔ)來(lái)提高數(shù)據(jù)轉(zhuǎn)發(fā)效率)
高性能:a.摒棄了傳統(tǒng)的集中式存儲(chǔ)元數(shù)據(jù)尋址的方案,采用 CRUSH 算法,數(shù)據(jù)分布均衡,并行度高。?? ??? ?b.考慮了容災(zāi)域的隔離,能夠?qū)崿F(xiàn)各類負(fù)載的副本放置規(guī)則,例如跨機(jī)房、機(jī)架感知等。?? ??? ?c. 能夠支持上千個(gè)存儲(chǔ)節(jié)點(diǎn)的規(guī)模,支持 TB 到 PB 級(jí)的數(shù)據(jù)。
高可用:a. 副本數(shù)可以靈活控制。?? ??? ?b. 支持故障域分隔,數(shù)據(jù)強(qiáng)一致性。?? ??? ?c. 多種故障場(chǎng)景自動(dòng)進(jìn)行修復(fù)自愈。?? ??? ?d. 沒(méi)有單點(diǎn)故障,自動(dòng)管理。
高可擴(kuò)展性:a. 去中心化。?? ?b. 擴(kuò)展靈活。?? ??? ?c. 隨著節(jié)點(diǎn)增加而線性增長(zhǎng)。
特性豐富:a. 支持三種存儲(chǔ)接口:塊存儲(chǔ)(由 RBD 提供,可以直接作為磁盤掛載,內(nèi)置了容災(zāi)機(jī)制)、文件存儲(chǔ)(提供 POSIX 兼容的網(wǎng)絡(luò)文件系統(tǒng) CephFS,專注于高性能、大容量存儲(chǔ))、對(duì)象存儲(chǔ)(提供 RESTful 接口,也提供多種編程語(yǔ)言綁定。兼容 S3、Swift)。?? ?b. 支持自定義接口,支持多種語(yǔ)言驅(qū)動(dòng)。
RabbitMQ?? ??? ?消息中間件:它接受并轉(zhuǎn)發(fā)消息
( 1)客戶端連接到消息隊(duì)列服務(wù)器,打開一個(gè) channel(頻道)。
( 2)客戶端聲明一個(gè) exchange,并設(shè)置相關(guān)屬性。
( 3)客戶端聲明一個(gè) queue(隊(duì)列),并設(shè)置相關(guān)屬性。
( 4)客戶端使用 routing key,在 exchange 和 queue 之間建立好綁定關(guān)系。
( 5)客戶端投遞消息到 exchange。
( 6) exchange 接收到消息后,就根據(jù)消息的 key 和已經(jīng)設(shè)置的 binding,進(jìn)行消息路由,將消息投遞到一個(gè)或多個(gè)隊(duì)列里
Rabbitmq 的 metadata:元數(shù)據(jù)可以放在內(nèi)存或者磁盤中
Memcached 是一個(gè)開源的、高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng)。通過(guò)在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來(lái)減少讀取數(shù)據(jù)庫(kù)的次數(shù),從而提高網(wǎng)站訪問(wèn)速度,加速動(dòng)態(tài) WEB 應(yīng)用、減輕數(shù)據(jù)庫(kù)負(fù)載。
Memcached 緩存流程
1. 檢查客戶端請(qǐng)求的數(shù)據(jù)是否在 Memcache中,如果存在,直接將請(qǐng)求的數(shù)據(jù)返回,不在對(duì)數(shù)據(jù)進(jìn)行任何操作。
2. 如果請(qǐng)求的數(shù)據(jù)不在 Memcache 中,就去數(shù)據(jù)庫(kù)查詢,把從數(shù)據(jù)庫(kù)中獲取的數(shù)據(jù)返回給客戶端,同時(shí)把數(shù)據(jù)緩存一份 Memcache 中
3. 每次更新數(shù)據(jù)庫(kù)的同時(shí)更新 Memcache中的數(shù)據(jù)庫(kù)。確保數(shù)據(jù)信息一致性。
4. 當(dāng)分配給 Memcache 內(nèi)存空間用完后,會(huì)使用 LRU(least Recently Used ,最近最少使用 ) 策略加到其失效策略,失效的數(shù)據(jù)首先被替換掉,然后在替換掉最近未使用的數(shù)據(jù)。
服務(wù)器---PHY CPU(物理CPU)---PHY kernel 01 (物理內(nèi)核)---super thread 01(超線程)---vCPU
超分/復(fù)用比 ?可以分配的“總vCPU個(gè)數(shù)”和“總pCPU個(gè)數(shù)”之比
內(nèi)存復(fù)用 可以超額分配內(nèi)存給VM(虛擬機(jī)密度提升150%) ?內(nèi)存共享(只讀),寫時(shí)復(fù)制 ? ? ? 內(nèi)存置換 ? ? 內(nèi)存氣泡
Qos服務(wù)質(zhì)量
external_om(ssh登錄,對(duì)接FTP/SFTP,監(jiān)控主機(jī)狀態(tài)收集主機(jī)性能,系統(tǒng)備份)
external_api(inertnet訪問(wèn),VNC登錄,對(duì)接OBS)
external_tenant_data 租戶虛擬機(jī)與外部網(wǎng)絡(luò)通信的平面。
tunnel_bearing 租戶虛擬機(jī)所使用的VXLAN網(wǎng)絡(luò)所承載的系統(tǒng)平面
internal_base ?I層程序互通平面,所有主機(jī)上的i層程序基于此平面通信。(Internal_Base平面只支持64位掩碼)
outband_monitor ? FusionSphere OpenStack OM對(duì)服務(wù)器進(jìn)行監(jiān)控所需的網(wǎng)絡(luò)(帶外監(jiān)控平面)
storage_data0 ?內(nèi)部存儲(chǔ)平面,存儲(chǔ)數(shù)據(jù)時(shí)需要使用。可用于接入華為分布式塊存儲(chǔ)及其他存儲(chǔ)設(shè)備網(wǎng)絡(luò)
BMC Base 裸金屬
provision 裸金屬
權(quán)限管理方式為分角色(區(qū)分“操作權(quán)限”)、分租戶管理(區(qū)分“數(shù)據(jù)管理范圍”)
日志分為操作日志和運(yùn)行日志。每個(gè)組件輸出的操作日志和運(yùn)行日志大小分別配置為10M。當(dāng)日志文件達(dá)到10M后進(jìn)行壓縮歸檔(2~3點(diǎn))。每個(gè)組件對(duì)應(yīng)日志文件的歸檔數(shù)量默認(rèn)是20個(gè)。當(dāng)歸檔數(shù)量超出時(shí),自動(dòng)刪除最老的歸檔日志。
操作系統(tǒng)加固:1、關(guān)閉不必要的服務(wù),如屏蔽Telnet服務(wù)和FTP服務(wù)。?? ?2、加固SSH的服務(wù)。?? ?3、控制文件和目錄的訪問(wèn)權(quán)限。?? ?4、限制系統(tǒng)訪問(wèn)權(quán)限。?? ?5、管理用戶密碼。?? ??? ?6、記錄操作日志。?? ??? ?7、檢測(cè)系統(tǒng)異常。
GaussDB關(guān)系數(shù)據(jù)庫(kù)加固:1、遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)時(shí)支持加密傳輸。2、帳戶密碼加密保存。3、記錄數(shù)據(jù)庫(kù)的操作日志。4、設(shè)置高復(fù)雜度的帳戶密碼。 ?本地在線備份方式(凌晨2:00執(zhí)行備份腳本)和異地備份(第三方備份服務(wù)器)方式
安全組(Security Group)邏輯上的分組 ? ? 為同一個(gè)VPC內(nèi)具有相同安全保護(hù)需求并相互信任的彈性云服務(wù)器提供訪問(wèn)策略
FusionSphere包含:FusionSphere OpenStack、FusionStroage、FusionSphere OpenStack OM
獲取網(wǎng)設(shè)、軟件包、本地PC要求、FM虛擬機(jī)要求
安裝FusionOpenstack(安裝openstack主機(jī)、部署openstack服務(wù)、配置分庫(kù)節(jié)點(diǎn))
?? ?下電全部主機(jī)---PC上啟動(dòng)FusionSphere_OpenStack_InstallTool安裝工具---選擇語(yǔ)言和安裝包、驅(qū)動(dòng)包---選擇系統(tǒng)配置---本地PC引導(dǎo)安裝首節(jié)點(diǎn)(需要先設(shè)置主機(jī)從PXE啟動(dòng))30分鐘---首節(jié)點(diǎn)引導(dǎo)安裝其他主機(jī)(將其他待安裝的主機(jī)設(shè)置為從PXE啟動(dòng)并上電)
?? ? 配置基礎(chǔ)設(shè)置、AZ代理、DNS、NTP及高級(jí)配置---部署角色(簡(jiǎn)單類型:控制節(jié)點(diǎn)/計(jì)算節(jié)點(diǎn))---修改主機(jī)名稱---清除PXE網(wǎng)口配置
?? ? 配置分庫(kù)節(jié)點(diǎn)部署規(guī)模”達(dá)到1024主機(jī)/10000虛擬機(jī)及以上時(shí),需要新增擴(kuò)展控制節(jié)點(diǎn),,并且需要將gaussdb、rabbitmq分庫(kù)
加載驅(qū)動(dòng)軟件(Mellanox驅(qū)動(dòng)包、存儲(chǔ)多路徑包、Hi1822驅(qū)動(dòng)包、IBMA軟件包、inter驅(qū)動(dòng)包、信息收集項(xiàng)軟件包)
配置FusionOpenstack
加載Guest OS驅(qū)動(dòng)軟件、配置VNF計(jì)算節(jié)點(diǎn)流控參數(shù)
安裝FM(安裝OM虛擬機(jī)、配置與FS資源對(duì)接、配置FTP服務(wù)器、配置FS告警上報(bào)、配置磁盤類型、配置時(shí)間同步/時(shí)區(qū)、創(chuàng)建主機(jī)組、創(chuàng)建VDC/VPC、配置租戶注入文件配額、加載license)
VBS是安裝在用戶系統(tǒng)中的一個(gè)代理,當(dāng)用戶需要存放數(shù)據(jù)在分布式存儲(chǔ)中時(shí),VBS會(huì)先接收用戶的數(shù)據(jù),然后對(duì)用戶數(shù)據(jù)進(jìn)行切塊分區(qū)(一般會(huì)把數(shù)據(jù)分成1MB大小的數(shù)據(jù)分片。
?
?
?
| Keystone(鑒權(quán)管理) | Keystone是OpenStack框架中,負(fù)責(zé)身份驗(yàn)證、服務(wù)規(guī)則和服務(wù)令牌的功能,它實(shí)現(xiàn)了OpenStack的Identity API。 |
| Celiometer(度量監(jiān)控) | Celiometer對(duì)資源進(jìn)行計(jì)量和監(jiān)控。 |
| Glance(鏡像管理) | Glance提供虛擬機(jī)鏡像的查詢、上傳和下載服務(wù)。 |
| Nova(計(jì)算資源管理) | Nova負(fù)責(zé)虛擬機(jī)計(jì)算資源的管理,對(duì)存儲(chǔ)、鏡像和網(wǎng)絡(luò)資源進(jìn)行協(xié)調(diào)管理,及虛擬機(jī)、裸金屬資源對(duì)象生命周期管理功能。 |
| Neutron(網(wǎng)絡(luò)資源管理) | Neutron負(fù)責(zé)虛擬機(jī)的網(wǎng)絡(luò)資源,支撐虛擬機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā),為虛擬機(jī)分配端口資源、配置IP地址、配置二層互通資源(VLAN、VxLAN等)、提供三層路由。 |
| Heat(業(yè)務(wù)編排) | Heat可以根據(jù)定義的模板,通過(guò)調(diào)用OpenStack API來(lái)編排復(fù)雜的云應(yīng)用。 |
| Cinder(塊存儲(chǔ)管理) | Cinder為云平臺(tái)提供統(tǒng)一接口、按需分配的、持久化的塊存儲(chǔ)服務(wù),通過(guò)驅(qū)動(dòng)的方式接入不同種類的后端存儲(chǔ)。 |
| Swift(對(duì)象存儲(chǔ)管理) | Swift是可擴(kuò)展的冗余存儲(chǔ)系統(tǒng)。采用完全對(duì)稱、面向資源的分布式系統(tǒng)架構(gòu)設(shè)計(jì),所有組件都可擴(kuò)展,避免因單點(diǎn)失效而擴(kuò)散并影響整個(gè)系統(tǒng)運(yùn)行。 |
| Ironic(裸金屬服務(wù)器發(fā)放) | Ironic提供了一系列管理物理機(jī)的API接口,可以對(duì)“裸”操作系統(tǒng)的物理機(jī)進(jìn)行管理,從物理機(jī)上架安裝操作系統(tǒng)到物理機(jī)下架維修。 |
| Placement(計(jì)算資源池模型管理維護(hù)) | 提供統(tǒng)一的資源池模型管理維護(hù)功能,并配合Nova進(jìn)行資源對(duì)象調(diào)度操作。 |
| FusionSphere OpenStack OM | 提供云服務(wù)的運(yùn)維能力。 |
| 虛擬化池 | 通過(guò)KVM虛擬化技術(shù)將計(jì)算服務(wù)器資源虛擬化后納入統(tǒng)一的虛擬化池,接入FusionSphere OpenStack,供上層業(yè)務(wù)按需調(diào)度。 |
| 存儲(chǔ)資源池 | 為虛擬機(jī)提供存儲(chǔ)資源,分為本地存儲(chǔ)和后端存儲(chǔ)。FusionSphere OpenStack實(shí)現(xiàn)存儲(chǔ)資源從底層的磁盤到上層虛擬機(jī)存儲(chǔ)卷的逐層映射。 |
| 網(wǎng)絡(luò)資源池 | 網(wǎng)絡(luò)設(shè)備接入iMaster NCE-Fabric,提供網(wǎng)絡(luò)資源池。 |
?
總結(jié)
以上是生活随笔為你收集整理的开源openstack的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为 BeagleBone Black 安
- 下一篇: 购买二手DTX-1800注意事项