OpenStack實戰(一)

  OpenStack做爲當前發展勢頭迅猛的雲計算開源項目,去年進行了一些瞭解,如今有空回來進行一些補充記錄,當時實戰的版本是那會最新版本,固然如今已經更新了好幾版了,不過仍是那句話「這些絲絕不影響,瞭解這個事物的本質,繼續...」python

  做爲一個對OpenStack是何物徹底不知道,對「雲計算」也是僅僅瞭解泛泛的我,要啃OpenStack這個骨頭,先得了解OpenStack究竟是什麼,他提供了什麼功能,他能爲我作什麼,若是將我們本身的存儲設備爲做爲其存儲後端,如何快速解決以上問題。先從瞭解OpenStack開始,進行初探。mysql

  從OpenStack的官網上看到,它開發了一個devstack的東東,給廣大初識OpenStack的親們帶來了服音。由於OpenStack安裝和部署比較麻煩,大多數安裝下來可能須要數週,對於初認openstack的開發人員,因此可使用devstack,快速部署一個openstack的環境用於入門。下面就以安裝devstack入手來談談。git

1、安裝sql

1.1     安裝ubuntu操做系統。

  1. 由於centos6.0版本過低,不支持openstack,官方說明上標明centos6.5上安裝openstack有操做文檔,但在docs.openstack.org上找到的文檔是基於centos7的(也許有centos6.5的舊文檔),另外,ubuntu官方關於雲計算及openstack也有大量的說明及幫助信息,基於此,最終選擇了ubuntu操做系統。
  2. 初次使用ubuntu系統,安裝的是目前最新版本ubuntu-14.04.1-server-amd64(intel/amdx86_64)版本。
  3. 安裝時,未注意,沒有設置root密碼,只建立了用戶fy及密碼。開機後,su passwd root,設置root密碼後,經過SSH使用root用戶沒法直接登陸,必須使用fy用戶,登陸後,再切換到root用戶(估計是SSH考慮到安全性,將root登陸禁了,沒有看相關配置文件確認這個)。
  4. 系統信息:

      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.2     下載devStack

  1. devstack是什麼。由於OpenStack安裝和部署比較麻煩,對於初認openstack的開發人員,因爲devstack提供了不少openstack可配置項,因此可使用devstack,快速部署一個openstack的環境用於入門。devstack提供了一個腳本,直接執行腳本,直接完成安裝。因此,開始選擇了devstack來了解什麼是openstack。http://docs.openstack.org/developer/devstack/
  2. 使用apt-get install git。(apt-get至關於centos的yum)
  3. git clone https://git.openstack.org/openstack-dev/devstack(openstack項目在GitHub上維護,使用git命令下載,git相似於svn)
  4. 使用git clone第一次下載失敗,報錯(error: RPC failed; result=56, HTTP code = 200iB | 1024 bytes/s),網上查多是git buffer不夠?第二次嘗試下載成功。當前目錄下devstck目錄,共7.5M。
  5. 執行./stack.sh,報錯。不容許使用root賬戶來操做。必須使用」 /root/devstack/tools/create-stack-user.sh」腳本,來建立一個non-root用戶。腳本執行後,在/opt下建立了一個stack用戶(/home下,汗。。。)。
  6. 切換到stack用戶安裝。cp -r devstack /opt/stack; su stack; ./stack.sh。輸入幾個密碼(大概是一些組件,如數據庫和openstack核心組件的訪問密碼),開始刷刷刷安裝。

1.3     安裝devstack

  幫助1:執行./stack.sh時,中間遇到過幾回報錯,打開報錯的信息中指向的文件,提示權限不夠,從新切換到root用戶後,執行create-stack-user.sh;su stack;./stack.sh經過了。後端

  幫助2:執行./stack.sh時,因爲須要下載不少組件,若是網速比較弱弱,可能會下載超時,執行失敗,可嘗試從新執行該命令。centos

  1. devstack安裝的主要組件

    a)         python組件、mysql、rabbit等。安全

    b)         openstack組件;網絡

    c)         其它依賴庫。

1.4     重啓系統恢復devstack

  openstack各模塊及依賴的服務並未開機自啓,所以重啓系統無openstack沒法使用,所以,須要啓動全部依賴的服務(方法待調研),或者從新執行./stack.sh。

  幫助:中間遇到過UI沒法訪問的狀況,後來執行屢次./rejoin-stack.sh後,UI能夠訪問了,具體沒法訪問的緣由,及解決方法是否與rejoin-stack.sh腳本有關,尚不清楚。

1.5     centos6.5下安裝

  未成功,未研調緣由。所以,建議選擇以上操做系統,安裝會比較順利。

2、初探openstack功能

openstack最爲主要的功能都是圍繞建立虛擬機實例服務的,其核心項目,都是爲了提供更多功能用於維護及管理虛擬機實例。從WEB頁面提供的功能來看,他將功能主要分爲了三類:項目、管理員、身份。下面按照我認識本系統的順序來講說這幾類功能。

devstack是的目的是用於給開發人員初識openstack,因此使用devstack搭建的openstack系統,集成了openstack的主要功能,非所有功能的集合。另外,經過UI操做的全部配置,如建立的虛擬機,並未寫入配置文件,因此重啓後,配置再也不生效。

2.1     項目

使用爲本項目分配的配額來管理虛擬機實例。主要有如下功能。

2.1.1  鏡像(Image):Glance

  該項目在openstack中,經過鏡像這個模塊的方式,提供其功能。所謂鏡像,即虛擬機的一個軟件系統。

  幫助:對於該功能的理解,在咱們使用vmware時,建立虛擬機是先一步步指定硬件,再設置啓動盤的軟件鏡像。而openstack建立虛擬機的思路是,先建立虛擬機的軟件系統鏡像,再指定該鏡像要啓動幾個虛擬機。啓動虛擬機時再配置其硬件環境。

  該項目包括:

    1.   建立、刪除、查看鏡像的功能;
    2.   其重要功能就是運行鏡像,即啓動雲主機,即建立一個虛擬機實例,在此能夠指定虛擬機的硬件配置,包括內存、CPU核數、磁盤大小、磁盤類型,如雲硬盤等。

2.1.2  實例(即虛擬機)

  運行鏡像,即啓動雲主機後,一臺虛擬機即開始按照指定的硬件及軟件進行建立,建立完虛擬機後,能夠實例模塊,看到此設備,並可對此設備進行一些操做。

 

2.1.3  雲硬盤

   一、雲硬盤:

    a)         空白雲硬盤:openstack默認使用lvm建立一個vg,用於建立雲硬盤,選擇空白雲硬盤,指定雲硬盤大小後,會在vg上建立一個指定大小的lv,作爲雲硬盤。

    b)         鏡像:選擇openstack中建立的鏡像作爲雲硬盤,那麼會將鏡像安裝到雲硬盤中,再主機一旦選擇啓動設備爲該雲硬盤,那麼便可從該鏡像的系統啓動。

    c)         雲硬盤:選擇已存有數據的雲硬盤建立新的雲硬盤,至關將選擇的雲硬盤的數據同步一份到新建的雲硬盤上。

  二、雲硬盤類型:

    建立雲硬盤時指定的是一個雲硬盤類型,即一個虛擬的組,該組中的實際塊設備能夠是一個vg,也但是多個vg,便可以隨時動態擴展。選擇了雲硬盤類型而且指定了雲硬盤大小後,會根據必定的策略建立一個指定大小lv,這時雲硬盤對應的物理設備就是lv。

2.2     身份(Identity):Keystone

  openstack系統能夠供多個用戶同時使用(即不一樣用戶建立屬於本身的虛擬機),不一樣用戶能夠進行的操做時,權限及能夠分配的配額限制也有可能不一樣,因此,須要提供一個叫作Keystone的模塊,用來管理用戶的權限角色及可以使用配額。

  項目:

         建立不一樣的項目,並設置該項目的配額,便可以建立多少個鏡像,多少實例,多少雲硬盤,可使用多少內存,等等。

   用戶:

         建立不一樣用戶,定義該用戶的角色(即它能夠涉及到的管理權限)。如普通_member_或admin,同時指定該用戶它可管理的項目。

   綜上,使用openstack提供的任意功能時,都須要以用戶的身份登陸到WEB頁面中。多個用戶共同使用同一系統,須要合理分配物理資源,及管理權限。那麼,項目就是用來負責管理配額,即劃分資源。項目中的用戶,可擁有不一樣權限來使用這些資源。一個用戶也可管理多個項目,但有一主項目,即該用戶登陸系統後,默認顯示的項目。

2.3     管理員

  身份(Identity)中提到,每一個用戶都有本身的角色,如admin,即管理員。他除了能夠管理本身的項目(如在項目分配的配額內建立鏡像、實例等),還能夠管理openstack系統。

  一、  查看全部項目使用了openstack物理環境的多少物理資源(內存、磁盤空間等)

  二、  查看虛擬機管理器的使用狀況。全部項目建立的虛擬機都是由openstack的虛擬機管理程序統一管理的,查看虛擬機管理器的虛擬內核(CPU核數),內存,磁盤空間使用狀況。

  三、  查看系統信息:

    a)         運行了哪些服務,即便用了哪些核心項目(模塊)。

    b)         計算服務運行狀態(待研究細節)。

    c)         塊存儲服務運行狀態(待研究細節)。

  四、  管理全部鏡像、實例、雲主機類型、雲硬盤、主機集合、默認值等。

2       cinder

         該模塊是可向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的管理系統。

……

相關文章
相關標籤/搜索