OpenStack主要功能和作用

CHIBOHANDONG發表於2023-03-08

OpenStack主要元件和作用

openstack是一個開源的雲端計算管理平臺,由幾個重要的元件結合起來完成工作。openstack支援所有型別的雲環境,實施簡單可以大規模擴充套件豐富標準統一的雲端計算管理平臺。openstack透過各種互補的服務提供了基礎設施即服務也就是laas的解決方案,每個服務提供API進行整合。


openstack主要有兩個模組:Nova和Swift,nova是虛擬伺服器部署和計算模組,swift是分散式雲端儲存模組,兩個可以一起使用也可以分開使用。


openstack服務是由幾個程式組成。所有服務至少有一個API程式,用來監聽API請求,預處理它們並將它們傳遞給其他部分,除了身份服務外。實際上由不同的流程來完成。


對一個服務程式直接的通訊,使用AMQP訊息代理。服務的狀態儲存在資料庫中,在部署openstack雲時,可以選擇多種訊息代理和資料庫解決方案(mysql、rabbitmq、mariadb、sqlite)


使用者可以透過Horizon Dashboard實現基於Web使用者介面,命令列客戶端以及透過瀏覽器外掛或curl工具法術API請求來訪問OpenStack。對於應用程式,可以使用多SDK。最終,所欲這些訪問方法都會向各種OpenStack服務發出REST API呼叫。


整個OpenStack是由控制節點,計算節點,網路節點,儲存節點,四大部分組成。(這四個節點也可以單機部署)

1.控制節點:負責對其餘節點的控制,包括虛機建立、遷移、網路分配、儲存分配等。

控制節點架構如下:


控制節點又包括其他服務如下:


管理支援服務:資料庫作為基礎/擴充套件服務產生的資料存放的地方,訊息代理服務(也稱訊息中間 件)為其他各種服務之間提供了統一的訊息通訊服務


基礎管理服務包含Keystone、Glance、Nova、Neutron、Horizon五個服務


Keystone:認證管理服務,提供所有元件的認證資訊令牌管理、建立和修改,使用mysql資料庫儲存 認證資訊


glance:映象管理服務,提供了對虛機部署的時候提供映象的管理匯入和格式以及製作相應的模板


nova:計算管理服務,提供了對計算節點的nova管理、使用nova-api進行通訊。


neutron:網路管理服務,提供了網路節點的網路拓撲管理,同時提供neutron在horizon的管理介面


horizon:控制檯服務,提供了以web形式對所有節點的所有服務的管理,把該服務成為dashboard。


擴充套件管理服務包含:cinder、swift、trove、heat、centmeter五個服務

Cinder:提供管理儲存節點的Cinder相關、同時提供Cinder在Horizon中的管理皮膚


Swift:提供管理儲存節點Swift相關、同時提供Swift在Horizon中的管理皮膚


Trove:提供管理資料庫節點的Trove先關、同時提供Trove在Horizon中的管理皮膚


Heat:提供了基於模板來實現雲環境中的資源的初始化,依賴關係處理,部署等基本操作,也可以 解決自動收縮、負 載均衡等特性


Centimeter:提供對物理資源以及虛擬資源的監控,並記錄這些書庫,讀資料進行分析,在一定條件下出發現貨供應動 作控制節點通常來說只需要一個網路埠來用於通訊和管理各個節點


2.計算節點負責虛擬機器的執行,他的架構如下:

計算節點包含Nova、Neutron、Telemter三個服務


nova:提供虛擬機器的建立】執行、遷移、快照等圍繞虛擬機器的服務、並提供API與控制節點對接由控 制節點下發任務


neutron:提供計算節點與網路節點之間的通訊


擴充服務:telmeter提供計算節點監控代理,將虛擬機器的情況反饋到控制節點,是centimeter的代理 服務


3.網路節點負責對外網路與內網之間的通訊,網路節點架構如下

Neutron:負責管理私有網路與公有網路的通訊,以及管理虛擬機器網路之間通訊/拓撲、管理虛擬機器之 上的防火牆等等


網路節點包含三個網路埠


埠1:用於與控制節點進行通訊


埠2:用於除了控制節點之外的計算/儲存節點之間的通訊


埠3:用於外部的虛擬機器與相應的網路之間通訊


儲存節點負責對虛擬機器的額外儲存管理等,儲存節點架構如下

儲存節點包含cinder,swift等服務


Cinder:塊儲存服務,提供相應的塊才能出,簡單來說,就是虛擬出一塊存檔,可以掛載到相應的虛擬機器之上,不收檔案系統的影響,對虛擬機器來說,這個操作像是加了一塊硬碟,可以完成對磁碟的任何操作,包括掛載、解除安裝、格式化,轉換檔案系統等等操作,大多應用於虛擬機器空間不足的情況下的空間擴容等


**Swift:**物件儲存服務,提供相應的獨享儲存、簡單來說,就是虛擬出一塊磁碟空間,可以在這個空間當中存放檔案,也僅僅只能存放檔案,不能進行格式化,轉換檔案系統,大多應用於雲磁碟/檔案


儲存節點包含最少兩個網路埠


埠1:與控制節點進行通訊,接受控制節點任務,受控制節點統一調配


埠2:與計算/網路節點進行通訊,完成控制節點下發的各類任務


nova主要功能包括:


例項生命週期管理


計算資源的管理


向外提供REST風格的API


nova包含以下主要部分:


nova-api:位於表示層,用於接受外部請求


rabbitMQ:訊息佇列服務


nova-comoute:運算工作站負責虛擬機器的建立和分配


nova-network:網路控制器


nova-volume:卷管理


nova-scheduler:排程如何選擇哪個主機建立VM


API服務(nova-api)


API服務提供了雲設施與外界互動的介面,它是外界使用者對雲實施管理的通道。透過使用Web服務來呼叫各種EC2的API,接著API服務便透過訊息佇列把請求傳送達至雲內目標實施進行出路。作為對EC2-api的替代,使用者也可以使用OpenStack的原生API,我們把它叫做"OpenStack API".


訊息佇列(Rabbit MQ )


OpenStack內部在遵循AMQP(訊息佇列協議)的基礎上採用訊息佇列進行通訊,Nova對請求應答進行非同步呼叫,當請求接受後立即出發一個回撥。由於使用了非同步通訊,不會有使用者的動作被長置於等待狀態。例如,啟動一個例項或上傳一個映象的過程較為耗時,API呼叫就將等待返回結果而不影響其他操作,在此非同步通訊起到了很大作用,使整個系統變得更加高效。


排程器(nova-scheduler)


排程器負責把nova-API呼叫送達給目標。排程器以名為"nova-schedule"的守護程式方式執行,並根據排程演算法從可用資源池恰當的選擇運算伺服器。有很多因素都可以影響排程結果,比如負責、記憶體、、子節點的遠近,CPU架構等等。強大的nova排程器採用的是可插入式架構。


目前nova排程器使用了幾種基本的排程演算法:


隨機化:主機隨機選擇可用的節點;


可用化:與隨機相似,只是隨機選擇的範圍被制定;


簡單化:應用這種方式,主機選擇負載最小者來執行例項。負載均衡資料可以從別處獲得,如負載均衡伺服器。


運算工作站(nova-compute)


運算工作站的主要任務是管理例項的整個生命週期。他們透過訊息佇列接受請求並執行,從而對例項進行各種操作。在典型實際生產環境中,會架設許多運算工作站,根據排程演算法,一個例項可以在可用的任意一臺運算工作站上部署。


網路控制器(nova-network)


網路控制器處理主機的網路配置,例如IP地址分配,配置專案VLAN,設定安全群組以及為計算節點配置網路。


卷工作站(nova-volume)


卷工作站管理基於LVM的例項卷,它能夠為一個例項建立、刪除、附加捲、也可以從一個例項中分離卷。卷管理為何如此重要?因為它提供了一中保持例項持續儲存的手段,比如當結束一個實力後,根分割槽如果是非持續化的,那麼對其的任何改變都將丟失。可是。如果從一個例項中將卷分離出來,或者為這個例項附加上的卷的話,及時例項被關閉,資料仍儲存其中。這些資料可以透過將卷附加到原例項或其他例項的方式而重新訪問。


因此,為了日後訪問,重要資料必要寫入卷中。這種應用對於資料伺服器例項的儲存而言,尤為重要。


Keystone為所有的OpenStack元件提供認證和訪問策略服務,它依賴REST(基於Identity API)系統進行工作主要對(單不限於)Swift、Glance、Nova等進行認證與授權

keystone採用兩種授權方式,一種是基於使用者名稱和密碼,另一種是基於令牌(token)


除此之外keystone還提供三種服務


令牌服務:含有授權使用者的授權資訊


目錄服務:含有使用者合法操作的可用服務列表


策略服務:利用keystone具體指定使用者或群組某些訪問許可權


Keystion認證服務注意點:


服務入口:如Nova、Swift和Glance一樣每個OpenStack服務都擁有一個制定的埠和專屬的URL,我們稱其為入口(endpoints)。


區位:在某個資料中心,一個區位具體制定了一處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分散式資料中心或服務其的話,則也稱其為區位。


使用者:Keystone授權使用者


PS:代表一個個體,OpenStack以使用者的形式來授權服務給它們。使用者擁有證書(credentials),且可能分配個一個或多個租戶。經過驗證後,會為每個單獨的租戶提供一個特定的令牌。


服務:總體而言,任何透過Keystone進行連線或管理的元件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務


角色:為了維護安全限定,就雲內特定使用者可執行的操作而言,該使用者關聯的角色是非常重要的。


PS:一個角色是應用於某個租戶的使用許可權集合,以允許某個指定使用者訪問或使用特定操作。角色是使用許可權的邏輯分組、它使得透過的許可權可以簡單的分組並繫結到與某個指定租戶相關的使用者。


租間:租間指的是具有全部服務入庫並配有特定成員角色的一個專案。


PS:一個租間對映到一個Nova的"project-id",在物件儲存中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、賬號、組織或專案。


glance

openstac映象伺服器是一套虛擬機器映象發現、註冊、檢索系統、可以將映象儲存到以下任意一種儲存中


預設是本地檔案系統、S3直接儲存、S3物件儲存、openstack物件儲存等。


功能和特點:


**glance-api:**主要負責接收相應映象管理命令的Resrful請求,分析訊息請求並分發所帶的命令比如新增 刪除更新等,預設繫結埠是9292


glance-registry:主要負責接收響應映象後設資料命令的Restful請求,分析訊息請求並分發其所帶的命令,比如獲取後設資料更新後設資料等。more繫結的埠是9191.


Swift是openstack提供的一種分散式持續虛擬物件儲存,它類似於amazon web service的s3簡單儲存服務。swift具有跨節點百級物件儲存的能力。swift內建冗餘和失效備源管理,也能處理歸檔和媒體流,特別是對大資料和大流量的測度非常高效。


swift的功能和特點


海量物件儲存、大檔案{S3}儲存、資料冗餘管理、歸檔能力-處理大資料集、為虛擬機器和雲應用提供資料容器、處理流媒體、物件安全儲存、備份與歸檔、良好的可伸縮性。


系統架構:Swift採用完全對稱、面向資源的分散式儲存架構設計,所有元件都可擴充套件,避免因單點失 效而擴散並影響整個系統運轉;通訊方式採用非阻塞式I/O模式,提高了系統吞吐和響應能力


Swift元件包括:


代理服務(Proxy Server):對外提供物件服務API,會根據環的資訊來查地址並轉發使用者請求至相應的賬戶、容器或者物件服務;由採用無狀態的REST請求協議,可以進行橫向擴充套件來均衡負載。


認證服務(Authentication Server):驗證訪問使用者的身份資訊,並獲得一個物件方位令牌(Token),在一定的時間內會一直有效;驗證訪問令牌的有效性並快取下來直至過期時間。


快取服務(Cache Server):快取的內容包括物件服務令牌,賬戶和容器的存在資訊,但不會快取物件本身的資料;快取服務可採用Memcached叢集,Swift會使用一致性三列演算法來分配快取地址。


賬戶服務(Account Server):提供賬戶後設資料和統計資訊,並維護所包含容器列表的服務,每個賬戶的資訊被儲存在一個SQLite資料庫中。


容器服務(Container Server):提供容器後設資料和統計資訊,並維護所含物件列表的服務,每個容器的資訊也儲存在一個SQLlite資料庫中。


物件服務(Object Server):提供物件後設資料和內容服務,每個物件的內容會以檔案的形式儲存在檔案系統中,後設資料會作為檔案屬性來儲存,建議採用支援擴充套件屬性的XFS檔案系統。


複製服務(Replicator):會檢測本地分割槽副本和遠端副本是否一致,具體是透過對比雜湊檔案和水印來完成,發現不一致時會採用推式(Push)更新遠端副本,例如物件複製服務會使用遠端檔案複製工具rsync來同步;另外一個任務是確保被標記刪除的物件從檔案系統中移除。


更新服務(Updater):當物件由於高負載的原因而無法立即更新時,任務將會被序列化到本地檔案系統中進行排隊,以便服務恢復後進行非同步更新;例如成功建立物件後容易伺服器沒有及時更新物件列表,這個時候容器的跟新操作就會進入排隊中,更新服務會在系統恢復正常後掃描佇列並進行相應的更新處理。


審計服務(Auditor):檢查物件,容器和賬戶的完整性,如果發現位元級的錯誤,檔案將被隔離,並複製其他的副本以覆蓋本地損壞的副本;其他型別的錯誤會被記錄到日誌中。


賬戶清理服務(Account Reaper):移除被標記為刪除的賬號,刪除其所包含的所有容器對和物件。


cinder是openstack Block Storage服務,用於為nova虛擬機器,lronic裸機主機,容器等提供卷。


cinder的一些目標是:


基於組元件體系結構:快速新增新的行為


高度可用:擴充套件到非常嚴重的工作負載


容錯:隔離程式避免級聯失敗


可恢復的:故障應該易於診斷,除錯和糾正


開放標準:成為社群驅動api的參考表現


Cinder的所有功能都是透過REST API公開,可用於使用Cinder構建更復雜的邏輯或自動化, 這可以直接使用或者透過各種SDK使用


Cinder服務透過一系列守護程式的互動來工作,這些程式名稱cinder-*駐留在主機或機器上,我們可以從單個節點執行所有二進位制檔案,也可以分佈在多個節點上,我們也可以在與其他OpenStack服務想用的節點上執行他們


cinder的特性:


預設的Cinder服務實現是一種iscsi解決方案,它使用linux的邏輯卷管理器(LVM)


網路模式不會干擾Cinder操作,但必須為塊儲存設定網路才能工作


在某些情況下我們也可以從內部卷中儲存和執行例項


Cinder同時還支援使用NFS儲存


可以建立多個後端儲存。這些後端儲存為相同的OpenStack Compute配置提供服務,併為每個後端儲存或後端儲存池啟動一個cinder-volume


透過lvm快照備份塊儲存服務磁碟


volume number weigher排程器。OpenStack允許使用者建立雲盤時根據後端儲存剩餘容量和已分配容量來選擇後端。而volume number weigher排程器是根據不同儲存後端的雲盤數量來選擇後端,排程到儲存後端上雲盤數量最少的節點來處理使用者有關雲盤生命週期的請求,這樣做的好處是可以使用不同儲存厚點的I/O負載均衡並提高IO效能。


一致性組;Cinder提供了一致性組支援。新增了支援以建立一致性組的快照。此功能利用儲存級別的一致性技術。它允許在同一時間點採集同一一致性組中的多個卷的快照,以確保資料一致性。可以使用塊儲存命令列執行。


DriverFilter和GoodnessWeigher排程器;根據後端特定屬性選擇卷後端。可以幫助確保排程程式根據請求的卷屬性以及各種後端特定屬性選擇後端。


速率限制卷複製頻寬;從映像或現有卷建立新卷時,或者將卷映像上傳到映像服務時,大型資料複製可能會對磁碟和網路頻寬造成壓力。為了減輕來自例項的資料訪問速度,OpenStack塊儲存支援對卷資料複製頻寬進行速率限制


精簡配置中的超額訂閱;Cinder可以使用超額配置比率, 根據虛擬容量選擇卷後端,以進行精簡配置為預設LVM驅動程式提供了參考實現。


映象卷快取;Cinder具有可選的映象卷快取,可以顯著提高從映象創卷卷的效能。改進取決於許多因素,主要是配置的後端克隆卷的速度。


Volume-backed image;Cinder能夠快速的從儲存映象資料的雲盤建立新的雲盤,與映象資料儲存到File和Swift相比,如果後端儲存克隆效能比較好,從Volume-backed image建立新的雲盤速度會更快,如果映象屬性是public,那麼這個volume-backed image中的資料可以在所有的專案享。該功能要求在映象服務中增加Cinder的locations資訊。為了允許映象服務使用Cinder作為後端儲存,需要增加Cinder到允許儲存的配置項中。


通用卷組;自Nweton釋出以來,Cinder中提供了通用卷組支援,新增了支援、用於建立組類和組規範、建立卷組以及建立組的快照,可以使用塊儲存命令列執行組操作。

chibohandong


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026609/viewspace-2938693/,如需轉載,請註明出處,否則將追究法律責任。

相關文章