【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 体系涉及架构
文章图片
1.1.4openstack 组件交互架构
文章图片
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 环境 虚机配置如下
文章图片
安装方式可以采用虚机方式先一台虚机模板然后克隆,
产线机房可以采用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
文章图片
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
文章图片
tail -f /etc/security/limits.conf
文章图片
cat /etc/security/limits.d/20-nproc.conf
文章图片
设置 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 型号过旧,导致创建云主机故障的问题
*/
文章图片
所有机器设置这些完成之后重启系统reboot
1.2.4 制作 本地yum 服务器 机器
1.2.4.1 修改本地yum 源
上述机器使用yum.ops(172.16.10.17) 机器
Login:
172.16.10.17
文章图片
使用阿里云的配置源
# 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
文章图片
文章图片
文章图片
文章图片
文章图片
1.2.4.2 安装同步源的需要的依赖包
# yum -y install createrepo yum-utils httpd reposync
# systemctl enable httpd &
&
systemctl start httpd
文章图片
文章图片
文章图片
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 包全部下载到本地
文章图片
文章图片
私有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 虚拟机,添加 网络适配器
文章图片
文章图片
新增加的网卡为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
文章图片
文章图片
2.1.2 添加计算节computer点硬盘
文章图片
vmware在线刷新硬盘命令
echo "- - -" >
>
/sys/class/scsi_host/host0/scan
echo "- - -" >
>
/sys/class/scsi_host/host1/scan
echo "- - -" >
>
/sys/class/scsi_host/host2/scan
文章图片
推荐阅读
- 想从单体架构演进到分布式架构,SBA 会是一个不错的选择
- netty系列之:使用Jboss Marshalling来序列化java对象
- 分布式配置中心服务端如何实时更新()
- # yyds干货盘点 # Python实现对规整的二维列表中每个子列表对应的值求和
- JMeter MQTT 在订阅与发布测试场景中的使用
- python-office自动化办公(Word批量转PDF)
- 低代码时代,产品经理该如何实现逻辑配置()
- #yyds干货盘点# 解决剑指offer(正则表达式匹配)
- OpenHarmony ETS UI 组件封装之环形进度条