我們知道虛擬化能夠充分的利用資源,帶來各種各樣的好處。 當一個網站不大,只需要四五臺機器就可以支撐的時候,可以采用手工的方式虛擬機,但是當網站流量很高,需要成千上萬臺機器的時候,那就非常不方便了。 這時候,云計算管理平臺OpenStack就顯出作用了。
云計算
先來說一下云計算的基本概念:
云服務分類:
IaaS:基礎設施即服務,就像阿里云主機那樣,直接提供虛擬機的就是IaaS。
PaaS:平臺即服務,就像新浪SAE那樣,提供虛擬空間的那種就可以算是Paas,只提供一個環境平臺,用戶需要上傳代碼才能提供服務.
SaaS:軟件即服務,例如有道云筆記,百度。
公有云:公有云就像國家電網,為所有人提供服務。然而公有云的隱私問題,比較難以解決,所以對數據安全要求高的話,還是別用。國內有阿里云、騰訊云這類廠商。
私有云:私有云就像一個工廠自己建立的發電廠,自己發電自己用。成本較高。一般是政府部門和實力強悍的公司擁有。
混合云:混合云綜合了公有云和私有云的優劣,可以把私密數據放在私有云里面,不怎么私密的放在公有云里面,然而技術要求比較復雜啊。
CaaS:OpenStack 創業公司EasyStack提出并演示的Cloud as a Service(云既服務)。以滿足中大規模企業級用戶對云計算安全的要求、服務級別和品質的要求、對兼顧隔離控制和靈活彈性的要求、對成本和業務彈性的要求,這些都可以在CaaS里找到答案
OpenStack概述
OpenStack是云計算事實上的標準。OpenStack是一個由Rackspac云解決方案公司和美國航空航天局(NASA)合作開發推出的經Apache2.0許可授權并以Python語言為基礎的完全開源項目;該項目最初的設計目的是用來存儲海量圖片和空間視頻等信息的云計算管理軟件,OpenStack迅速發展成一整套綜合的開源云計算項目。
OpenStack不提供虛擬化技術,而是對虛擬化進行管理,它兼容幾乎所有主流虛擬化技術,例如KVM、Xen、VMware、ESX、QEMU,,通過Libvirt虛擬層來對這些虛擬化技術進行包裝,Libvirt統一了虛擬化工具API接口供上層調用,OpenStack還完全支持Amazon AWS的EC2 API和S3 API,OpenStack的這種對虛擬化技術較全面支持的特點使它能夠廣泛地部署。
OpenStack是云計算laaS開源解決方案組件,按照我的理解,云平臺主要由以下四種層次。上一章講的屬于第二層次,而OpenStack屬于第三層和第四層。
OpenStack架構
Openstack主要有以下幾個組件。
他們之間的關系如下:
各組件之間都是松耦合的,他們之間采用Restful接口進行通信。
Nova
Nova是OpenStack核心組件,其他很多組件都是從Nova項目分割出來的,都是為Nova服務的,OpenStack虛擬機實例生命周期的所有活動都由Nova處理。這樣使得Nova成為一個負責管理計算資源、網絡、認證、所需可擴展性的平臺。但是,Nova自身并沒有提供任何虛擬化能力,相反它使用libvirt API來與被支持的Hypervisors交互(Xen,KVM等等)。Nova 通過一個與Amazon Web Services(AWS)EC2 API兼容的web services API來對外提供服務,還支持基于消息的異步通信方式。
Nova 云架構包括以下主要組件:
API Server (nova-api):接受處理客戶端請求。
Message Queue (rabbit-mq server):Nova內部組件采用RabbitMQ消息隊列進行通信,對各組件解耦非常有用。
Compute Workers (nova-compute):核心組件,虛擬機管理。
Network Controller (nova-network):處理主機地網絡配置。
Volume Worker (nova-volume):用來管理基于LVM(Logical Volume Manager)的實例卷。Volume Workers有卷的相關功能,例如新建卷、刪除卷、為實例附加卷,為實例分離卷。
Scheduler (nova-scheduler):nova調度子服務,當客戶端想Nova請求創建虛擬機的時候,該服務決定在哪個地方創建。
Horizon
Horizon就是一個控制面板,網頁形式的。便于對云計算系統的管理。
Keystone
Keystone是openstack的認證權限管理組件,使openstack能夠安全可靠的工作,每個組件都要在keystone進行注冊。所以,該組件在安裝Openstack時候是最先安裝的。
Glance
Glance是虛擬機鏡像管理組件,注意,這個只是虛擬機鏡像管理,并不能存儲鏡像,而是將鏡像存儲在swift或者普通磁盤上