一、OpenStack初探
1.1 OpenStack簡介
OpenStack是一整套開源軟件項(xiàng)目的綜合蜘渣,它允許企業(yè)或服務(wù)提供者建立授舟、運(yùn)行自己的云計(jì)算和存儲(chǔ)設(shè)施塞弊。Rackspace與NASA是最初重要的兩個(gè)貢獻(xiàn)者肩碟,前者提供了“云文件”平臺(tái)代碼卷员,該平臺(tái)增強(qiáng)了OpenStack對(duì)象存儲(chǔ)部分的功能,而后者帶來了“Nebula”平臺(tái)形成了OpenStack其余的部分腾务。而今,OpenStack基金會(huì)已經(jīng)有150多個(gè)會(huì)員岩瘦,包括很多知名公司如“Canonical叙凡、DELL、Citrix”等。
1.2 OpenStack的幾大組件
1.2.1圖解各大組件之間關(guān)系
src="http://cdn.oldboyedu.com/wp-content/uploads/2016/02/wpid-631325ba70ea05d245906c576f3ef421_d1e1d1377e8365faa73252adddf150d2.png"
alt="" title="">
1.2.2談?wù)刼penstack的組件
?OpenStack認(rèn)證(keystone)Keystone為所有的OpenStack組件提供認(rèn)證和訪問策略服務(wù),它依賴自身REST(基于Identity API)系統(tǒng)進(jìn)行工作,主要對(duì)(但不限于)Swift冠胯、Glance、Nova等進(jìn)行認(rèn)證與授權(quán)。事實(shí)上舀瓢,授權(quán)通過對(duì)動(dòng)作消息來源者請(qǐng)求的合法性進(jìn)行鑒定Keystone采用兩種授權(quán)方式商架,一種基于用戶名/密碼,另一種基于令牌(Token)抠藕。除此之外,Keystone提供以下三種服務(wù):a.令牌服務(wù):含有授權(quán)用戶的授權(quán)信息b.目錄服務(wù):含有用戶合法操作的可用服務(wù)列表c.策略服務(wù):利用Keystone具體指定用戶或群組某些訪問權(quán)限
?
src="./C:/Users/Administrator/Desktop/openstack圖集/BY19F_QRRGYXAH(OLWI9A%U.png"
alt="" title="">
認(rèn)證服務(wù)組件
1)通過賓館對(duì)比keystone
User住賓館的人
Credentials身份證
Authentication認(rèn)證你的身份證
Token房卡
project組間
Service賓館可以提供的服務(wù)類別村刨,比如玄妈,飲食類枯饿,娛樂類
Endpoint具體的一種服務(wù),比如吃燒烤,打羽毛球
Role VIP等級(jí),VIP越高,享有越高的權(quán)限
2)keystone組件詳細(xì)說明
a.服務(wù)入口endpoint:如Nova、Swift和Glance一樣每個(gè)OpenStack服務(wù)都擁有一個(gè)指定的端口和專屬的URL,我們稱其為入口(endpoints)。
b.用戶user:Keystone授權(quán)使用者
注:代表一個(gè)個(gè)體骑祟,OpenStack以用戶的形式來授權(quán)服務(wù)給它們。用戶擁有證書(credentials)次企,且可能分配給一個(gè)或多個(gè)租戶怯晕。經(jīng)過驗(yàn)證后,會(huì)為每個(gè)單獨(dú)的租戶提供一個(gè)特定的令牌缸棵。
c.服務(wù)service:總體而言舟茶,任何通過Keystone進(jìn)行連接或管理的組件都被稱為服務(wù)。舉個(gè)例子堵第,我們可以稱Glance為Keystone的服務(wù)吧凉。
d.角色role:為了維護(hù)安全限定,就內(nèi)特定用戶可執(zhí)行的操作而言踏志,該用戶關(guān)聯(lián)的角色是非常重要的阀捅。注:一個(gè)角色是應(yīng)是某個(gè)租戶的使用權(quán)限集合,以允許某個(gè)指定用戶訪問或使用特定操作针余。角色是使用權(quán)限的邏輯分組饲鄙,它使得通用的權(quán)限可以簡單地分組并綁定到與某個(gè)指定租戶相關(guān)的用戶。
e.租間project:租間指的是具有全部服務(wù)入口并配有特定成員角色的一個(gè)項(xiàng)目圆雁。注:一個(gè)租間映射到一個(gè)Nova的“project-id”忍级,在對(duì)象存儲(chǔ)中,一個(gè)租間可以有多個(gè)容器伪朽。根據(jù)不同的安裝方式轴咱,一個(gè)租間可以代表一個(gè)客戶、帳號(hào)驱负、組織或項(xiàng)目嗦玖。
?OpenStack Dashboard界面(horizon)Horizon是一個(gè)用以管理、控制OpenStack服務(wù)的Web控制面板跃脊,它可以管理實(shí)例宇挫、鏡像、創(chuàng)建密匙對(duì)酪术,對(duì)實(shí)例添加卷器瘪、操作Swift容器等翠储。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實(shí)例橡疼≡總之,Horizon具有如下一些特點(diǎn):a.實(shí)例管理:創(chuàng)建欣除、終止實(shí)例住拭,查看終端日志,VNC連接历帚,添加卷等b.訪問與安全管理:創(chuàng)建安全群組滔岳,管理密匙對(duì),設(shè)置浮動(dòng)IP等c.偏好設(shè)定:對(duì)虛擬硬件模板可以進(jìn)行不同偏好設(shè)定d.鏡像管理:編輯或刪除鏡像e.查看服務(wù)目錄f.管理用戶挽牢、配額及項(xiàng)目用途g.用戶管理:創(chuàng)建用戶等h.卷管理:創(chuàng)建卷和快照i.對(duì)象存儲(chǔ)處理:創(chuàng)建谱煤、刪除容器和對(duì)象j.為項(xiàng)目下載環(huán)境變量
?OpenStack nova
圖解nova
alt="" title="">
API:負(fù)責(zé)接收和響應(yīng)外部請(qǐng)求,支持OpenStackAPI禽拔,EC2API
nova-api組件實(shí)現(xiàn)了RESTfulAPI功能刘离,是外部訪問Nova的唯一途徑,接收外部的請(qǐng)求并通過Message Queue將請(qǐng)求發(fā)送給其他服務(wù)組件睹栖,同時(shí)也兼容EC2API硫惕,所以可以用EC2的管理工具對(duì)nova進(jìn)行日常管理
Cert:負(fù)責(zé)身份認(rèn)證
Scheduler:用于云主機(jī)調(diào)度
Nova Scheduler模塊在openstack中的作用是決策虛擬機(jī)創(chuàng)建在哪個(gè)主機(jī)(計(jì)算節(jié)點(diǎn)),一般會(huì)根據(jù)過濾計(jì)算節(jié)點(diǎn)或者通過加權(quán)的方法調(diào)度計(jì)算節(jié)點(diǎn)來創(chuàng)建虛擬機(jī)磨淌。
1)過濾
首先得到未經(jīng)過過濾的主機(jī)列表疲憋,然后根據(jù)過濾屬性,選擇服務(wù)條件的計(jì)算節(jié)點(diǎn)主機(jī)
src="http://cdn.oldboyedu.com/wp-content/uploads/2016/02/wpid-631325ba70ea05d245906c576f3ef421_1450847923143JSWIQCSGKY3_2422DYC1S_24BG9.png"
alt="" title="">
2)調(diào)度
經(jīng)過過濾后梁只,需要對(duì)主機(jī)進(jìn)行權(quán)值的計(jì)算缚柳,根據(jù)策略選擇相應(yīng)的某一臺(tái)主機(jī)(對(duì)于每一個(gè)要?jiǎng)?chuàng)建的虛擬機(jī)而言)
src="http://cdn.oldboyedu.com/wp-content/uploads/2016/02/wpid-631325ba70ea05d245906c576f3ef421_DQ@_605Y_7B92_25_5BK_7DSMN_5BWM_5DRQ4.png"
alt="" title="">
注:Openstack默認(rèn)不支持指定的計(jì)算節(jié)點(diǎn)創(chuàng)建虛擬機(jī)
你可以得到更多nova的知識(shí)==>>Nova過濾調(diào)度器
Conductor:計(jì)算節(jié)點(diǎn)訪問,數(shù)據(jù)的中間件
Consloeauth:用于控制臺(tái)的授權(quán)認(rèn)證
Novncproxy:VNC代理
?OpenStack對(duì)象存儲(chǔ)(swift)Swift為OpenStack提供一種分布式搪锣、持續(xù)虛擬對(duì)象存儲(chǔ)秋忙,它類似于Amazon Web Service的S3簡單存儲(chǔ)服務(wù)。Swift具有跨節(jié)點(diǎn)百級(jí)對(duì)象的存儲(chǔ)能力构舟。Swift內(nèi)建冗余和失效備援管理灰追,也能夠處理歸檔和媒體流,特別是對(duì)大數(shù)據(jù)(千兆字節(jié))和大容量(多對(duì)象數(shù)量)的測度非常高效狗超。
swift功能及特點(diǎn)
?海量對(duì)象存儲(chǔ)
?大文件(對(duì)象)存儲(chǔ)
?數(shù)據(jù)冗余管理
?歸檔能力—–處理大數(shù)據(jù)集
?為虛擬機(jī)和云應(yīng)用提供數(shù)據(jù)容器
?處理流媒體
?對(duì)象安全存儲(chǔ)
?備份與歸檔
?良好的可伸縮性
Swift的組件
?Swift賬戶
?Swift容器
?Swift對(duì)象
?Swift代理
?Swift RING
Swift代理服務(wù)器
用戶都是通過Swift-API與代理服務(wù)器進(jìn)行交互弹澎,代理服務(wù)器正是接收外界請(qǐng)求的門衛(wèi),它檢測合法的實(shí)體位置并路由它們的請(qǐng)求努咐。
此外苦蒿,代理服務(wù)器也同時(shí)處理實(shí)體失效而轉(zhuǎn)移時(shí),故障切換的實(shí)體重復(fù)路由請(qǐng)求渗稍。
Swift對(duì)象服務(wù)器
對(duì)象服務(wù)器是一種二進(jìn)制存儲(chǔ)佩迟,它負(fù)責(zé)處理本地存儲(chǔ)中的對(duì)象數(shù)據(jù)的存儲(chǔ)团滥、檢索和刪除。對(duì)象都是文件系統(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è)容器中的所有對(duì)象碟绑,默認(rèn)對(duì)象列表將存儲(chǔ)為SQLite文件(譯者注:也可以修改為MySQL,安裝中就是以MySQL為例)茎匠。容器服務(wù)器也會(huì)統(tǒng)計(jì)容器中包含的對(duì)象數(shù)量及容器的存儲(chǔ)空間耗費(fèi)格仲。
Swift賬戶服務(wù)器
賬戶服務(wù)器與容器服務(wù)器類似,將列出容器中的對(duì)象诵冒。
Ring(索引環(huán))
Ring容器記錄著Swift中物理存儲(chǔ)對(duì)象的位置信息凯肋,它是真實(shí)物理存儲(chǔ)位置的實(shí)體名的虛擬映射,類似于查找及定位不同集群的實(shí)體真實(shí)物理位置的索引服務(wù)汽馋。這里所謂的實(shí)體指賬戶侮东、容器、對(duì)象豹芯,它們都擁有屬于自己的不同的Rings悄雅。
?OpenStack塊存儲(chǔ)(cinder)API service:負(fù)責(zé)接受和處理Rest請(qǐng)求,并將請(qǐng)求放入RabbitMQ隊(duì)列铁蹈。Cinder提供Volume
API V2Scheduler service:響應(yīng)請(qǐng)求宽闲,讀取或?qū)懴驂K存儲(chǔ)數(shù)據(jù)庫為維護(hù)狀態(tài),通過消息隊(duì)列機(jī)制與其他進(jìn)程交互握牧,或直接與上層塊存儲(chǔ)提供的硬件或軟件交互容诬,通過driver結(jié)構(gòu),他可以與中隊(duì)的存儲(chǔ) 提供者進(jìn)行交互Volume
service:該服務(wù)運(yùn)行在存儲(chǔ)節(jié)點(diǎn)上沿腰,管理存儲(chǔ)空間览徒。每個(gè)存儲(chǔ)節(jié)點(diǎn)都有一個(gè)Volume Service,若干個(gè)這樣的存儲(chǔ)節(jié)點(diǎn)聯(lián)合起來可以構(gòu)成一個(gè)存儲(chǔ)資源池矫俺。為了支持不同類型和型號(hào)的存儲(chǔ)
?OpenStack Image service (glance)glance主要有三個(gè)部分構(gòu)成:glance-api吱殉,glance-registry以及image storeglance-api:接受云系統(tǒng)鏡像的創(chuàng)建掸冤,刪除,讀取請(qǐng)求glance-registry:云系統(tǒng)的鏡像注冊(cè)服務(wù)
?OpenStack網(wǎng)絡(luò)(neutron)這里就不詳細(xì)介紹了友雳,后面會(huì)有詳細(xì)的講解