• 概述
  • 资源规划
  • 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

Openstack 10 云环境安装的更多相关文章

  1. openstack Mitaka实验环境安装(centos系统)

    本博文仅供参考,具体一定详细学习官方安装文档. 一 准备工作 二安装过程 1 安装NTP服务 2 安装openstack包 3 SQL数据库安装 4 安装消息队列 message queue 5 Me ...

  2. 华为云—环境安装(jdk安装,tomcat安装)

    前言 在前面咱们讲到华为云的购买以及一些配置,通过上一文即可获得一个可以直接访问使用的云服务器.但是对于不同的人群服务器的使用用途可能不同,对于咱们大部分的java程序员来说,jdk.tomcat.m ...

  3. 阿里云环境安装K8S步骤

    1. 安装docker yum install -y docker 2. 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值 $ vim /et ...

  4. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  6. 照着官网来安装openstack pike之nova安装

    nova组件安装分为控制节点和计算节点,还是先从控制节点安装 1.前提条件,数据库为nova创建库和账户密码来连接数据库 # mysql -u root -p MariaDB [(none)]> ...

  7. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  8. Centos 7 搭建OpenStack 私有云——(1)基础环境配置

    1.简介: OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个开源的云计算管理 ...

  9. 四种方案:将OpenStack私有云部署到Hadoop MapReduce环境中

    摘要:OpenStack与Hadoop被誉为继Linux之后最有可能获得巨大成功的开源项目.这二者如何结合成为更猛的新方案?业内给出两种答案:Hadoop跑在OpenStack上或OpenStack部 ...

随机推荐

  1. toad调用存储过程,存储过程调用sql 类

    1.定义一个sql 类Hello DROP JAVA SOURCE NEWXZXT."Hello"; CREATE OR REPLACE AND RESOLVE JAVA SOUR ...

  2. .NET Core中基类可以反射子类的成员

    我们定义一个类DemoA,再定义一个类DemoB继承DemoA.当构造一个DemoB类对象后,我们可以通过其调用基类DemoA中的方法来反射子类DemoB的成员. 新建一个.NET Core控制台项目 ...

  3. 【CSS-移动端响应式布局详解】

    背景 移动端响应式布局开发主要方案有: 基于rem开发 基于媒体查询 基于弹性盒 基础概念 在讨论响应式布局知识前,先了解下移动端常用基础概念. 逻辑像素(CSS pixels) 浏览器使用的抽象单位 ...

  4. 『ACM C++』 PTA 天梯赛练习集L1 | 027-028

    死亡周二,今天去看惊奇队长了!!!真的很佩服国外的后期特效大片技术,要是我们国内也能实现这样的技术能力就好了~ 羡慕max -------------------------------------- ...

  5. JS变量、作用域、内存

    写到这个题目<JS变量.作用域,内存>,我就不由自主想起了黄金三嫖客.可能是名字有点像,嗯,一定是这样子的! JS接触下来,应该是要比Java简单不少的,所以,要学好啊.立个flag半年后 ...

  6. mvc.net路由中带特殊字符如【.*/\】等时遇到的天坑

    用mvc.net的路由做网站伪静态时出现的天坑,自己一直没测试出来,竟然要靠客户被坑了后才知道 解决办法 参考https://stackoverflow.com/questions/16581184/ ...

  7. Redis开启远程访问及密码认证

    配置 redis.conf 文件 [root@localhost bin]# vi /usr/local/redis/bin/redis.conf 将 bind 127.0.0.1 注释掉 将 pro ...

  8. centos6.8安装mysql过程

    1.验证Centos是否安装MySQL $>yum list installed | grep mysql 2.删除MySql $>yum –y remove mysql-libs.X86 ...

  9. BurpSuite—-Target模块(目标模块)

    Target功能 目标工具包含了SiteMap,用你的目标应用程序的详细信息.它可以让你定义哪些对象在范围上为你目前的工作,也可以让你手动测试漏洞的过程,Target分为site map和scope两 ...

  10. java 8 更优雅的判断是否为空

    public static int getLength(String text) { // Java 8 return Optional.ofNullable(text).map(String::le ...