淺談openstack(筆記)

一氓栈、openstack簡介

1.定義

  • OpenStack是什么? OpenStack是一個(gè)云操作系統(tǒng)不同,通過數(shù)據(jù)中心可控制大型的計(jì)算脓魏、存儲(chǔ)、網(wǎng)絡(luò)等資源池杭跪。所有的管理通過前端界面管理員就可以完成仙逻,同樣也可以通過web接口讓最終用戶部署資源。

2.核心項(xiàng)目 (來自百度詞條)

  • 計(jì)算(Compute):Nova涧尿。一套控制器系奉,用于為單個(gè)用戶或使用群組管理虛擬機(jī)實(shí)例的整個(gè)生命周期,根據(jù)用戶需求來提供虛擬服務(wù)姑廉。負(fù)責(zé)虛擬機(jī)創(chuàng)建缺亮、開機(jī)、關(guān)機(jī)桥言、掛起萌踱、暫停、調(diào)整号阿、遷移蜒程、重啟媚污、銷毀等操作审姓,配置CPU旅急、內(nèi)存等信息規(guī)格。自Austin版本集成到項(xiàng)目中扰柠。
  • 對象存儲(chǔ)(Object Storage):Swift。一套用于在大規(guī)奶墼迹可擴(kuò)展系統(tǒng)中通過內(nèi)置冗余及高容錯(cuò)機(jī)制實(shí)現(xiàn)對象存儲(chǔ)的系統(tǒng)卤档,允許進(jìn)行存儲(chǔ)或者檢索文件〕贪可為Glance提供鏡像存儲(chǔ)劝枣,為Cinder提供卷備份服務(wù)汤踏。自Austin版本集成到項(xiàng)目中。
  • 鏡像服務(wù)(Image Service):Glance舔腾。一套虛擬機(jī)鏡像查找及檢索系統(tǒng)溪胶,支持多種虛擬機(jī)鏡像格式(AKI、AMI稳诚、ARI哗脖、ISO、QCOW2扳还、Raw才避、VDI、VHD氨距、VMDK)桑逝,有創(chuàng)建上傳鏡像、刪除鏡像俏让、編輯鏡像基本信息的功能楞遏。自Bexar版本集成到項(xiàng)目中。
  • 身份服務(wù)(Identity Service):Keystone首昔。為OpenStack其他服務(wù)提供身份驗(yàn)證寡喝、服務(wù)規(guī)則和服務(wù)令牌的功能,管理Domains沙廉、Projects拘荡、Users、Groups撬陵、Roles珊皿。自Essex版本集成到項(xiàng)目中。
  • 網(wǎng)絡(luò)&地址管理(Network):Neutron巨税。提供云計(jì)算的網(wǎng)絡(luò)虛擬化技術(shù)蟋定,為OpenStack其他服務(wù)提供網(wǎng)絡(luò)連接服務(wù)。為用戶提供接口草添,可以定義Network驶兜、Subnet、Router远寸,配置DHCP抄淑、DNS、負(fù)載均衡驰后、L3服務(wù)肆资,網(wǎng)絡(luò)支持GRE、VLAN灶芝。插件架構(gòu)支持許多主流的網(wǎng)絡(luò)廠家和技術(shù)郑原,如OpenvSwitch唉韭。自Folsom版本集成到項(xiàng)目中。
  • 塊存儲(chǔ) (Block Storage):Cinder犯犁。為運(yùn)行實(shí)例提供穩(wěn)定的數(shù)據(jù)塊存儲(chǔ)服務(wù)属愤,它的插件驅(qū)動(dòng)架構(gòu)有利于塊設(shè)備的創(chuàng)建和管理,如創(chuàng)建卷酸役、刪除卷住诸,在實(shí)例上掛載和卸載卷。自Folsom版本集成到項(xiàng)目中簇捍。
  • UI 界面 (Dashboard):Horizon只壳。OpenStack中各種服務(wù)的Web管理門戶,用于簡化用戶對服務(wù)的操作暑塑,例如:啟動(dòng)實(shí)例吼句、分配IP地址、配置訪問控制等事格。自Essex版本集成到項(xiàng)目中惕艳。
  • 測量 (Metering):Ceilometer。像一個(gè)漏斗一樣驹愚,能把OpenStack內(nèi)部發(fā)生的幾乎所有的事件都收集起來远搪,然后為計(jì)費(fèi)和監(jiān)控以及其它服務(wù)提供數(shù)據(jù)支撐。自Havana版本集成到項(xiàng)目中逢捺。
  • 部署編排 (Orchestration):Heat谁鳍。提供了一種通過模板定義的協(xié)同部署方式,實(shí)現(xiàn)云基礎(chǔ)設(shè)施軟件運(yùn)行環(huán)境(計(jì)算劫瞳、存儲(chǔ)和網(wǎng)絡(luò)資源)的自動(dòng)化部署倘潜。自Havana版本集成到項(xiàng)目中。
  • 數(shù)據(jù)庫服務(wù)(Database Service):Trove志于。為用戶在OpenStack的環(huán)境提供可擴(kuò)展和可靠的關(guān)系和非關(guān)系數(shù)據(jù)庫引擎服務(wù)涮因。自Icehouse版本集成到項(xiàng)目中。

3.架構(gòu)圖

  • 體系構(gòu)架圖


    opensack體系構(gòu)架圖
  • 概念構(gòu)架圖


    openstack概念架構(gòu)圖

二伺绽、openstack認(rèn)證服務(wù)(keystone)

1.keystone的功能

openstack是一個(gè)SOA架構(gòu)养泡,理論上各子項(xiàng)目獨(dú)立提供相關(guān)服務(wù),互不依賴奈应,且是分布式的澜掩。如nova提供計(jì)算服務(wù),glance提供鏡像服務(wù)等杖挣。

實(shí)際上所有的組件都依賴keystone(單點(diǎn)的)肩榕,它集成了三個(gè)功能:

  • 管理身份驗(yàn)證(managing authentication):驗(yàn)證用戶身份

  • 授權(quán)(authorization):基于角色role的權(quán)限管理

  • 服務(wù)目錄(catalog of services):提服務(wù)目錄(ServiceCatalog:包括service和endpoint)服務(wù),類似于UDDI服務(wù)的概念程梦,用戶(無論是Dashboard, APIClient)都需要訪問Keystone獲取服務(wù)列表点把,以及每個(gè)服務(wù)的地址(Openstack中稱為Endpoint)

2.keystone的基本概念

  • User
    使用服務(wù)的用戶,可以是人屿附,服務(wù)或者系統(tǒng)郎逃,只要是使用了openstack服務(wù)的對象都可以稱為用戶。當(dāng)User對OpenStack進(jìn)行訪問時(shí)挺份,Keystone會(huì)對其身份進(jìn)行驗(yàn)證褒翰。
  • Project
    租戶,可以理解為一個(gè)人匀泊、項(xiàng)目或者組織擁有的資源的合集优训。在一個(gè)租戶中可以擁有很多個(gè)用戶,這些用戶可以根據(jù)權(quán)限的劃分使用租戶中的資源各聘。
  • Token
    指的是一串比特值或者字符串揣非,用來作為訪問資源的令牌。Token中含有可訪問資源的范圍和有效時(shí)間躲因。
  • Role
    角色早敬,用于分配操作的權(quán)限。角色可以被指定給用戶大脉,使得該用戶獲得角色對應(yīng)的操作權(quán)限搞监。安全包含兩部分:Authentication(認(rèn)證)和 Authorization(鑒權(quán))
  • Service
    Openstack Service,即Openstack中運(yùn)行的組件服務(wù)镰矿。nova琐驴,glance都是屬于一個(gè)服務(wù),需要在keystone上進(jìn)行創(chuàng)建秤标,指定類型绝淡。
    創(chuàng)建服務(wù)有一個(gè)服務(wù),就創(chuàng)建一個(gè)endpoint抛杨,會(huì)根據(jù)服務(wù)類型去查找那個(gè)服務(wù)够委。Service 決定每個(gè) Role 能做什么事情 ,Service 通過各自的 policy.json 文件對 Role 進(jìn)行訪問控制
  • Endpoint
    一個(gè)可以通過網(wǎng)絡(luò)來訪問和定位某個(gè)Openstack Service的地址怖现,通常是一個(gè)URL茁帽。例如,Nova需要訪問Glance服務(wù)去獲取Image時(shí)屈嗤,Nova通過訪問Keystone拿到Glance的Endpoint潘拨,然后通過訪問該Endpoint去獲取Glance服務(wù),我們可以通過Endpoint的region屬性去定義多個(gè)region饶号。Endpoint該使用對象分為三類:
    Admin URL:給admin用戶使用铁追,被從常規(guī)的訪問中分離。
    Internal URL:Openstack內(nèi)部服務(wù)使用來跟別的服務(wù)通信茫船,只能被局域網(wǎng)訪問琅束。
    Public URL:其它用戶可以訪問的地址扭屁,可以被全局訪問。
  • Catalog
    用戶和服務(wù)可以使用使用keystone管理的catalog涩禀,定位到其他的服務(wù)料滥,catalog一個(gè)openstack部署的相關(guān)服務(wù)的集合,每個(gè)服務(wù)都有一個(gè)或者多個(gè)endpoint(即可以訪問的url地址)艾船,即catalog=services+endpoint葵腹。

3.keystone與其他組件交互

keystone與其他組件協(xié)同工作.png

4.keystone工作流程

(1) User從Keystone獲取令牌以及服務(wù)列表
(2) User訪問服務(wù)時(shí),亮出自己的令牌
(3)相關(guān)的服務(wù)向Keystone求證令牌的合法性


keystone工作流程.png

三屿岂、openstack鏡像服務(wù)(glance)

1.glance的組件

  • Glance-API
    主要用來響應(yīng)各種REST請求然后通過其它模塊(主要是glance-registry組件和后端存儲(chǔ)接口)完成鏡像的上傳践宴、刪除、查詢等操作爷怀∽杓纾可以簡單的再分為兩部分:一層中間件,它主要是做一些對請求的解析工作(如分析出版本號)霉撵, 另外一部分提供實(shí)際的服務(wù)(如與鏡像上傳下載的后端存儲(chǔ)接口交互)磺浙。默認(rèn)綁定端口是9292。
  • Glance-Registry
    鏡像注冊服務(wù)用于提供鏡像元數(shù)據(jù)的REST接口徒坡。主要工作是存儲(chǔ)或者獲取鏡像的元數(shù)據(jù)撕氧,與MySQL數(shù)據(jù)庫進(jìn)行交互。也可以簡單的再細(xì)分為兩部分喇完,API和具體的Server伦泥。元數(shù)據(jù)是指鏡像相關(guān)的一些信息(如id,size锦溪, status不脯,location,checksum刻诊,min_disk防楷,min_ram,owner等)真正的鏡像數(shù)據(jù)保存在實(shí)際所使用的后端存儲(chǔ)里(如Swift则涯,S3复局,F(xiàn)ilesystem等)。默認(rèn)綁定的端口是9191粟判。
  • Image Store
    嚴(yán)格來說Image Store不屬于Glance的組件亿昏,這里把它單獨(dú)分出來只是為了方便理解,它只是一個(gè)接口層档礁,提供鏡像存儲(chǔ)和查詢的接口角钩。具體的實(shí)現(xiàn)則需要外部存儲(chǔ)(Swift,S3)的支持。

2.glance的工作流程

Glance需要配置的服務(wù):glance-api递礼、glance-registry
Glance-api:接受云系統(tǒng)鏡像的創(chuàng)建惨险、刪除、讀取請求
Glance-registry:云系統(tǒng)鏡像注冊服務(wù)


glance的工作流程.png

(1)Glance-api接收REST API的請求脊髓,類似nova-api
(2)Glance-api在功能上與nova-api十分類似平道,都是接收REST API請求,然后通過其他模塊(glance-registry及Image Store)來完成諸如鏡像的查找供炼、‘獲取、上傳窘疮、刪除等操作袋哼,api默認(rèn)的監(jiān)聽端口為9292
(3)Glance-registry用于與MySQL數(shù)據(jù)庫交互,用于存儲(chǔ)或獲取鏡像的元數(shù)據(jù)(metadata)闸衫;提供鏡像元數(shù)據(jù)相關(guān)的REST接口涛贯,通過glance-registry,可以向數(shù)據(jù)庫寫入或獲取鏡像的各種數(shù)據(jù)蔚出,glance-registry的監(jiān)聽端口為9191弟翘。glance的數(shù)據(jù)庫中有兩張表,一張是image表骄酗,另一張是imgage propetry表稀余。
(4)image store是一個(gè)存儲(chǔ)的接口層,通過這個(gè)接口趋翻,glance可以獲取鏡像睛琳,image store支持有Amazon的S3,OpenStack本身的swift踏烙,還有諸如ceph师骗,GlusterFS等分布式存儲(chǔ)。Image Store僅僅是一個(gè)接口處讨惩,具體的實(shí)現(xiàn)需要外部的存儲(chǔ)支持辟癌。

四、openstack計(jì)算服務(wù)(nova)

1nova的組件

  • nova-api:
    是整個(gè)nova的門戶荐捻,所有對nova的請求都首先由nova-api處理黍少。Nova-api向外暴露若干HTTP rest api 接口在keystone中,客戶端可以將請求發(fā)送到endpoint指定的地址靴患,向nova-api請求操作仍侥。
    Nova-api對收到的HTTP api請求會(huì)做如下處理:
    (1) 檢查客戶端傳入的參數(shù)是否合法;
    (2) 調(diào)用nova其他子服務(wù)的處理客戶端HTTP請求鸳君;
    (3) 格式化nova其他子服務(wù)返回的結(jié)果并返回給客戶端农渊。
  • nova-conductor:
    Nova-compute需要獲取和更新數(shù)據(jù)庫中instance的信息,但nova-compute并不會(huì)直接訪問數(shù)據(jù)庫,而是通過nova-conductor實(shí)現(xiàn)數(shù)據(jù)的訪問砸紊。
    使用nova-conductor的兩個(gè)顯著好處:
    (1) 更好的系統(tǒng)安全性:早期的openstack版本中传于,nova-compute可以直接訪問數(shù)據(jù)庫,但試想如果任意一個(gè)計(jì)算節(jié)點(diǎn)被黑客入侵醉顽,都會(huì)導(dǎo)致控制節(jié)點(diǎn)上的數(shù)據(jù)庫面臨極大的風(fēng)險(xiǎn)沼溜。為了解決這個(gè)問題,引入了nova-conductor游添;
    (2) 更好的伸縮性:nova-conductor建立后系草,提高了nova的伸縮性。Nova-compute與conductor是通過消息中間件交互的唆涝。這種松散的架構(gòu)允許配置多個(gè)nova-conductor實(shí)例找都,從而應(yīng)對日益增長的計(jì)算節(jié)點(diǎn)對數(shù)據(jù)庫的訪問。
  • nova-scheduler
    虛擬機(jī)調(diào)度服務(wù)廊酣,負(fù)責(zé)決定在哪個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行虛機(jī)能耻。
    如何選擇計(jì)算節(jié)點(diǎn)——啟動(dòng)實(shí)例調(diào)度策略
    Filter scheduler(調(diào)度器),調(diào)度過程分兩步:
    (1) 通過過濾器(filter)選擇滿足條件的計(jì)算節(jié)點(diǎn)(運(yùn)行nova-compute)
    (2) 通過權(quán)重計(jì)算(weighting)選擇在最優(yōu)(權(quán)重值最大)的計(jì)算節(jié)點(diǎn)上創(chuàng)
  • nova-compute
    nova-compute 在計(jì)算節(jié)點(diǎn)上運(yùn)行亡驰,負(fù)責(zé)管理節(jié)點(diǎn)上的 instance晓猛。OpenStack 對 instance 的操作,最后都是交給 nova-compute 來完成的凡辱。nova-compute 與 Hypervisor 一起實(shí)現(xiàn) OpenStack 對 instance 生命周期的管理戒职。
  • Console Interface
    nova-console: 用戶可以通過多種方式訪問虛機(jī)的控制臺(tái):
    nova-novncproxy: 基于 Web 瀏覽器的 VNC 訪問
    nova-consoleauth: 負(fù)責(zé)對訪問虛機(jī)控制臺(tái)請求提供 Token 認(rèn)證
    nova-cert: 提供 x509 證書支持

2.nova創(chuàng)建云主機(jī)

image.png

1、界面或命令行通過RESTful API向keystone獲取認(rèn)證信息透乾。
2帕涌、keystone通過用戶請求認(rèn)證信息,并生成auth-token返回給對應(yīng)的認(rèn)證請求续徽。
3蚓曼、界面或命令行通過RESTful API向nova-api發(fā)送一個(gè)boot instance的請求(攜帶auth-token)。
4钦扭、nova-api接受請求后向keystone發(fā)送認(rèn)證請求纫版,查看token是否為有效用戶和token。
5客情、keystone驗(yàn)證token是否有效其弊,如有效則返回有效的認(rèn)證和對應(yīng)的角色(注:有些操作需要有角色權(quán)限才能操作)。
6膀斋、通過認(rèn)證后nova-api和數(shù)據(jù)庫通訊梭伐。
7、初始化新建虛擬機(jī)的數(shù)據(jù)庫記錄仰担。
8糊识、nova-api通過rpc.call向nova-scheduler請求是否有創(chuàng)建虛擬機(jī)的資源(Host ID)。
9、nova-scheduler進(jìn)程偵聽消息隊(duì)列赂苗,獲取nova-api的請求愉耙。
10、nova-scheduler通過查詢nova數(shù)據(jù)庫中計(jì)算資源的情況拌滋,并通過調(diào)度算法計(jì)算符合虛擬機(jī)創(chuàng)建需要的主機(jī)朴沿。
11、對于有符合虛擬機(jī)創(chuàng)建的主機(jī)败砂,nova-scheduler更新數(shù)據(jù)庫中虛擬機(jī)對應(yīng)的物理主機(jī)信息赌渣。
12、nova-scheduler通過rpc.cast向nova-compute發(fā)送對應(yīng)的創(chuàng)建虛擬機(jī)請求的消息昌犹。
13锡垄、nova-compute會(huì)從對應(yīng)的消息隊(duì)列中獲取創(chuàng)建虛擬機(jī)請求的消息。
14祭隔、nova-compute通過rpc.call向nova-conductor請求獲取虛擬機(jī)消息。(Flavor)
15路操、nova-conductor從消息隊(duì)隊(duì)列中拿到nova-compute請求消息疾渴。
16、nova-conductor根據(jù)消息查詢虛擬機(jī)對應(yīng)的信息屯仗。
17搞坝、nova-conductor從數(shù)據(jù)庫中獲得虛擬機(jī)對應(yīng)信息。
18魁袜、nova-conductor把虛擬機(jī)信息通過消息的方式發(fā)送到消息隊(duì)列中桩撮。
19、nova-compute從對應(yīng)的消息隊(duì)列中獲取虛擬機(jī)信息消息峰弹。
20店量、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請求glance-api獲取創(chuàng)建虛擬機(jī)所需要鏡像鞠呈。
21融师、glance-api向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果蚁吝。
22旱爆、token驗(yàn)證通過,nova-compute獲得虛擬機(jī)鏡像信息(URL)窘茁。
23怀伦、nova-compute通過keystone的RESTfull API拿到認(rèn)證k的token,并通過HTTP請求neutron-server獲取創(chuàng)建虛擬機(jī)所需要的網(wǎng)絡(luò)信息山林。
24房待、neutron-server向keystone認(rèn)證token是否有效,并返回驗(yàn)證結(jié)果。
25吴攒、token驗(yàn)證通過张抄,nova-compute獲得虛擬機(jī)網(wǎng)絡(luò)信息。
26洼怔、nova-compute通過keystone的RESTfull API拿到認(rèn)證的token署惯,并通過HTTP請求cinder-api獲取創(chuàng)建虛擬機(jī)所需要的持久化存儲(chǔ)信息。
27镣隶、cinder-api向keystone認(rèn)證token是否有效极谊,并返回驗(yàn)證結(jié)果。
28安岂、token驗(yàn)證通過轻猖,nova-compute獲得虛擬機(jī)持久化存儲(chǔ)信息。
29域那、nova-compute根據(jù)instance的信息調(diào)用配置的虛擬化驅(qū)動(dòng)來創(chuàng)建虛擬機(jī)咙边。

五、openstack網(wǎng)絡(luò)服務(wù)(neutron)

1.基本概念

  • bridge:網(wǎng)橋次员,Linux中用于表示一個(gè)能連接不同網(wǎng)絡(luò)設(shè)備的虛擬設(shè)備败许,Linux中傳統(tǒng)實(shí)現(xiàn)的網(wǎng)橋類似于一個(gè)hub設(shè)備,而ovs管理的網(wǎng)橋一般類似交換機(jī)淑蔚。
  • br-int:bridge-intergration市殷,綜合網(wǎng)橋,常用于表示實(shí)現(xiàn)主要內(nèi)部網(wǎng)絡(luò)功能的網(wǎng)橋刹衫。
  • br-ex:bridge-external醋寝,外部網(wǎng)橋,通常表示負(fù)責(zé)跟外部網(wǎng)絡(luò)通信的網(wǎng)橋带迟。
  • GRE:General Routing Encapsulation音羞,一種通過封裝來實(shí)現(xiàn)隧道的方式。在openstack中一般是基于L3的GRE仓犬,即original pkt/GRE/IP/Ethernet
  • VETH:虛擬Ethernet接口黄选,通常以pair的方式出現(xiàn),一端發(fā)出的數(shù)據(jù)包婶肩,會(huì)被另一端接收办陷,可以形成兩個(gè)網(wǎng)橋之間的通道。
  • qvb:neutron veth律歼,Linux Bridge-side
  • qvo:neutron veth民镜,OVS-side
  • TAP設(shè)備:模擬一個(gè)二層的網(wǎng)絡(luò)設(shè)備,可以接受和發(fā)送二層數(shù)據(jù)包险毁。
  • TUN設(shè)備:模擬一個(gè)三層的網(wǎng)絡(luò)設(shè)備制圈,可以接收和發(fā)送三層數(shù)據(jù)包们童。
  • iptables:Linux上常見的實(shí)現(xiàn)安全策略的防火墻軟件。
  • Vlan:虛擬局域網(wǎng)鲸鹦,同一個(gè)物理局域網(wǎng)下用標(biāo)簽來實(shí)現(xiàn)隔離慧库,可用標(biāo)號為1-4094.
  • VXLAN:一套利用UDP協(xié)議作為底層傳輸協(xié)議的Overlay實(shí)現(xiàn)。一般認(rèn)為作為VLAN技術(shù)的延伸或替代者馋嗜。
  • namespace:用來實(shí)現(xiàn)隔離的一套機(jī)制齐板,不同namespace中的資源之間彼此不可見。

2.neutron管理實(shí)體

  • 網(wǎng)絡(luò)
    隔離的L2廣播域葛菇,一般是創(chuàng)建它的用戶所有甘磨。用戶可以擁有多個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)是最基礎(chǔ)的眯停,子網(wǎng)和端口都需要關(guān)聯(lián)到網(wǎng)絡(luò)上济舆。
    網(wǎng)絡(luò)上可以有多個(gè)子網(wǎng)。同一個(gè)網(wǎng)絡(luò)上的主機(jī)一般可以通過交換機(jī)或路由器連通起來莺债。
  • 子網(wǎng)
    隔離的L3域滋觉,子網(wǎng)代表了一組分配了IP的虛擬機(jī)。每個(gè)子網(wǎng)必須有一個(gè)CIDR和關(guān)聯(lián)到一個(gè)網(wǎng)絡(luò)齐邦。IP可以從CIDR或者用戶指定池中選取椎侠。
    子網(wǎng)可能會(huì)有一個(gè)網(wǎng)關(guān)、一組DNS和主機(jī)路由侄旬。不同子網(wǎng)之間L3是互相不可見的,必須通過一個(gè)三層網(wǎng)關(guān)(路由器)經(jīng)過L3上進(jìn)行通信
  • 端口
    可以進(jìn)出流量的接口煌妈,往往綁定上若干MAC地址和IP地址儡羔,以進(jìn)行尋址。一般為虛擬交換機(jī)上的虛擬接口璧诵。
    虛擬機(jī)掛載網(wǎng)卡到端口上汰蜘,通過端口訪問網(wǎng)絡(luò)。當(dāng)端口有IP時(shí)之宿,意味它屬于某個(gè)子網(wǎng)族操。

3.抽象系統(tǒng)構(gòu)架

無論哪種具體的網(wǎng)絡(luò)虛擬化實(shí)現(xiàn),一個(gè)簡化和抽象后的系統(tǒng)架構(gòu)可以表述為下圖:


image.png

3.neutron的組件

  • Neutron Server
    分包含守護(hù)進(jìn)程neutron-server和各種插件neutron--plugin比被,它們既可以安裝在控制節(jié)點(diǎn)也可以安裝在網(wǎng)絡(luò)節(jié)點(diǎn)色难。neutron-server提供API接口,并把對API的調(diào)用請求傳給已經(jīng)配置好的插件進(jìn)行后續(xù)處理等缀。插件需要訪問數(shù)據(jù)庫來維護(hù)各種配置數(shù)據(jù)和對應(yīng)關(guān)系枷莉,例如路由器、網(wǎng)絡(luò)尺迂、子網(wǎng)笤妙、端口冒掌、浮動(dòng)IP、安全組等等
  • 插件代理 (Plugin Agent):
    虛擬網(wǎng)絡(luò)上的數(shù)據(jù)包的處理則是由這些插件代理來完成的蹲盘。名字為neutron--agent股毫。在每個(gè)計(jì)算節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行。一般來說你選擇了什么插件召衔,就需要選擇相應(yīng)的代理铃诬。代理與Neutron Server及其插件的交互就通過消息隊(duì)列來支持。
  • DHCP代理(DHCP Agent):
    名字為neutron-dhcp-agent薄嫡,為各個(gè)租戶網(wǎng)絡(luò)提供DHCP服務(wù)氧急,部署在網(wǎng)絡(luò)節(jié)點(diǎn)上,各個(gè)插件也是使用這一個(gè)代理毫深。
  • 3層代理 (L3 Agent): 名字為neutron-l3-agent吩坝,
    為客戶機(jī)訪問外部網(wǎng)絡(luò)提供3層轉(zhuǎn)發(fā)服務(wù)。也部署在網(wǎng)絡(luò)節(jié)點(diǎn)上哑蔫。

六钉寝、openstack塊存儲(chǔ)服務(wù)(cinder)

1、存儲(chǔ)類型介紹

  • 在Opestanck中創(chuàng)建云主機(jī)的硬盤時(shí)闸迷,可以是兩種存儲(chǔ)類型嵌纲,分別是本地存儲(chǔ)和持久存儲(chǔ)。(與存儲(chǔ)的后端類型無關(guān)[塊存儲(chǔ)腥沽,文件存儲(chǔ)逮走,對象存儲(chǔ)])
  • 本地磁盤,指創(chuàng)建云主機(jī)的時(shí)候今阳,使用物理機(jī)上的本地磁盤师溅,是一種臨時(shí)存儲(chǔ),當(dāng)虛擬機(jī)刪除的時(shí)候盾舌,臨時(shí)磁盤也隨之刪除墓臭。
  • 云硬盤,通過cinder創(chuàng)建的持久存儲(chǔ)妖谴。由cinder創(chuàng)建窿锉,由cinder管理。云服務(wù)上也被稱之為EVS服務(wù)膝舅。

2嗡载、cinder的組件

  • Cinder-Api
    用于提供Restful APi的接口,接收來自用戶請求的唯一接口仍稀。包含卷的增刪改查(包括從源卷鼻疮、鏡像、快照創(chuàng)建)琳轿、快照的增刪改查判沟、備份耿芹、volume type管理、掛載/卸載等挪哄。
  • Cinder- Scheduler
    負(fù)責(zé)手機(jī)backend上報(bào)的容量吧秕、能力信息,根據(jù)設(shè)定的算法完成卷到指定cinder-volume的調(diào)度迹炼。
  • Cinder-volume
    Cinder-Volume用來與塊存儲(chǔ)服務(wù)和 Cinder- Scheduler進(jìn)程進(jìn)行直接交互砸彬。它也可以與這些進(jìn)程通過一個(gè)消息隊(duì)列進(jìn)行交互。 Cinder-Volume服務(wù)響應(yīng)送到塊存儲(chǔ)服務(wù)的讀寫請求來維持狀態(tài)斯入,它也可以和多種存儲(chǔ)提供者在驅(qū)動(dòng)架構(gòu)下進(jìn)行交互砂碉。
  • Cinder- Backup
    實(shí)現(xiàn)將卷的數(shù)據(jù)備份到其它存儲(chǔ)介質(zhì)(Swift/ceph/TSM等提)

3、cinder架構(gòu)

image.png
  • 以創(chuàng)建卷為例
    1刻两、由cinder-api接收請求(創(chuàng)建卷的類型和卷的規(guī)格)
    2增蹭、cinder-api通過rabbitmq將請求發(fā)送給cinder-scheduler
    3、cinder-scheduler查詢數(shù)據(jù)庫找到符合主機(jī)的節(jié)點(diǎn)
    4磅摹、cinder-scheduler通過rabbitmq將消息發(fā)送給cinder-volume
    5滋迈、cinder-volume通過后端對接的驅(qū)動(dòng)創(chuàng)建出一個(gè)卷來

七、openstack對象存儲(chǔ)服務(wù)(swift)

1户誓、swift組件

  • Proxy Server
    對外提供對象服務(wù)API饼灿,由于采用無狀態(tài)REST請求協(xié)議,可以進(jìn)行橫向擴(kuò)展來負(fù)載均衡帝美。
  • Account Server
    提供賬戶元數(shù)據(jù)和統(tǒng)計(jì)信息碍彭,并維護(hù)所含容器列表的服務(wù),每個(gè)賬戶的信息被存儲(chǔ)在一個(gè)SQLite數(shù)據(jù)庫中悼潭。
  • Container Server
    提供容器元數(shù)據(jù)和統(tǒng)計(jì)信息庇忌,并維護(hù)所含對性列表的服務(wù),每個(gè)容器的信息也存儲(chǔ)在一個(gè)SQLite數(shù)據(jù)庫中女责。
  • Object Server
    提供對象元數(shù)據(jù)和內(nèi)容服務(wù)漆枚,每個(gè)對象的內(nèi)容會(huì)以文件的形式存儲(chǔ)在文件系統(tǒng)中创译,元數(shù)據(jù)會(huì)最為文件屬性來存儲(chǔ)抵知,建議采用支持?jǐn)U展屬性的XFS文件系統(tǒng)。
  • Replicator
    檢測本地分區(qū)副本和遠(yuǎn)程副本是否一致软族,發(fā)現(xiàn)不一致時(shí)會(huì)采用推式(Push)更遠(yuǎn)程副本刷喜,并且確保被標(biāo)記刪除的對象從文件系統(tǒng)中移除。
  • Updater
    當(dāng)對性由于高負(fù)載的原因而無法立即更新時(shí)立砸,任務(wù)將會(huì)被序列化在本地文件系統(tǒng)中進(jìn)行排隊(duì)掖疮,以便服務(wù)恢復(fù)后進(jìn)行異步更新。

2颗祝、Swift數(shù)據(jù)模型

image.png
  • Swift共設(shè)有三層邏輯結(jié)構(gòu):Account/Container/Object(即賬戶/容器/對象)
  • 每層節(jié)點(diǎn)數(shù)均沒有限制浊闪,可以任意擴(kuò)展

八恼布、openstack的編排服務(wù)(heat)

1、Heat組件

heat向開發(fā)人員和系統(tǒng)管理員提供了一個(gè)簡便的創(chuàng)建和管理一批資源的方法搁宾,并且有序且可預(yù)測的方式對其資源進(jìn)行資源配置和更新折汞。

  • Heat-api
    提供Rest ful API服務(wù),是與其它組件與Heat交互的入口盖腿,接收API請求并轉(zhuǎn)發(fā)給Heat-engine爽待。
  • Heat-api-cfn
    提供兼容AWS CloudFormation的API,接收API請求并轉(zhuǎn)發(fā)給Heat-engine
  • Heat-engine
    Heat的核心翩腐,主要實(shí)現(xiàn)任務(wù)的調(diào)度鸟款,資源生命周期管理等作用,自身并不提供資源創(chuàng)建功能茂卦,只負(fù)責(zé)編排資源后分解成具體的事情交友其它組件去處理何什。

2、Heat架構(gòu)

image.png

九、openstack的其它服務(wù)

openstack功能之強(qiáng)大而咆,服務(wù)之豐富霍比,除列出的重要的一些服務(wù)之外,還有ceilometer(計(jì)量服務(wù))暴备、horizon(界面服務(wù))悠瞬、zun(容器服務(wù))、Manila(文件存儲(chǔ)服務(wù))等等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涯捻,一起剝皮案震驚了整個(gè)濱河市浅妆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌障癌,老刑警劉巖凌外,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涛浙,居然都是意外死亡康辑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門轿亮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疮薇,“玉大人,你說我怎么就攤上這事我注“粗洌” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵但骨,是天一觀的道長励七。 經(jīng)常有香客問我智袭,道長,這世上最難降的妖魔是什么掠抬? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任补履,我火速辦了婚禮,結(jié)果婚禮上剿另,老公的妹妹穿的比我還像新娘箫锤。我一直安慰自己,他們只是感情好雨女,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布谚攒。 她就那樣靜靜地躺著,像睡著了一般氛堕。 火紅的嫁衣襯著肌膚如雪馏臭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天讼稚,我揣著相機(jī)與錄音括儒,去河邊找鬼。 笑死锐想,一個(gè)胖子當(dāng)著我的面吹牛帮寻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赠摇,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼固逗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了藕帜?” 一聲冷哼從身側(cè)響起烫罩,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洽故,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體时甚,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隘弊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撞秋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片长捧。...
    茶點(diǎn)故事閱讀 38,625評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嚣鄙,死狀恐怖吻贿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哑子,我是刑警寧澤舅列,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布肌割,位于F島的核電站,受9級特大地震影響帐要,放射性物質(zhì)發(fā)生泄漏把敞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一榨惠、第九天 我趴在偏房一處隱蔽的房頂上張望奋早。 院中可真熱鬧,春花似錦赠橙、人聲如沸耽装。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掉奄。三九已至,卻和暖如春凤薛,著一層夾襖步出監(jiān)牢的瞬間姓建,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工缤苫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留速兔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓活玲,卻偏偏與公主長得像憨栽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子翼虫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評論 2 348