初識openstack

一、 什么是openstack?

  OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發并發起的,以Apache許可證授權的自由軟件和開放源代碼項目。

二、openstack前世今身

  openstack是一個跟Eucalyptus,AWS(Amazon web Service)類似的IaaS框

 openstack最有由美國國家航空航天局NASA研發的Nova和Rackspace研發swift組成。后來以Apache許可授權,指在為公共及私有云平臺建設。openstack主要用來為企業內部實現類似于Amazon EC2和S3的云基礎架構(IaaS)。每6個月更新一次,一般與Ubuntu同步,命名是以A-Z作為首字母來的。

三、openstack項目及組件功能簡單介紹

  核心項目3個

    1.控制臺

    服務名:Dashboard

    項目名:Horizon

    功能:web方式管理云平臺,建立主機,分配網絡,配安全組,加云盤

?

    2.計算

    服務名:計算

    項目名:Nova

    功能:負責響應虛擬機創建請求、調度、銷毀主機

?

    3.網絡

    服務名:網絡

    項目名:Neutron

    功能:實現SDN(軟件定義網絡),提供一整套API,用戶可以基于該API實現自己定義專屬網絡,不同廠家可以基于此API提供自己的產品實現

?

 存儲項目2個

    1.對象存儲

    服務名:對象存儲

    項目名:Swift

    功能:REST風格的接口和扁平的數據組織結構。RESTful HTTP API來保存和訪問任意非結構化數據,ring環的方式實現數據自動復制和高度可以擴展架構,保證數據的高度容錯和可靠性

    2.塊存儲

    服務名:塊存儲

    項目名:Cinder 

    功能:提供持久化塊存儲,即為云主機通過附加云盤

    

 

 1 存儲的基本知識:
 2 存儲分為三大類:文件存儲、塊存儲、對象存儲
 3 
 4 文件存儲:在用戶的角度來說,就是一個文件夾。例如:U盤,ftp(文件傳輸協議)、nfs等
 5     特點:無法格式化
 6              基本操作單位是文件
 7              基于Postfix標準的文件處理,進行增刪改查
 8 
 9 塊存儲:在用戶的角度來說就是一塊裸盤(空硬盤,進行格式化,分block大小)
10     特點:可以格式化
11             基本操作單位是block
12 
13 文件存儲與塊存儲之間的關系:對用戶來說,到最后用的仍是文件存儲
14 
15 對象存儲:key:value形式(例如網盤分享,一個連接代表一個key,一個文件代表value)
16     key:value的表示 httpd://1.1.1.1/api:object(冒號前面為key,后面為value)
17 
18     特點:一切皆對象,速度快(屬于非關系型,比關系型快)
19             本質上無法再對象存儲里修改文件

? ?共享服務項目3個

    1.認證服務

    服務名:認證服務

    項目名:Keystone

    功能:為訪問openstack各組件提供認證和授權功能,認證通過后,提供一個服務列表(存放你有權訪問的服務),可以通過該列表訪問各個組件

?

    2.鏡像服務

    服務名:鏡像服務

    項目名:Glance

    功能:為云主機安裝操作系統提供不同的鏡像選擇

?

    3.計費服務

    服務名:計費服務

    項目名:Ceilometer

    功能:收集云平臺資源使用數據,用來計費或者性能監控

?

   高層服務項目1個

     1.編排服務

      服務名:編排服務

      項目名:Heat

      功能:自動化部署應用,自動化管理應用的整個生命周期,主要用于PaaS   

?

四、openstack各組件關系

  

openstack新建主機流程圖

?

?

首先我們先分析一下這個流程圖。整個的體系下來不止這29步

?

1.命令行或者通過web界面,就是dashboard,通過RESTful API向keystone獲取認證信息

2.keystone通過用戶請求進行認證,并生成auth-token返回給用戶,這個第一個token是屬于用戶用沒有權限登錄的token

3.命令行或web界面通過RESTful API 向nova-api發送一個新建虛擬機的請求并攜帶一個token.這個token屬于第二個token,看這個token是否有權限訪問nova

4. nova-api 接受來自客戶端的請求和token信息,然后拿著token信息向keystone認證。

5.keystone驗證token是否有效,有效則返回有效的認證和對應的角色(有些操作需要有角色權限才能操作)

6.通過認證后nova-api將用戶的創建虛擬機的請求寫到數據庫中,(新建虛擬機信息:cpu,內存,硬盤,網絡結構,屬于什么vlan等等)

7.初始化新建虛擬機的數據庫記錄并返回

8.nova-api將新建虛擬機的請求信息放到消息中間件(MQ)中。(通過rpc.call)只是請求信息并不是詳細信息.

9.nova-scheduler(nova計算節點,安裝了nova-compute的軟件)接受nova-api的請求。就是在多個nova-compute中找到一個合適的nova-compute讓它去建虛擬機

10.nova-scheduler通過查詢nova數據庫 計算資源的情況,并通過調度算法計算符合虛擬機創建需要的主機,并返回信息到nova-scheduler

11.對有符合創建虛擬的物理主機,nova-scheduler就會更新數據庫中對應的物理主機信息

12.nova-scheduler通過rpc.cast像nova-compute發送對應的創建虛擬機請求信息

13.nova-compute會從消息列隊中獲取創建虛擬機的請求信息。

14.nova-compute通過rpc.call像nova-conductor請求獲取虛擬機的信息

15.nova-conductor從消息列隊中拿到nova-compute的請求信息

16.nova-conductor根據信息進行查詢虛擬機對應信息

17.nova-conductor從數據庫中獲取虛擬機對應信息

18.nova-conductor把虛擬機信息通過消息的方式發送到消息列隊中

(上述的nova部分屬于回調機制)

19.nova-compute從對應的消息列隊中獲取虛擬機信息

20.nova-compute通過keystone的RESTful API 拿到認證token,并通過http請求glance-api獲取創建虛擬機所需的鏡像。

21.glance-api想keystone認證token是否有效,并返回認證結果

glance具體如何工作的:

glance-api接收到請求后,將請求發給glance-registry,glance-registry到數據庫中將鏡像的元數據拿到,并返回給glance-api。glance-api會到后端的存儲拿到鏡像的URL地址

22.token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)下載到本地

23.nova-compute通過keystone的RESTful?API 拿到認證的token,并且通過HTTP請求neutron-server獲取創建虛擬機所需要的網絡

24.neutron-server去向keystone認證token是否有效,并返回結果。

25token認證通過后,nova-compute獲得虛擬機網絡信息

26.nova-compute 通過keystone的RESTful API拿到認證token,并通過HTTP請求cinder-api獲取創建虛擬機所需的持久化存儲信息

27.cinder-api向keystone認證token是否有效,并返回結果

28.token認證通過后,nova-compute獲的虛擬機持久化存儲信息

29.nova-compute根據instance的信息調用配置的虛擬化驅動來創建虛擬機

?

轉載于:https://www.cnblogs.com/charles1ee/p/6274570.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373120.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373120.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373120.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言case多語句的取值,Switch Case語句中多個值匹配同一個代碼塊的寫法

C#+JQuery+.Ashx+百度Echarts實現全國省市地圖和餅狀圖動態數據圖形報表的統計在目前的一個項目中,需要用到報表表現數據,這些數據有多個維度,需要同時表現出來,同時可能會有大量數據呈現的需求,經過幾輪挑選,最終選擇了百度的e…

php解決下單、抽獎并發導致的庫存負數的問題

我們知道數據庫處理sql是一條條處理的,假設購買商品的流程是這樣的: sql1:查詢商品庫存 if(庫存數量 > 0) { //生成訂單... sql2:庫存-1 } 當沒有并發時,上面的流程看起來是如此完美,假設同時兩個人下單,而…

在Spring中使用JDBCJobStore配置Quartz

我將開始一些有關Quartz Scheduler內部,提示和技巧的系列文章,這是第0章-如何配置持久性作業存儲。 在Quartz中,您基本上可以在將作業和觸發器存儲在內存中以及在關系數據庫中進行選擇( Terracotta是最近添加的混合功能&#xff0…

rlwrap插件,實現sqlplus上下翻頁

oracle在Linux下,sqlplus中不能上下翻,最主要我經常打錯字!嘿嘿 01、下載 RPM :http://rpmfind.net/linux/rpm2html/search.php?queryrlwrap tar.gz:https://fossies.org/linux/privat/rlwrap-0.42.tar.gz/ 百度云:h…

ice庫c語言例子,很不多的ICE架構入門學習例子

雖然使用傳統的SOCKET編程,我們可以更為清楚程序的性能,能夠更直接的操控SOCKET的設置,比如發送超時時間,接受BUFFER的大小,以及進行自己的協議加密。但是由于其調試成本較高,且不易于分布式部署ICE 作為一…

程序員的十個層次,你屬于哪一層?(轉)

自西方文藝復興以來,中國在自然科學方面落后西方很多,軟件領域也不例外。當然現在中國的許多程序員們對此可能有許多不同的意見,有些人認為中國的程序員水平遠落后于西方,有些則認為中國的程序員個人能力并不比西方的程序員差&…

操作系統基礎篇

程序運行的4個因素 (1).程序設計語言 (2).編譯系統 (3).操作系統 (4).指令集結構(硬件系統) 操作系統的定義:操作系統是掌控計算機上所有事情的軟件系統(硬件資源,軟件資源) 操作系統對內存,i/o,cpu&#x…

高效快速中值濾波算法c語言,快速中值濾波及c語言實現.docx

...快速中值濾波及c語言實現學生姓名: 劉 勇 學 號: 6100410218 專業班級: 數媒101【摘要】本文討論了用c語言在微機上實現中值濾波及快速算法,在程序設計的過程中充分考慮到程序運行的時間復雜度和空間復雜度的問題.解…

Arquillian 1.0.0.Final正式發布! 準備使用GlassFish和WebLogic! 殺死所有蟲子!

紅帽公司和JBoss社區今天宣布的1.0.0.Final發布的Arquillian ,其屢獲殊榮的建在Java虛擬機(JVM)運行測試平臺。 Arquillian大大減少了編寫和執行Java中間件集成和功能測試所需的工作。 它甚至使測試工程師能夠解決以前認為無法測試或測試成本…

Jquery選擇器特殊字符問題

場景: $("#" AAA ""),AAA代表某表單ID 當AAA為普通字符串時,ok; 當AAA含有特殊符號時(eg:a.b),獲取不到該對象; 原因:特殊符號會進行轉義&#xf…

qq五筆linux,QQ五筆 - 五筆小字典 QQ綁定很實用

九、 智能調頻、空碼檢索、詞序固定在QQ五筆中還有一些小亮點,比如它可以根據“最近輸入”、“輸入次數”對候選詞排序。同時為了加快檢索速度,默認只在常用字庫(GB2312)中檢索,只有出現空碼后才會繼續搜索容量更大的GBK字庫,很好…

DFS:C 小Y的難題(1)

解題心得: 1、在明確使用DFS之后一定要找到遞歸函數的出口、方向,以及遞歸的點(在某個情況下開始遞歸)(void 也可以return,但是沒有返回值)。遞歸時也要有遞歸的方向,最后都能夠達到遞歸的出口。 2、在DF…

使用ActiveMQ支持Spring Integration路由

正如我在上 一篇 文章中所討論的那樣 ,Spring Integration(SI) 是在Spring Framework之上構建的路由框架 ,它使您可以使用經過驗證的企業集成模式來通過消息傳遞解決系統集成問題。 配置好SI并執行路由和中介邏輯后,您…

quagga源碼分析--路由信息處理zebra-rib

對于各個協議生成的路由信息的處理屬于quagga中非常重要的一個功能,如何在內核進行路由增加,更新,刪除是一個復雜的過程。 quagga在thread任務調度中加入了一種工作隊列,work_queue,與內核的工作隊列類似,是…

android 關閉藍牙打電話功能,Android藍牙開發【八】hfp接聽、掛斷電話

繼續研究hfp相關功能。藍牙耳機可以控制手機接聽、拒接、掛斷電話,撥打電話等功能。本文主要分析下起這些操作的大致流程。在系統應用Bluetooth中com_android_bluetooth.cpp提供了多個回調方法,由hardware、協議棧回調過來。藍牙耳機的一些控制命令都會發…

android在listview中放入從sdcard讀取的bitmap

重寫viewbinder public class viewbinder_bookmark implements SimpleAdapter.ViewBinder{Overridepublic boolean setViewValue(View view, Object data, String textRepresentation){if(view instanceof ImageView && data instanceof Bitmap){ImageView imageview(I…

將狀態機模式實現為流處理器

在我的上一個博客中,我說我真的以為某些“四人行”(GOF)模式已經過時了,如果不是過時的話肯定不受歡迎。 特別是我說過StateMachine不是那么有用,因為您通常會想到另一種更簡單的方式來執行您正在執行的事情&#xff0…

android 自定義actionbar,如何讓android的actionbar浮動且透明

如上圖所示,谷歌地圖的actionbar是透明的,且浮動在整個布局之上,沒有占用布局空間。其實要做到這樣的效果,我們首先想到的是兩個方面:1.將讓actionbar浮動起來。2.給actionbar一個背景,可以為顏色也可以為圖…

CentOS 7安裝redis及php擴展

安裝remi源 # wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7.rpm # sed -i -e "s/enabled1/enabled0/g" /etc/yum.repos.d/remi.repo 確認使用remi源時安裝的Redis版本。 安裝Redis 使用remi源yum安裝Redis。 # yum …

對Openshift上的Play Framework 2應用進行故障排除

Openshift故障排除 使用“ 自己動手”應用程序類型,您實際上可以有很大的自由度來支持幾乎可以在Linux機器上構建和運行的任何框架或服務器。 但是您必須做功課,并做一些研究。 因此,在本文中,我將向您展示一些我在使用Openshift和…