OpenStack 初探(一) -- All-In-One模式部署(初學OpenStack必備)

OpenStack 初探(一) -- All-In-One模式部署(初學OpenStack必備)

1、操做前需瞭解:

    1. OpenStack提供IaaS(基礎設施即服務)服務,它是開源的雲計算平臺。(我的理解:將多臺硬件設備虛擬化成一個池,而後在池子裏放虛擬機,放存儲(對象和塊)集羣,全部整合一塊兒提供雲計算基礎服務,會想到VMWARE的ESX(i))
    2. 一般OpenStack是由許多硬件節點組合而成的,包括控制節點Controller,計算節點Compute,網絡節點Network,塊存儲節點ceph,對象存儲節點swift等。
    AllInOne是Openstack最基本的模式,即將全部必要組件都安裝到一臺硬件節點上。這種模式不包含塊存儲和對象存儲模塊。
    3. 組件服務名詞(紅色部分爲必要服務組件)node

Service Project Name Description
Dashboard Horizon Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls.
Compute service Nova Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of virtual machines on demand.
Networking service Neutron Enables Network-Connectivity-as-a-Service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies.
Object Storage service Swift Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale-out architecture. Its implementation is not like a file server with mountable directories. In this case, it writes objects and files to multiple drives, ensuring the data is replicated across a server cluster.
Block Storage service Cinder Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices.
Identity service Keystone Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services.
Image service Glance Stores and retrieves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning.
Telemetry service Ceilometer Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes.
Orchestration service Heat Orchestrates multiple composite cloud applications by using either the native HOT template format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.
Database service Trove Provides scalable and reliable Cloud Database-as-a-Service functionality for both relational and non-relational database engines.
Data Processing service Sahara Provides capabilities to provision and scale Hadoop clusters in OpenStack by specifying parameters like Hadoop version, cluster topology and nodes hardware details.

    4. 本文會搭建一個AllInOne的OpenStack,並登錄Dashboard,建立project,搭建網絡,上傳image,launch一個虛擬機(虛擬機在OpenStack上專業術語叫instance),最後會給出調用OpenStack Restful API來獲取host主機信息,列出instance的代碼實例。
    5. 補充說明:使用AllInOne來搭建OpenStack是最簡單直接的方法,由於基本上都是自動化的,無需手動配置各個組件。網上不少OpenStack deploy的教程是多節點的部署,須要一個組件一個組件的安裝和配置,因爲操做系統版本的差別,以及OpenStack版本的差別,很容易出錯。好比,不少教程是在CentOs 7.1上的,而且安裝的是OpenStack的liberty版本,因爲liberty版本如今已經不是最新的OpenStack版本,因此在安裝時會出現沒法從CentOS的repository裏找到liberty版本的OpenStack rpm錯誤。linux

2、搭建AllInOne模式的OpenStack

    真實環境下的OpenStack是搭建在真實硬件上的,出於研究目的,本文將會在VMWARE虛擬機(目前最新的CentOs 7.4.1708 minimal)上搭建OpenStack。因爲過程當中有一些步驟容易出錯,因此建議在安裝以前給操做系統打好快照,以便後續出現莫名錯誤時能回退操做系統。
    OpenStack all-in-one模式會將OpenStack的控制節點、計算節點和網絡節點同時安裝在一個機器上。這種模式能夠快速配置,很是方便用於測試和開發。
    接下來咱們會使用RDO repository來安裝OpenStack all-in-one。這裏簡單介紹一下RDO:RDO是一個組織,這羣人在CentOS和RedHat上使用和開發OpenStack。RDO提供了OpenStack安裝的Repository,使用RDO方式來安裝OpenStack會很是簡單,由於幾乎全部都是自動化的,一鍵式的。
    請將虛擬機內存設置爲>=8GB,安裝過程當中對內存的消耗比較大,當小於這個內存時,安裝會失敗,報錯爲:fork() failing with Out of memory (通常會在已經花費了半個多小時,安裝快要結束時報這個錯,會讓人很奔潰)。
    建議的虛擬機配置:
    CPU:8核(大於等於4核,條件容許越大越好,由於OpenStack組件運行會消耗系統資源,你launch的instance也會消耗,做爲基礎平臺,硬件要給力才行)
    內存:16GB(大於等於8G)
    硬盤:60GB(保險起見,建議>=100G)
    網絡:能surf the Internet(由於安裝過程會從RDO repository下載按照包)web

    開始安裝:
    安裝前,先看看當前的網絡和系統信息(CentOS 7沒有ifconfig,使用ip命令替代,若要使用ifconfig,須要安裝:yum install net-tools.x86_64)
    pre_install
    請切換到root用戶,全程使用root用戶來進行安裝
    一、 更新系統
    1.1 命令行:yum update
    更新過程當中,若是更新了kernel,建議重啓系統,以下:
    kernel_update
    1.2 修改hostname(可選)
    這個步驟在all-in-one模式下不是必須的,可是建議進行修改,若是後續須要將all-in-one擴展成多節點時,配置節點間通訊,都會用到這個hostname。而且all-in-one的機器節點將會做爲多節點中的controller節點,這裏咱們將hostname更改成controller-node。
    (1)命令行:hostnamectl set-hostname controller-node
    (2)將/etc/hosts手動更改成:
      #127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
      127.0.0.1      controller-node
      ::1             controller-node
    註銷當前登陸,從新登陸系統
    re-login
    二、 安裝RDO庫
       安裝前的yum repository:
       pre-repo
       運行命令:yum install https://www.rdoproject.org/repos/rdo-release.rpm
       安裝後的yum repository,多了RDO的三個庫:
       post-repo
    三、 安裝packstack(自動化的OpenStack安裝程序)
       命令行:yum install openstack-packstack
    四、 關掉NetworkManager並disable掉,防止這個服務更改咱們的網絡配置。
       systemctl stop NetworkManager && systemctl disable NetworkManagerswift

       下面兩個操做關掉SElinux和firewall是可選的,不關的話all-in-one也能成功。出於排除沒必要要干擾的考慮,建議將他們關掉。
       (1)關掉SELinux
        setenforce 0
        修改/etc/selinux/config中:SELINUX=disabled
       (2)關掉firewall
        systemctl stop firewalld&& systemctl disable firewalld
    五、 運行packstack開始自動化安裝
       Packstack安裝有兩種模式,一種是使用answer file進行組件配置,另外一種是直接進行all-in-one安裝。前者能夠經過packstack命令生成一個answer file,在這個文件裏自定義配置安裝和不安裝哪些組件,後者直接使用默認的allinone配置來安裝。建議初次安裝時使用後者。詳細的answer file模式,直接google:RDO packstack answer file
       安裝命令:packstack –allinone –provision-demo=n
       –provision-demo=n的含義是不安裝OpenStack的demo project,不然安裝完之後,登陸Dashboard會看到已經存在一個叫demo的工程。後續咱們會本身配置OpenStack的網絡,再launch一個實例,出於排除掉這個demo的干擾的考慮,這裏建議不安裝它。(實際上,安裝了,也不會影響咱們後續的任何操做,這裏只是爲了簡化而已)
       整個安裝過程可能會花費一個小時左右,這取決於你這臺機器的配置。而且中途會到repository下載安裝包,因此這個機器surf the Internet的速度也會大大影響安裝時間。
       整個安裝過程會很消耗內存,這也是建議將虛擬機配置爲>=8GB內存的緣由所在,使用top能夠看到,packstack在觸發nova,glance,keystone等組件的逐個安裝和check available。而且內存使用量在蹭蹭的上漲,很快就會達到5G以上,峯值會逼近8G。
       安裝成功之後是這樣的顯示:
       install-success
       個人此次安裝耗費了40分鐘,請留意上面截圖黃色高亮部分的內容。
       如今能夠先登陸Dashboard大體瀏覽一下OpenStack長啥樣。登陸的用戶名和密碼在CentOS系統/root/keystonerc_admin文件裏。
       keystone-file
       登陸後能夠看到默認存在的project admin
       first-log-in-dashboard
       這是OpenStack最高權限的project,在這個project裏能夠看到compute node的機器信息,能夠查看全部project launch的instance等,而其餘非admin的project是沒法查看compute node機器信息的(默認不容許,也許能夠經過修改policy來給權限,目前簡單查過方法,未果)。後面Restful API的測試會經過admin來進行,當使用非admin的project時,會報錯:ERROR: Policy doesn’t allow os_compute_api:os-hypervisors to be performed. (HTTP 403)。
       下一篇《在OpenStack中launch一個虛擬機實例》將講解如何在OpenStack中配置和建立一個實例(instance,即虛擬機)api

相關文章
相關標籤/搜索