一、OpenStak简介
1.1、简介
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStackd开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。
1.2、各个组件说明
|
核心组件 |
功能说明 |
|
keystone组件 |
提供:所有组件和用户的身份验证服务 |
|
glance组件 |
提供:image镜像服务,如:iso安装光盘文件、磁盘镜像、系统快照 |
|
nova组件 |
提供:compute计算服务,通过控制节点来管理所有的计算节点 |
|
neutron组件 |
提供:network网络服务,通过创建一个虚拟的网络层,为所有计算节点提供网络通讯服务 |
|
dashboard 组件 |
提供:基于Web页面的管理控制平台 |
|
扩展组件 |
功能说明 |
|
cinder组件 |
提供:块存储服务,属于SAN存储区域网络,用于管理虚拟机的磁盘卷文件(创建、添加、扩容、快照、删除等等) |
|
swift组件 |
提供:对象存储服务,属于NAS网络附加存储,无需RAID技术,就可实现可伸缩、高可用的分布式文件系统存储服务 |
二、前期准备工作
2.1、准备3台虚拟机(1个控制节点、2个计算节点)
- 首先安装VMware WorkStations(最新版), - 新增虚拟机, - 镜像使用CentOS-Stream-8-x86_64-latest-dvd1.iso(下载地址<https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-dvd1.iso>) - 安装完成后克隆两台虚拟机(计算节点)。
2.2、虚拟机的性能要求:
- 内存大于等于8G - 硬盘200G - CPU至少2核,开启vt-x - 网卡2块,一张网卡用来连接互联网,另外一张网卡用来内部互联。
注意事项:


Kdump(kernel dump,内核备份),内存小于2G,则Kdump就不会生效。所以想生效,内存必须大于2G,当安装界面的Kdump不管勾不勾选,都会占用160M内存。
如果勾选了,系统每次启动时,内核会被读到160M内存中,如果系统崩溃,就可以还原内核。如果不勾选,当内核崩溃时,就无法恢复。
三、系统初始化配置
3.1、主机名配置
[root@controller ~]# hostnamectl set-hostname controller [root@computer1 ~]# hostnamectl set-hostname computer1 [root@computer2 ~]# hostnamectl set-hostname computer2
3.2、网络配置
控制节点:
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=eui64 NAME=ens160 UUID=127549ff-6b79-4276-8b3a-8488d1222de8 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.100.54 PREFIX=24 GATEWAY=192.168.100.1 DNS1=223.5.5.5 DNS2=23.6.6.6
计算节点1:
[root@computer1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=eui64 NAME=ens160 UUID=127549ff-6b79-4276-8b3a-8488d1222de8 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.100.55 PREFIX=24 GATEWAY=192.168.100.1 DNS1=223.5.5.5 DNS2=23.6.6.6
计算节点2:
[root@computer2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=eui64 NAME=ens160 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.100.56 PREFIX=24 GATEWAY=192.168.100.1 DNS1=223.5.5.5 DNS2=23.6.6.6
#重新加载配置文件
nmcli connection reload
#重启网卡
nmcli connection up ens160
同理在计算节点也使用相同命令,确保配置生效。
3.3、设置免密登录
#在controller节点上生成ssh key,将公钥复制给其他节点,实现免密登陆。 ssh-keygen 一路回车 #拷贝公钥到另外2个计算节点 ssh-copy-id -i /root/.ssh/id_rsa.pub computer1 ssh-copy-id -i /root/.ssh/id_rsa.pub computer2 #测试ssh免密链接是否正常 ssh computer1 ssh computer2
3.4、添加hosts文件主机记录
[root@controller ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.54 controller 192.168.100.55 computer1 192.168.100.56 computer2 #将以上控制节点的配置拷贝到两个计算节点对应的文件夹里。 scp /etc/hosts root@computer1:/etc scp /etc/hosts root@computer2:/etc
3.5、关闭所有节点防火墙和SeLinux
systemctl disable firewalld.service --now sed -i's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3.6、配置ntp时间服务器
#选择在控制节点上部署NTP时间服务器。 yum -y install chrony #配置开机自启 systemctl enable chronyd --now #修改配置文件,让控制节点成为NTP服务器。 cat /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # pool 2.centos.pool.ntp.org iburst(注释掉默认的NTP服务器) # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Enable hardware timestamping on all interfaces that support it. #hwtimestamp \* # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # Allow NTP client access from local network. allow 192.168.0.0/16(取消注释,网络地址以及端口号需要包含计算节点) # Serve time even if not synchronized to a time source. local stratum 10(取消注释) # Specify file containing keys for NTP authentication. keyfile /etc/chrony.keys # Get TAI-UTC offset and leap seconds from the system tz database. leapsectz right/UTC # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking #修改两个计算节点的chrony配置文件,配置相同。 vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst(注释掉) pool controller iburst(新增一条) #修改完成后重启服务 systemctl restart chronyd.service vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst(注释掉) pool controller iburst(新增一条) #修改完成后重启服务 systemctl restart chronyd.service
3.7、在所有节点上都开启openstack安装源
yum -y install centos-release-openstack-yoga yum config-manager --set-enabled powertools yum -y upgrade reboot yum -y install python3-openstackclient yum -y install openstack-selinux
++++++++++++++++++++++++++++++++++++++++++++关闭3台主机并拍摄快照+++++++++++++++++++++++++++++++++++++++++