OpenStack基礎及概念

1、雲計算基本概念解析 web

      1.1什麼是雲計算算法

 

 雲計算:表明計算資源向雲水循環同樣,按需分配,循環利用。數據庫

 

 

  1.二、雲計算分類apache

 

 狹義:IT基礎設施的交互和使用模式,經過網絡以按需,易擴展的方式獲取資源編程

 廣義:服務(IT基礎設施、軟件等)的交互和使用模式,經過網絡以按需、易擴展的方式獲取資源。ubuntu

 

  2、雲服務模式swift

  2.一、IaaS:基礎設施即服務api

        用戶經過網絡獲取虛機、存儲、網絡,而後用戶根據本身的需求操做獲取的資源。  典型應用:亞馬遜AWS等緩存

  2.二、PaaS:平臺即服務安全

        將軟件研發平臺做爲一種服務, 如Eclipse/Java編程平臺,服務商提供編程接口/運行平臺等。典型應用:Google AppEngine、Force.com、微軟Azure等 

  2.三、SaaS:軟件即服務  

        將軟件做爲一種服務經過網絡提供給用戶,如web的電子郵件、HR系統、訂單管理系統、客戶關係系統等。用戶無需購買軟件,而是向提供商租用基於web的軟件,來管理企業經營活動。典型應用:Google Doc、Saleforce.com、Oracle CRM On Demand、Office Live Workspace等

 

 3、 雲計算解決了哪些問題

 

 3.1 有效解決硬件單點故障問題

  單點故障是指某個硬件的故障形成網站某個服務的中斷。要真正解決這個問題,須要爲每一個硬件準備冗餘,這不只大大增長了硬件購置成本,並且部署與維護成本也不容小視。

    而云計算平臺是基於服務器集羣,從設計之初就考慮了單點故障問題,並在建設時有效地解決了這個問題。

 

 

 3.2  按需增/減硬件資源

    本身託管服務器,增/減硬件一直是頭疼的問題。

    1. 增長服務器的時候,購買服務器須要時間,並且這個時間本身沒法控制。而使用雲服務器,隨時能夠增長服務器——輕而易舉。

    2. 減服務器只能從機房拉回辦公室,沒法再把服務器退給廠商,購置服務器的成本就浪費了。而使用雲服務器,若是下個月不用,不續費就好了(針對阿里雲按月購買的狀況)——想用就用,想扔就扔。

    3. 不能按需增長知足基本需求的服務器配置。假如咱們如今須要一臺低配置的服務器用Linux跑緩存服務,若是爲之單獨購買一臺便宜的低配置的服務器很不合算,由於這臺服務器僅僅一年的電費就至少要3000元左右。因此只能儘可能減小服務器數量,提升單臺服務器的配置,在讓一臺服務器跑更多東西。而使用雲服務器,須要什麼樣的配置就買什麼樣的配置,讓各個服務器的職責更單一,互相之間的影響更小——職責分明,效率更高。

 

 

 3.3 BGP線路解決南北互通問題

   南北互通問題是南方電信與北方聯通線路之間的互通問題,這個問題困擾咱們多年,以前用過雙線機房,解決的也不是很好。目前只有BGP線路纔能有效解決這個問題,而擁有真正的BGP線路的機房不是不少,成本也很是高。而我準備使用的阿里雲用的就是BGP線路,這也是吸引咱們的主要地方之一。

 

 

 3.4 按需增/減帶寬 

   帶寬是主要成本,託管服務器時,與ISP服務商籤一年合同以前就要肯定帶寬。用了一段時間以後,你發現帶寬買多了,想減一些是不容許的。中途要臨時增長帶寬一段時間也是不行的,要買就買一年(這是根據咱們接觸過的ISP服務商)。因此,通常都會多買一些帶寬,留一些餘量。

    使用雲服務器能夠靈活地增減帶寬,不會浪費帶寬,即便買少了也不用擔憂,隨時能夠增長。雖然各個雲服務商會有必定的限制,好比在阿里雲一次至少要購買1個月的帶寬,但比本身託管服務器靈活不少,一樣的帶寬條件,會節省很多成本,尤爲是帶寬需求在一年中變化比較大的網站。

 

 

  3.5 更有吸引力的費用支付方式

   在IDC機房託管服務器通常是籤一年合同,一次支付一個季度的費用。

    而使用雲服務,一次能夠支付更短期的費用,好比阿里雲能夠一次只支付一個月的費用,節約了流動資金。

    從整體上考慮,差很少的成本,卻擁有更多的內存、更多的CPU、更多的硬盤空間、更優質的帶寬線路,更重要的是能夠隨時按需擴展計算資源。

 

    4、雲應用形式

  

    4.一、私有云

        將基礎設施與軟硬件資源構建於防火牆內,基於iaas構建私有云平臺供企業內部使用,開源組件有:openstack(最爲出色),cloudstack等

 

    4.二、雲存儲

 

        雲存儲系統是一個以數據存儲和管理爲核心的雲計算系統

 

    4.三、雲遊戲

 

        遊戲運行雲平臺服務端,雲平臺將遊戲畫面解壓縮後傳給用戶,用戶端無需高配置處理器和顯卡,只須要基本的視頻解壓縮能力便可。

 

    4.四、雲物聯

 

        基於雲平臺實現物物相連的互聯網。

 

    4.五、雲安全

 

        經過網狀的大量客戶端檢測網絡中軟件的異常,獲取木馬,惡意程序的最新信息,推送到雲平臺服務端自動分析和處理,再把解決方案發送給每個客戶端。雲平臺使用者越多,越安全。

 

    4.六、公有云

 

        雲平臺對外開放,主要以Iaas和Paas爲主,較爲成熟的是Iaas,如阿里雲,騰訊雲,青雲,ucloud,首都在線等

 

    4.七、混合雲  

 

        公有云和私有云的結合,即對企業內部又對企業外部,例如AWS

  

 

  5、傳統應用與雲感知應用

  

    5.一、傳統應用

 

    傳統應用像養寵物,寵物病了要細心呵護

    每一個應用都是獨特的、專門的

    專門的服務器、硬件和軟件保證可靠性

    資源不夠,增長cpu、內存、磁盤

    專門的技術支持

    5.二、雲感知應用

 

    雲感知應用像養牛,牛生病了,你須要一頭新的牛

    應用跑在一個或多個虛擬機裏

    資源不夠,增長新的虛擬機

    應用掛起,重啓或建立新的虛擬機

  

    6、 openstack與及其相關組件介紹

  

    openstack前世今身

    Openstack項目及組件功能簡單介紹

    核心項目3個

    存儲項目2個

    共享服務3個

    高層服務1個

    openstack各組件邏輯關係

    各組件邏輯關係圖解

 

    一、openstack前世今身

    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

    功能:提供持久化塊存儲,即爲雲主機提供附加雲盤。

 

    共享服務項目3個

 

    1.認證服務

    服務名:認證服務

    項目名:Keystone

    功能:爲訪問openstack各組件提供認證和受權功能,認證經過後,提供一個服務列表(存放你有權訪問的服務),能夠經過該列表訪問各個組件。

    

    2.鏡像服務

    服務名:鏡像服務

    項目名:Glance

    功能:爲雲主機安裝操做系統提供不一樣的鏡像選擇

 

    3.計費服務

    服務名:計費服務

    項目名:Ceilometer

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

    

    高層服務項目1個

    1.編排服務

    服務名:編排服務

    項目名:Heat

    功能:自動化部署應用,自動化管理應用的整個生命週期.主要用於Paas 

    

   三、openstack各組件詳解及運行流程

 

   各組件邏輯關係圖:

wKioL1fRAVyR_eC9AABYse5wgAk040.png

 

openstack新建雲主機流程圖:

wKiom1fRA6PRYz_7AAQI6mXaRn4200.png

虛擬機啓動過程以下:

  1. 界面或命令行經過RESTful API向keystone獲取認證信息。

  2. keystone經過用戶請求認證信息,並生成auth-token返回給對應的認證請求。

  3. 界面或命令行經過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。

  4. nova-api接受請求後向keystone發送認證請求,查看token是否爲有效用戶和token。

  5. keystone驗證token是否有效,若有效則返回有效的認證和對應的角色(注:有些操做須要有角色權限才能操做)。

  6. 經過認證後nova-api和數據庫通信。

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

  8. nova-api經過rpc.call向nova-scheduler請求是否有建立虛擬機的資源(Host ID)。

  9. nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。

  10. nova-scheduler經過查詢nova數據庫中計算資源的狀況,並經過調度算法計算符合虛擬機建立須要的主機。

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

  12. nova-scheduler經過rpc.cast向nova-compute發送對應的建立虛擬機請求的消息。

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

  14. nova-compute經過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)

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

  16. nova-conductor根據消息查詢虛擬機對應的信息。

  17. nova-conductor從數據庫中得到虛擬機對應信息。

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

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

  20. nova-compute經過keystone的RESTfull API拿到認證的token,並經過HTTP請求glance-api獲取建立虛擬機所須要鏡像。

  21. glance-api向keystone認證token是否有效,並返回驗證結果。

  22. token驗證經過,nova-compute得到虛擬機鏡像信息(URL)。

  23. nova-compute經過keystone的RESTfull API拿到認證k的token,並經過HTTP請求neutron-server獲取建立虛擬機所須要的網絡信息。

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

  25. token驗證經過,nova-compute得到虛擬機網絡信息。

  26. nova-compute經過keystone的RESTfull API拿到認證的token,並經過HTTP請求cinder-api獲取建立虛擬機所須要的持久化存儲信息。

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

  28. token驗證經過,nova-compute得到虛擬機持久化存儲信息。

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

相關文章
相關標籤/搜索