沈澱再出發:openstack初探
沈澱再出發:OpenStack初探
一、前言
OpenStack是IaaS的一種平臺,通過各種虛擬化來提供服務。我們主要看一下OpenStack的基本概念和相應的使用方式。
二、OpenStack的框架和使用
2.1、OpenStack簡介
OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發並發起的,以Apache許可證授權的自由軟件和開放源代碼項目。OpenStack是一個開源的雲計算管理平臺項目,由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的雲環境,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的雲計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。
OpenStack雲計算平臺,幫助服務商和企業內部實現類似於 Amazon EC2 和 S3 的雲基礎架構服務(Infrastructure as a Service, IaaS)。OpenStack 包含兩個主要模塊:Nova 和 Swift,前者是 NASA 開發的虛擬服務器部署和業務計算模塊;後者是 Rackspace開發的分布式雲存儲模塊,兩者可以一起用,也可以分開單獨用。
2.2、OpenStack的架構
OpenStack 本身是一個分布式系統,不但各個服務可以分布部署,服務中的組件也可以分布部署。這種分布式特性讓 OpenStack 具備極大的靈活性、伸縮性和高可用性。
2.3、OpenStack的組成
OpenStack開源項目由社區維護,包括OpenStack計算(代號為Nova),OpenStack對象存儲(代號為Swift),OpenStack鏡像服務(代號Glance)的集合。 OpenStack提供了一個操作平臺,或工具包,用於編排雲。整個OpenStack是由控制節點,計算節點,網絡節點,存儲節點四大部分組成。這四個節點也可以安裝在一臺機器上,單機部署。
1 控制節點負責對其余節點的控制,包含虛擬機建立,遷移,網絡分配,存儲分配等等 2 計算節點負責虛擬機運行 3 網絡節點負責對外網絡與內網絡之間的通信 4 存儲節點負責對虛擬機的額外存儲管理等等
控制節點包括以下服務:
(1)管理支持服務包含MySQL與Qpid兩個服務
1 MySQL:數據庫作為基礎/擴展服務產生的數據存放的地方 2 Qpid:消息代理(也稱消息中間件)為其他各種服務之間提供了統一的消息通信服務
(2)基礎管理服務包含Keystone,Glance,Nova,Neutron,Horizon五個服務
1 Keystone:認證管理服務,提供了其余所有組件的認證信息/令牌的管理,創建,修改等等,使用MySQL作為統一的數據庫。 2 Glance:鏡像管理服務,提供了對虛擬機部署的時候所能提供的鏡像的管理,包含鏡像的導入,格式,以及制作相應的模板。 3 Nova:計算管理服務,提供了對計算節點的Nova的管理,使用Nova-API進行通信。 4 Neutron:網絡管理服務,提供了對網絡節點的網絡拓撲管理,同時提供Neutron在Horizon的管理面板。 5 Horizon:控制臺服務,提供了以Web的形式對所有節點的所有服務的管理,通常把該服務稱為DashBoard。
(3)擴展管理服務包含Cinder,Swift,Trove,Heat,Centimeter五個服務
1 Cinder:提供管理存儲節點的Cinder相關,同時提供Cinder在Horizon中的管理面板 2 Swift:提供管理存儲節點的Swift相關,同時提供Swift在Horizon中的管理面板 3 Trove:提供管理數據庫節點的Trove相關,同時提供Trove在Horizon中的管理面板 4 Heat:提供了基於模板來實現雲環境中資源的初始化,依賴關系處理,部署等基本操作,也可以解決自動收縮,負載均衡等高級特性。 5 Centimeter:提供對物理資源以及虛擬資源的監控,並記錄這些數據,對該數據進行分析,在一定條件下觸發相應動作
網絡節點
網絡節點僅包含Neutron服務,Neutron負責管理私有網段與公有網段的通信,以及管理虛擬機網絡之間的通信/拓撲,管理虛擬機之上的防火等等。網絡節點包含三個網絡端口:
1 eth0:用於與控制節點進行通信 2 eth1:用於與除了控制節點之外的計算/存儲節點之間的通信 3 eth2:用於外部的虛擬機與相應網絡之間的通信
計算節點
計算節點包含Nova,Neutron,Telemeter三個服務。計算節點包含最少兩個網絡端口:
1 eth0:與控制節點進行通信,受控制節點統一調配 2 eth1:與網絡節點,存儲節點進行通信
1 基礎服務: 2 Nova:提供虛擬機的創建,運行,遷移,快照等各種圍繞虛擬機的服務,並提供API與控制節點對接,由控制節點下發任務 3 Neutron:提供計算節點與網絡節點之間的通信服務 4 擴展服務: 5 Telmeter:提供計算節點的監控代理,將虛擬機的情況反饋給控制節點,是Centimeter的代理服務。
存儲節點
存儲節點包含Cinder,Swift等服務。存儲節點包含最少兩個網絡接口:
1 eth0:與控制節點進行通信,接受控制節點任務,受控制節點統一調配 2 eth1:與計算/網絡節點進行通信,完成控制節點下發的各類任務
Cinder:塊存儲服務,提供相應的塊存儲,簡單來說,就是虛擬出一塊磁盤,可以掛載到相應的虛擬機之上,不受文件系統等因素影響,對虛擬機來說,這個操作就像是新加了一塊硬盤,可以完成對磁盤的任何操作,包括掛載,卸載,格式化,轉換文件系統等等操作,大多應用於虛擬機空間不足的情況下的空間擴容等等。
Swift:對象存儲服務,提供相應的對象存儲,簡單來說,就是虛擬出一塊磁盤空間,可以在這個空間當中存放文件,也僅僅只能存放文件,不能進行格式化,轉換文件系統,大多應用於雲磁盤/文件。
2.4、OpenStack的組件和關系
1 Compute (Nova) 計算服務 2 Identity Service (Keystone) 認證服務 3 Image Service (Glance) 鏡像服務 4 Networking (Neutron) 網絡服務 5 Dashboard (Horizon) 儀表板 6 Object Storage (Swift) 對象存儲 7 Block Storage (Cinder) 塊存儲 8 Orchestration (Heat) 編排 9 Telemetry (Ceilometer) 監控 10 Database Service (Trove) 數據庫服務 11 Data Processing (Sahara) 數據處理
Openstack 包含以下服務:
1 1)Dashboard 2 該服務的工程名為Horizon,目的是提供基於Web的自服務門戶,來實現用戶與底層服務的交互,比如啟動實例,分配IP地址,配置訪問控制策略等等。 3 2)Compute 4 該服務的工程名為Nova,目的是管理運行在Openstack環境中的計算實例,比如按需創建,調度和銷毀虛擬機。 5 3)Networking 6 該服務的工程名為Neutron,目的是為Openstack的服務,比如計算服務,提供網絡連接服務。提供了API供用戶定義網絡及其相關內容。基於"插件式"的架構,支持眾多主流的網絡提供商和技術。 7 4)Object Storage 8 該服務工程名為Swift。目的是通過REST API的形式存儲和檢索非結構化數據。由於采用了數據復制和高擴展性架構,所以具有很高的容錯性。該項目的實現並不像具有可掛載目錄的文件服務器,Object Storage通過寫對象和文件到多個驅動器的實現方式,確保了數據能夠在群集之間復制。 9 5)Block Storage 10 該服務的工程名為Cinder。提供一個持久化的塊存儲來運行實例。該服務的"可插拔驅動器"模式,提升了創建和管理塊存儲設備的能力。 11 6)Identity Service 12 該服務的工程名為Keystone。為Openstack服務提供認證和授權,為Openstack服務提供了服務端點目錄。 13 7)Image Service 14 該服務的工程名為Glance。存儲和檢索虛擬機磁盤鏡像,Openstack 計算服務在實例配置的過程中會使用到這個服務。 15 8)Telemetry 16 該服務的工程名為Ceilometer。監控和計量Openstack雲服務,為Openstack提供計費,閥值管理,擴展和分析等服務。 17 9)Orchestration 18 該服務的工程名為Heat。通過本地的HOT模板格式或者AWS CloudFormation模板格式,甚至Openstack本地REST API和兼容CloudFormation的Query API,來編排多個混合的基於雲的應用。 19 10)Database Service 20 該服務的工程名為Trove。為數據庫引擎提供了可靠的,高擴展性的"雲數據庫即服務"。 21 11)Data Processing Service 22 該服務的工程名為Sahara。提供了在Openstack中配置和擴展Hadoop群集的能力,而實現這一點只需要傳hadoop版本,群集拓撲結構和節點的硬件信息即可。
2.5、OpenStack的部署
三、總結
簡單的認識了OpenStack的一些組件以及之間的聯系,後續將在虛擬機上安裝一下OpenStack,對於安裝有著相應的工具fuel可以加快安裝。
參考文獻:http://blog.51cto.com/wzlinux/1961337
https://www.cnblogs.com/kevingrace/p/5733508.html
沈澱再出發:openstack初探