部署opnestack-train云平台(packstack一键部署)
服务器准备
4台机器安装C7.9,网卡名也要保持一致
103.73.119.106:22 controller eno1
103.73.119.116:22 nova01 eno1
103.73.119.117:22 nova02 eno1
103.73.119.120:22 nova03 eno1
系统环境(所有节点都要设置)
1、修改主机名
hostnamectl set-hostname controller
echo xxx | passwd --stdin root
2、做好hosts文件解析
cat >>/etc/hosts<<EOF
103.73.119.106 controller
103.73.119.116 nova01
103.73.119.117 nova02
103.73.119.120 nova03
EOF
获取集群主机名
awk '{print $2}' /etc/hosts|grep -v localhost
3、做好了密钥登录
在controller节点上生成密钥分发到所有的nova节点上
ssh-keygen
for i in `awk '{print $2}' /etc/hosts|grep -v localhost`;do ssh-copy-id $i;done
分发hosts文件
for i in `awk '{print $2}' /etc/hosts|grep -v localhost`;do scp /etc/hosts ${i}:/etc;done
4、系统优化
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$" echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>/etc/profile
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/bashrc
echo -e "ClientAliveInterval 30 \nClientAliveCountMax 86400" >>/etc/ssh/sshd_config
sed -i '/UseDNS/a UseDNS no' /etc/ssh/sshd_config
systemctl restart sshd
yum install -y wget ntpdate
mkdir /etc/yum.repos.d/bak
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#epel源有些软件版本比openstack需要的版本高,不兼容容易出错,先不安装
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -ri 's@(.*aliyuncs)@#\1@g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
#yum -y update
#reboot
#重启系统后再继续安装
#yum-utils是yum库的配置工具箱
yum install -y vim net-tools lrzsz bash-completion nfs-utils yum-utils
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
. /etc/locale.conf
#echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
#sysctl -p
systemctl stop firewalld.service
systemctl disable firewalld.servic
sed -ri 's#^(SELINUX=).*$#\1disabled#g' /etc/selinux/config
setenforce 0
systemctl stop NetworkManager
systemctl disable NetworkManager
5、内核优化:
cat >>/etc/sysctl.conf<< EOF
##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
sysctl -p
置文件句柄及其他限制参数
cat >>/etc/security/limits.conf<<EOF
* 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 !$
说明:
#* 代表针对所有用户
#nproc 是代表最大进程数
#nofile 是代表最大文件打开数
6、设置DNS
要把/etc/resolv.conf里的search开关的行删除
7、NTP设置
ntpdate 61.160.213.184
clock -w
echo "0 */1 * * * /usr/sbin/ntpdate 61.160.213.184 &> /dev/null" >> /var/spool/cron/root
8、配置train版yum源
cat <<EOF>/etc/yum.repos.d/openstack-train.repo
[openstack-train]
name=openstack-train
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/cloud/x86_64/openstack-train/
gpgcheck=0
enabled=1
[kvm-qemu]
name=kvm-qemu
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/virt/x86_64/kvm-common/
gpgcheck=0
enabled=1
EOF
yum clean all
yum makecache
yum repolist
部署openstack
1、controller节点上需要安装的
yum install -y python-setuptools openstack-packstack
生成应答文件
cd ~
packstack --gen-answer-file=answer.ini
修改应答文件
sed -i '/CONFIG_SWIFT_INSTALL=y/c CONFIG_SWIFT_INSTALL=n' answer.ini
sed -i '/CONFIG_CEILOMETER_INSTALL=y/c CONFIG_CEILOMETER_INSTALL=n' answer.ini
sed -i '/CONFIG_AODH_INSTALL=y/c CONFIG_AODH_INSTALL=n' answer.ini
#没有此项
#sed -i '/CONFIG_GNOCCHI_INSTALL=y/c CONFIG_GNOCCHI_INSTALL=n' answer.ini
sed -i '/CONFIG_NTP_SERVERS=/c CONFIG_NTP_SERVERS=61.160.213.184' answer.ini
sed -i '/CONFIG_COMPUTE_HOSTS=/c CONFIG_COMPUTE_HOSTS=103.73.119.116,103.73.119.117,103.73.119.120' answer.ini
sed -i '/CONFIG_NETWORK_HOSTS=/c CONFIG_NETWORK_HOSTS=103.73.119.106,103.73.119.116,103.73.119.117,103.73.119.120' answer.ini
sed -i '/CONFIG_KEYSTONE_ADMIN_PW=/c CONFIG_KEYSTONE_ADMIN_PW=www.123.nyc' answer.ini
sed -i '/CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=/c CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex' answer.ini
sed -i '/CONFIG_NEUTRON_ML2_TYPE_DRIVERS=/c CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan,geneve' answer.ini
sed -i '/CONFIG_NEUTRON_OVS_BRIDGE_IFACES=/c CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eno1' answer.ini
sed -i '/CONFIG_PROVISION_DEMO=/c CONFIG_PROVISION_DEMO=n' answer.ini
cat -n answer.ini |egrep -w '41|46|50|79|97|101|326|858|795|869|1181'
根据应答文件安装openstack
packstack --answer-file=answer.ini
大概需要35分钟安装完成
2、nova节点上需要安装的
yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu python-setuptools
systemctl enable --now libvirtd
systemctl status libvirtd
浏览器访问IP地址
用户名默认admin,密码是在应答文件里设置的
1、查看计算节点(nova节点)及资源池容量
除去宿主机(计算节点)使用的资源,剩下的资源就可以分配给云主机使用了
2、主机聚合
通常将相同规格的硬件归为一组,对象是计算节点。例如具备CPU高主频的计算节点归为一个组;固态硬盘的计算节点归为一组等
因为我们3台计算节点都是240G的SSD硬盘,可以创建一个SSD-store组。这里不创建也不会有什么影响的,有其他规格的计算节点可以创建主机聚合分类存放,方便管理。默认没有主机聚合。
可用域也叫可用区,和名称保持一致即可
管理主机
3、实例类型
也叫云主机类型,就是资源模板,创建实例(云主机)要指定vCPU数量、内存大小、硬盘容器。默认5个实例类型。可以全部删除再创建自己需要的类型。
4、镜像
镜像其实就是虚拟磁盘文件,镜像模板(后端盘)。根据后端盘创建镜像(创建不同的系统类型(centos/windows/ubuntu等))
5、网络
需要创建外部网络和内部网络
外网
内网需要在项目中创建
6、浮动IP
给云主机绑定浮动IP即可实现内网云主机分配了专用公网IP地址
资源池对应的是上面创建的wan网络里地址池
7、配额
通过配额限制,防止资源过度使用
修改默认值
修改完成会,已有的项目配额也会随之变化
8、创建实例(云主机)
一般是进入项目进行管理
概况里有配额的资源
查看已创建的网络
先创建内部网络
创建成功
创建实例
对实例可以的操作
控制台
small.img镜像的用户名root 密码redhat
存在的问题
占用大量的内存
mysql读写慢
dashboard退出后提示认证失败,查看keystone日志,数据库报错,无法登录
tail /var/log/keystone/keystone.log -n 30
解决方法(未测试)
(15条消息) Openstack DashBoard 无法正常登录_普通网友的博客-CSDN博客
(15条消息) mysql server has gone away_mysql server has gone away的解决方法_FR绘画教程的博客-CSDN博客