openstack各個組件對應介紹

openstack各組件介紹
openstack各組件介紹
 
 
圓形爲openstack組件,矩形爲外部組件
RabbitMQ, Qpid, ZeroMQ爲消息隊列
xapi+XCP, xapi+XenServer, libvirt+KVM, libvirt+QEMU, libvirt+LXC, libvirt+VMWare爲虛擬化技術
LVM+IET, LVM+tgt, Xen Storage Manager, SAN (Solaris, HP, SolidFire), NexentaStor, NetApp, Ceph, Sheepdog爲外部擴展iscsi存儲,用來掛載遠程塊存儲設備
MySQL, PostgreSQL, sqlite爲數據庫
Apache, Nginx 爲web服務器
memcache, any Django-supported database backend (e.g., MySQL, PostgreSQL, sqlite)爲會話緩存技術
floating IP爲服務器對外網絡IP,fixed IP爲虛擬機網段IP
 
    nova-compute 通過虛擬驅動技術管理虛擬機,一般採用KVM+libvirt或XCP+xapi技術
nova-network 通過linux網絡技術實現虛擬機與物理服務器的通信,Dnsmasq與DHCP服務器相似,向虛擬機分發IP。(F版爲 Quantum)
nova-volume 利用LVM創建和管理本地磁盤卷,使用IET或tgt實現iSCSI。(F版爲Cinder)

openstack-dashboard基於 Django的web應用,使用apache web服務器,默認使用 memcache做會話緩存,novnc通過VNC技術遠程控制虛擬機節點

Identity-------------Keystone

 

Compute----------Nova

Image-----------Glance

Dashboard---------Horizon

Object Storage--------Swift

Volumes---------Cinder

Networking------Quantum

 OpenStack 主要由3個核心的項目組成, 它們是OpenStack Compute(代號 Nova)、OpenStack Object Storage(代號Swift)和OpenStack Image Service(代號Glance), 除此之外, 目前還添加了身份驗證服務Openstack Identity Service(代號Keystone)和OpenStack Dashboard, 通過它們之間相互集成和協作, 我們就可以非常方便的打造一個規模龐大的雲計算環境。 另外開源社區也在不斷的爲OpenStack添磚加瓦, 我們可以通過OpenStack Projects來了解, 具體有多少應用以及它們的作用是什麼。


下面這張圖描述了OpenStack的核心部件是如何工作的:


官方地址:https://github.com/openstack 

孵化項目:https://github.com/stackforge

Nova
這個是最核心的,Nova最開始的時候,可以說是一套虛擬化管理程序,還可以管理網絡和存儲。不過從Essex版本後,Nova開始做減法,和網絡相關的 內容,包括安全組,交給Quantum負責,存儲相關的交給Cinder負責。調度有關的內容,會交給新的項目Marconi。
以前還有一個nova common,這其實是各個組件都使用相同的東西,現在也專門成立一個項目:oslo,已經是核心項目。
未來Nova對各種Hyperv的支持是有差異的,KVM和XEN,基本是最好的。微軟的Hyper-V算是很不錯,微軟投入再研發。剛纔朋友還專門提到一點:就是未來計算節點,不直接查詢數據庫,而是通過rpc的方式,據說這是一大進步。
Nova的穩定性,其實取決於libvirt,qemu,希望未來可以能更加穩定。功能現在其實已經不是大問題。

keystone
這是提供身份認證和授權的組件。任何系統,身份認證和授權,其實都比較複雜。尤其Openstack 那麼龐大的項目,每個組件都需要使用統一認證和授權。
目前keystone 要做的東西其實還是很多。沒法基於角色的授權,web管理用戶等。當然你如果希望實現使用動態令牌認證,多因素認證,LDAP集成,這都是未來版本需要實現的功能,這些功能都已經在計劃中。
目前好像要實現keystone的高可用,還是比較困難,這個就讓社區慢慢解決吧。大規模部署,這也會是瓶頸。

Glance
這是鏡像管理。功能其實相對比較簡單。不過Glance後端的存儲的支持,其實一直到Folsom的版本,Glance對swift的支持,纔算是比較完善。
目前Glance的鏡像存儲,支持本地存儲,NFS,swift,sheepdog和Ceph,基本是夠用了。
目前Glance的最大需求就是多個數據中心的鏡像管理,如何複製,不過這個功能已經基本實現。還有就是租戶私有的p_w_picpath管理,這些目前功能都已經實現。
個人感覺:Glance後續基本就是一個bug修復,穩定的階段。

Quantum
這是網絡管理的組件,也是重頭戲,Openstack的未來,基本都要靠quantum。上面介紹nova的時候,說過網絡相關的內容,都會交給 Quantum。不過Quantum的開發進度不是太如人意。Flosom規劃實現功能,到Grizzly才實現。未來nova network的代碼清理,估計到H版本都不見得可以實現。
Quantum 後端可以是商業產品或者開源。開源產品支持Openvswitch,和linux bridge。網絡設備廠商都在積極參與,讓他們的產品支持Quantum,目前思科,銳捷已經實現支持。
比較悲觀的估計:quantum要完全滿足生產的需求,例如帶寬限制,mutilhost等功能,很可能需要等到2014年的I版本,真的考驗耐心。
如果你關注Quantum的話,就會發現目前還是在起步階段,無論是bug還是功能,都是非常多。

Cinder
這是存儲管理的組件。一直以來,很多人都很糾結AWS的EBS的實現。Openstack也終於推出了自己的存儲管理組件。
Cinder存儲管理主要是指虛擬機的存儲管理。目前支持開源和商業化產品。開源的sheepdog,Ceph等。商業存儲的支持,目前IBM是最積極的。未來如果商業存儲廠商都支持Cinder,對Openstack的商業化還是非常有利的。
對於企業來說,使用分佈式作爲虛擬機的存儲,並不能真正節省成本,維護一套分佈式存儲,成本還是很高的。目前虛擬機的各種高可用,備份的問題,其實都可以把問題交給商業存儲廠商來解決。

Lbaas
這是實現負載均衡的項目。現在linode,Rackspace,都提供了負載均衡的服務,有了這個服務,你纔有可能實現所謂的彈性擴展。這個組件是Mirantis公司和思科合作開發的。目前這個項目集成在Quantum裏,不過基本算是一個獨立的組件。
Lbaas後端可以是各種商業產品和開源產品。F5,Ngnix,Haproxy,LVS
爲了發佈的Grizzly,你應該有機會在Dashboard裏設置虛擬機的負載均衡。

Horizon
嚴格意義來說,Horizon不會爲Openstack 增加一個功能,他更多的是一個演示,demo。不過對於很多用戶來說,瞭解Openstack基本都是從Horizon,dashboard開始。從這個 角度來看,他在Openstack各個項目裏,顯得非常重要。
Horizon的開發者,應該是最累的。需要和各個項目打角度。每個項目的功能很多都是需要通過Dashboard來展現。
大家需要注意的是:Horizon只是使用了Openstack部分API功能,很多功能,你可以根據你的需求去實現。

Swift
這是對象存儲的組件。對於大部分用戶來說,swift不是必須的。你只有存儲數量到一定級別,而且是非結構化數據纔有這樣的需求。很多人都問一個相同的問 題:是否可以把虛擬機的存儲放在swift上。簡單回答:不行。你需要搞明白對象存儲是幹啥,擅長那些地方,那些是不行的。
swift是Openstack所有組件了最成熟的,可以在線升級版本,各種版本可以混合在一起,也就是說,1.75版本的swift可以和1.48的在一個羣集裏.這個是很難得的.


oslo
這個項目其實就是把所有組件需要用到相同的東西,集中起來,以前叫nova common,估計感覺不貼切,現在單獨成立一個項目。日後大家開發新的組件,估計都需要用到oslo。

Ceilometer
這是實現監控和計量的組件。這應該算是Grizzly的孵化項目。對他的瞭解其實很少。在Grizzly版本里,你應該可以在Dashboard裏看到這個組件。
監控和計費一直是一個難題,尤其用戶希望知道cpu和內存的使用情況。看看他如何解決這個問題。到時候看看同事如何調用api來解決監控和計量的問題。解決計量,計費就簡單的。
http://wiki.openstack.org/Ceilometer

Heat
這個項目是要解決虛擬機的軟件部署的問題。你的虛擬機創建好,os準備好,你還需要做很多配置才能使用,如何能實現把所有繁瑣的操作簡化呢?亞馬遜上有一 個專門的工具:AWS cloudformation。目前Openstack上,希望通過Heat來實現類似的功能。
關於這個項目,還是有很多爭議。不過這個項目是Redhat發起。他們的功力是不容置疑,等Openstack成熟後,這個項目的重要性就會體現出來。
http://wiki.openstack.org/Heat 
真的要實現彈性擴展,自動部署,都是需要指望這個。目前Heat已經成爲孵化項目

下面的項目,基本都還是在討論階段,不過成爲孵化項目的可能性很大。
Moniker
這是實現dns功能的組件。其實如果你用過AWS,你就知道這個功能是必不可少。新浪目前的已經加上了這個功能,每個虛擬機,都會自動有一個dns記錄。
https://github.com/stackforge/moniker
估計集成到Dashboard裏,還是需要等待一段時間啊。目前該項目開發還是非常積極。

marconi
此項目用於解決openstack 消息隊列的擴展問題。據說這是Rackspce推出的項目,就是爲了解決他們生產中遇到消息隊列的問題。
Marconi – Message Bus for OpenStack

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