該教程基於Ubuntu12.04版,它將協助讀者建立起一份OpenStack迷你安裝。我是五嶽之巔,翻譯中多採用意譯法,所以個別詞與原版有出入,請大家諒解。我不是英語專業,我覺著搞技術最重要的就是理解,而不是四級和考研中那煩人的英譯漢,所以我的目標是忠於原意、通俗表達,Over。英文原文在這裡(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,請將ex@***中的@去掉,CU屏蔽的F詞),下面步入正題:
第一部分 OpenStack及其構成簡介
一、雲端運算
雲端運算是一種計算模型,它將諸如運算能力、儲存、網路和軟體等資源抽象成為服務,以便讓使用者通過互連網遠程享用,付費的形式也如同傳統公用服務設施一樣。因需而定、提供方便、動態改變和無限的虛擬化擴充能力是雲端運算的幾個重要特徵。
不同的“雲”對應著不同的基礎設施。下面是三種廣義的“雲”:
基礎設施即服務(IaaS)
平台即服務(PaaS)
軟體即服務(SaaS)
譯者註:Open為開放之意,Stack則是堆砌,OpenStack合起來如其名,就是許多Open的Softwares堆積的集合,但1 + 1 > 2,系統的功能更為強大。
二、OpenStack
(一)OpenStack概要
OpenStack是一整套開源軟體項目的綜合,它允許企業或服務提供者建立、運行自己的雲端運算和儲存設施。Rackspace與NASA是最初重要的兩個貢獻者,前者提供了“雲檔案”平台代碼,該平台增強了OpenStackObject Storage Service部分的功能,而後者帶來了“Nebula”平台形成了OpenStack其餘的部分。而今,OpenStack基金會已經有150多個會員,包括很多知名公司如“Canonical、DELL、Citrix”等。
以下是5個OpenStack的重要構成部分:
Nova - 計算服務
Swift - 儲存服務
Glance - 鏡像服務
Keystone - 認證服務
Horizon - UI服務
圖1 OpenStack基本構架
下圖展示了Keystone、Dashboard二者與其它OpenStack部分的互動。
(二)OpenStack計算設施----Nova
Nova是OpenStack計算的彈性控制器。OpenStack雲執行個體生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平台的身份登場,負責管理整個雲的計算資源、網路、授權及測度。雖然Nova本身並不提供任何虛擬能力,但是它將使用libvirt API與虛擬機器的宿主機進行互動。Nova通過Web服務API來對外提供處理介面,而且這些介面與Amazon的Web服務介面是相容的。
功能及特點
執行個體生命週期管理
計算資源管理
網路與授權管理
基於REST的API
非同步連續通訊
支援各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack計算組件
Nova彈性雲包含以下主要部分:
API Server(nova-api)
訊息佇列(rabbit-mq server)
運算工作站(nova-compute)
網路控制卡(nova-network)
卷管理(nova-volume)
調度器(nova-scheduler)
API伺服器(nova-api)
API伺服器提供了雲設施與外界互動的介面,它是外界使用者對雲實施管理的唯一通道。通過使用web服務來調用各種EC2的API,接著API伺服器便通過訊息佇列把請求送達至雲內目標設施進行處理。作為對EC2-api的替代,使用者也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。
訊息佇列(Rabbit MQ Server)
OpenStack內部在遵循AMQP(進階訊息佇列協議)的基礎上採用訊息佇列進行通訊。Nova對請求應答進行非同步呼叫,當請求接收後便則立即觸發一個回調。由於使用了非同步通訊,不會有使用者的動作被長置於等待狀態。例如,啟動一個執行個體或上傳一份鏡像的過程較為耗時,API調用就將等待返回結果而不影響其它操作,在此非同步通訊起到了很大作用,使整個系統變得更加高效。
運算工作站(nova-compute)
運算工作站的主要任務是管理執行個體的整個生命週期。他們通過訊息佇列接收請求並執行,從而對執行個體進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度演算法,一個執行個體可以在可用的任意一台運算工作站上部署。
網路控制卡(nova-network)
網路控制卡處理主機的網路設定,例如IP地址分配,設定項目VLAN,設定安全群組以及為計算節點配置網路。
卷工作站(nova-volume)
卷工作站管理基於LVM的執行個體卷,它能夠為一個執行個體建立、刪除、附加卷,也可以從一個執行個體中分離卷。卷管理為何如此重要?因為它提供了一種保持執行個體持續儲存的手段,比如當結束一個執行個體後,根分區如果是非持續化的,那麼對其的任何改變都將丟失。可是,如果從一個執行個體中將卷分離出來,或者為這個執行個體附加上卷的話,即使執行個體被關閉,資料仍然儲存其中。這些資料可以通過將卷附加到原執行個體或其他執行個體的方式而重新訪問。
因此,為了日後訪問,重要資料務必要寫入卷中。這種應用對於資料服務器執行個體的儲存而言,尤為重要。
調度器(nova-scheduler)
調度器負責把nova-API調用送達給目標。調度器以名為“nova-schedule”的守護進程方式運行,並根據調度演算法從可用資源集區中恰當地選擇運算伺服器。有很多因素都可以影響調度結果,比如負載、記憶體、子節點的遠近、CPU架構等等。強大的是nova調度器採用的是可插入式架構。
目前nova調度器使用了幾種基本的調度演算法:
隨機化:主機隨機播放可用節點;
可用化:與隨機相似,只是隨機播放的範圍被指定;
簡單化:應用這種方式,主機選擇負載最小者來運行執行個體。負載資料可以從別處獲得,如負載平衡伺服器。
(三)OpenStack鏡像伺服器----Glance
OpenStack鏡像伺服器是一套虛擬機器鏡像發現、註冊、檢索系統,我們可以將鏡像儲存到以下任意一種儲存中:
本地檔案系統(預設)
OpenStackObject Storage Service
S3直接儲存
S3Object Storage Service(作為S3訪問的中間渠道)
HTTP(唯讀)
功能及特點
提供鏡像相關服務
Glance構件
Glance控制器
Glance註冊器
(四)OpenStack儲存設施----Swift
Swift為OpenStack提供一種分布式、持續虛擬Object Storage Service,它類似於Amazon Web Service的S3簡單儲存服務。Swift具有跨節點百級對象的儲存能力。Swift內建冗餘和失效備援管理,也能夠處理歸檔和媒體流,特別是對大資料(千MB)和大容量(多個物件數量)的測度非常高效。
功能及特點
海量Object Storage Service
大檔案(對象)儲存
資料冗餘管理
歸檔能力-----處理大資料集
為虛擬機器和雲應用提供資料容器
處理流媒體
對象安全儲存
備份與歸檔
良好的延展性
Swift組件
Swift賬戶
Swift容器
Swift對象
Swift代理
Swift RING
SwiftProxy 伺服器
使用者都是通過Swift-API與Proxy 伺服器進行互動,Proxy 伺服器正是接收外界請求的門衛,它檢測合法的實體位置並路由它們的請求。
此外,Proxy 伺服器也同時處理實體失效而轉移時,故障切換的實體重複路由請求。
Swift物件服務器
物件服務器是一種二進
制儲存,它負責處理本機存放區中的對象資料的儲存、檢索和刪除。對象都是檔案系統中存放的典型的二進位檔案,具有擴充檔案屬性的中繼資料(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支援,但是並沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認為是當前最好的選擇。
SwiftContainer Service器
Container Service器將列出一個容器中的所有對象,預設對象列表將儲存為SQLite檔案(譯者註:也可以修改為MySQL,安裝中就是以MySQL為例)。Container Service器也會統計容器中包含的對象數量及容器的儲存空間耗費。
Swift賬戶伺服器
賬戶伺服器與Container Service器類似,將列出容器中的對象。
Ring(索引環)
Ring容器記錄著Swift中實體儲存體對象的位置資訊,它是真實實體儲存體位置的實體名的虛擬映射,類似於尋找及定位不同叢集的實體真實物理位置的索引服務。這裡所謂的實體指賬戶、容器、對象,它們都擁有屬於自己的不同的Rings。
(五)OpenStack認證服務(Keystone)
Keystone為所有的OpenStack組件提供認證和存取原則服務,它依賴自身REST(基於Identity API)系統進行工作,主要對(但不限於)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作訊息來源者請求的合法性進行評鑑。如下圖所示:
Keystone採用兩種授權方式,一種基於使用者名稱/密碼,另一種基於令牌(Token)。除此之外,Keystone提供以下三種服務:
令牌服務:含有授權使用者的授權資訊
目錄服務:含有使用者合法操作的可用服務列表
策略服務:利用Keystone具體指定使用者或群組某些存取權限
認證服務元件
服務入口:如Nova、Swift和Glance一樣每個OpenStack服務都擁有一個指定的連接埠和專屬的URL,我們稱其為入口(endpoints)。
區位:在某個資料中心,一個區位具體指定了一處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分布式資料中心或伺服器的話,則也稱其為區位。
使用者:Keystone授權使用者
譯者註:代表一個個體,OpenStack以使用者的形式來授權服務給它們。使用者擁有認證(credentials),且可能分配給一個或多個租戶。經過驗證後,會為每個單獨的租戶提供一個特定的令牌。[來源:http://www.jb51.net/article/96989.htm]
服務:總體而言,任何通過Keystone進行串連或管理的組件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務。
角色:為了維護安全限定,就雲內特定使用者可執行檔操作而言,該使用者關聯的角色是非常重要的。
譯者註:一個角色是應用於某個租戶的使用許可權集合,以允許某個指定使用者訪問或使用特定操作。角色是使用許可權的邏輯分組,它使得通用的許可權可以簡單地分組並綁定到與某個指定租戶相關的使用者。
租間:租間指的是具有全部服務入口並配有特定成員角色的一個項目。
譯者註:一個租間映射到一個Nova的“project-id”,在Object Storage Service中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。
(六)OpenStack管理的Web介面----Horizon
Horizon是一個用以管理、控制OpenStack服務的Web控制台,它可以管理執行個體、鏡像、建立密匙對,對執行個體添加卷、操作Swift容器等。除此之外,使用者還可以在控制台中使用終端(console)或VNC直接存取執行個體。總之,Horizon具有如下一些特點:
執行個體管理:建立、終止執行個體,查看終端日誌,VNC串連,添加卷等
訪問與安全管理:建立安全群組,管理密匙對,設定浮動IP等
偏好設定:對虛擬硬體模板可以進行不同偏好設定
鏡像管理:編輯或刪除鏡像
查看服務類別目錄
系統管理使用者、配額及項目用途
使用者管理:建立使用者等
卷管理:建立卷和快照
Object Storage Service處理:建立、刪除容器和對象
為項目下載環境變數
以上所述是小編給大家介紹的OpenStack雲端運算快速入門教程(1)之OpenStack及其構成簡介 ,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!