OpenStack项目是一个开源的云计算平台项目,是控制着计算、网络和存储三大资源的分布式系统。搭建这样的一个云平台系统,能够为咱们提供IaaS(基础设施即服务)模式的云服务。本文核心不在相关的理论,所以有关云计算和OpenStack的概念等相关总体介绍能够参考下面的三篇文章:linux
云计算浅谈正则表达式
OpenStack概念以及核心组件概述shell
OpenStack部署节点类型和架构centos
本文旨在给出实验环境下多节点一键部署OpenStack的详细实验流程,该部署为本地(使用yum源)部署的R版的OpenStack。下面笔者从本身的实验环境与所需资源、系统资源状况、部署节点规划、具体部署、部署总结过程四个方面进行简述、实践与总结。浏览器
win10宿主机、采用VMware15版本(能够自行下载,最好实验时使用该版本)上安装操做系统(Centos7.5);缓存
Centos7.5的镜像文件、R版本的OpenStack源;资源连接以下:安全
连接:https://pan.baidu.com/s/1hFENGyrRTz3lOLUAordTGg
提取码:mu5x服务器
系统资源状况主要是介绍一下笔者的宿主机硬件状况,主要考虑到OpenStack项目仍是很是占用资源的,以避免您在进行实验部署过程当中出现意料以外的故障,固然这里的系统资源状况只是笔者笔记本的状况,具体所需硬件资源仍是须要屡次实验的尝试才行。网络
笔者实验所使用硬件资源以下:架构
CPU:i7 9代(i7就足够了,主要看核心线程数);内存:32G(算是标配,能够将低一些最好不低于24G);硬盘:1TSSD固态(最好超过200G的可用磁盘空间,笔者在后面部署时给的是300G)主要的硬件资源就是这三者。
下面说明一下笔者的实验部署的节点规划,节点类型在上面给出和的连接文章中有所介绍,这里再也不赘述。
考虑到实验环境的硬件配置,不可能如生产环境通常诸多节点的部署,所以总体上规划为三个节点,一个控制节点,两个计算节点。仍是再次熟悉一下这个架构图吧:
资源有限,实验部署只能将网络部署在控制节点上,生产环境中可万不是这般部署哈!实验部署一方面是加深理论理解,另外一方面是方便熟悉一些部署流程与命令操做以及一些故障排查思路。
既然说到生产环境的部署,就大体举个例子吧:
假设部署一个具备300台服务器的OpenStack平台服务,大体上能够这样规划:
30个控制节点;30个网络节点;100个计算节点;其他的能够给存储;
说到存储,咱们知道OpenStack中有Cinder块存储以及Swift对象存储,在生产环境中通常会使用另一个大项目,CEPH分布式存储,通常咱们会结合该存储方式来部署OpenStack的存储节点,而且在生产环境中,CEPH是以高可用群集来确保存储数据的高可靠和高可用性的,有关CEPH的知识,感兴趣的朋友能够查阅一下。
下面说下具体的资源分配:
控制节点:处理器内核总数为2*2的搭配;内存为8G;划分2个磁盘分别:300G、1024G(以后用于ceph存储实验);采用双网卡,一个仅主机模式(eth)(ip规划为192.168.100.20),一个NAT模式(ip规划为20.0.0.20);
计算节点:两个计算节点的资源分配都同样,处理器内核总数为2*2的搭配;内存为8G;划分2个磁盘分别:300G、1024G;网卡都为一个仅主机模式(eth)(IP地址规划为192.168.100.21和192.168.100.22);
上图也给出了各个节点上所要安装的组件,不过笔者仍是考虑简化一些,方便你们进行实验,因此对一些组件进行了取舍,下面经过具体的部署流程来理解体会OpenStack的魅力。
笔者将一键部署R版本的OpenStack实验分为如下几个流程,通常在部署过程当中,出现故障或其余状况的几率仍是很是高的,会在文章末尾的总结中给出一些排障的思路,以供你们参考:
一、安装操做系统 二、系统环境配置 三、一键部署OpenStack
下面针对每一步进行步骤细分及演示,部署过程当中对于一些网络的配置能够自行定义网段IP地址等:
上文说到实验环境部署一个控制和两个计算节点。所以须要安装三台虚拟机。下面是具体的安装流程。
1.修改本地的VMnet8网卡
下面是操做顺序
下面是更改以后的结果:
2.新建虚拟机(这里暂时不开启虚拟机)
安装Linux系统Centos7的具体流程在笔者以前的文章中已有详细介绍,这里主要将一些不一样的地方经过下面的图示进行说明。参考连接:Centos7操做系统安装
控制节点的虚拟机设置以下图:
计算节点的虚拟机设置以下图(两个节点都同样):
3.上述流程设置完以后,进行开启配置安装虚拟机(最好一个一个安装,三个节点设置流程一致,举其中任意一个节点来讲明)
开启后以下图说明操做:
4.安装时只须要选择最小安装,而后按照下图规划磁盘
点击磁盘分配以后的对话框进行磁盘分配
点击Done以后出现以下对话框继续进行配置
上述未给出对应步骤的截图就和前面给出安装系统的连接内的步骤一致了,从该设置完以后,下面的操做就和正常安装系统一致了。最终就正常安装能够登陆便可,而后将之关闭(避免资源占用致使其余节点虚拟机安装失败,考虑到你们的硬件配置问题)。
以上就是咱们的第一个步骤的整个流程,可能看上去比较多,可是当你很是熟悉VMware上安装Linux操做系统的流程其实会发现十分简单,其中最关键的就是安装以前的那两条命令不要忘了。
当安装没有任何问题的时候,咱们能够逐一开启三台虚拟机(最好一个一个开启),开始第二步的操做;
这里先罗列一下该系统环境配置须要完成的主要操做步骤
一、配置各个节点的主机名、网卡,重启网络 二、关闭防火墙、核心防御、网络管理、而且设置为禁止开机自启 三、上传软件包——openstack-rocky压缩包(源),而且进行解压缩等设置 四、配置本地yum源文件 五、三个节点作免交互而且验证 六、配置时间同步
下面开始进行配置
一、配置各个节点的主机名、网卡,重启网络(这里先在本地配置了网络方便链接Xshell等远程链接工具,一方面尽量模拟生产环境,另外一方面方便代码演示)下面看一下网卡设置
控制节点配置:
[root@localhost ~]# hostnamectl set-hostname ct [root@localhost ~]# su [root@ct ~]# cd /etc/sysconfig/network-scripts/ #配置本地网卡eth0和nat网卡eth1 [root@ct network-scripts]# cat ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=6dc229bf-8b5b-4170-ac0d-6577b4084fc0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.100.20 NETMASK=255.255.255.0 GATEWAY=192.168.100.1 [root@ct network-scripts]# cat ifcfg-eth1 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth1 UUID=37e4a752-3820-4d15-89ab-6f3ad7037e84 DEVICE=eth1 ONBOOT=yes IPADDR=20.0.0.20 NETMASK=255.255.255.0 GATEWAY=20.0.0.2 #配置resolv.conf文件用于访问外网 [root@ct network-scripts]# cat /etc/resolv.conf nameserver 8.8.8.8 #重启网络,进行测试 [root@ct ~]# ping www.baidu.com PING www.wshifen.com (104.193.88.123) 56(84) bytes of data. 64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=1 ttl=128 time=182 ms 64 bytes from 104.193.88.123 (104.193.88.123): icmp_seq=2 ttl=128 time=182 ms ^C --- www.wshifen.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 182.853/182.863/182.874/0.427 ms
计算节点网卡配置:(除了ip地址不同其余都同样)
[root@localhost ~]# hostnamectl set-hostname c1 [root@localhost ~]# su [root@c1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=d8f1837b-ce71-4465-8d6f-97668c343c6a DEVICE=eth0 ONBOOT=yes IPADDR=192.168.100.21 NETMASK=255.255.255.0 #GATEWAY=192.168.100.1 #计算机节点2上配置ip地址为192.168.100.22
配置三个节点上的/etc/hosts文件:
cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.100.20 ct 192.168.100.21 c1 192.168.100.22 c2 #测试是否能够互相ping通 root@ct ~]# ping c1 PING c1 (192.168.100.21) 56(84) bytes of data. 64 bytes from c1 (192.168.100.21): icmp_seq=1 ttl=64 time=0.800 ms 64 bytes from c1 (192.168.100.21): icmp_seq=2 ttl=64 time=0.353 ms ^C --- c1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.353/0.576/0.800/0.224 ms [root@ct ~]# ping c2 PING c2 (192.168.100.22) 56(84) bytes of data. 64 bytes from c2 (192.168.100.22): icmp_seq=1 ttl=64 time=0.766 ms 64 bytes from c2 (192.168.100.22): icmp_seq=2 ttl=64 time=0.316 ms ^C --- c2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.316/0.541/0.766/0.225 ms [root@c1 ~]# ping c2 PING c2 (192.168.100.22) 56(84) bytes of data. 64 bytes from c2 (192.168.100.22): icmp_seq=1 ttl=64 time=1.25 ms 64 bytes from c2 (192.168.100.22): icmp_seq=2 ttl=64 time=1.05 ms 64 bytes from c2 (192.168.100.22): icmp_seq=3 ttl=64 time=0.231 ms ^C --- c2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 0.231/0.846/1.255/0.442 ms
二、关闭防火墙、核心防御、网络管理、而且设置为禁止开机自启(三个节点都须要进行下面命令的配置,这里实验环境中使用OpenStack以前尽可能对这些服务进行检查)
systemctl stop firewalld systemctl disable firewalld setenforce 0 vi /etc/sysconfig/selinux SELINUX=disabled systemctl stop NetworkManager systemctl disable NetworkManager
三、上传软件包——openstack-rocky压缩包(源),而且进行解压缩等设置
笔者使用的是xftp工具上传的三个节点都上传,上传以后进行解压到/opt目录下
以下所示
[root@ct ~]# ls anaconda-ks.cfg openstack_rocky.tar.gz [root@ct ~]# tar -zxf openstack_rocky.tar.gz -C /opt/ [root@ct ~]# cd /opt/ [root@ct opt]# ls openstack_rocky [root@ct opt]# du -h 2.4M ./openstack_rocky/repodata 306M ./openstack_rocky 306M .
四、配置本地yum源文件(注意将虚拟机镜像文件处于已链接状态,在虚拟机设置中查看,或者查看右下角的光驱图标是否有绿点显示,通常默认是链接状态)这里在控制节点上演示,其他节点上相同操做便可。
4.一、挂载系统镜像
[root@ct opt]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Mar 6 05:02:52 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=0d4b2a40-756a-4c83-a520-83289e8d50ca / xfs defaults 0 0 UUID=bd59f052-d9bc-47e8-a0fb-55b701b5dd28 /boot xfs defaults 0 0 UUID=8ad9f9e7-92db-4aa2-a93d-1fe93b63bd89 swap swap defaults 0 0 /dev/sr0 /mnt iso9660 defaults 0 0 [root@ct opt]# mount -a mount: /dev/sr0 is write-protected, mounting read-only [root@ct opt]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 291G 1.6G 290G 1% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 12M 3.8G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 134M 881M 14% /boot tmpfs tmpfs 781M 0 781M 0% /run/user/0 /dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt
4.二、yum源备份建立编写新的源文件
[root@ct opt]# cd /etc/yum.repos.d/ [root@ct yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo [root@ct yum.repos.d]# mkdir backup [root@ct yum.repos.d]# mv C* backup/ [root@ct yum.repos.d]# vi local.repo [root@ct yum.repos.d]# cat local.repo [openstack] name=openstack baseurl=file:///opt/openstack_rocky #该路径为解压软件包源的路径 gpgcheck=0 enabled=1 [centos] name=centos baseurl=file:///mnt gpgcheck=0 enabled=1
4.三、修改yum.conf文件,将keepcache置为1,表示保存缓存
[root@ct yum.repos.d]# head -10 /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 #只须要修改该参数 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 [root@ct yum.repos.d]# yum clean all #清空全部软件包 Loaded plugins: fastestmirror Cleaning repos: centos openstack Cleaning up everything Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos [root@ct yum.repos.d]# yum makecache #创建软件包本地缓存 Loaded plugins: fastestmirror Determining fastest mirrors centos | 3.6 kB 00:00:00 openstack | 2.9 kB 00:00:00 (1/7): centos/group_gz | 166 kB 00:00:00 (2/7): centos/filelists_db | 3.1 MB 00:00:01 (3/7): centos/primary_db | 3.1 MB 00:00:01 (4/7): centos/other_db | 1.3 MB 00:00:00 (5/7): openstack/primary_db | 505 kB 00:00:00 (6/7): openstack/filelists_db | 634 kB 00:00:00 (7/7): openstack/other_db | 270 kB 00:00:00 Metadata Cache Created
5.三个节点之间作免交互,而且进行验证
ssh-keygen -t rsa #一路回车便可,下面遇到交互是输入yes以及登陆的虚拟机的root的密码便可 ssh-copy-id ct ssh-copy-id c1 ssh-copy-id c2
这样为了保证明验的安全和验证以前的设置咱们先拍好快照而后从新启动虚拟机来验证这些配置(每一个节点上都要进行下面的验证,这里以控制节点为例)
[root@ct ~]# ls anaconda-ks.cfg openstack_rocky.tar.gz [root@ct ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@ct ~]# systemctl status NetworkManager ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:NetworkManager(8) [root@ct ~]# setenforce ? setenforce: SELinux is disabled #再次确认一下免交互是否成功 [root@ct ~]# ssh c1 Last login: Sun Mar 8 13:11:32 2020 from c2 [root@c1 ~]# exit logout Connection to c1 closed. [root@ct ~]# ssh c2 Last login: Sun Mar 8 13:14:18 2020 from gateway [root@c2 ~]#
六、配置时间同步
该步骤是很是关键的,尤为是在咱们的生产环境中,设想如果各个服务器之间的时间没法同步,那么针对许多服务和业务都是没法进行的,甚至会致使重大事故。
本次实验环境就同步阿里云的时钟服务器为例,以控制节点同步阿里云服务器,而两个计算节点经过ntpd服务同步控制节点时间。
控制节点配置:
[root@ct ~]# yum -y install ntpdate Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package ntpdate.x86_64 0:4.2.6p5-28.el7.centos will be installed --> Finished Dependency Resolution //...//省略部份内容 Installed: ntpdate.x86_64 0:4.2.6p5-28.el7.centos Complete! #同步阿里云时钟服务器 [root@ct ~]# ntpdate ntp.aliyun.com 8 Mar 05:20:32 ntpdate[9596]: adjust time server 203.107.6.88 offset 0.017557 sec [root@ct ~]# date Sun Mar 8 05:20:40 EDT 2020 [root@ct ~]# yum -y install ntp Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package ntp.x86_64 0:4.2.6p5-28.el7.centos will be installed --> Processing Dependency: libopts.so.25()(64bit) for package: ntp-4.2.6p5-28.el7.centos.x86_64 --> Running transaction check ---> Package autogen-libopts.x86_64 0:5.18-5.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================== Package Arch Version Repository Size ========================================================================================================================== Installing: ntp x86_64 4.2.6p5-28.el7.centos centos 549 k Installing for dependencies: autogen-libopts x86_64 5.18-5.el7 centos 66 k Transaction Summary ========================================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 615 k Installed size: 1.5 M Downloading packages: -------------------------------------------------------------------------------------------------------------------------- Total 121 MB/s | 615 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : autogen-libopts-5.18-5.el7.x86_64 1/2 Installing : ntp-4.2.6p5-28.el7.centos.x86_64 2/2 Verifying : autogen-libopts-5.18-5.el7.x86_64 1/2 Verifying : ntp-4.2.6p5-28.el7.centos.x86_64 2/2 Installed: ntp.x86_64 0:4.2.6p5-28.el7.centos Dependency Installed: autogen-libopts.x86_64 0:5.18-5.el7 Complete!
修改ntp主配置文件
保存文件后重启服务,关闭chronyd.service服务
[root@ct ~]# systemctl disable chronyd.service Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service. [root@ct ~]# systemctl restart ntpd [root@ct ~]# systemctl enable ntpd
两个计算节点上配置
[root@c1 ~]# yum -y install ntpdate Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package ntpdate.x86_64 0:4.2.6p5-28.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================== Package Arch Version Repository Size ========================================================================================================================== Installing: ntpdate x86_64 4.2.6p5-28.el7.centos centos 86 k Transaction Summary ========================================================================================================================== Install 1 Package Total download size: 86 k Installed size: 121 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : ntpdate-4.2.6p5-28.el7.centos.x86_64 1/1 Verifying : ntpdate-4.2.6p5-28.el7.centos.x86_64 1/1 Installed: ntpdate.x86_64 0:4.2.6p5-28.el7.centos Complete! [root@c1 ~]# ntpdate ct 8 Mar 05:36:26 ntpdate[9562]: step time server 192.168.100.20 offset -28798.160949 sec [root@c1 ~]# crontab -e #写入周期性计划任务后保存退出,例如:*/30 * * * * /usr/sbin/ntpdate ct >> /var/log/ntpdate.log no crontab for root - using an empty one crontab: installing new crontab
在控制节点进行操做
#安装openstack-packstack工具用于生成openstack应答文件(txt文本格式) [root@ct ~]# yum install -y openstack-packstack [root@ct ~]# packstack --gen-answer-file=openstack.txt [root@ct ~]# ls anaconda-ks.cfg openstack_rocky.tar.gz openstack.txt
重点在于如何修改:这里不具体说明,能够在阅读完该文章后,查询了解其余的配置含义和做用
下面给出哪些行须要更改的内容,细心修改
41行:y-n #SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中通常是不装,因此改n 50行:y-n #不安装该服务 97行:192.168.100.11,192.168.100.12 #计算节点ip地址 817 :physnet1 #FLAT网络这边要设置物理网卡名字 862 :physnet1:br-ex #这边要设置物理网卡的名字 873:br-ex:eth1 #这边br-ex:eth1是网络节点的nat网卡,到时候安装完毕以后IP地址会漂到这个上 1185:y-n #DEMO是OpenStack联网下载一个测试镜像,这边没联网。说以改为n
#还有一些网段须要修改以及密码这里使用sed正则表达式来全局修改 [root@ct ~]# sed -i -r 's/(.+_PW)=.+/\1=sf144069/' openstack.txt [root@ct ~]# sed -i -r 's/20.0.0.20/192.168.100.20/g' openstack.txt
这里须要将原先关闭的控制节点的网关开启以后,使用下面的命令进行一键部署安装
[root@ct ~]# packstack --answer-file=openstack.txt Welcome to the Packstack setup utility The installation log file is available at: /var/tmp/packstack/20200308-055746-HD3Zl3/openstack-setup.log Installing: Clean Up [ DONE ] Discovering ip protocol version [ DONE ] Setting up ssh keys [ DONE ] Preparing servers [ DONE ] Pre installing Puppet and discovering hosts' details [ DONE ] Preparing pre-install entries [ DONE ] Setting up CACERT [ DONE ] Preparing AMQP entries [ DONE ] Preparing MariaDB entries [ DONE ] Fixing Keystone LDAP config parameters to be undef if empty[ DONE ] Preparing Keystone entries [ DONE ] ...//省略部份内容
在各个节点终端(xshell终端在开一个链接控制节点的终端使用下面的命令查看日志信息)
tail -f /var/log/messages
出现下图所示状况时就表示目前没有问题,接下来就是耐心等待
出现下图则说明部署成功了
咱们可使用浏览器(Google)登陆仪表板验证一下能够参考下面文章的末尾介绍:
OpenStack入门——理论篇(二):OpenStack的节点类型和架构(含登陆的仪表板界面示例)
笔者在部署过程当中也遇到了一些意外错误和问题,可是基本上都解决了,这些大都是一些小问题,代码写错,某些内容更改错误等等。不过仍是给点建议和排障思路给你们:
首先,对于这些较大的实验项目,咱们须要先理清思路和部署顺序;
其次,安装过程当中,因为是实验过程,须要习惯性地进行备份(虚拟机上咱们能够拍摄快照),这也是一种存储方式哈。这样咱们能够在以后出现问题没法解决等状况时,能够经过这种快照机制回滚到当初部署成功的阶段的时间点。这样能够为咱们节省大量的时间;
接着就是排障,先看懂ERROR的含义,若是一眼看出问题所在能够直接修改;若是没有什么解决思路,就去检查本身的环境是否有问题,服务是否开启,该停的服务是否关闭等;若是环境没什么问题就去查看一下本身的配置文件是否有误,例如其中某些配置文件的相关参数是否修改正确等等;若是仍是没法解决就须要自行去查找资料,例如去百度,看看官方文档,看看前辈们或者以前的工程师是否遇到过相似的问题,是如何解决的。
具体的排障仍是须要时间经验的积累的,本文的主要目的是为了演示整个在本地部署多节点的R版本的OpenStack平台的过程,方便初学者进行实验尝试,理论部分笔者还在持续更新中,但愿读者能够继续关注阅读!谢谢!