您好,登錄后才能下訂單哦!
服務 | 項目名稱 | 描述 |
---|---|---|
Compute (計算服務) | Nove | 負責實例生命周期的管理,計算資源的單位。對Hypervisor進行屏蔽,支持多種虛擬化技術(紅帽默認為KVM),支持橫向擴展 |
Network(網絡服務) | Neutron | 負責虛擬網絡的管理,為實例創建網絡的拓撲結構。是面向租戶的網絡管理,可以自己定義自己的網絡,各個租戶之間互不影響 |
Identity(身份認證服務) | Keystone | 類似于LDAP服務,對用戶、租戶和角色、服務進行認證與授權,且支持多認證機制 |
Dashboard(控制面板服務) | Horizon | 提供一個WEB管理界面,與OpenStack底層服務進行交互 |
Image Service (鏡像服務) | Glance | 提供虛擬機鏡像模板的注冊和管理,將做好的操作系統拷貝為鏡像模板,在創建虛擬機時直接使用,可支持多格式的鏡像 |
Block Storage(塊存儲服務) | Cinder | 負責為運行實例提供持久的快存儲設備,可進行方便的擴展,按需付費,支持多種后端存儲 |
Object Storage(對象存儲服務) | Swift | 為OpenStack提供基礎云的彈性存儲,支持集群無單點故障 |
Telemetry(計量服務) | Ceilometer | 用于度量、監控和控制數據資源的集中來源, |
Keystone為所有的OpenStack組件提供認證和訪問策略服務,它依賴自身REST(基于Identity API)系統進行工作,主要對(但不限于)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作消息來源者請求的合法性進行鑒定。下圖顯示了身份認證服務流程圖:
Keystone采用兩種授權方式,一種基于用戶名/密碼,另一種基于令牌(Token)。
除此之外,Keystone提供以下三種服務:
令牌服務:含有授權用戶的授權信息
目錄服務:含有用戶合法操作的可用服務列表
策略服務:利用Keystone具體指定用戶或群組某些訪問權限
服務:總體而言,任何通過Keystone進行連接或管理的組件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務。
角色:為了維護安全限定,就云內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
PS:一個角色是應用于某個租戶的使用權限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權限的邏輯分組,它使得通用的權限可以簡單地分組并綁定到與某個指定租戶相關的用戶。
Nova是OpenStack計算的彈性控制器。OpenStack云實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平臺的身份登場,負責管理整個云的計算資源、網絡、授權及測度。雖然Nova本身并不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務API來對外提供處理接口,而且這些接口與Amazon的Web服務接口是兼容的。
API服務器提供了云設施與外界交互的接口,它是外界用戶對云實施管理的唯一通道。通過使用web服務來調用各種EC2的API,接著API服務器便通過消息隊列把請求送達至云內目標設施進行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。
OpenStack內部在遵循AMQP(高級消息隊列協議)的基礎上采用消息隊列進行通信。Nova對請求應答進行異步調用,當請求接收后便則立即觸發一個回調。由于使用了異步通信,不會有用戶的動作被長置于等待狀態。例如,啟動一個實例或上傳一份鏡像的過程較為耗時,API調用就將等待返回結果而不影響其它操作,在此異步通信起到了很大作用,使整個系統變得更加高效。
調度器負責把nova-API調用送達給目標。調度器以名為“nova-schedule”的守護進程方式運行,并根據調度算法從可用資源池中恰當地選擇運算服務器。有很多因素都可以影響調度結果,比如負載、內存、子節點的遠近、CPU架構等等。強大的是nova調度器采用的是可插入式架構。
目前nova調度器使用了幾種基本的調度算法:
運算工作站的主要任務是管理實例的整個生命周期。他們通過消息隊列接收請求并執行,從而對實例進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度算法,一個實例可以在可用的任意一臺運算工作站上部署。
網絡控制器處理主機的網絡配置,例如IP地址分配,配置項目VLAN,設定安全群組以及為計算節點配置網絡。
卷工作站管理基于LVM的 實例卷,它能夠為一個實例創建、刪除、附加卷,也可以從一個實例中分離卷。卷管理為何如此重要?因為它提供了一種保持實例持續存儲的手段,比如當結束一個 實例后,根分區如果是非持續化的,那么對其的任何改變都將丟失。可是,如果從一個實例中將卷分離出來,或者為這個實例附加上卷的話,即使實例被關閉,數據 仍然保存其中。這些數據可以通過將卷附加到原實例或其他實例的方式而重新訪問。
因此,為了日后訪問,重要數據務必要寫入卷中。這種應用對于數據服務器實例的存儲而言,尤為重要
OpenStack鏡像服務器是一套虛擬機鏡像發現、注冊、檢索系統,我們可以將鏡像存儲到以下任意一種存儲中:
Swift為OpenStack提供一種分布式、持續虛擬對象存儲,它類似于Amazon Web Service的S3簡單存儲服務。Swift具有跨節點百級對象的存儲能力。Swift內建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆字節)和大容量(多對象數量)的測度非常高效。
用戶都是通過Swift-API與代理服務器進行交互,代理服務器正是接收外界請求的門衛,它檢測合法的實體位置并路由它們的請求。
此外,代理服務器也同時處理實體失效而轉移時,故障切換的實體重復路由請求。
對象服務器是一種二進制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認為是當前最好的選擇。
容器服務器將列出一個容器中的所有對象,默認對象列表將存儲為SQLite文件(譯者注:也可以修改為MySQL,安裝中就是以MySQL為例)。容器服務器也會統計容器中包含的對象數量及容器的存儲空間耗費。
賬戶服務器與容器服務器類似,將列出容器中的對象。
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似于查找及定位不同集群的實體真實物理位置的索引服務。這里所謂的實體指賬戶、容器、對象,它們都擁有屬于自己的不同的Rings。
Horizon是一個用以管理、控制OpenStack服務的Web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例。
整個OpenStack是由控制節點,計算節點,網絡節點,存儲節點四大部分組成。(這四個節點也可以安裝在一臺機器上,單機部署)
其中:
控制節點負責對其余節點的控制,包含虛擬機建立,遷移,網絡分配,存儲分配等等
計算節點負責虛擬機運行
網絡節點負責對外網絡與內網絡之間的通信
存儲節點負責對虛擬機的額外存儲管理等等
### 控制節點架構:
控制節點包括以下服務
- 管理支持服務
- 基礎管理服務
- 擴展管理服務
#### 1)管理支持服務包含MySQL與Qpid兩個服務
- MySQL:數據庫作為基礎/擴展服務產生的數據存放的地方
- Qpid:消息代理(也稱消息中間件)為其他各種服務之間提供了統一的消息通信服務
#### 2)基礎管理服務包含Keystone,Glance,Nova,Neutron,Horizon五個服務
- Keystone:認證管理服務,提供了其余所有組件的認證信息/令牌的管理,創建,修改等等,使用MySQL作為統一的數據庫
- Glance:鏡像管理服務,提供了對虛擬機部署的時候所能提供的鏡像的管理,包含鏡像的導入,格式,以及制作相應的模板
- Nova:計算管理服務,提供了對計算節點的Nova的管理,使用Nova-API進行通信
- Neutron:網絡管理服務,提供了對網絡節點的網絡拓撲管理,同時提供Neutron在Horizon的管理面板
- Horizon:控制臺服務,提供了以Web的形式對所有節點的所有服務的管理,通常把該服務稱為DashBoard
#### 3)擴展管理服務包含Cinder,Swift,Trove,Heat,Centimeter五個服務
- Cinder:提供管理存儲節點的Cinder相關,同時提供Cinder在Horizon中的管理面板
- Swift:提供管理存儲節點的Swift相關,同時提供Swift在Horizon中的管理面板
- Trove:提供管理數據庫節點的Trove相關,同時提供Trove在Horizon中的管理面板
- Heat:提供了基于模板來實現云環境中資源的初始化,依賴關系處理,部署等基本操作,也可以解決自動收縮,負載均衡等高級特性。
- Centimeter:提供對物理資源以及虛擬資源的監控,并記錄這些數據,對該數據進行分析,在一定條件下觸發相應動作
##### 控制節點一般來說只需要一個網絡端口用于通信/管理各個節點
### 網絡節點架構
##### 網絡節點僅包含Neutron服務
Neutron:負責管理私有網段與公有網段的通信,以及管理虛擬機網絡之間的通信/拓撲,管理虛擬機之上的防火等等
##### 網絡節點包含三個網絡端口
- eth0:用于與控制節點進行通信
- eth2:用于與除了控制節點之外的計算/存儲節點之間的通信
- eth3:用于外部的虛擬機與相應網絡之間的通信
### 計算節點架構
##### 計算節點包含Nova,Neutron,Telemeter三個服務
1)基礎服務
- Nova:提供虛擬機的創建,運行,遷移,快照等各種圍繞虛擬機的服務,并提供API與控制節點對接,由控制節點下發任務
- Neutron:提供計算節點與網絡節點之間的通信服務
2)擴展服務
- Telmeter:提供計算節點的監控代理,將虛擬機的情況反饋給控制節點,是Centimeter的代理服務
##### 計算節點包含最少兩個網絡端口
- eth0:與控制節點進行通信,受控制節點統一調配
- eth2:與網絡節點,存儲節點進行通信
### 存儲節點架構
##### 存儲節點包含Cinder,Swift等服務
- Cinder:塊存儲服務,提供相應的塊存儲,簡單來說,就是虛擬出一塊磁盤,可以掛載到相應的虛擬機之上,不受文件系統等因素影響,對虛擬機來說,這個操作就像是新加了一塊硬盤,可以完成對磁盤的任何操作,包括掛載,卸載,格式化,轉換文件系統等等操作,大多應用于虛擬機空間不足的情況下的空間擴容等等
- Swift:對象存儲服務,提供相應的對象存儲,簡單來說,就是虛擬出一塊磁盤空間,可以在這個空間當中存放文件,也僅僅只能存放文件,不能進行格式化,轉換文件系統,大多應用于云磁盤/文件
##### 存儲節點包含最少兩個網絡接口
- eth0:與控制節點進行通信,接受控制節點任務,受控制節點統一調配
- eth2:與計算/網絡節點進行通信,完成控制節點下發的各類任務
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。