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技術遠程控制虛擬機節點node

Identity-------------Keystonelinux

 

Compute----------Novagit

Image-----------Glancegithub

Dashboard---------Horizonweb

Object Storage--------Swiftsql

Volumes---------Cinder數據庫

Networking------Quantumapache

 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修復,穩定的階段。
swift

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

相關文章
相關標籤/搜索