openstack

1.1.  Openstack的功能與作用

  當今的數據中心,許多服務器都遇到過同樣的問題,即計算,電源,網絡帶寬等資源的利用率不足當用戶想要一種靈活的,按需供給計算資源的服務,通過自動化或很少的人工干預就能使用時,那麼雲計算就是最好的選擇之一。雲計算通常包含了一個服務責任,表示雲計算服務提供商承諾的性能,規格,可用率等。雲計算服務讓用戶通過一個共享的計算資源,網絡帶寬,存儲池,運行應用程序或服務來完成計算工作,並按資源的使用來計費。

  Openstack具有建設這樣資源池的能力,通過openstack的各種組件多種模式的排列組合,可以搭建成各種規模的雲,這些雲可以是私有云,公有云,混合雲。

  Openstack具有三大核心功能,即計算,存儲,網絡,分別對應相應的項目Nova,Cinder等。其中Nova提供了計算資源的管理,可以管理跨服務器網絡的vm實例。同時Nova還提供了對多種Hyperviosr的支持,如KVM,QEMU,Xen,LXC,Vmware,Hyper-V,Powervm等。Cinder提供了存儲資源的管理,可以管理各個廠商提供的專業存儲設備。

1.2.  Openstack關鍵組件

服務名稱

項目名稱

描述

Dashboard

Horizon

基於openstackAPI接口使用django開發的web管理

Compute

Nova

通過虛擬化技術提供計算資源池

Networking

Neutron

實現了虛擬機的網絡資源管理


Storage存儲


Object Storage

Swift

對象存儲,適用於“一次寫入,多次讀取”

Block storage

Cinder

塊存儲,提供存儲資源池


Shared  server(共享服務)


Identity

Keystone

認證管理

Imageservice

glance

提供虛擬機鏡像的註冊和存儲管理

Telemetry  [t'lemtr]

Ceilometer [si'lmt]

提供監控和數據採集,計量服務


Higher-level  service(高級服務)


Orchestration [,ks'tren]

Heat

自動化部署的組件

DatabaseService

Trove

提供數據庫應用服務


Mysql:

         Openstack所使用的數據庫,包括novaglancecinder等在內的組件都會建立自己的數據庫,保存一些必要的數據。

Keystone:

         Openstack的用戶認證組件,它的功能主要是建立管理項目的用戶和各種服務端口,以及進行用戶的身份認證,若要使用openstack的任意的API,第一步就必須通過keystone的驗證。

keystone的主要功能是提供認證和編錄服務

keystone提供了兩種認證方式:token,identifybackend

         token(令牌,實際是一個隨機字串,在認證時直接使用),主要用於內部各組件之間

         identify(賬號,密碼),需要用戶登陸時,如用戶通過horizon訪問雲資源

catalog(編錄):保存當前openstack架構中的調用接口(ip地址,端口,url信息),openstack各個組件之間交互通過api接口,openstack架構各個組件通過httprestful機制(一種軟件架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制)遠程過程調用,基於URI輸出。

policy:管理策略,如與用戶管理、虛擬機實例管理有關的策略

Glance:

         用來存放管理虛擬機鏡像和快照的服務,這也是一個最小架構中必須有的服務。

glance存放鏡像的元數據的

registry:調用數據庫的接口,檢索接口

database:映像文件的存儲位置等

         swift:分佈式存儲

Neutron:

         網絡服務,用來提供虛擬機網絡通信的組件,負責接收對網絡的調用請求。

Nova

         Nova是個至關重要的組件,也是個相對龐大的組件,其中有很多服務,它是進行生成虛擬機工作的主要服務。

Nova計算節點,是openstack的最核心的節點,運行虛擬機實例,分配cpu、內存,nova-compute本身並不能運行虛擬機,是要通過hypervisor,nova-compute通過api調用hypervisor,,nova-compute支持那種api就可以調用那種hypervisor,nova-compute支持libvirt api就可以調用libvirt支持的hypervisor(如kvm),xenapi可以調用xen

Cinder:塊存儲

         用來創建,刪除及管理volume(虛擬磁盤卷),以及給volume做快照等服務的組件

swift:分佈式文件系統,用來存儲鏡像文件模板

Horizion:

         Openstackweb管理頁面,使用django框架開發。Web管理頁面包含了日常使用的大部分功能,提供給用戶一個最直觀的展現方式。很多簡單的二次開發都是從Horizon開始的。

Rabbitmq

         openstack中,各個服務之間是通過消息來交互的,因爲openstack使用AMQP作爲消息傳遞的技術,所以rabbitmq,qpid,zeromq等支持AMQP的軟件都是被openstack所支持的。Rabbitmq是第一個被openstack所使用的消息傳遞軟件。Openstack通過AMQP實現RPC服務,來保證不同組件之間的通信,rabbitmq是控制節點中的一個非常關鍵的服務。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章