Openstack 10 雲環境安裝


  • 概述
  • 資源規划
  • Undercloud Installation

  • Overcloud Installation
  • Trouble Shooting
  • 附錄

本指南介紹了如何使用 Red Hat OpenStack Platform director 在企業級環境中安裝 Red Hat OpenStack Platform 10 的信息。這包括合理規划 OSP 10資源、部署 director 以及通過 director 安裝 undercloud 和 overcloud 從而創建一個 OpenStack 環境。

1. 概述

Red Hat OpenStack Platform director 是一個安裝和管理完整的 OpenStack 環境的工具組,它主要基於 OpenStack 項目 - TripleO("OpenStack-On-OpenStack" 的縮寫)。這個項目利用 OpenStack 組件來安裝一個可以完全工作的 OpenStack 環境。它包括了新的 OpenStack 組件來部署並控制裸機系統作為 OpenStack 的節點,這為安裝一個完整、穩定、高效的 Red Hat OpenStack Platform 環境提供了一個簡潔的方法。

如圖所示,Red Hat OpenStack Platform director 使用兩個主要概念:Undercloud 和 Overcloud。Undercloud 可以安裝並配置 Overcloud。

1.1 Undercloud

Undercloud 是主要的 director 節點,它是由單一系統(Red Hat)組成的一個 OpenStack 安裝,部署和管理 OpenStack 環境(Overcloud)的必備組件。Undercloud 的組件具有以下功能:

  • 環境規划: Undercloud 提供了為用戶分配 Red Hat OpenStack Platform 角色(Compute、Controller 和不同的存儲節點)的功能。
  • 邏輯系統控制: Undercloud 使用每個節點的智能平台管理界面(Platform Management Interface,簡稱 IPMI)來進行電源管理控制,並使用一個基於 PXE 的服務來發現硬件的屬性來在每個節點上安裝 OpenStack。通過這個功能,可以把裸機系統部署為 OpenStack 節點。
  • 編配(Orchestration): Undercloud 提供了一組 YAML 模板來創建一個 OpenStack 環境。

Undercloud 包括以下組件:

  • OpenStack Dashboard(horizon):director 的基於 web 的控制台。
  • OpenStack Bare Metal(ironic)和 OpenStack Compute(nova):管理裸機節點。
  • OpenStack Networking(neutron)和 Open vSwitch:控制裸機節點的網絡。
  • OpenStack Image Server(glance):存儲寫到裸機上的鏡像。
  • OpenStack Orchestration(heat)和 Puppet:提供對節點的編配功能,並在 director 把 Overcloud 鏡像寫入到磁盤后配置節點。
  • OpenStack Telemetry(ceilometer):監控並采集數據。
  • OpenStack Identity(keystone):提供 director 組件的驗證和授權功能。
  • MariaDB: director 的后台數據庫。
  • RabbitMQ: director 組件的消息隊列。

 1.2 Overcloud

Overcloud 是一個通過 Undercloud 創建的 Red Hat OpenStack Platform 環境,它包括一個或多個以下類型的節點:

  • Controller(控制器):OpenStack 環境提供管理、網絡和高可用性服務的節點。一個默認 Controller 節點包括以下組件:horizon、keystone、nova API、neutron server、Open vSwitch、glance、cinder volume、cinder API、swift storage、swift proxy、heat engine、heat API、ceilometer、MariaDB 和 RabbitMQ。Controller 還會使用 Pacemaker 和 Galera 來實現高可用性功能。
  • Compute(計算):OpenStack 環境提供計算資源的節點。隨着時間的推移,可以通過添加更多節點來擴展您的環境。一個默認的 Compute 節點包括以下組件:nova Compute、nova KVM、ceilometer agent 和 Open vSwitch。

 

 2. 資源規划

2.1 最小配置節點

  • 一個作為 Red Hat OpenStack Platform director 的主機 。
  • 一個作為 Red Hat OpenStack Platform Compute 節點的主機 。
  • 一個作為 Red Hat OpenStack Platform Controller 節點的主機 。

2.2 網絡配置

Provisioning 網絡: director 是用來部署和管理 Overcloud 節點的私有網絡。Provisioning 網絡提供了 DHCP 和 PXE 引導功能來幫助發現在 Overcloud 中使用的主機。這個網絡最好使用一個主干(trunk)接口中的原生 VLAN,這樣 director 服務器就可以處理 PXE 引導和 DHCP 請求。另外,這個網絡也可被用來通過 IPMI 對所有 Overcloud 節點進行電源管理。

External 網絡: 遠程連接到所有節點的一個獨立網絡。連接到這個網絡的接口需要一個可路由的 IP 地址(靜態定義或通過一個外部 DHCP 服務動態分配)。

IPMI 網絡:節點電源管理的網絡,該網絡在安裝 Undercloud 前被預先定義。

Internal API 網絡:Internal API 網絡被用來處理經過 API 、RPC 消息和數據庫進行的 OpenStack 服務間的通訊。

Tenant 網絡: Neutron 為每個租戶提供自己的網絡。這可以通過使用 VLAN 隔離(VLAN segregation,每個租戶網絡都是一個網絡 VLAN)實現,也可以使用 VXLAN 或 GRE 通道(tunneling)實現。每個租戶網絡的網絡數據會被相互隔離,並都有一個相關聯的 IP 子網。通過網絡命名空間,多個租戶子網可以使用相同的地址。

 

3. Undercloud Installation

創建 Red Hat OpenStack Platform 環境的第一步是在 Undercloud 系統上安裝 director。這需要進行一些先期的步驟來啟用所需的訂閱(subscription)和軟件倉庫(repository)。

3.1 創建 director 安裝用戶

[root@director ~]# useradd stack

[root@director ~]# passwd stack # specify a password

[root@director ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack

[root@director ~]# chmod 0440 /etc/sudoers.d/stack

[root@director ~]# su – stack

3.2 設置主機名

sudo hostnamectl set-hostname undercloud.localdomain

sudo hostnamectl set-hostname --transient manager.example.com

3.3. 注冊系統

要安裝 RHEL OpenStack Platform installer,首先需要使用 Red Hat Subscription Manager 注冊系統,並訂閱所需頻道。

3.4 安裝 director 軟件包

sudo yum install -y python-tripleoclient

3.5 修改 sample 配置文件並安裝

cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf.

openstack undercloud install

修改配置文件可見 這里 ,出現圖中所示提示,即為安裝成功 。

 

4. Overcloud Installation

4.1 安裝 Overcloud 鏡像

director 需要以下幾個磁盤鏡像來部署 Overcloud 節點:

  • 一個內省內核和 ramdisk - 用於通過 PXE 引導進行裸機系統內省。
  • 一個實施內核和 ramdisk - 用於系統部署和實施。
  • 一個 Overcloud 內核、ramdisk 和完整鏡像 - 寫到節點硬盤中的一個基本的 Overcloud 系統。

從 rhosp-director-images 和 rhosp-director-images-ipa 軟件包中獲得這些鏡像:

sudo yum install rhosp-director-images rhosp-director-images-ipa

 把新鏡像歸檔復制到 stack 用戶的家目錄(/home/stack/images)的 images 目錄中,並且獲取鏡像:

cp /usr/share/rhosp-director-images/overcloud-full-latest-8.0.tar ~/images/.
cp /usr/share/rhosp-director-images/ironic-python-agent-latest-8.0.tar ~/images/.
cd ~/images
for tarfile in *.tar; do tar -xf $tarfile; done
把這些鏡像導入到 director:
openstack overcloud image upload --image-path /home/stack/images/

查看鏡像列表:

4.2 注冊 Overcloud 節點

在注冊節點前,最好設置節點的磁盤為 RAID0 , 並且設置節點的啟動順序為 PXE 引導啟動。

注冊節點:

openstack overcloud node import ~/instackenv.json
openstack baremetal node list

instackkenv.json 文件中存放的是節點的信息,包括 ip ,用戶名,密碼等信息,示例如:

{
   "nodes":[
      {
           "pm_type":"pxe_ipmitool",
           "pm_user":"admin",
           "pm_password":"admin",
           "pm_addr":"***"
      },
      {
           "pm_type":"pxe_ipmitool",
           "pm_user":"admin",
           "pm_password":"admin",
           "pm_addr":"***"
      }
   ]
}

 4.3 管理內省節點

for node in $(openstack baremetal node list -c UUID -f value) ; do openstack baremetal node manage $node; done

openstack overcloud node introspect --all-manageable –provide

4.4 設置節點屬性

openstack baremetal node set --property capabilities='profile:control,boot_option:local' [uuid]
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' [uuid]

4.5 安裝 overcloud 節點

openstack overcloud deploy
--templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
-e ~/templates/network-environment.yaml -e ~/templates/storage-environment.yaml
--control-scale 3 --compute-scale 3 --ceph-storage-scale 3 --control-flavor control
--compute-flavor compute --ceph-storage-flavor ceph-storage --ntp-server pool.ntp.org
--neutron-network-type vxlan --neutron-tunnel-types vxlan

如圖所示,即安裝成功:

 

5. Trouble Shooting

5.1 Overcloud deployment failed for "No valid host was found...code:500"

1. Make sure that enough nodes are in available state, not in maintenance mode and not already used by an existing instance:

 openstack baremetal node list

2. Make sure the undercloud is able to connect to the overcloud hypervisors using the power credentials (e.g. ipmi_address, ipmi_username and ipmi_password):

 ipmitool -I lanplus -H 10.43.138.12 -L ADMINISTRATOR -p 6320 -U admin -R 3 -N 5 -P redhat power status

3. Make sure that you have Compute services running and enabled:

openstack compute service list --service nova-compute

4. Make sure the node's properties matches completely with the assigned flavor's properties field. The node's property is populated at the introspection stage:

openstack baremetal node show UUID -c properties

5. If overcloud node can’t inspect, the probably reason is the provisioning network is not correct, need check it again and again.

關於該問題的詳細分析見 這里 。

 

6. 附錄

6.1 PXE 基礎知識

PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client端和Server端的網絡模式,Client通過網絡從遠端服務器下載鏡像,並支持通過網絡啟動操作系統,在啟動過程中,Client要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol) 協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統等。

6.2 RAID 0 和 RAID 1

RAID,Redundant Arrays of Independent Drivers, 獨立磁盤構成的具有冗余能力的陣列。由多個獨立的高性能磁盤驅動器組成的磁盤子系統,從而提供比單個磁盤更高的存儲性能和數據冗余的技術。在服務器整個系統中, RAID 被看作是由兩個或更多磁盤組成的存儲空間,通過並發地在多個磁盤上讀寫數據來提高存儲系統的 I/O 性能。

 

RAID 0: 把連續的數據分散到多個磁盤上存取,系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求。如果要做RAID 0,一台服務器至少需要兩塊硬盤,其讀寫速度是一塊硬盤的兩倍。如果有N塊硬盤,那么讀寫速度就是一塊硬盤的N倍。雖然讀寫速度可以提高,但由於沒有數據備份功能,因此安全性會低很多。

 

RAID 1: 通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據。同樣地,要做RAID1也是至少需要兩塊硬盤,單讀取數據時,一塊會被讀取,一塊會被用作備份數據。其數據安全性就會較高,但是磁盤空間利用率是比較低的。

 

參考文檔:

Openstack Docs: https://docs.openstack.org/tripleo-docs/latest/install/installation/installation.html

No valid host was found...code:500 Trouble Shooting: https://www.golinuxhub.com/2018/08/how-to-fix-no-valid-host-was-found-not-enough-available-500.html


免責聲明!

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



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