OpenStack做爲當前發展勢頭迅猛的雲計算開源項目,去年進行了一些瞭解,如今有空回來進行一些補充記錄,當時實戰的版本是那會最新版本,固然如今已經更新了好幾版了,不過仍是那句話「這些絲絕不影響,瞭解這個事物的本質,繼續...」python
做爲一個對OpenStack是何物徹底不知道,對「雲計算」也是僅僅瞭解泛泛的我,要啃OpenStack這個骨頭,先得了解OpenStack究竟是什麼,他提供了什麼功能,他能爲我作什麼,若是將我們本身的存儲設備爲做爲其存儲後端,如何快速解決以上問題。先從瞭解OpenStack開始,進行初探。mysql
從OpenStack的官網上看到,它開發了一個devstack的東東,給廣大初識OpenStack的親們帶來了服音。由於OpenStack安裝和部署比較麻煩,大多數安裝下來可能須要數週,對於初認openstack的開發人員,因此可使用devstack,快速部署一個openstack的環境用於入門。下面就以安裝devstack入手來談談。git
1、安裝sql
root@ubuntu-fy:~# uname -a數據庫
Linux ubuntu-fy 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linuxubuntu
幫助1:執行./stack.sh時,中間遇到過幾回報錯,打開報錯的信息中指向的文件,提示權限不夠,從新切換到root用戶後,執行create-stack-user.sh;su stack;./stack.sh經過了。後端
幫助2:執行./stack.sh時,因爲須要下載不少組件,若是網速比較弱弱,可能會下載超時,執行失敗,可嘗試從新執行該命令。centos
a) python組件、mysql、rabbit等。安全
b) openstack組件;網絡
c) 其它依賴庫。
openstack各模塊及依賴的服務並未開機自啓,所以重啓系統無openstack沒法使用,所以,須要啓動全部依賴的服務(方法待調研),或者從新執行./stack.sh。
幫助:中間遇到過UI沒法訪問的狀況,後來執行屢次./rejoin-stack.sh後,UI能夠訪問了,具體沒法訪問的緣由,及解決方法是否與rejoin-stack.sh腳本有關,尚不清楚。
未成功,未研調緣由。所以,建議選擇以上操做系統,安裝會比較順利。
2、初探openstack功能
openstack最爲主要的功能都是圍繞建立虛擬機實例服務的,其核心項目,都是爲了提供更多功能用於維護及管理虛擬機實例。從WEB頁面提供的功能來看,他將功能主要分爲了三類:項目、管理員、身份。下面按照我認識本系統的順序來講說這幾類功能。
devstack是的目的是用於給開發人員初識openstack,因此使用devstack搭建的openstack系統,集成了openstack的主要功能,非所有功能的集合。另外,經過UI操做的全部配置,如建立的虛擬機,並未寫入配置文件,因此重啓後,配置再也不生效。
使用爲本項目分配的配額來管理虛擬機實例。主要有如下功能。
該項目在openstack中,經過鏡像這個模塊的方式,提供其功能。所謂鏡像,即虛擬機的一個軟件系統。
幫助:對於該功能的理解,在咱們使用vmware時,建立虛擬機是先一步步指定硬件,再設置啓動盤的軟件鏡像。而openstack建立虛擬機的思路是,先建立虛擬機的軟件系統鏡像,再指定該鏡像要啓動幾個虛擬機。啓動虛擬機時再配置其硬件環境。
該項目包括:
運行鏡像,即啓動雲主機後,一臺虛擬機即開始按照指定的硬件及軟件進行建立,建立完虛擬機後,能夠實例模塊,看到此設備,並可對此設備進行一些操做。
一、雲硬盤:
a) 空白雲硬盤:openstack默認使用lvm建立一個vg,用於建立雲硬盤,選擇空白雲硬盤,指定雲硬盤大小後,會在vg上建立一個指定大小的lv,作爲雲硬盤。
b) 鏡像:選擇openstack中建立的鏡像作爲雲硬盤,那麼會將鏡像安裝到雲硬盤中,再主機一旦選擇啓動設備爲該雲硬盤,那麼便可從該鏡像的系統啓動。
c) 雲硬盤:選擇已存有數據的雲硬盤建立新的雲硬盤,至關將選擇的雲硬盤的數據同步一份到新建的雲硬盤上。
二、雲硬盤類型:
建立雲硬盤時指定的是一個雲硬盤類型,即一個虛擬的組,該組中的實際塊設備能夠是一個vg,也但是多個vg,便可以隨時動態擴展。選擇了雲硬盤類型而且指定了雲硬盤大小後,會根據必定的策略建立一個指定大小lv,這時雲硬盤對應的物理設備就是lv。
openstack系統能夠供多個用戶同時使用(即不一樣用戶建立屬於本身的虛擬機),不一樣用戶能夠進行的操做時,權限及能夠分配的配額限制也有可能不一樣,因此,須要提供一個叫作Keystone的模塊,用來管理用戶的權限角色及可以使用配額。
項目:
建立不一樣的項目,並設置該項目的配額,便可以建立多少個鏡像,多少實例,多少雲硬盤,可使用多少內存,等等。
用戶:
建立不一樣用戶,定義該用戶的角色(即它能夠涉及到的管理權限)。如普通_member_或admin,同時指定該用戶它可管理的項目。
綜上,使用openstack提供的任意功能時,都須要以用戶的身份登陸到WEB頁面中。多個用戶共同使用同一系統,須要合理分配物理資源,及管理權限。那麼,項目就是用來負責管理配額,即劃分資源。項目中的用戶,可擁有不一樣權限來使用這些資源。一個用戶也可管理多個項目,但有一主項目,即該用戶登陸系統後,默認顯示的項目。
身份(Identity)中提到,每一個用戶都有本身的角色,如admin,即管理員。他除了能夠管理本身的項目(如在項目分配的配額內建立鏡像、實例等),還能夠管理openstack系統。
一、 查看全部項目使用了openstack物理環境的多少物理資源(內存、磁盤空間等)
二、 查看虛擬機管理器的使用狀況。全部項目建立的虛擬機都是由openstack的虛擬機管理程序統一管理的,查看虛擬機管理器的虛擬內核(CPU核數),內存,磁盤空間使用狀況。
三、 查看系統信息:
a) 運行了哪些服務,即便用了哪些核心項目(模塊)。
b) 計算服務運行狀態(待研究細節)。
c) 塊存儲服務運行狀態(待研究細節)。
四、 管理全部鏡像、實例、雲主機類型、雲硬盤、主機集合、默認值等。
該模塊是可向openstack提供雲硬盤,即虛擬機真正存放數據的物理設備,也是咱們後續須要重點關注和使用的模塊。
2、OpenStack主要功能概述
完成了以上兩步後,對於OpenStack有了初步瞭解,那麼,如今總結一下其主要功能及模塊。
openstack最終就是要給用戶提供虛擬機服務,減小實體機的安裝維護成本,其全部功能都是圍繞這個目標服務的,都是爲了使該目標的使用更爲豐富。
如下是主要模塊的功能:
模塊/項目 |
模塊/項目名 |
功能 |
計算Compute |
Nova |
即虛擬機,也就是openstack的終極目標。 |
鏡像Image |
Glance |
給nova提供鏡像服務,即管理虛擬機的軟件鏡像。 |
塊存儲Block |
Cinder |
提供雲硬盤給nova,即爲虛擬機提供真正的物理存儲空間。 |
身份Indentity |
Keystone |
提供全部組件的認證,即全部功能的使用必須通過認證。 |
網絡管理Network |
Neutron |
給nova提供網絡支持,即管理虛擬機IP地址等。 |
UI界面Dashboard |
Horizon |
提供WEB頁面管理功能,即openstack的管理系統。 |
…… |