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


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

一、操作前需了解:

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

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錯誤。

二、搭建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下載按照包)

    開始安裝:
    安裝前,先看看當前的網絡和系統信息(CentOS 7沒有ifconfig,使用ip命令替代,若要使用ifconfig,需要安裝:yum install net-tools.x86_64)
    pre_install
    請切換到root用戶,全程使用root用戶來進行安裝
    1、 更新系統
    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
    2、 安裝RDO庫
       安裝前的yum repository:
       pre-repo
       運行命令:yum install https://www.rdoproject.org/repos/rdo-release.rpm
       安裝后的yum repository,多了RDO的三個庫:
       post-repo
    3、 安裝packstack(自動化的OpenStack安裝程序)
       命令行:yum install openstack-packstack
    4、 關掉NetworkManager並disable掉,防止這個服務更改我們的網絡配置。
       systemctl stop NetworkManager && systemctl disable NetworkManager

       下面兩個操作關掉SElinux和firewall是可選的,不關的話all-in-one也能成功。出於排除不必要干擾的考慮,建議將他們關掉。
       (1)關掉SELinux
        setenforce 0
        修改/etc/selinux/config中:SELINUX=disabled
       (2)關掉firewall
        systemctl stop firewalld&& systemctl disable firewalld
    5、 運行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,即虛擬機)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM