第二章 相關研究
2.4 OpenStack
OpenStack 是一個能幫助管理雲端資源中心的開放軟體,由 Rackspace
11 網路管理方面,OpenStack 在管理網路上,是可以使用 API 且可替換的,讓管理 者或是使用者可以自訂個人化的網路設定。除此之外,OpenStack 也有支援兩種 儲存空間,一種是物件導向式儲存空間(Object Storage),另一種是批次式儲存空 間(Block Storage),使用者可依照不同需求來選擇。物件導向式儲存空間的好處 是高分散度,可用 API 存取儲存空間,並幫助整合導向式應用程式的備份及包 裝。批次式儲存空間能提供整合時更好的效率,因為批次式儲存空間允許一批設 備可以同時連結上計算機器,讓計算機器可以擴展儲存空間。
OpenStack 以工作內容區分,可以分為三個部分:Control Node、Network Node 和 Compute Node。Control Node 管理所有的計算資源,決定虛擬機器開啟的位置,
並且紀錄虛擬機器的相關資訊。Network Node 管理網路配置,分配網路位址給 虛擬機器,定義網路路由方式。Compute Node 即是計算資源,虛擬機器都將開 啟在 Compute Node 上,Compute Node 可以依需要增加數量,因此 Control Node 決定虛擬機器將開啟在指定的 Compute Node 上。
圖一、圖二及圖三分別表示 OpenStack 的 Controller Node、Network Node 以 及 Compute Node 互相溝通所需要的軟體。如圖一 ,Controller Node 上所安裝的 quantum-server 將設定網路相關的訊息,再交由 Network Node 上的 quantum-agent 來執行;nova-api 與 nova-scheduler 是決定虛擬機器的相關動作並交由 Compute
12
Node 來執行;keystone 提供認證以及驗證的服務;RabbitMQ 是 OpenStack 內部 溝通的軟體,無論是操作虛擬機器或是設定虛擬機器網路都需要透過 RabbitMQ 傳遞訊息;MySQL 是 OpenStack 目前使用的資料庫系統。如圖二,Network Node 所安裝的軟體都屬於 Quantum,包含 DHCP、路由設定以及網址配置等。如圖三,
Compute Node 上安裝 nova-compute,nova-compute 從 Controller Node 接收命令 並進行操作,管理 Compute Node 上的虛擬機器[錯誤! 找不到參照來源。]。
圖一 Controller Node
圖二 Network Node
13
圖三 Compute Node
Openstack 以服務功能來區分,主要有七個部分:Nova、Quantum、Keystone 、 Glance、Cinder、Swift 以及 Horizon 如圖四。Nova 主要的工作是管理運算資源,
決定開啟的虛擬機器將配置到適合的實體機器;Quantum 主要的工作是管理網路 配置,配置適合的網址給開啟的虛擬機器;Keystone 是提供所有的認證,並且處 理驗證的工作;啟動虛擬機器所需要的映像檔是由 Glance 所管理;Cinder 是配 置批次儲存空間給虛擬機器的,主要是用在虛擬機器需要增加儲存空間的時候;
而 Swift 是提供物件導向式儲存空間,主要是用來存放虛擬機器的映像檔和資料;
Horizon 就是提供一個網頁介面,讓使用者可以透過圖形化介面,操作 OpenStack 所提供的服務,像是啟動虛擬機器並配置網址[36]。
圖四 OpenStack 服務區塊
14