該教程基于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是最初重要的兩個貢獻者,前者提供了“云文件”平臺代碼,該平臺增強了openstack對象存儲部分的功能,而后者帶來了“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鏡像服務器是一套虛擬機鏡像發現、注冊、檢索系統,我們可以將鏡像存儲到以下任意一種存儲中:
本地文件系統(默認)
openstack對象存儲
s3直接存儲
s3對象存儲(作為s3訪問的中間渠道)
http(只讀)
功能及特點
提供鏡像相關服務
glance構件
glance控制器
glance注冊器
(四)openstack存儲設施----swift
swift為openstack提供一種分布式、持續虛擬對象存儲,它類似于amazon web service的s3簡單存儲服務。swift具有跨節點百級對象的存儲能力。swift內建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆字節)和大容量(多對象數量)的測度非常高效。
功能及特點
海量對象存儲
大文件(對象)存儲
數據冗余管理
歸檔能力-----處理大數據集
為虛擬機和云應用提供數據容器
處理流媒體
對象安全存儲
備份與歸檔
良好的可伸縮性
swift組件
swift賬戶
swift容器
swift對象
swift代理
swift ring
swift代理服務器
用戶都是通過swift-api與代理服務器進行交互,代理服務器正是接收外界請求的門衛,它檢測合法的實體位置并路由它們的請求。
此外,代理服務器也同時處理實體失效而轉移時,故障切換的實體重復路由請求。
swift對象服務器
對象服務器是一種二進
制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。
注意:xattr格式被linux中的ext3/4,xfs,btrfs,jfs和reiserfs所支持,但是并沒有有效測試證明在xfs,jfs,reiserfs,reiser4和zfs下也同樣能運行良好。不過,xfs被認為是當前最好的選擇。
swift容器服務器
容器服務器將列出一個容器中的所有對象,默認對象列表將存儲為sqlite文件(譯者注:也可以修改為mysql,安裝中就是以mysql為例)。容器服務器也會統計容器中包含的對象數量及容器的存儲空間耗費。
swift賬戶服務器
賬戶服務器與容器服務器類似,將列出容器中的對象。
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.jfrwli.cn/article/125064.html]
服務:總體而言,任何通過keystone進行連接或管理的組件都被稱為服務。舉個例子,我們可以稱glance為keystone的服務。
角色:為了維護安全限定,就云內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
譯者注:一個角色是應用于某個租戶的使用權限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權限的邏輯分組,它使得通用的權限可以簡單地分組并綁定到與某個指定租戶相關的用戶。
租間:租間指的是具有全部服務入口并配有特定成員角色的一個項目。
譯者注:一個租間映射到一個nova的“project-id”,在對象存儲中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。
(六)openstack管理的web接口----horizon
horizon是一個用以管理、控制openstack服務的web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加卷、操作swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或vnc直接訪問實例。總之,horizon具有如下一些特點:
實例管理:創建、終止實例,查看終端日志,vnc連接,添加卷等
訪問與安全管理:創建安全群組,管理密匙對,設置浮動ip等
偏好設定:對虛擬硬件模板可以進行不同偏好設定
鏡像管理:編輯或刪除鏡像
查看服務目錄
管理用戶、配額及項目用途
用戶管理:創建用戶等
卷管理:創建卷和快照
對象存儲處理:創建、刪除容器和對象
為項目下載環境變量
以上所述是小編給大家介紹的openstack云計算快速入門教程(1)之openstack及其構成簡介 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:http://blog.chinaunix.net/uid-22414998-id-3263551.html