大型網(wǎng)站技術(shù)基石之 OpenStack
我們知道虛擬化能夠充分的利用資源,帶來(lái)各種各樣的好處。 當(dāng)一個(gè)網(wǎng)站不大,只需要四五臺(tái)機(jī)器就可以支撐的時(shí)候,可以采用手工的方式虛擬機(jī),但是當(dāng)網(wǎng)站流量很高,需要成千上萬(wàn)臺(tái)機(jī)器的時(shí)候,那就非常不方便了。 這時(shí)候,云計(jì)算管理平臺(tái)OpenStack就顯出作用了。
云計(jì)算
先來(lái)說(shuō)一下云計(jì)算的基本概念:
云服務(wù)分類:
IaaS:基礎(chǔ)設(shè)施即服務(wù),就像阿里云主機(jī)那樣,直接提供虛擬機(jī)的就是IaaS。
PaaS:平臺(tái)即服務(wù),就像新浪SAE那樣,提供虛擬空間的那種就可以算是Paas,只提供一個(gè)環(huán)境平臺(tái),用戶需要上傳代碼才能提供服務(wù).
SaaS:軟件即服務(wù),例如有道云筆記,百度。
公有云:公有云就像國(guó)家電網(wǎng),為所有人提供服務(wù)。然而公有云的隱私問(wèn)題,比較難以解決,所以對(duì)數(shù)據(jù)安全要求高的話,還是別用。國(guó)內(nèi)有阿里云、騰訊云這類廠商。
私有云:私有云就像一個(gè)工廠自己建立的發(fā)電廠,自己發(fā)電自己用。成本較高。一般是政府部門和實(shí)力強(qiáng)悍的公司擁有。
混合云:混合云綜合了公有云和私有云的優(yōu)劣,可以把私密數(shù)據(jù)放在私有云里面,不怎么私密的放在公有云里面,然而技術(shù)要求比較復(fù)雜啊。
CaaS:OpenStack 創(chuàng)業(yè)公司EasyStack提出并演示的Cloud as a Service(云既服務(wù))。以滿足中大規(guī)模企業(yè)級(jí)用戶對(duì)云計(jì)算安全的要求、服務(wù)級(jí)別和品質(zhì)的要求、對(duì)兼顧隔離控制和靈活彈性的要求、對(duì)成本和業(yè)務(wù)彈性的要求,這些都可以在CaaS里找到答案
OpenStack概述
OpenStack是云計(jì)算事實(shí)上的標(biāo)準(zhǔn)。OpenStack是一個(gè)由Rackspac云解決方案公司和美國(guó)航空航天局(NASA)合作開(kāi)發(fā)推出的經(jīng)Apache2.0許可授權(quán)并以Python語(yǔ)言為基礎(chǔ)的完全開(kāi)源項(xiàng)目;該項(xiàng)目最初的設(shè)計(jì)目的是用來(lái)存儲(chǔ)海量圖片和空間視頻等信息的云計(jì)算管理軟件,OpenStack迅速發(fā)展成一整套綜合的開(kāi)源云計(jì)算項(xiàng)目。
OpenStack不提供虛擬化技術(shù),而是對(duì)虛擬化進(jìn)行管理,它兼容幾乎所有主流虛擬化技術(shù),例如KVM、Xen、VMware、ESX、QEMU,,通過(guò)Libvirt虛擬層來(lái)對(duì)這些虛擬化技術(shù)進(jìn)行包裝,Libvirt統(tǒng)一了虛擬化工具API接口供上層調(diào)用,OpenStack還完全支持Amazon AWS的EC2 API和S3 API,OpenStack的這種對(duì)虛擬化技術(shù)較全面支持的特點(diǎn)使它能夠廣泛地部署。
OpenStack是云計(jì)算laaS開(kāi)源解決方案組件,按照我的理解,云平臺(tái)主要由以下四種層次。上一章講的屬于第二層次,而OpenStack屬于第三層和第四層。

OpenStack架構(gòu)
Openstack主要有以下幾個(gè)組件。

他們之間的關(guān)系如下:

各組件之間都是松耦合的,他們之間采用Restful接口進(jìn)行通信。
Nova
Nova是OpenStack核心組件,其他很多組件都是從Nova項(xiàng)目分割出來(lái)的,都是為Nova服務(wù)的,OpenStack虛擬機(jī)實(shí)例生命周期的所有活動(dòng)都由Nova處理。這樣使得Nova成為一個(gè)負(fù)責(zé)管理計(jì)算資源、網(wǎng)絡(luò)、認(rèn)證、所需可擴(kuò)展性的平臺(tái)。但是,Nova自身并沒(méi)有提供任何虛擬化能力,相反它使用libvirt API來(lái)與被支持的Hypervisors交互(Xen,KVM等等)。Nova 通過(guò)一個(gè)與Amazon Web Services(AWS)EC2 API兼容的web services API來(lái)對(duì)外提供服務(wù),還支持基于消息的異步通信方式。
Nova 云架構(gòu)包括以下主要組件:
API Server (nova-api):接受處理客戶端請(qǐng)求。
Message Queue (rabbit-mq server):Nova內(nèi)部組件采用RabbitMQ消息隊(duì)列進(jìn)行通信,對(duì)各組件解耦非常有用。
Compute Workers (nova-compute):核心組件,虛擬機(jī)管理。
Network Controller (nova-network):處理主機(jī)地網(wǎng)絡(luò)配置。
Volume Worker (nova-volume):用來(lái)管理基于LVM(Logical Volume Manager)的實(shí)例卷。Volume Workers有卷的相關(guān)功能,例如新建卷、刪除卷、為實(shí)例附加卷,為實(shí)例分離卷。
Scheduler (nova-scheduler):nova調(diào)度子服務(wù),當(dāng)客戶端想Nova請(qǐng)求創(chuàng)建虛擬機(jī)的時(shí)候,該服務(wù)決定在哪個(gè)地方創(chuàng)建。
Horizon
Horizon就是一個(gè)控制面板,網(wǎng)頁(yè)形式的。便于對(duì)云計(jì)算系統(tǒng)的管理。
Keystone
Keystone是openstack的認(rèn)證權(quán)限管理組件,使openstack能夠安全可靠的工作,每個(gè)組件都要在keystone進(jìn)行注冊(cè)。所以,該組件在安裝Openstack時(shí)候是***安裝的。
Glance
Glance是虛擬機(jī)鏡像管理組件,注意,這個(gè)只是虛擬機(jī)鏡像管理,并不能存儲(chǔ)鏡像,而是將鏡像存儲(chǔ)在swift或者普通磁盤上