瞭解OpenStack服務器
OpenStack 是最火的開源軟件之一,活躍度呈指數級別上升;OpenStack 是用 Python 實現的軟件。它是一組開源項目,誕生之初是由兩個項目組成,目前十幾個項目;它是一個雲操做系統,OpenStack is a cloud operating system that …網絡
OpenStack 管理的資源不是單機的而是一個分佈的系統,把分佈的計算、存儲、網絡、設備、資源組織起來,造成一個完整的雲計算系統;OpenStack 也提供一個 UI,這裏包括一個圖形化的 UI:Horizon,也提供命令行的界面,還提供了一套 API 支持用戶開發本身的軟件……框架
OpenStack的特色分佈式
OpenStack 是一套框架 —— API,它有兩個特色:雲計算
它是一箇中間層,能夠建立、管理和銷燬虛擬機,可是要完成這些操做須要依賴於第三方的 Hypervisor,經過這個 Hypervisor 去完成虛擬化的工做,OpenStack 並不能本身去提供一個虛擬化的運行環境,OpenStack 有個組件叫 Cinder(用來提供塊存儲服務的),可是 OpenStack 本身並不能進行數據的存儲和讀寫,它須要依賴一個實際的塊存儲設備的支持,這個設備能夠是一個分佈式的存儲系統,好比說 Ceph,也能夠是一個存儲設備,好比說 EMC 的 SAN,也能夠是存儲服務器的本地硬盤,可是它必須依賴一個存儲設備的支持,OpenStack 自己並不具有這個功能。OpenStack 是一箇中間層。操作系統
框架有一個很重要的特色,那就是它能提供一批 API 去支持應用的開發,這也是咱們業內對框架的一個定義,OpenStack 固然也有這個特色,雲計算的願景就是讓用戶可以像用電同樣去使用計算,OpenStack 的設計也是朝着這個願景去作設計的,可是實際上咱們平時是不能直接用電的,咱們須要用的是電冰箱、電腦、電視等等這些電器。同理,對於雲計算來講,提供 API 去支持開發應用這個事情就合情合理的很是的重要了,具備完備的 API 是 OpenStack 的突出優勢。命令行
OpenStack ≠虛擬化軟件設計
第一,它不是虛擬化軟件(必須知道這點),OpenStack 雖然管理虛擬機,但不具有虛擬化的功能,它給上層提供一個虛擬化的運行環境,必須得依賴一個第三方的虛擬化軟件來實現,好比默認支持的 Linux 內核虛擬機,裝完 Linux 以後就自動帶了,集成到 Linux 內核裏面了(KVM),另外它還支持 Xen,還支持微軟的 Hyper-V,支持 VMware 的 Vshpere,還支持像 Linux Container 和 Docker 這樣輕量級的虛擬化技術。總之,OpenStack 自己不提供虛擬化,依賴第三方軟件。對象
須要瞭解的第二層含義:這個雲化和虛擬化其實是不同的,雲 != 虛擬化,雲化的目的是爲了實現效用計算,彈性計算,動態資源調度,多租戶等這樣的一些特性;而虛擬化只是實現雲計算的這些特性中的一個技術手段而已,並且它不是必需的。比方說 IBM 的 Softlayer 是 IBM 主推的雲服務之一,它中間有一個很是大的特色就是,它支持 Bare Metal Server,直譯過來就是 「金屬裸機」,也就是 Softlayer 在上面不作虛擬化,而是直接用物理服務器來實現雲,直接給用戶、租戶提供的就是物理服務器,Softlayer 也能夠在上面來實現多租戶 、彈性計算等等特性。總之,Softlayer 沒有虛擬化,可是 Softlayer 也作了雲。第二個例子是 OpenStack 也有一個項目叫做 Ironic,是爲了經過管理 「金屬裸機」來實現雲從而提出的項目。資源
OpenStack資源管理
OpenStack 做爲一個操做系統,管理資源是它的首要任務;
OpenStack 管理資源主要有三個方面:計算、存儲和網絡。
OpenStack 對資源進行管理,而且以服務的形式提供給上層應用或者用戶去使用。這些資源的管理是經過 OpenStack 中的各個項目來實現的。
其中計算資源管理相關的項目是 Nova(又稱爲 OpenStack Compute);
存儲相關的主要有塊存儲服務 Cinder、對象存儲服務 Swift、鏡像存儲服務 Glance 這三種;
與網絡相關的主要是一個和軟件定義網絡相關的項目叫做 Neutron;另外,Nova 中間有一個管理網絡的模塊叫做 Nova Network,做爲一個比較穩定的遺留組件仍在 OpenStack 裏面和 Neutron 並存,咱們在小規模部署裏面常常爲了追求這種穩定,而且減小工做量會去使用 Nova Network 這樣的一個組件來對網絡資源進行管理。