OpenStack构架知识梳理
改編自:https://www.cnblogs.com/klb561/p/8660264.html
OpenStackd包括計(jì)算(Nova),對象存儲(Swift),鏡像服務(wù)(Glance)的集合。
Openstack的詳細(xì)構(gòu)架圖
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
整個(gè)OpenStack是由控制節(jié)點(diǎn),計(jì)算節(jié)點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn),存儲節(jié)點(diǎn)四大部分組成。
控制節(jié)點(diǎn) 負(fù)責(zé) 虛擬機(jī)的建立,遷移,網(wǎng)絡(luò)分配,存儲分配等等 計(jì)算節(jié)點(diǎn) 負(fù)責(zé) 虛擬機(jī)運(yùn)行 網(wǎng)絡(luò)節(jié)點(diǎn) 負(fù)責(zé) 對外網(wǎng)絡(luò)與內(nèi)網(wǎng)絡(luò)之間的通信 存儲節(jié)點(diǎn) 負(fù)責(zé) 對虛擬機(jī)的額外存儲管理等等控制節(jié)點(diǎn)架構(gòu):
控制節(jié)點(diǎn)包括以下服務(wù)
管理支持服務(wù)基礎(chǔ)管理服務(wù)擴(kuò)展管理服務(wù)? ?1)管理支持服務(wù)包含MySQL與Qpid兩個(gè)服務(wù)
MySQL #數(shù)據(jù)庫作為基礎(chǔ)/擴(kuò)展服務(wù)產(chǎn)生的數(shù)據(jù)存放的地方 Qpid #消息代理(也稱消息中間件)為其他各種服務(wù)之間提供了統(tǒng)一的消息通信服務(wù)? ?2)基礎(chǔ)管理服務(wù)包含Keystone,Glance,Nova,Neutron,Horizon五個(gè)服務(wù)
Keystone:認(rèn)證管理服務(wù),提供了其余所有組件的認(rèn)證信息/令牌的管理,創(chuàng)建,修改等等,使用MySQL作為統(tǒng)一的數(shù)據(jù)庫 Glance:鏡像管理服務(wù),提供了對虛擬機(jī)部署的時(shí)候所能提供的鏡像的管理,包含鏡像的導(dǎo)入,格式,以及制作相應(yīng)的模板 Nova:計(jì)算管理服務(wù),提供了對計(jì)算節(jié)點(diǎn)的Nova的管理,使用Nova-API進(jìn)行通信 Neutron:網(wǎng)絡(luò)管理服務(wù),提供了對網(wǎng)絡(luò)節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)涔芾?#xff0c;同時(shí)提供Neutron在Horizon的管理面板 Horizon:控制臺服務(wù),提供了以Web的形式對所有節(jié)點(diǎn)的所有服務(wù)的管理,通常把該服務(wù)稱為DashBoard? ?3)擴(kuò)展管理服務(wù)包含Cinder,Swift,Trove,Heat,Centimeter五個(gè)服務(wù)
Cinder:提供管理存儲節(jié)點(diǎn)的Cinder相關(guān),同時(shí)提供Cinder在Horizon中的管理面板 Swift:提供管理存儲節(jié)點(diǎn)的Swift相關(guān),同時(shí)提供Swift在Horizon中的管理面板 Trove:提供管理數(shù)據(jù)庫節(jié)點(diǎn)的Trove相關(guān),同時(shí)提供Trove在Horizon中的管理面板 Heat:提供了基于模板來實(shí)現(xiàn)云環(huán)境中資源的初始化,依賴關(guān)系處理,部署等基本操作,也可以解決自動(dòng)收縮,負(fù)載均衡等高級特性。 Centimeter:提供對物理資源以及虛擬資源的監(jiān)控,并記錄這些數(shù)據(jù),對該數(shù)據(jù)進(jìn)行分析,在一定條件下觸發(fā)相應(yīng)動(dòng)作控制節(jié)點(diǎn)一般來說只需要一個(gè)網(wǎng)絡(luò)端口用于通信/管理各個(gè)節(jié)點(diǎn)
網(wǎng)絡(luò)節(jié)點(diǎn)架構(gòu)
網(wǎng)絡(luò)節(jié)點(diǎn)僅包含Neutron服務(wù)
Neutron:負(fù)責(zé)管理私有網(wǎng)段與公有網(wǎng)段的通信,以及管理虛擬機(jī)網(wǎng)絡(luò)之間的通信/拓?fù)?#xff0c;管理虛擬機(jī)之上的防火等等
網(wǎng)絡(luò)節(jié)點(diǎn)包含三個(gè)網(wǎng)絡(luò)端口
eth0:用于與控制節(jié)點(diǎn)進(jìn)行通信 eth1:用于與除了控制節(jié)點(diǎn)之外的計(jì)算/存儲節(jié)點(diǎn)之間的通信 eth2:用于外部的虛擬機(jī)與相應(yīng)網(wǎng)絡(luò)之間的通信計(jì)算節(jié)點(diǎn)架構(gòu)
計(jì)算節(jié)點(diǎn)包含Nova,Neutron,Telemeter三個(gè)服務(wù)
? 1)基礎(chǔ)服務(wù)
Nova:提供虛擬機(jī)的創(chuàng)建,運(yùn)行,遷移,快照等各種圍繞虛擬機(jī)的服務(wù),并提供API與控制節(jié)點(diǎn)對接,由控制節(jié)點(diǎn)下發(fā)任務(wù)
Neutron:提供計(jì)算節(jié)點(diǎn)與網(wǎng)絡(luò)節(jié)點(diǎn)之間的通信服務(wù)
? 2)擴(kuò)展服務(wù)
Telmeter:提供計(jì)算節(jié)點(diǎn)的監(jiān)控代理,將虛擬機(jī)的情況反饋給控制節(jié)點(diǎn),是Centimeter的代理服務(wù)
計(jì)算節(jié)點(diǎn)包含最少兩個(gè)網(wǎng)絡(luò)端口
eth0:與控制節(jié)點(diǎn)進(jìn)行通信,受控制節(jié)點(diǎn)統(tǒng)一調(diào)配 eth1:與網(wǎng)絡(luò)節(jié)點(diǎn),存儲節(jié)點(diǎn)進(jìn)行通信存儲節(jié)點(diǎn)架構(gòu)
存儲節(jié)點(diǎn)包含Cinder,Swift等服務(wù)
Cinder:塊存儲服務(wù),簡單來說,就是虛擬出一塊磁盤,可以掛載到相應(yīng)的虛擬機(jī)之上,不受文件系統(tǒng)等因素影響,就像是新加了一塊硬盤,可以完成對磁盤的任何操作,包括掛載,卸載,格式化,轉(zhuǎn)換文件系統(tǒng)等等操作。
Swift:對象存儲服務(wù),提供相應(yīng)的對象存儲,簡單來說,就是虛擬出一塊磁盤空間,可以在這個(gè)空間當(dāng)中存放文件,也僅僅只能存放文件,不能進(jìn)行格式化,轉(zhuǎn)換文件系統(tǒng),大多應(yīng)用于云磁盤/文件
存儲節(jié)點(diǎn)包含最少兩個(gè)網(wǎng)絡(luò)接口
eth0:與控制節(jié)點(diǎn)進(jìn)行通信,接受控制節(jié)點(diǎn)任務(wù),受控制節(jié)點(diǎn)統(tǒng)一調(diào)配 eth1:與計(jì)算/網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行通信,完成控制節(jié)點(diǎn)下發(fā)的各類任務(wù)----------------------------------------------------------------------------------------------------------------------------------------------
Openstack各個(gè)組件的作用及關(guān)系
Openstack有如下組件:
Nova #計(jì)算服務(wù) Neutron #網(wǎng)絡(luò)服務(wù) Swift #對象存儲服務(wù) Cinder #塊存儲服務(wù) Glance #鏡像服務(wù) Keystone #認(rèn)證服務(wù) Horizon #UI服務(wù) Ceilometer #監(jiān)控服務(wù) Heat #集群服務(wù) Trove #數(shù)據(jù)庫服務(wù)組件間的關(guān)系圖如下:
OpenStack認(rèn)證服務(wù)(Keystone)
Keystone為所有的OpenStack組件提供認(rèn)證和訪問策略服務(wù),它依賴自身REST(基于Identity API)系統(tǒng)進(jìn)行工作,主要對(但不限于)Swift、Glance、Nova等進(jìn)行認(rèn)證與授權(quán)。事實(shí)上,授權(quán)通過對動(dòng)作消息來源者請求的合法性進(jìn)行鑒定。下圖顯示了身份認(rèn)證服務(wù)流程:
?
Keystone采用兩種授權(quán)方式
基于用戶名/密碼基于令牌(Token)除此之外,Keystone提供以下三種服務(wù):
令牌服務(wù):含有授權(quán)用戶的授權(quán)信息目錄服務(wù):含有用戶合法操作的可用服務(wù)列表策略服務(wù):利用Keystone具體指定用戶或群組某些訪問權(quán)限keystone認(rèn)證服務(wù)注意點(diǎn):
服務(wù)入口:如Nova、Swift和Glance一樣每個(gè)OpenStack服務(wù)都擁有一個(gè)指定的端口和專屬的URL,我們稱其為入口(endpoints)。區(qū)位:在某個(gè)數(shù)據(jù)中心,一個(gè)區(qū)位具體指定了一處物理位置。在典型的云架構(gòu)中,如果不是所有的服務(wù)都訪問分布式數(shù)據(jù)中心或服務(wù)器的話,則也稱其為區(qū)位。用戶:Keystone授權(quán)使用者PS:代表一個(gè)個(gè)體,OpenStack以用戶的形式來授權(quán)服務(wù)給它們。用戶擁有證書(credentials),且可能分配給一個(gè)或多個(gè)租戶。經(jīng)過驗(yàn)證后,會(huì)為每個(gè)單獨(dú)的租戶提供一個(gè)特定的令牌。服務(wù):總體而言,任何通過Keystone進(jìn)行連接或管理的組件都被稱為服務(wù)。舉個(gè)例子,我們可以稱Glance為Keystone的服務(wù)。角色:為了維護(hù)安全限定,就云內(nèi)特定用戶可執(zhí)行的操作而言,該用戶關(guān)聯(lián)的角色是非常重要的。PS:一個(gè)角色是應(yīng)用于某個(gè)租戶的使用權(quán)限集合,以允許某個(gè)指定用戶訪問或使用特定操作。角色是使用權(quán)限的邏輯分組,它使得通用的權(quán)限可以簡單地分組并綁定到與某個(gè)指定租戶相關(guān)的用戶。租間:租間指的是具有全部服務(wù)入口并配有特定成員角色的一個(gè)項(xiàng)目。PS:一個(gè)租間映射到一個(gè)Nova的“project-id”,在對象存儲中,一個(gè)租間可以有多個(gè)容器。根據(jù)不同的安裝方式,一個(gè)租間可以代表一個(gè)客戶、帳號、組織或項(xiàng)目。OpenStack計(jì)算設(shè)施----Nova
Nova是OpenStack計(jì)算的彈性控制器。OpenStack云實(shí)例生命期所需的各種動(dòng)作都將由Nova進(jìn)行處理和支撐,這就意味著Nova以管理平臺的身份登場,負(fù)責(zé)管理整個(gè)云的計(jì)算資源、網(wǎng)絡(luò)、授權(quán)及測度。雖然Nova本身并不提供任何虛擬能力,但是它將使用libvirt API與虛擬機(jī)的宿主機(jī)進(jìn)行交互。Nova通過Web服務(wù)API來對外提供處理接口,而且這些接口與Amazon的Web服務(wù)接口是兼容的。
功能及特點(diǎn):
實(shí)例生命周期管理 計(jì)算資源管理 網(wǎng)絡(luò)與授權(quán)管理 基于REST的API 異步連續(xù)通信 支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-VNova彈性云(OpenStack計(jì)算部件)包含以下主要部分:
API Server(nova-api) 消息隊(duì)列(rabbit-mq server) 運(yùn)算工作站(nova-compute) 網(wǎng)絡(luò)控制器(nova-network) 卷管理(nova-volume) 調(diào)度器(nova-scheduler)解釋如下:
1)API服務(wù)器(nova-api)
API服務(wù)器提供了云設(shè)施與外界交互的接口,它是外界用戶對云實(shí)施管理的唯一通道。通過使用web服務(wù)來調(diào)用各種EC2的API,接著API服務(wù)器便通過消息隊(duì)列把請求送達(dá)至云內(nèi)目標(biāo)設(shè)施進(jìn)行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。
2)消息隊(duì)列(Rabbit MQ Server)
OpenStack內(nèi)部在遵循AMQP(高級消息隊(duì)列協(xié)議)的基礎(chǔ)上采用消息隊(duì)列進(jìn)行通信。Nova對請求應(yīng)答進(jìn)行異步調(diào)用,當(dāng)請求接收后便則立即觸發(fā)一個(gè)回調(diào)。由于使用了異步通信,不會(huì)有用戶的動(dòng)作被長置于等待狀態(tài)。例如,啟動(dòng)一個(gè)實(shí)例或上傳一份鏡像的過程較為耗時(shí),API調(diào)用就將等待返回結(jié)果而不影響其它操作,在此異步通信起到了很大作用,使整個(gè)系統(tǒng)變得更加高效。
3)調(diào)度器(nova-scheduler)
調(diào)度器負(fù)責(zé)把nova-API調(diào)用送達(dá)給目標(biāo)。調(diào)度器以名為“nova-schedule”的守護(hù)進(jìn)程方式運(yùn)行,并根據(jù)調(diào)度算法從可用資源池中恰當(dāng)?shù)剡x擇運(yùn)算服務(wù)器。有很多因素都可以影響調(diào)度結(jié)果,比如負(fù)載、內(nèi)存、子節(jié)點(diǎn)的遠(yuǎn)近、CPU架構(gòu)等等。強(qiáng)大的是nova調(diào)度器采用的是可插入式架構(gòu)。
目前nova調(diào)度器使用了幾種基本的調(diào)度算法:
隨機(jī)化:主機(jī)隨機(jī)選擇可用節(jié)點(diǎn);可用化:與隨機(jī)相似,只是隨機(jī)選擇的范圍被指定;簡單化:應(yīng)用這種方式,主機(jī)選擇負(fù)載最小者來運(yùn)行實(shí)例。負(fù)載數(shù)據(jù)可以從別處獲得,如負(fù)載均衡服務(wù)器。4)運(yùn)算工作站(nova-compute)
運(yùn)算工作站的主要任務(wù)是管理實(shí)例的整個(gè)生命周期。他們通過消息隊(duì)列接收請求并執(zhí)行,從而對實(shí)例進(jìn)行各種操作。在典型實(shí)際生產(chǎn)環(huán)境下,會(huì)架設(shè)許多運(yùn)算工作站,根據(jù)調(diào)度算法,一個(gè)實(shí)例可以在可用的任意一臺運(yùn)算工作站上部署。
5)網(wǎng)絡(luò)控制器(nova-network)
網(wǎng)絡(luò)控制器處理主機(jī)的網(wǎng)絡(luò)配置,例如IP地址分配,配置項(xiàng)目VLAN,設(shè)定安全群組以及為計(jì)算節(jié)點(diǎn)配置網(wǎng)絡(luò)。
6)卷工作站(nova-volume)
卷工作站管理基于LVM的 實(shí)例卷,它能夠?yàn)橐粋€(gè)實(shí)例創(chuàng)建、刪除、附加卷,也可以從一個(gè)實(shí)例中分離卷。卷管理為何如此重要?因?yàn)樗峁┝艘环N保持實(shí)例持續(xù)存儲的手段,比如當(dāng)結(jié)束一個(gè) 實(shí)例后,根分區(qū)如果是非持續(xù)化的,那么對其的任何改變都將丟失。可是,如果從一個(gè)實(shí)例中將卷分離出來,或者為這個(gè)實(shí)例附加上卷的話,即使實(shí)例被關(guān)閉,數(shù)據(jù) 仍然保存其中。這些數(shù)據(jù)可以通過將卷附加到原實(shí)例或其他實(shí)例的方式而重新訪問。
因此,為了日后訪問,重要數(shù)據(jù)務(wù)必要寫入卷中。這種應(yīng)用對于數(shù)據(jù)服務(wù)器實(shí)例的存儲而言,尤為重要。
OpenStack鏡像服務(wù)器----Glance
OpenStack鏡像服務(wù)器是一套虛擬機(jī)鏡像發(fā)現(xiàn)、注冊、檢索系統(tǒng),我們可以將鏡像存儲到以下任意一種存儲中:
本地文件系統(tǒng)(默認(rèn)) S3直接存儲 S3對象存儲(作為S3訪問的中間渠道) OpenStack對象存儲等等。功能及特點(diǎn):
提供鏡像相關(guān)服務(wù)。
Glance構(gòu)件:
1)Glance-API: 主要負(fù)責(zé)接收響應(yīng)鏡像管理命令的Restful請求,分析消息請求信息并分發(fā)其所帶的命令(如新增,刪除,更新等)。默認(rèn)綁定端口是9292。 2)Glance-Registry: 主要負(fù)責(zé)接收響應(yīng)鏡像元數(shù)據(jù)命令的Restful請求。分析消息請求信息并分發(fā)其所帶的命令(如獲取元數(shù)據(jù),更新元數(shù)據(jù)等)。默認(rèn)綁定的端口是9191。OpenStack存儲設(shè)施----Swift
Swift為OpenStack提供一種分布式、持續(xù)虛擬對象存儲,它類似于Amazon Web Service的S3簡單存儲服務(wù)。Swift具有跨節(jié)點(diǎn)百級對象的存儲能力。Swift內(nèi)建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數(shù)據(jù)(千兆字節(jié))和大容量(多對象數(shù)量)的測度非常高效。
swift功能及特點(diǎn):
海量對象存儲 大文件(對象)存儲 數(shù)據(jù)冗余管理 歸檔能力-----處理大數(shù)據(jù)集 為虛擬機(jī)和云應(yīng)用提供數(shù)據(jù)容器 處理流媒體 對象安全存儲 備份與歸檔 良好的可伸縮性Swift組件
Swift賬戶
Swift容器
Swift對象
Swift代理
Swift RING
Swift賬戶服務(wù)器
賬戶服務(wù)器與容器服務(wù)器類似,將列出容器中的對象。
Swift對象服務(wù)器
對象服務(wù)器是一種二進(jìn)制存儲,它負(fù)責(zé)處理本地存儲中的對象數(shù)據(jù)的存儲、檢索和刪除。對象都是文件系統(tǒng)中存放的典型的二進(jìn)制文件,具有擴(kuò)展文件屬性的元數(shù)據(jù)(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運(yùn)行良好。不過,XFS被認(rèn)為是當(dāng)前最好的選擇。
Swift容器服務(wù)器
容器服務(wù)器將列出一個(gè)容器中的所有對象,默認(rèn)對象列表將存儲為SQLite文件(譯者注:也可以修改為MySQL,安裝中就是以MySQL為例)。容器服務(wù)器也會(huì)統(tǒng)計(jì)容器中包含的對象數(shù)量及容器的存儲空間耗費(fèi)。
Swift代理服務(wù)器
用戶都是通過Swift-API與代理服務(wù)器進(jìn)行交互,代理服務(wù)器正是接收外界請求的門衛(wèi),它檢測合法的實(shí)體位置并路由它們的請求。
此外,代理服務(wù)器也同時(shí)處理實(shí)體失效而轉(zhuǎn)移時(shí),故障切換的實(shí)體重復(fù)路由請求。
?
Ring(索引環(huán))
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實(shí)物理存儲位置的實(shí)體名的虛擬映射,類似于查找及定位不同集群的實(shí)體真實(shí)物理位置的索引服務(wù)。這里所謂的實(shí)體指賬戶、容器、對象,它們都擁有屬于自己的不同的Rings。
OpenStack管理的Web接口----Horizon
Horizon是一個(gè)用以管理、控制OpenStack服務(wù)的Web控制面板,它可以管理實(shí)例、鏡像、創(chuàng)建密匙對,對實(shí)例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實(shí)例。
總之,Horizon具有如下一些特點(diǎn):
實(shí)例管理:創(chuàng)建、終止實(shí)例,查看終端日志,VNC連接,添加卷等 訪問與安全管理:創(chuàng)建安全群組,管理密匙對,設(shè)置浮動(dòng)IP等 偏好設(shè)定:對虛擬硬件模板可以進(jìn)行不同偏好設(shè)定 鏡像管理:編輯或刪除鏡像 查看服務(wù)目錄 管理用戶、配額及項(xiàng)目用途 用戶管理:創(chuàng)建用戶等 卷管理:創(chuàng)建卷和快照 對象存儲處理:創(chuàng)建、刪除容器和對象 為項(xiàng)目下載環(huán)境變量轉(zhuǎn)載于:https://www.cnblogs.com/linuxws/p/10689071.html
總結(jié)
以上是生活随笔為你收集整理的OpenStack构架知识梳理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HBTS(HBOI) 2019 真实退役
- 下一篇: Windows系统CMD下常用命令