Openstack 入門1

OpenStack 管理的資源不是單機的而是一個分佈的系統,把分佈的計算、存儲、網絡、設備、資源組織起來,造成一個完整的雲計算系統;OpenStack 也提供一個 UI,這裏包括一個圖形化的 UI:Horizon,也提供命令行的界面,還提供了一套 API 支持用戶開發本身的軟件…服務器

OpenStack是什麼?

OpenStack 是一套框架,有下面這兩個特色:網絡

  1. 它是一箇中間層,能夠建立、管理和銷燬虛擬機,可是要完成這些操做須要依賴於第三方的 Hypervisor,經過這個 Hypervisor 去完成虛擬化的工做,OpenStack 並不能本身去提供一個虛擬化的運行環境,OpenStack 有個組件叫 Cinder(用來提供塊存儲服務的),可是 OpenStack 本身並不能進行數據的存儲和讀寫,它須要依賴一個實際的塊存儲設備的支持,這個設備能夠是一個分佈式的存儲系統,好比說 Ceph,也能夠是一個存儲設備,好比說 EMC 的 SAN,也能夠是存儲服務器的本地硬盤,可是它必須依賴一個存儲設備的支持,OpenStack 自己並不具有這個功能。OpenStack 是一箇中間層
  2. 框架有一個很重要的特色,那就是它能提供一批 API 去支持應用的開發,這也是咱們業內對框架的一個定義,OpenStack 固然也有這個特色,雲計算的願景就是讓用戶可以像用電同樣去使用計算,OpenStack 的設計也是朝着這個願景去作設計的,可是實際上咱們平時是不能直接用電的,咱們須要用的是電冰箱、電腦、電視等等這些電器。同理,對於雲計算來講,提供 API 去支持開發應用這個事情就合情合理的很是的重要了,具備完備的 API 是 OpenStack 的突出優勢。

OpenStack 不是什麼?

  1. 它不是虛擬化軟件(必須知道這點),OpenStack 雖然管理虛擬機,但不具有虛擬化的功能,它給上層提供一個虛擬化的運行環境,必須得依賴一個第三方的虛擬化軟件來實現,好比默認支持的 Linux 內核虛擬機,裝完 Linux 以後就自動帶了,集成到 Linux 內核裏面了(KVM),另外它還支持 Xen,還支持微軟的 Hyper-V,支持 VMware 的 Vshpere,還支持像 Linux Container 和 Docker 這樣輕量級的虛擬化技術。總之,OpenStack 自己不提供虛擬化,依賴第三方軟件
  2. 須要瞭解的第二層含義:這個雲化和虛擬化其實是不同的,雲 != 虛擬化,雲化的目的是爲了實現效用計算,彈性計算,動態資源調度,多租戶等這樣的一些特性;而虛擬化只是實現雲計算的這些特性中的一個技術手段而已,並且它不是必需的。比方說 IBM 的 Softlayer 是 IBM 主推的雲服務之一,它中間有一個很是大的特色就是,它支持 Bare Metal Server,直譯過來就是 「金屬裸機」,也就是 Softlayer 在上面不作虛擬化,而是直接用物理服務器來實現雲,直接給用戶、租戶提供的就是物理服務器,Softlayer 也能夠在上面來實現多租戶 、彈性計算等等特性。總之,Softlayer 沒有虛擬化,可是 Softlayer 也作了雲。第二個例子是 OpenStack 也有一個項目叫做 Ironic,是爲了經過管理 「金屬裸機」來實現雲從而提出的項目。

 

OpenStack生態圈

一個成功的開源平臺,有三個要素組成,技術 + 生態 + 用戶; OpenStack 誕生於2010年;框架

瞭解一下:分佈式

  • 社區的組成
  • 基金會的管理機構
  • 項目的孵化

 

項目產生與發展

每一個項目通過孵化階段之後纔可以集成發佈,OpenStack 爲項目的孵化提供了一整套的基礎設施和資源,包括代碼和文檔的管理,還有配置管理,版本控制等等工具;這些基礎設施可以支持全球範圍內的大規模的協做開發,這些基礎設施和工具自己也是表明了 IT 領域先進的生產工具;工具

半年發佈一個版本,會由技術委員會和版本發佈經理以及項目的 TPL 來共同決定每一個版本中間要發佈哪些 Feature。oop

 

OpenStack資源管理

OpenStack 做爲一個操做系統,管理資源是它的首要任務;OpenStack 管理資源主要有三個方面:計算存儲 和 網絡雲計算

OpenStack 對資源進行管理,而且以服務的形式提供給上層應用或者用戶去使用。這些資源的管理是經過 OpenStack 中的各個項目來實現的。其中計算資源管理相關的項目是 Nova(又稱爲 OpenStack Compute);存儲相關的主要有塊存儲服務 Cinder、對象存儲服務 Swift、鏡像存儲服務 Glance 這三種;操作系統

與網絡相關的主要是一個和軟件定義網絡相關的項目叫做 Neutron;另外,Nova 中間有一個管理網絡的模塊叫做 Nova Network,做爲一個比較穩定的遺留組件仍在 OpenStack 裏面和 Neutron 並存,咱們在小規模部署裏面常常爲了追求這種穩定,而且減小工做量會去使用 Nova Network 這樣的一個組件來對網絡資源進行管理。命令行

OpenStack 提供的這些服務和公有云上的服務每每有一種對應關係,這裏以亞馬遜的公有云 AWS 爲例,看一下 OpenStack 的服務和亞馬遜的服務之間的對應的關係:設計

與aws的部分功能作對應:

Nova - EC2;Cinder - EBS;Neutron - VPC;Swift - S3;Glance - VM Import/Export 等;

 OpenStack基本組件

OpenStack 核心的項目:Nova 、 Cinder、 Neutron、 Swift、 Keystone、 Glance、 Horizon

4-1. Nova

又被稱爲 OpenStack Compute,主要做用是控制虛擬機的建立,以及改變它的容量和配置,還能夠作虛擬機的銷燬,虛擬機的整個生命週期都是由 Nova 來控制的;

Nova 的部署運行通常有兩種狀況:一類是 Nova 做爲 Controller 節點去運行,Controller 節點是用來控制其它的一些計算節點的;另一類節點就是 Compute 節點,是計算節點,上面是運行實際的虛擬機的;

[ 那麼有什麼區別呢?]

  • 在 Compute 節點上部署的 Nova,它上面核心運行的一個東西叫做 Nova Compute,主要是爲了去對虛擬機進行控制,它去和 Hypevisor 進行交互,對虛擬機進行控制;
  • 在 Controller 上運行的 Nova 就相對複雜一些,它有 Scheduler、Conductor、Nova Cell;
  • Scheduler 在用戶發起請求的時候決定這個虛擬機應該在哪一個機器上啓動,應該在哪一個計算節點上啓動;
  • Conductor 對全部的計算節點進行統一的管理;
  • Nova Cell 的做用是級聯
  • 控制節點:Scheduler(決定虛擬機的啓動位置)、Conductor(對全部的計算節點進行統一管理)、Nova Cell(級聯)
  • 計算節點:對虛擬機進行控制

4-2. Cinder

Cinder 組件主要的用途是提供塊存儲服務,最核心的兩個部分是 Scheduler 和 Cinder Volume。有讀寫存儲服務請求的時候,Scheduler 決定經過哪一個 Cinder Volume 進行讀取操做,Cinder Volume 是實際控制存儲的設備。

4-3. Neutron

有一個很是火的概念叫做 SDN,軟件定義網絡,Neutron 是在 OpenStack 裏邊的一個實現, 有一個很大的特色就是提供 Plugin 模塊,這個是用戶能夠本身去寫的。

4-4. Swift

Swift 是一個比較有趣的組件,從 OpenStack 的誕生之初就已經有 Swift 的這個項目了,可是它發展到如今仍是比較獨立的,和其它組件的交互關係比較少,是一個相對獨立的發展套路,美國有一個公司叫做 SwiftStack,是專門用 Swift 來作的一個公司,Swift 是提供對象存儲服務的 ,提供一個相似於像亞馬遜 S3 或者像國內的七牛這樣的一個存儲服務。 其餘的組件若是要用到對象存儲的時候,就去 Swift 裏邊去寫數據,讀數據; Swift 能夠利用 Keystone 來作認證。

4-5. Glance

須要使用 Swift 最多的一個組件,主要是用 Swift 來存虛擬機的鏡像、快照等等這樣一些東西。

4-6. Keystone

主要是爲各個組件提供用戶的認證、建權等等這樣的一些服務。

4-7. Horizon

圖形界面。

4-8. Heat

是用來作各個服務的編排的。

4-9. Sahara

把 Hadoop 可以放在 OpenStack 上去運行的一個組件。

相關文章
相關標籤/搜索