版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
私有云基础架构与运维项目4部署OpenStack云平台多节点的基础环境使用单机部署OpenStack的方式虽然便捷,但是对于服务器的性能要求还是比较高的,而在实际生产环境中不会将所有服务部署到一台服务器上,因此企业级的部署方式还是以手动分布式部署为主。本项目将介绍OpenStack云平台多节点部署的逻辑架构,详细讲解云平台操作系统的安装过程及所需基础环境的配置,为后续项目的展开打下良好基础。1.知识目标(1)了解本地域名解析方法;(2)掌握Chrony时间同步服务、MariaDB数据库服务、RabbitMQ消息队列服务、Memcached缓存服务等的工作原理及其部署方式;(3)掌握etcd分布式键-值对存储系统的作用和部署方法;(4)掌握OpenStack云计算平台基础环境部署流程。2.技能目标(1)能够根据需求,合理设计云平台架构;(2)能够对Chrony时间同步服务、MariaDB数据库服务、RabbitMQ消息队列服务、Memcached缓存服务等服务进行正确部署;(3)能够完成OpenStack云计算平台基础环境部署工作。3.素质目标(1)具有学习新知识、掌握新技能得能力;(2)具备分析问题和解决问题的能力;(3)具有创新能力、创业思维的综合性能力。学习目标学习导图目录任务4.1项目需求分析任务4.2OpenStack云平台的部署需求与规划任务4.3OpenStack云平台双节点基础环境部署任务4.1项目需求分析通过项目2的学习,已经探索了OpenStack在单节点模式下云平台的部署。对于单节点部署模式所有组件都运行在同一台物理或虚拟机上,因此部署过程相对简单。单节点部署适合于测试、学习或小规模部署的场景。但对于大规模部署的场景,如生产环境,就需要部署多节点模式的云平台,通过将不同的组件部署在不同的节点上,可以实现高可用、高性能和高容错性。
将OpenStack不同的服务分布在多个服务器上,既能避免机器出现故障时对用户的工作造成的影响,也能避免网络服务受到攻击或者出现软件漏洞时,影响到服务的安全,从而降低了安全风险。多节点部署模式还具有良好的可扩展性,可以通过增加新的节点来扩展系统容量和性能,满足不断增长的应用需求。对于全球性应用或需要跨地域提供服务的情况,OpenStack的多节点配置可以实现跨地域分布。通过将节点部署在不同的地理位置,可以降低网络延迟,提升用户体验。OpenStack采用多节点配置的原因主要包括高可用性和实用性、性能和资源优化、资源可扩展性、安全隔离等方面。这些优势使得OpenStack能够成为构建高性能、高可用性和可扩展性云环境的理想选择。项目需求分析任务4.2OpenStack云平台的部署需求与规划
OpenStack是一个分布式系统,由不同组件共同支持整个云平台的运行,根据不同的需求,可以灵活地设计整个OpenStack架构,不同组件可以安装在不同的物理机上,甚至整个组件下的不同子服务也可以安装在不同的物理机上。一般来说,在OpenStack云平台多节点部署时,按照控制节点、计算节点、存储节点、网络节点来进行部署,不同节点具有不同功能,部署不同组件。4.2.1OpenStack云平台的部署需求4.2.1OpenStack云平台的部署需求
1.控制节点(ControllerNode):控制节点是OpenStack的中心节点,负责管理整个OpenStack环境的各个组件和服务。它通常运行以下核心组件:
Keystone:认证服务,提供用户认证和访问控制。
Nova:计算服务,负责虚拟机的创建、启动和管理。
Neutron:网络服务,管理私有网段与公有网段的通信,以及虚拟机网络之间的通信和防火墙配置。
Glance:镜像服务,提供虚拟机镜像的管理。
Placement:对系统资源的监控功能管理。
Horizon:Dashboard服务,提供用户友好的图形化管理界面。
2.计算节点(ComputeNode):计算节点是OpenStack的计算资源提供者,负责运行虚拟机实例。它主要功能包括:虚拟机管理:创建、启动、停止和销毁虚拟机实例。资源调度:根据需求动态分配和回收资源。性能监控:实时监控虚拟机性能,收集指标数据,为系统优化提供依据。4.2.1OpenStack云平台的部署需求
3.存储节点(StorageNode):存储节点负责提供持久化的存储服务,用于存储虚拟机的镜像、卷和对象等数据。它提供以下服务:块存储服务(Cinder):提供虚拟磁盘空间,适用于空间扩容场景。
对象存储服务(Swift):提供文件存储空间,适用于云磁盘或文件存储。
4.网络节点(NetworkNode):网络节点负责提供网络服务,包括虚拟机的网络连接和网络流量的路由等。它主要功能包括网络管理,负责管理和配置虚拟机的网络。4.2.1OpenStack云平台的部署需求
这几类节点是从功能上进行的逻辑划分,在实际部署时可以根据需求灵活配置。本项目采用2台虚拟机来搭建实验环境。4.2.2OpenStack云平台的部署规划
本项目中控制节点和计算节点分别部署在两台不同的虚拟机上。针对两台不同虚拟机的作用和功能,在创建该虚拟机时,要保证虚拟机的硬件配置满足OpenStack云平台的最小化逻辑架构。控制节点和计算节点所在的虚拟机的硬件要求如下。
1.控制节点(controller)硬件要求:
处理器:建议使用4核处理器,具体取决于工作负载和性能需求。
内存:至少8GB的内存,但更高内存可以提供更好的性能和稳定性。
硬盘:至少需要一块硬盘,容量建议为100GB或更高,用以存储操作系统、OpenStack组件和数据。
网卡:至少需要两块网卡,用于管理网络和业务网络的隔离。
2.计算节点(compute)硬件要求:
处理器:与控制节点相同,建议使用4核处理器。
内存:至少4GB的内存,但更高内存可以支持更多的虚拟机实例。
硬盘:需要至少一块硬盘,容量建议为100GB或更高,用以存储虚拟机镜像和临时数据。另一块硬盘(可选)可用于提高I/O性能和容错性。
网卡:同样需要至少两块网卡,以实现管理网络和业务网络的隔离。4.2.2OpenStack云平台的部署规划
本项目中,部署控制节点和计算节点的两台虚拟机硬件建议最低配置。4.2.3OpenStack云平台双机部署的准备工作
本项目搭建的是OpenStack两个节点的云平台,需要两台带双网卡的虚拟机。首先创建一台虚拟机作为控制节点,在控制节点虚拟机的基础上,可以使用VMwareWorkstation自带的克隆功能,克隆生成完全一样的计算节点虚拟机,然后再根据需求修改相应的配置即可。4.2.3OpenStack云平台双机部署的准备工作
1.创建控制节点虚拟机
(1)创建虚拟机时,虚拟机命名为controller,并选择一个大容量的磁盘存储。磁盘容量设置为100GB。4.2.3OpenStack云平台双机部署的准备工作
(2)在创建完成的controller虚拟机上,打开虚拟机设置。参照着controller节点的硬件配置情况,将内存调整为8GB,将处理器总数调整为4,并在【虚拟化引擎】下勾选【虚拟化IntelVT-x/EPT或AMD-V/RVI(V)】,开启虚拟化。
1.创建控制节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(3)添加系统镜像文件。在虚拟机设置界面,单击【CD/DVD(IDE)】,右侧的【设备状态】确保是选中状态,【连接】里选择【使用ISO镜像文件(M)】,从【浏览】中选择CentOS8系统所需的镜像文件。
1.创建控制节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(4)添加网卡并完成网络适配器的类型选择。依然在虚拟机设置界面,选择【网络适配器】,单击下方的【添加】,弹出【添加硬件向导】,在【硬件类型】里单击【网络适配器】,单击右下方【完成】,这样就完成了网卡的添加。单击第一个【网络适配器】,为了后续配置YUM仓库时可以从网络中下载所需的文件,在右侧显示的【网络连接】中选择【桥接模式】。第二个网络适配器的网络连接方式选择【NAT模式】。
1.创建控制节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(1)在VMwareWorkstation中创建了“controller”虚拟机作为控制节点后,在VMwareWorkstation主界面右侧列表栏中【我的计算机】下方的“controller”虚拟机上单击右键,在弹出的快捷菜单中依次选择【管理】>【克隆】选项。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(2)此时弹出【欢迎使用克隆虚拟机向导】窗口。单击【下一页】按钮,进入虚拟机的克隆操作。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(3)弹出【克隆源】窗口。选择“虚拟机中的当前状态”单选按钮,单击【下一页】按钮。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(4)弹出【克隆类型】窗口,选择“创建完整克隆”单选按钮,单击【下一页】按钮。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(5)弹出【新虚拟机名称】窗口,在【虚拟机名称】文本框中输入计算节点主机的名字“compute”;在【位置】文本框中填写新克隆的虚拟机文件的存储位置。完成上述操作后,单击【完成】按钮,虚拟机开始克隆,显示“正在克隆虚拟机”。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
(6)等待克隆完成。
2.克隆计算节点虚拟机4.2.3OpenStack云平台双机部署的准备工作
3.更改主机名
在Linux系统中,主机名被用来标识计算机在网络中的唯一身份。主机名通常由主机名和域名组成。主机名可以识别计算机的具体位置和身份,在进行网络通信时,可以使其他主机和服务能够找到并与该主机进行通信,确保网络通信的稳定性和效率。正确设置主机名有助于管理者对系统进行管理和监控,提高工作效率。修改控制节点主机名的命令如下所示:修改计算节点主机名的命令如下所示:[root@localhost~]#hostnamectlset-hostnamecontroller[root@localhost~]#bash[root@controller~]#[root@localhost~]#hostnamectlset-hostnamecompute[root@localhost~]#bash[root@compute~]#4.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
开启虚拟机之后,使用root用户登录到系统,需要对两个节点的网卡进行配置。在系统中,两张网卡分别是ens160和ens192。配置网卡的方式有多种,这里采用的是编辑网卡的配置文件的方式。使用vi或者vim命令打开配置文件ifcfg-ens160,该文件存储在/etc/sysconfig/network-scripts目录下,打开该网卡的配置文件,控制节点上操作的命令如下所示:[root@controller~]#vi/etc/sysconfig/network-scripts/ifcfg-ens1604.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
首先配置控制节点的网卡参数。将BOOTPROTO的值改为“static”,表示启动网卡的手动配置模式。IP地址配置为0,默认网关为,DNS服务器的IP地址配置为14(中国电信提供的免费DNS服务器的IP地址)。将ONBOOT的值改为“yes”,即配置网卡为开机自启。具体网卡配置文件内容如下所示:TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=ens160UUID=ea8c917d-9775-4982-a06d-e3ae8a9877d2DEVICE=ens160ONBOOT=yesIPADDR=0NETMASK=GATEWAY=DNS1=144.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
要使网卡配置文件中的信息生效,可以使用nmcli命令重新加载配置文件并重新启动网卡,命令如下所示:[root@controller~]#nmclicreload[root@controller~]#nmclicupens1604.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
通过查看IP地址,确保设置已经生效。4.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
计算节点的网卡配置过程与控制节点相同,需要修改ens160的网卡配置文件,命令如下所示:[root@compute~]#vi/etc/sysconfig/network-scripts/ifcfg-ens1604.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
计算节点主机IP地址配置为1。4.2.3OpenStack云平台双机部署的准备工作
4.设置主机IP地址
配置文件修改完成后需要重新加载、启动网卡、查看IP的一系列操作。4.2.3OpenStack云平台双机部署的准备工作
5.禁用防火墙与SELinux
防火墙是一种在内、外网之间构建一道相对隔绝的保护屏障,用来隔离非授权用户并过滤网络中有害的流量或数据包。在安装OpenStack之前应该将CentOS系统中自带的防火墙和SELinux安全系统关闭,避免防火墙设置的问题造成无法连接相关服务。使用的命令如下所示:#临时关闭防火墙[root@controller~]#systemctlstopfirewalld#永久禁用防火墙[root@controller~]#systemctldisablefirewalldRemoved/etc/systemd/system/multi-user.target.wants/firewalld.service.Removed/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.0#临时禁用SELINUX[root@controller~]#setenforce0[root@controller~]#getenforcePermisive
或者在SELinux的配置文件中将其关闭,此操作需在系统重启才能生效。[root@controller~]#vi/etc/selinux/config#将SELINUX的属性值改为disabledSELINUX=disabled#重启虚拟机此设置才能生效[root@controller~]#reboot
注意:此处计算节点同样需要关闭防火墙和SELinux,操作命令相同,此处不再一一赘述。4.2.3OpenStack云平台双机部署的准备工作
6.停用NetworkManager服务
CentOS8默认由NetworkManager负责管理网络,但是NetworkManager与OpenStack网络组件Neutron有冲突,需要将其关闭,改用传统的网络服务network来管理网络。执行以下命令来停用NetworkManager服务。[root@controller~]#systemctldisableNetworkManagerRemoved/etc/systemd/system/multi-user.target.wants/NetworkManager.service.Removed/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.Removed/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.[root@controller~]#systemctlstopNetworkManager
注意:此处计算节点同样需要关闭NetworkManager,操作命令相同,此处不再一一赘述。任务4.3OpenStack云平台双节点基础环境部署云计算管理员在系统管理时,往往将主机名和IP地址进行绑定。IP地址是一串数字,不便于人类记忆,而主机名则是一个易于理解和记忆的字符串,代表了一台特定的计算机或服务器。在管理大型网络时,跟踪和识别每个设备的IP地址可能会变得非常复杂,通过将主机名和IP地址绑定,管理员可以更容易地识别和管理网络中的设备,提高了网络管理效率。在Linux系统中,域名解析服务(如DNS)依赖于主机名和IP地址的绑定关系。当用户在浏览器中输入一个域名时,DNS服务器会查找该域名对应的主机名和IP地址绑定关系,并将用户重定向到相应的IP地址,因此绑定关系还可以用于日志记录和审计目的,以便在发生安全事件时追踪和识别攻击者。当然,通过主机名和IP地址的绑定,还可以实现访问控制列表(ACL)和防火墙规则,以限制对特定主机的访问,这有助于防止未经授权的访问和潜在的网络攻击。在许多情况下,网络服务(如Web服务器、邮件服务器等)需要绑定到特定的IP地址和端口上,通过将主机名和IP地址绑定,可以确保这些服务在网络中的唯一性和可达性。因此,在进行OpenStack云平台搭建之前,需要将主机名和IP地址绑定,本项目需对控制节点和计算节点都要进行操作。4.3.1本地域名解析修改控制节点的hosts文件。需要在文件的最后添加两行内容,分别是控制节点的IP地址0与控制节点主机名controller的映射,还有计算节点的IP地址1与计算节点主机名compute的映射。4.3.1本地域名解析[root@controller~]#vi/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60controller1compute在计算节点compute的hosts文件中同样需要添加此两行代码。[root@compute~]#vi/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60controller1compute
CentOS8的生命周期短,而为了后期能够正常更新CentOS,需要将镜像由mirror.CentOS.org更改为vault.CentOS.org。需要在/etc/yum.repos.d目录中,将所有以“CentOS-”开头的文件中“mirrorlist”内容都替换成“#mirrorlist”,也就是将其注释,不再使用;还要将这些文件中的“#baseurl=http://mirror.CentOS.org”替换成“baseurl=http://vault.CentOS.org”,这样就完成了镜像的更换。通过“yummakecache”命令将软件包信息缓存到本地。4.3.2更新系统YUM源[root@controller~]#cd/etc/yum.repos.d/[root@controlleryum.repos.d]#sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*[root@controlleryum.repos.d]#sed-i's|#baseurl=|baseurl=http://vault.CentOS.org|g'/etc/yum.repos.d/CentOS-*[root@controlleryum.repos.d]#yummakecache上述第2、3条命令中使用了“sed”命令对文件进行修改,配合“i”选项,直接修改了读取的“CentOS-*”文件的内容,而没有将文件内容输出到终端。命令还配上了“s/mirrorlist/#mirrorlist/g”动作,将搜索到的每个“mirrorlist”都替换成“#mirrorlist”,不再生效。注意:在计算节点也需要更新YUM源,配置过程与控制节点相同,这里不做过多赘述。
Chrony是一个用于Linux系统的高效、精准的时间同步工具,通常用于替代传统的NTP(NetworkTimeProtocol)服务。Chrony不仅在系统启动时提供快速的时间同步,还能在时钟偏离较大的情况下进行及时调整,在离线环境中仍然能够提供本地时间同步,高效地处理虚拟化环境中的时间同步。因此,Chrony在现代化的运维环境中,尤其是在高负载和虚拟化场景下,提供了更高的同步精度和更优的性能。4.3.3部署时间同步服务在企业生产环境中,时间同步对于许多应用程序和系统操作都至关重要。主要有以下几个重要场景:
(1)日志记录:确保所有设备上的日志条目都带有正确的时间戳,以便于事件的追踪和分析。
(2)集群系统环境:在集群系统环境中,时间同步确保了跨多个服务器或节点的事件可以正确地顺序化和关联。
(3)数据一致性:在分布式数据库和文件系统中,时间同步确保了事务和事件可以按照正确的顺序记录和处理。
(4)网络安全:许多安全协议依赖于时间戳来识别和防止攻击
(5)用户体验:在用户交互和应用程序中,时间同步有助于提供一致和预期的用户体验。本任务将实现控制节点和计算节点的时间同步的配置,控制节点作为时间同步系统服务器端,计算节点作为客户端。4.3.3部署时间同步服务
1.时间同步服务的作用(1)安装时间同步软件chrony。4.3.3部署时间同步服务
2.在控制节点controller中进行如下的操作:[root@controller~]#yum-yinstallchrony(2)修改配置文件/etc/chrony.conf。[root@controller~]#vi/etc/chrony.conf为了不以上层时间服务器时间为准,将配置文件中第3行注释掉。将第23行前面“#”去掉,使该行内容生效,并改成自己所在的网段,允许同网段上的设备与控制节点时间同步。使26行内容生效,以自己的时间为准。(3)重启服务,使配置文件中的修改内容生效,并设置服务开机自启。[root@controller~]#systemctlrestartchronyd[root@controller~]#systemctlenablechronyd(1)安装chrony软件包。4.3.3部署时间同步服务3.配置计算节点主机,使之与控制节点主机的时间同步[root@compute~]#yum-yinstallchrony(2)修改配置文件/etc/chrony.conf。[root@compute~]#vi/etc/chrony.conf将第3行的上层服务器改为控制节点controller。(3)重启服务,并设置开机自启。[root@compute~]#systemctlrestartchronyd[root@compute~]#systemctlenablechronyd(4)检查时间同步。[root@compute~]#chronycsourcesMSName/IPaddressStratumPollReachLastRxLastsample==============================================^*controller106171+4920ns[+186us]+/-266us从结果可以看到,时间同步服务器为“controller”,结果的左下方显示“*”表示连接成功,如果显示“?”,则表示连接时间同步服务器不成功。如果有不成功的情况,则应检查配置是否写错,并检查是否重启了服务。注意:所有配置文件的修改都需要重启服务器后才能生效。
OpenStack仓库主要为云服务或应用程序提供存储资源。它支持对象存储和块存储功能,满足用户不同的存储需求。对象存储(如Swift)允许用户存储和访问大量非结构化数据,如文件、图片和视频等,而块存储(如Cinder)则更适合存储结构化数据,如数据库和虚拟机磁盘。在OpenStack云平台中,仓库组件与其他组件(如计算组件Nova和网络组件Neutron)紧密协作,共同提供完整的云服务。例如,前面学习的当用户创建一个虚拟机时,计算组件会请求仓库组件分配相应的存储资源。同样地,网络组件也会与仓库组件配合,确保虚拟机之间的网络连接和数据传输。随着OpenStack版本的更新,新版本通常会引入许多新技术和特性,这些新技术和特性可能包括性能提升、安全性增强、新功能支持等,为了引入新技术与特性,OpenStack仓库要不定期的进行升级。除此之外,OpenStack仓库不定期的升级还可以保持与社区同步、提高稳定性和可靠性、确保兼容性与互操作性以及满足业务需求与未来发展。因此,在条件允许的情况下,建议定期对OpenStack仓库进行升级。当然,在升级过程中也需要注意备份数据、测试新版本以及制定详细的升级计划等事项,以确保升级的顺利进行。仓库升级的操作需要在控制节点和计算节点都执行。4.3.4更新OpenStack仓库4.3.4更新OpenStack仓库(1)首先需要安装OpenStack的“ussuri”版本的软件包,命令如下所示。[root@controller~]#yum-yinstallCentOS-release-openstack-ussuri(2)安装完成后,在存放系统YUM仓库配置文件的文件夹中,多了6个配置文件,文件名字是除“CentOS-Linux-”开头以外的6个文件,包括ussuri版本的配置文件CentOS-OpenStack-ussuri.repo和PowerTools仓库的配置文件CentOS-Linux-PowerTools.repo。[root@controller~]#ls/etc/yum.repos.dCentOS-Advanced-Virtualization.repoCentOS-Linux-Extras.repoCentOS-Messaging-rabbitmq.repoCentOS-Ceph-Nautilus.repoCentOS-Linux-FastTrack.repoCentOS-NFV-OpenvSwitch.repoCentOS-Linux-AppStream.repoCentOS-Linux-HighAvailability.repoCentOS-Linux-Media.repoCentOS-Storage-common.repoCentOS-OpenStack-ussuri.repoCentOS-Linux-BaseOS.repoCentOS-Linux-ContinuousRelease.repoCentOS-Linux-Plus.repoCentOS-Linux-Debuginfo.repoCentOS-Linux-PowerTools.repoCentOS-Linux-Devel.repoCentOS-Linux-Sources.repo4.3.4更新OpenStack仓库(3)PowerTools仓库会提供官方CentOS软件源中不可获得的软件包,这些软件包通常用于开发、测试或特定应用场景。默认情况下,PowerTools仓库是未启动状态,为了不影响后续软件的安装,需要将PowerTools仓库的配置文件“CentOS-Linux-PowerTools.repo”中的PowerTools仓库的状态改为启动。使用“yumconfig-manager--set-enabledpowertools”的命令可以在不进入文件的情况下修改参数,并在修改完成后查看了PowerTools配置文件的内容,其中“enabled=1”即为修改成功。[root@controller~]#yumconfig-manager--set-enabledpowertools[root@controller~]#cat/etc/yum.repos.d/CentOS-Linux-PowerTools.repo#CentOS-Linux-PowerTools.repo##The#mirrorlistsystemusestheconnectingIPaddressoftheclientandthe#updatestatusofeachmirrortopickcurrentmirrorsthataregeographically#closetotheclient.YoushouldusethisforCentOSupdatesunlessyouare#manuallypickingothermirrors.##Ifthe#mirrorlistdoesnotworkforyou,youcantrythecommentedout#baseurllineinstead.[powertools]name=CentOSLinux$releasever-PowerTools#mirrorlist=http://#mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infrabaseurl=http://vault.CentOS.org/$contentdir/$releasever/PowerTools/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOSofficial4.3.4更新OpenStack仓库(4)使用“yumupgrade”命令更新系统中所有软件包,如果出现错误提示。(5)因为CentOS官网提供的存放镜像的网站改成http://vault.CentOS.org,需要将安装“CentOS-release-openstack-ussuri”软件包后出现的六个配置文件里的连接地址进行更替。完成的命令如下所示:[root@controller~]#sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-{A*,C*,M*,N*,O*,S*}[root@controlleryum.repos.d]#sed-i's|#baseurl=|baseurl=http://vault.CentOS.org|g'/etc/yum.repos.d/CentOS-*(6)此时,再来执行更新命令,就可以顺利完成软件包的更新,并在更新命令结束后重新启动系统。[root@controller~]#yumupgrade-y[root@controller~]#reboot(7)在系统重新启动之后,还有两个软件需要进行安装,执行命令如下所示。[root@controller~]#yuminstallpython3-openstackclient-y[root@controller~]#yuminstallopenstack-selinux-y注意:在每一台虚拟机中都需要执行以上的操作,执行过程相同,此处不再赘述。4.3.5部署消息队列服务消息队列(MessageQueue,MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息发布者只需要把消息发布到消息队列中不用管对方有没有收到,消息使用者只管从消息队列中列出发送给自己的消息。OpenStack消息队列服务是一种分布式消息传递系统,用于在OpenStack云平台中实现组件之间的异步通信。它使用AMQP(高级消息队列协议)作为消息传递的协议。4.3.5部署消息队列服务
(1)组件通信:OpenStack由多个组件组成,如计算、网络和存储等。这些组件需要互相通信以实现协作。消息队列服务提供了一种可靠的机制,使得组件之间可以异步地发送和接收消息。
(2)异步任务处理:OpenStack中的某些操作可能需要较长的时间来完成,如创建虚拟机、卷或网络等。消息队列服务可以处理这些耗时的操作,使得用户可以立即返回,并在后台完成操作。
(3)事件通知:OpenStack中的各种事件(如虚拟机的状态变化、资源创建或删除等)可以通过消息队列服务进行通知。组件可以订阅这些事件,并在事件发生时作出相应的处理。
(4)水平扩展:OpenStack平台可以水平扩展,即通过增加更多的计算、存储和网络节点来提高性能和容量。消息队列服务可以帮助这些节点之间进行协调和通信,以实现水平扩展的目标。OpenStack消息队列服务提供了一种高效、可靠和弹性的通信机制,使得OpenStack平台的各个组件可以在分布式环境中进行协作和协调。它提供了更好的可扩展性、可靠性和灵活性,以满足复杂的云计算环境的需求。市面上有多种消息队列应用,如RabbitMQ、ZeroMQ、Qpid,其中RabbitMQ是流行的开源消息队列系统,为面向消息的中间件设计,用于在分布式系统中存储转发消息。1.OpenStack消息队列服务的主要用途4.3.5部署消息队列服务2.在OpenStack中通常将消息队列服务运行在控制节点主机上(1)安装RabbitMQ消息队列服务的软件包。[root@controller~]#yuminstallrabbitmq-server-y(2)启动RabbitMQ消息队列服务并设置开机自启。[root@controller~]#systemctlstartrabbitmq-server.service[root@controller~]#systemctlenablerabbitmq-server.service4.3.5部署消息队列服务2.在OpenStack中通常将消息队列服务运行在控制节点主机上(3)管理用户、密码及权限为了保证安全性,不能让用户随意在消息队列中存放或获取消息,需要对用户名和密码进行认证。给RabbitMQ添加一个用户并且设置密码,用户就可以使用消息队列服务。RabbitMQ用户的用户名和密码由rabbitmqctl命令进行管理。[root@controller~]#systemctlstartrabbitmq-server.service[root@controller~]#systemctlenablerabbitmq-server.service创建一个名为openstack的RabbitMQ用户,密码设置为000000,并为其设置权限(配置、读、写)。在RabbitMQ用户创建openstack成功之后,还需要对其设置使用队列的权限,对RabbitMQ所有资源拥有配置、写入、读取的权限。执行的命令如下所示。[root@controller~]#rabbitmqctlset_permissionsopenstack".*"".*"".*"4.3.5部署消息队列服务2.在OpenStack中通常将消息队列服务运行在控制节点主机上(4)查看用户及其权限信息使用“rabbitmqctllist_users”命令查看用户列表信息,“rabbitmqctllist_permissions”命令查看用户权限的情况。4.3.6部署数据库服务数据库是用于存储和处理数据的软件。目前常用的数据库软件包括Oracle、MySQL、SQLServer,其中MySQL因其开源、免费、轻量级的特点,成为众多用户的首选。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可,是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在OpenStack中,数据库也是一种可提供的服务类型,它的配置与使用与物理服务器上的数据库类似。OpenStack几乎所有核心组件组件都需要用到数据库,因此在部署OpenStack环境时需要安装数据库。4.3.6部署数据库服务(1)安装MariaDB数据库在控制节点进行安装,其中“mariadb-server”是MariaDB数据库的后台服务;“python2-PyMySQL”是实现openstack与数据库相连的软件模块。1.在控制节点上安装MariaDB[root@controller~]#yuminstallmariadbmariadb-serverpython2-PyMySQL(2)编辑数据库配置文件MariaDB数据库的配置文件是“/etc/f.d”目录下的所有后缀为“cnf”的文件。我们可以创建一个新的文件对MariaDB数据库进行配置,如下所示创建一个名为“f”的配置文件。[root@controller~]#yuminstallmariadbmariadb-serverpython2-PyMySQL[root@controller~]#ls/etc/f.dauth_ffenable_encryption.presetff[root@controller~]#vi/etc/f.d/f在f文件中,按照以下内容对数据库服务端进行设置。[mysqld]bind-address=0default-storage-engine=innodbinnodb_file_per_table=onmax_connections=4096collation-server=utf8_general_cicharacter-set-server=utf84.3.6部署数据库服务其中,“[mysqld]”表示设置的是数据库的服务端1.在控制节点上安装MariaDB参数功能说明bind-address
绑定数据库的IP地址,即控制节点IPdefault-storage-engine
默认存储引擎,MariaDB支持几十种存储引擎,其中innodb是比较常用的存储引擎innodb_file_per_table
innodb引擎的独立表空间,使每张数据表的数据单独存在一个文件中max_connections
最大连接数collation-server
数据库使用utf8编码字符的规则,不区分大小写character-set-server
客户端字符编码方式utf84.3.6部署数据库服务(3)启动数据库服务在控制节点启动数据库,使数据库的配置生效。如果数据库无法启动或者启动后数据库初始化有异常,可以检查配置文件中的参数是否有错。1.在控制节点上安装MariaDB[root@controller~]#systemctlstartmariadb.service[root@controller~]#systemctlenablemariadb.service(4)数据库初始化使用如下命令进行数据库初始化,命令如下所示。[root@controller~]#mysql_secure_installation4.3.6部署数据库服务1.在控制节点上安装MariaDB执行上述命令后,出现如下所示结果。[NOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDBSERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!InordertologintoMariaDBtosecureit,we'llneedthecurrentpasswordfortherootuser.Ifyou'vejustinstalledMariaDB,andyouhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.Entercurrentpasswordforroot(enterfornone):此时提示输入Mysql的管理员root密码,目前数据库没有设置密码,直接按Enter键即可。4.3.6部署数据库服务1.在控制节点上安装MariaDB接下来,是否需要给root设置密码,输入”y”之后按Enter键,接着输入新密码按Enter键,再次输入新密码按Enter键,保证两次密码输入相同,提示密码设置成功。SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]yNewpassword:Re-enternewpassword:Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!4.3.6部署数据库服务1.在控制节点上安装MariaDB接下来,提示是否要删除匿名用户。输入”y”之后按Enter键,如下所示,提示成功删除。Bydefault,aMariaDBinstallationhasananonymoususer,allowinganyonetologintoMariaDBwithouthavingtohaveauseraccountcreatedforthem.Thisisintendedonlyfortesting,andtomaketheinstallationgoabitsmoother.Youshouldremovethembeforemovingintoaproductionenvironment.Removeanonymoususers?[Y/n]y...Success!4.3.6部署数据库服务1.在控制节点上安装MariaDB提示是否不允许root用户远程登录,输入”y”之后按Enter键,表示不允许root用户远程登录,提示成功。Normally,rootshouldonlybeallowedtoconnectfrom'localhost'.Thisensuresthatsomeonecannotguessattherootpasswordfromthenetwork.Disallowrootloginremotely?[Y/n]y...Success!4.3.6部署数据库服务1.在控制节点上安装MariaDB提示是否删除测试数据库,输入”y”之后按Enter键,提示成功删除测试数据库。Bydefault,MariaDBcomeswithadatabasenamed'test'thatanyonecanaccess.Thisisalsointendedonlyfortesting,andshouldberemovedbeforemovingintoaproductionenvironment.Removetestdatabaseandaccesstoit?[Y/n]y-Droppingtestdatabase......Success!-Removingprivilegesontestdatabase......Success!4.3.6部署数据库服务1.在控制节点上安装MariaDB提示是否重新加载特权的表,输入“y”之后按Enter键。Reloadingtheprivilegetableswillensurethatallchangesmadesofarwilltakeeffectimmediately.Reloadprivilegetablesnow?[Y/n]y...Success!Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!至此,已经完成数据库的安装。4.3.7部署Memcached内存缓存服务
Memcache是一种内存缓存系统,它工作在应用程序和数据库之间,用于存储经常访问的数据,减少直接对数据库的访问,以此提高系统的性能和速度。当应用程序需要访问数据时,它首先会在Memcache中查找是否有对应的数据。如果找到了,就直接从内存中读取数据,避免了不必要的数据库查询。如果没有找到,再向数据库发出查询请求。在OpenStack中,Memcached常用作中间件缓存服务,主要用于缓存和加速OpenStack服务的交互,从而提升了整个云计算平台的性能和响应性。4.3.7部署Memcached内存缓存服务(1)缓存数据库查询结果,减少对数据库的访问压力。(2)缓存静态内容,如图片、CSS、JavaScript文件等,提高页面加载速度。(3)作为会话存储,存储用户会话信息。1.Memcached缓存的主要用途4.3.7部署Memcached内存缓存服务(1)安装内存缓存服务软件2.在控制节点安装和配置Memcached服务[root@controller~]#yuminstallmemcachedpython3-memcached-y上述代码安装了“memcached”和“python3-memcached”两个软件,其中“memcached“是内存缓存服务软件,“python3-memcached”是对该服务进行管理的接口程序软件。在控制节点,使用yum命令安装内存缓存的相关软件,命令如下所示。4.3.7部署Memcached内存缓存服务(2)配置内存缓存服务2.在控制节点安装和配置Memcached服务[root@controller~]#vi/etc/sysconfig/memcachedPORT="11211"USER="memcached"MAXCONN="1024"CACHESIZE="64"OPTIONS="-l,::1,controller"配置文件中“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年结构化数据优化实战指南:7天出稿、15天收录、30天见效的GEO交付新范式
- 2026年家居美学新趋势:环保墙纸墙布设计方案
- 确认2026年智能仓储系统升级供应商资质函(3篇)
- 数字化市场营销实践与应用手册
- History of Sexuality性科学的发展历史
- 客户服务记录核查函(3篇)
- 人形机器人与智能制造
- 河北省石家庄市藁城、新乐、晋州等七县联考2025-2026学年高一上学期11月期中考试地理试题
- 2026三年级诗词成长档案设计课件
- 关于客户反馈收集的商洽函3篇
- MOOC 探秘移动通信-重庆电子工程职业学院 中国大学慕课答案
- 三年级下语文(部编版)古诗默写
- 2022版20kV及以下配电网工程技术经济指标编制导则
- GB/T 23220.1-2023烟叶储存保管方法第1部分:原烟
- 高考英语高频词汇汇总清单(共1801个)
- 2014年高考作文(北京卷)“老规矩”作文公式全解
- T-GDWCA 0037-2018 高柔性多芯拖链控制电缆
- 农药销售技巧培训
- 团体心理治疗实践
- 肌电图科内讲座课件
- 校园规划课件
评论
0/150
提交评论