OpenStack云計算快速入門教程(1)之OpenStack及其構(gòu)成簡介
該教程基于Ubuntu12.04版,它將幫助讀者建立起一份OpenStack最小化安裝。我是五岳之巔,翻譯中多采用意譯法,所以個別詞與原版有出入,請大家諒解。我不是英語專業(yè),我覺著搞技術(shù)最重要的就是理解,而不是四級和考研中那煩人的英譯漢,所以我的目標(biāo)是忠于原意、通俗表達(dá),Over。英文原文在這里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,請將ex@***中的@去掉,CU屏蔽的F詞),下面步入正題:
第一部分 OpenStack及其構(gòu)成簡介
一、云計算
云計算是一種計算模型,它將諸如運算能力、存儲、網(wǎng)絡(luò)和軟件等資源抽象成為服務(wù),以便讓用戶通過互聯(lián)網(wǎng)遠(yuǎn)程享用,付費的形式也如同傳統(tǒng)公共服務(wù)設(shè)施一樣。因需而定、提供方便、動態(tài)改變和無限的虛擬化擴展能力是云計算的幾個重要特征。
不同的“云”對應(yīng)著不同的基礎(chǔ)設(shè)施。下面是三種廣義的“云”:
基礎(chǔ)設(shè)施即服務(wù)(IaaS)
平臺即服務(wù)(PaaS)
軟件即服務(wù)(SaaS)
譯者注:Open為開放之意,Stack則是堆砌,OpenStack合起來如其名,就是許多Open的Softwares堆積的集合,但1 + 1 > 2,系統(tǒng)的功能更為強大。
二、OpenStack
(一)OpenStack概要
OpenStack是一整套開源軟件項目的綜合,它允許企業(yè)或服務(wù)提供者建立、運行自己的云計算和存儲設(shè)施。Rackspace與NASA是最初重要的兩個貢獻者,前者提供了“云文件”平臺代碼,該平臺增強了OpenStack對象存儲部分的功能,而后者帶來了“Nebula”平臺形成了OpenStack其余的部分。而今,OpenStack基金會已經(jīng)有150多個會員,包括很多知名公司如“Canonical、DELL、Citrix”等。
以下是5個OpenStack的重要構(gòu)成部分:
Nova - 計算服務(wù)
Swift - 存儲服務(wù)
Glance - 鏡像服務(wù)
Keystone - 認(rèn)證服務(wù)
Horizon - UI服務(wù)
圖1 OpenStack基本構(gòu)架
下圖展示了Keystone、Dashboard二者與其它OpenStack部分的交互。
(二)OpenStack計算設(shè)施----Nova
Nova是OpenStack計算的彈性控制器。OpenStack云實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平臺的身份登場,負(fù)責(zé)管理整個云的計算資源、網(wǎng)絡(luò)、授權(quán)及測度。雖然Nova本身并不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務(wù)API來對外提供處理接口,而且這些接口與Amazon的Web服務(wù)接口是兼容的。
功能及特點
實例生命周期管理
計算資源管理
網(wǎng)絡(luò)與授權(quán)管理
基于REST的API
異步連續(xù)通信
支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack計算部件
Nova彈性云包含以下主要部分:
API Server(nova-api)
消息隊列(rabbit-mq server)
運算工作站(nova-compute)
網(wǎng)絡(luò)控制器(nova-network)
卷管理(nova-volume)
調(diào)度器(nova-scheduler)
API服務(wù)器(nova-api)
API服務(wù)器提供了云設(shè)施與外界交互的接口,它是外界用戶對云實施管理的唯一通道。通過使用web服務(wù)來調(diào)用各種EC2的API,接著API服務(wù)器便通過消息隊列把請求送達(dá)至云內(nèi)目標(biāo)設(shè)施進行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。
消息隊列(Rabbit MQ Server)
OpenStack內(nèi)部在遵循AMQP(高級消息隊列協(xié)議)的基礎(chǔ)上采用消息隊列進行通信。Nova對請求應(yīng)答進行異步調(diào)用,當(dāng)請求接收后便則立即觸發(fā)一個回調(diào)。由于使用了異步通信,不會有用戶的動作被長置于等待狀態(tài)。例如,啟動一個實例或上傳一份鏡像的過程較為耗時,API調(diào)用就將等待返回結(jié)果而不影響其它操作,在此異步通信起到了很大作用,使整個系統(tǒng)變得更加高效。
運算工作站(nova-compute)
運算工作站的主要任務(wù)是管理實例的整個生命周期。他們通過消息隊列接收請求并執(zhí)行,從而對實例進行各種操作。在典型實際生產(chǎn)環(huán)境下,會架設(shè)許多運算工作站,根據(jù)調(diào)度算法,一個實例可以在可用的任意一臺運算工作站上部署。
網(wǎng)絡(luò)控制器(nova-network)
網(wǎng)絡(luò)控制器處理主機的網(wǎng)絡(luò)配置,例如IP地址分配,配置項目VLAN,設(shè)定安全群組以及為計算節(jié)點配置網(wǎng)絡(luò)。
卷工作站(nova-volume)
卷工作站管理基于LVM的實例卷,它能夠為一個實例創(chuàng)建、刪除、附加卷,也可以從一個實例中分離卷。卷管理為何如此重要?因為它提供了一種保持實例持續(xù)存儲的手段,比如當(dāng)結(jié)束一個實例后,根分區(qū)如果是非持續(xù)化的,那么對其的任何改變都將丟失??墒?,如果從一個實例中將卷分離出來,或者為這個實例附加上卷的話,即使實例被關(guān)閉,數(shù)據(jù)仍然保存其中。這些數(shù)據(jù)可以通過將卷附加到原實例或其他實例的方式而重新訪問。
因此,為了日后訪問,重要數(shù)據(jù)務(wù)必要寫入卷中。這種應(yīng)用對于數(shù)據(jù)服務(wù)器實例的存儲而言,尤為重要。
調(diào)度器(nova-scheduler)
調(diào)度器負(fù)責(zé)把nova-API調(diào)用送達(dá)給目標(biāo)。調(diào)度器以名為“nova-schedule”的守護進程方式運行,并根據(jù)調(diào)度算法從可用資源池中恰當(dāng)?shù)剡x擇運算服務(wù)器。有很多因素都可以影響調(diào)度結(jié)果,比如負(fù)載、內(nèi)存、子節(jié)點的遠(yuǎn)近、CPU架構(gòu)等等。強大的是nova調(diào)度器采用的是可插入式架構(gòu)。
目前nova調(diào)度器使用了幾種基本的調(diào)度算法:
隨機化:主機隨機選擇可用節(jié)點;
可用化:與隨機相似,只是隨機選擇的范圍被指定;
簡單化:應(yīng)用這種方式,主機選擇負(fù)載最小者來運行實例。負(fù)載數(shù)據(jù)可以從別處獲得,如負(fù)載均衡服務(wù)器。
(三)OpenStack鏡像服務(wù)器----Glance
OpenStack鏡像服務(wù)器是一套虛擬機鏡像發(fā)現(xiàn)、注冊、檢索系統(tǒng),我們可以將鏡像存儲到以下任意一種存儲中:
本地文件系統(tǒng)(默認(rèn))
OpenStack對象存儲
S3直接存儲
S3對象存儲(作為S3訪問的中間渠道)
HTTP(只讀)
功能及特點
提供鏡像相關(guān)服務(wù)
Glance構(gòu)件
Glance控制器
Glance注冊器
(四)OpenStack存儲設(shè)施----Swift
Swift為OpenStack提供一種分布式、持續(xù)虛擬對象存儲,它類似于Amazon Web Service的S3簡單存儲服務(wù)。Swift具有跨節(jié)點百級對象的存儲能力。Swift內(nèi)建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數(shù)據(jù)(千兆字節(jié))和大容量(多對象數(shù)量)的測度非常高效。
功能及特點
海量對象存儲
大文件(對象)存儲
數(shù)據(jù)冗余管理
歸檔能力-----處理大數(shù)據(jù)集
為虛擬機和云應(yīng)用提供數(shù)據(jù)容器
處理流媒體
對象安全存儲
備份與歸檔
良好的可伸縮性
Swift組件
Swift賬戶
Swift容器
Swift對象
Swift代理
Swift RING
Swift代理服務(wù)器
用戶都是通過Swift-API與代理服務(wù)器進行交互,代理服務(wù)器正是接收外界請求的門衛(wèi),它檢測合法的實體位置并路由它們的請求。
此外,代理服務(wù)器也同時處理實體失效而轉(zhuǎn)移時,故障切換的實體重復(fù)路由請求。
Swift對象服務(wù)器
對象服務(wù)器是一種二進
制存儲,它負(fù)責(zé)處理本地存儲中的對象數(shù)據(jù)的存儲、檢索和刪除。對象都是文件系統(tǒng)中存放的典型的二進制文件,具有擴展文件屬性的元數(shù)據(jù)(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認(rèn)為是當(dāng)前最好的選擇。
Swift容器服務(wù)器
容器服務(wù)器將列出一個容器中的所有對象,默認(rèn)對象列表將存儲為SQLite文件(譯者注:也可以修改為MySQL,安裝中就是以MySQL為例)。容器服務(wù)器也會統(tǒng)計容器中包含的對象數(shù)量及容器的存儲空間耗費。
Swift賬戶服務(wù)器
賬戶服務(wù)器與容器服務(wù)器類似,將列出容器中的對象。
Ring(索引環(huán))
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似于查找及定位不同集群的實體真實物理位置的索引服務(wù)。這里所謂的實體指賬戶、容器、對象,它們都擁有屬于自己的不同的Rings。
(五)OpenStack認(rèn)證服務(wù)(Keystone)
Keystone為所有的OpenStack組件提供認(rèn)證和訪問策略服務(wù),它依賴自身REST(基于Identity API)系統(tǒng)進行工作,主要對(但不限于)Swift、Glance、Nova等進行認(rèn)證與授權(quán)。事實上,授權(quán)通過對動作消息來源者請求的合法性進行鑒定。如下圖所示:
Keystone采用兩種授權(quán)方式,一種基于用戶名/密碼,另一種基于令牌(Token)。除此之外,Keystone提供以下三種服務(wù):
令牌服務(wù):含有授權(quán)用戶的授權(quán)信息
目錄服務(wù):含有用戶合法操作的可用服務(wù)列表
策略服務(wù):利用Keystone具體指定用戶或群組某些訪問權(quán)限
認(rèn)證服務(wù)組件
服務(wù)入口:如Nova、Swift和Glance一樣每個OpenStack服務(wù)都擁有一個指定的端口和專屬的URL,我們稱其為入口(endpoints)。
區(qū)位:在某個數(shù)據(jù)中心,一個區(qū)位具體指定了一處物理位置。在典型的云架構(gòu)中,如果不是所有的服務(wù)都訪問分布式數(shù)據(jù)中心或服務(wù)器的話,則也稱其為區(qū)位。
用戶:Keystone授權(quán)使用者
譯者注:代表一個個體,OpenStack以用戶的形式來授權(quán)服務(wù)給它們。用戶擁有證書(credentials),且可能分配給一個或多個租戶。經(jīng)過驗證后,會為每個單獨的租戶提供一個特定的令牌。[來源:http://www.dbjr.com.cn/article/96989.htm]
服務(wù):總體而言,任何通過Keystone進行連接或管理的組件都被稱為服務(wù)。舉個例子,我們可以稱Glance為Keystone的服務(wù)。
角色:為了維護安全限定,就云內(nèi)特定用戶可執(zhí)行的操作而言,該用戶關(guān)聯(lián)的角色是非常重要的。
譯者注:一個角色是應(yīng)用于某個租戶的使用權(quán)限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權(quán)限的邏輯分組,它使得通用的權(quán)限可以簡單地分組并綁定到與某個指定租戶相關(guān)的用戶。
租間:租間指的是具有全部服務(wù)入口并配有特定成員角色的一個項目。
譯者注:一個租間映射到一個Nova的“project-id”,在對象存儲中,一個租間可以有多個容器。根據(jù)不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。
(六)OpenStack管理的Web接口----Horizon
Horizon是一個用以管理、控制OpenStack服務(wù)的Web控制面板,它可以管理實例、鏡像、創(chuàng)建密匙對,對實例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例??傊?,Horizon具有如下一些特點:
實例管理:創(chuàng)建、終止實例,查看終端日志,VNC連接,添加卷等
訪問與安全管理:創(chuàng)建安全群組,管理密匙對,設(shè)置浮動IP等
偏好設(shè)定:對虛擬硬件模板可以進行不同偏好設(shè)定
鏡像管理:編輯或刪除鏡像
查看服務(wù)目錄
管理用戶、配額及項目用途
用戶管理:創(chuàng)建用戶等
卷管理:創(chuàng)建卷和快照
對象存儲處理:創(chuàng)建、刪除容器和對象
為項目下載環(huán)境變量
以上所述是小編給大家介紹的OpenStack云計算快速入門教程(1)之OpenStack及其構(gòu)成簡介 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Centos7環(huán)境準(zhǔn)備openstack pike的安裝
本篇文章主要介紹了Centos7環(huán)境準(zhǔn)備openstack pike的安裝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03OpenStack手動分布式部署Glance(Queens版)
這篇文章主要介紹了OpenStack手動分布式部署Glance(Queens版),Glance為云平臺虛擬機提供鏡像服務(wù),例如:上傳鏡像、刪除鏡像等,需要的朋友可以參考下2023-03-03openstack使用openvswitch實現(xiàn)vxlan的方法
這篇文章主要介紹了openstack使用openvswitch實現(xiàn)vxlan的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03CentOS 6.4下安裝部署OpenStack云計算平臺的方法
現(xiàn)在好多公司都使用Openstack,所以也想著學(xué)習(xí)下用OpenStack云計算平臺,這篇文章給加詳細(xì)介紹了CentOS 6.4下安裝部署OpenStack云計算平臺的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10