OpenStack Train(系统环境实施准备)

【OpenStack Train(系统环境实施准备)】一万年来谁著史,三千里外欲封侯。这篇文章主要讲述OpenStack Train:系统环境实施准备相关的知识,希望能为你提供帮助。
标签(空测试用例格分隔):OpenStack Train 系列
一:系统安装环境说明 1.1 安装说明与介绍: 1.1.1 Openstack 介绍

Openstack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人将 Openstack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息, 帮助大家利用 Openstack前端来设置及管理自己的公共云或私有云。OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。openstack 官网:https://docs.openstack.org/

1.1.2 OpenStack 的常用包含组件
OpenStack 架构由大量开源项目组成。其中包含 6 个稳定可靠的核心服务,用于处理计算、网络、存储、身份和镜像; 同时,还为用户提供了十多种开发成熟度各异的可选服务。OpenStack 的 6 个核心服务主要担纲系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。keystone:Keystone 认证所有 OpenStack 服务并对其进行授权。同时,它也是所有服务的端点目录。 glance:Glance 可存储和检索多个位置的虚拟机磁盘镜像。 nova:是一个完整的 OpenStack 计算资源管理和访问工具,负责处理规划、创建和删除操作。 neutron:Neutron 能够连接其他 OpenStack 服务并连接网络。 dashboard:web管理界面 Swift: 是一种高度容错的对象存储服务,使用 RESTful API 来存储和检索非结构数据对象。 Cinder 通过自助服务 API 访问持久块存储。 Ceilometer:计费 Heat:编排

1.1.3OpenStack 体系涉及架构
OpenStack Train(系统环境实施准备)

文章图片

1.1.4openstack 组件交互架构
OpenStack Train(系统环境实施准备)

文章图片

1.2 Openstack Train 实验部署说明 1.2.1 实验环境
因为没有实体的服务器所以环境以虚拟机的形式体现1. 宿主机配置系统windows11x64 / 16core / 128G / 6TB SSD2. 虚拟软件: vmware workstation 16 pro3. 虚机操作系统: CentOS 7.9x64 4. OpenStack 版本:Train5. ceph 存储版本: 14.2.22(Nautilus)

1.2.2 环境 虚机配置如下
OpenStack Train(系统环境实施准备)

文章图片

安装方式可以采用虚机方式先一台虚机模板然后克隆, 产线机房可以采用PXE,kickstart,cobbler 批量安装系统,系统安装在此不做演示。

1.2.3 系统初始化
1.2.3.1 系统主机名配置
系统主机名: # hostnamectl set-hostname xxxxx所有主机配置:# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4# openstack 172.16.10.11 controller 172.16.10.12 compute01 172.16.10.13 compute02# cpeh-public 172.16.10.14 ceph01 172.16.10.15 ceph02 172.16.10.16 ceph03# ceph-cluster 20.16.10.14 ceph01-cluster 20.16.10.15 ceph02-cluster 20.16.10.16 ceph03-cluster# yum172.16.10.17 yum.ops

OpenStack Train(系统环境实施准备)

文章图片

1.2.3.2 系统初始化
所有机器配置:# 关闭 NetworkManager systemctl stop NetworkManager & & systemctl disable NetworkManager # 关闭firewalld 与 selinux systemctl stop firewalld & & systemctl disable firewalld sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config# 设置内核参数及文件句柄等资源限制参数# cat < < EOF > > /etc/sysctl.conf ## default 1 net.ipv4.tcp_syncookies = 1 ## default 0 net.ipv4.tcp_tw_reuse = 1 ## default 0 net.ipv4.tcp_tw_recycle = 1 ## default 60 net.ipv4.tcp_fin_timeout = 30 ## default 256 net.ipv4.tcp_max_syn_backlog = 4096 ## default 32768 60999 net.ipv4.ip_local_port_range = 1024 65535 ## default 129=8 net.core.somaxconn = 32768 EOF# cat < < EOF > > /etc/security/limits.conf * hard nofile 655360 * soft nofile 655360 * hard nproc 655360 * soft nproc 655360 * soft core 655360 * hard core 655360 EOF# sed -i s/4096/unlimited/g /etc/security/limits.d/20-nproc.conf# cat /etc/security/limits.d/20-nproc.conf* soft nproc unlimited root soft nproc unlimited

OpenStack Train(系统环境实施准备)

文章图片

tail -f /etc/security/limits.conf

OpenStack Train(系统环境实施准备)

文章图片

cat /etc/security/limits.d/20-nproc.conf

OpenStack Train(系统环境实施准备)

文章图片

设置 CPU 嵌套虚拟化,让虚拟机中再支持虚拟化cat /sys/module/kvm_intel/parameters/nested/* 说明:如果是 N,表示未开启。如果连/sys/module 目录都没有,说明主机没有开启虚拟化(vmware workstation 是主机创建时没有勾选 intel VT-x/EPT 或 AMD-V/RVI) */# cat < < EOF > /etc/modprobe.d/kvm-nested.conf options kvm_intel nested=1 ept=0 unrestricted_guest=0 EOF即时生效 # rmmod kvm_intel // 需要所有虚拟机是停止状态才能执行卸载# modprobe kvm-intel ept=0 unrestricted_guest=0# cat /sys/module/kvm_intel/parameters/nested //开启后状态为 Y。 /*说明:ept=0 用于关闭 Intel EPT 硬件辅助虚拟化,可有效解决 CPU 型号过旧,导致创建云主机故障的问题 */

OpenStack Train(系统环境实施准备)

文章图片

所有机器设置这些完成之后重启系统reboot

1.2.4 制作 本地yum 服务器 机器
1.2.4.1 修改本地yum 源
上述机器使用yum.ops(172.16.10.17) 机器 Login: 172.16.10.17

OpenStack Train(系统环境实施准备)

文章图片

使用阿里云的配置源 # cd /etc/yum.repos.d & & mkdir backup & & mv *.repo backup/ # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # sed -i -e /mirrors.cloud.aliyuncs.com/d -e /mirrors.aliyuncs.com/d /etc/yum.repos.d/CentOS-Base.repo # yum -y install centos-release-openstack-train 添加 ceph-nautilus 源 vim /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64 enabled=1 gpgcheck=0 [ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch enabled=1 gpgcheck=0 [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS enabled=1 gpgcheck=0

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

1.2.4.2 安装同步源的需要的依赖包
# yum -y install createrepo yum-utils httpd reposync # systemctl enable httpd & & systemctl start httpd

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

1.2.4.3 制作镜像源
mkdir -p /var/www/html/yumrepos同步CentOS-Base.repo 阿里云软件包到本地如果只想同步 CentOS-Base.repo 中指定块[section]中的 rpm 包,可以指定名称同步# reposync -n --repoid=base --repoid=updates -p /var/www/html/yumrepos/ # reposync -n --repoid=ceph --repoid=ceph-noarch -p /var/www/html/yumrepos/ # reposync -n --repoid=centos-openstack-train -p /var/www/html/yumrepos/ # reposync -n --repoid=centos-qemu-ev -p /var/www/html/yumrepos/ # reposync -n --repoid=epel -p /var/www/html/yumrepos/ # reposync -n --repoid=centos-ceph-nautilus -p /var/www/html/yumrepos/ # reposync -n --repoid=extras -p /var/www/html/yumrepos/将上面的源同步到本地: 制作本地源时间比较长,建议晚上同步

说明:以上仓库必须同步到本地此处再以 zabbix 离线源为例 安装 zabbix-4.0 的 yum 源配置文件 # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm安装好 zabbix-release-4.0-2.el7.noarch.rpm 会在/etc/yum.repos.d/ 下生成 zabbix.repo 文件# cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-debuginfo] name=Zabbix Official Repository debuginfo - $basearch baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/ enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 gpgcheck=1 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1只同步[zabbix]块中的 rpm 包到本地 # reposync -n --repoid=zabbix -p /var/www/html/yumrepos/

1.2.4.4 制作yum 源
使用 createrepo 命令创建本地 yum 源,即为存放于本地特定位置的众多 rpm 包建立索引,描述各包所需依赖信息,并形成元数据进到 /var/www/html/yumrepos/ 目录下的每一个目录执行 createrepo . 命令# cd /var/www/html/yumrepos/base# createrepo .定期更新: # reposync -n --repoid=base -p /var/www/html/yumrepos/# cd /var/www/html/yumrepos/base# createrepo --update . // 或者使用命令 createrepo --update /var/www/html/yumrepos/base按上述方法,将 openstack 所依赖的 rpm 包全部下载到本地

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

私有yum 文件 cd /etc/yum.repos.d/ vim openstack-public.repo ---- [base]name=CentOS-$releasever - Base baseurl=http://172.16.10.17/yumrepos/base/ gpgcheck=0 enabled=1[epel] name=CentOS-$releasever - Base baseurl=http://172.16.10.17/yumrepos/base/ gpgcheck=0 enabled=1[updates] name=CentOS-$releasever - Updates baseurl=http://172.16.10.17/yumrepos/updates/ gpgcheck=0 enabled=1[extras] name=CentOS-$releasever - Extras baseurl=http://172.16.10.17/yumrepos/extras/ gpgcheck=0 enabled=1[centos-openstack-train] name=CentOS-7 - OpenStack train baseurl=http://172.16.10.17/yumrepos/centos-openstack-train/ gpgcheck=0 enabled=1[centos-qemu-ev] name=CentOS-$releasever - QEMU EV baseurl=http://172.16.10.17/yumrepos/centos-qemu-ev/ gpgcheck=0 enabled=1[centos-ceph-nautilus] name=CentOS-7 - Ceph Nautilus baseurl=http://172.16.10.17/yumrepos/centos-ceph-nautilus/ gpgcheck=0 enabled=1[centos-nfs-ganesha28] name=CentOS-7 - NFS Ganesha 2.8 baseurl=http://172.16.10.17/yumrepos/centos-nfs-ganesha28/ gpgcheck=0 enabled=1[ceph]name=CentOS-7 - Ceph baseurl=http://172.16.10.17/yumrepos/ceph/ gpgcheck=0 enabled=1[ceph-noarch] name=CentOS-7 - Ceph-noarch baseurl=http://172.16.10.17/yumrepos/ceph-noarch/ gpgcheck=0 enabled=1 ---然后使用ansible 同步到所有节点上面ansible nodesrvs -m copy -a "src=https://www.songbingjia.com/etc/yum.repos.d/openstack-public.repo dest=/etc/yum.repos.d/" ansible nodesrvs -m command -a "yum clean all" ansible nodesrvs -m command -a "yum makecache fast"

主机rpm 包的更新 yum update -y报错: --> 正在处理依赖关系 sip(x86-64) = 4.19-1.el7,它被软件包 sip-devel-4.19-1.el7.x86_64 需要 --> 解决依赖关系完成 错误:软件包:PyQt4-devel-4.12-1.el7.x86_64 (centos-openstack-train) 需要:PyQt4(x86-64) = 4.12-1.el7 已安装: PyQt4-4.10.1-13.el7.x86_64 (@anaconda) PyQt4(x86-64) = 4.10.1-13.el7 错误:软件包:sip-devel-4.19-1.el7.x86_64 (centos-openstack-train) 需要:sip(x86-64) = 4.19-1.el7 已安装: sip-4.14.6-4.el7.x86_64 (@anaconda) sip(x86-64) = 4.14.6-4.el7 您可以尝试添加 --skip-broken 选项来解决该问题 yum remove PyQt4-4.10.1-13.el7.x86_64 sip-4.14.6-4.el7.x86_64 -y yum update -y 安装 OpenStack 客户端 yum -y install python-openstackclient从新启动 服务器 reboot

二:主机环境初始化 2.1 主机硬件环境 2.1.1 主机节点增加网卡
ceph01/ceph02/ceph03 此处先不修改,等在后面安装 ceph 时再根据规划修改按照规划,为 compute01、compute02 添加硬盘50G的硬盘,controller、compute01、compute02 各增加 2 块网卡,此处以 controller 截图为例vmware在线刷新硬盘命令 echo "- - -" > > /sys/class/scsi_host/host0/scan echo "- - -" > > /sys/class/scsi_host/host1/scan echo "- - -" > > /sys/class/scsi_host/host2/scan编辑 controller 虚拟机,添加 网络适配器

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

新增加的网卡为ens35 (隧道VXLAN网络) 与 ens36(ceph 存储网络) controller 主机: 在 controller 节点上执行 # cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens35 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens35 DEVICE=ens35 ONBOOT=yes IPADDR=10.16.10.11 NETMASK=255.255.255.0 EOF# cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens36 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=20.16.10.11 NETMASK=255.255.255.0 EOF# systemctl restart networkcompter01 主机: 在 compute01 节点上执行 # cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens35 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens35 DEVICE=ens35 ONBOOT=yes IPADDR=10.16.10.12 NETMASK=255.255.255.0 EOF # cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens36 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=20.16.10.12 NETMASK=255.255.255.0 EOF # systemctl restart networkcompter02 主机: 在 compute02 节点上执行 # cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens35 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens35 DEVICE=ens35 ONBOOT=yes IPADDR=10.16.10.13 NETMASK=255.255.255.0 EOF # cat < < EOF > /etc/sysconfig/network-scripts/ifcfg-ens36 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=20.16.10.13 NETMASK=255.255.255.0 EOF # systemctl restart network并且网络必须是通畅在 controller 节点上执行 ping 10.16.10.12 ping 10.16.10.13 ping 20.16.10.12 ping 20.16.10.13

OpenStack Train(系统环境实施准备)

文章图片

OpenStack Train(系统环境实施准备)

文章图片

2.1.2 添加计算节computer点硬盘
OpenStack Train(系统环境实施准备)

文章图片

vmware在线刷新硬盘命令 echo "- - -" > > /sys/class/scsi_host/host0/scan echo "- - -" > > /sys/class/scsi_host/host1/scan echo "- - -" > > /sys/class/scsi_host/host2/scan

OpenStack Train(系统环境实施准备)

文章图片


    推荐阅读