当前位置:网站首页>金鱼哥RHCA回忆录:CL210描述OPENSTACK控制平面--识别overclound控制平台服务+章节实验
金鱼哥RHCA回忆录:CL210描述OPENSTACK控制平面--识别overclound控制平台服务+章节实验
2022-07-17 12:47:00 【华为云】
个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL
格言:努力不一定成功,但要想成功就必须努力支持我:可点赞、可收藏️、可留言
共享服务概述
有许多服务支持Red Hat OpenStack平台的大型组件。本节将回顾每一个的细节和用例。
MariaDB
MariaDB在OpenStack中用作一个通用SQL数据库,用于需要存储信息的任何组件。MariaDB Galera集群运行在控制器节点上,目前是高可用SQL数据库最流行的选择。
Redis
Redis是一个内存中的键值数据存储,它是用来替代MongoDB的。它支持发布者/订阅者模型,并可以存储几种类型的数据结构,如字符串、列表、集合、排序集合和散列。将所有数据保存在内存中可以提高性能,但Redis也可以将数据保存到磁盘在一个安全的时期。Redis是为性能而不是安全而设计的,所以应该只在受控环境中使用。
Memcached
Memcached为临时数据提供了内存中的缓存,减少了对数据源的访问次数。它使用哈希来确保对象在其实例中相对均匀地分布。实例的丢失只会导致对象的一部分丢失。OpenStack服务自动从它的实例列表中删除丢失的Memcached实例。
Pacemaker
Pacemaker是一种成熟的集群解决方案,为运行在控制器上的OpenStack服务提供了高可用性。集群服务以主动/被动的方式操作。容器化的服务也被支持为Pacemaker资源包。
CEPH MON和MDS
Ceph存储集群需要一个监视服务,Ceph MON守护进程提供了这个功能。它运行在每个控制器节点上,并形成一个Paxos兼职议会集群,它提供Ceph集群配置信息的可靠存储。为了管理Ceph文件系统命令空间并支持CephFS, Ceph Metadata Server (MDS)也运行在控制器节点上。
NOVNC和SPICE
OpenStack包括并支持两个协议,用于提供远程虚拟控制台访问,虚拟网络计算机(VNC)和用于独立计算环境的简单协议(SPICE)。缺省的VNC是一种稳定、成熟的协议,使用noVNC开源客户端在OpenStack中实现。noVNC由一个JavaScript库和一个使用HTML5和WebSockets在桌面和移动浏览器上运行的应用程序组成。
管理员可以选择使用SPICE代替VNC。SPICE是红帽支持的开放源码项目,旨在提供比现有VNC客户端更高级的特性。尽管SPICE优于VNC,但许多SPICE- html5浏览器插件并不支持这些增强特性。要使用SPICE增强功能,如多显示器、USB设备直通、音频和3D qraphics,建议使用独立的SPICE客户端从私有管理网络访问OpenStack实例。
基于浏览器的客户机使用WebSocket代理,或者是nova-novncproxy (VNC)或者是nova-spicehtml5proxy (SPICE)服务,来将远程控制台连接从公共网络连接到OpenStack管理网络。这两个协议都使用nova-consoleauth共享服务来验证客户机控制台访问请求。
使用VNC访问实例控制台这个教室环境使用默认的VNC协议。VNC控制台访问过程和组件在下面的部分和文本中描述。

每个计算节点运行一个vncserver进程,在一个或多个端口上侦听内部API网络,从5900开始,并根据该计算节点上部署的实例数量增加。每个控制器节点运行一个novncproxy进程,在同一个内部API网络的6080端口侦听。其余的服务属于具有控制器和计算节点上的组件的计算服务(Nova)。
要访问控制台,在 仪表板项目/计算/实例 屏幕上单击实例的名称,以到达实例的详细信息屏幕。单击Console子选项卡启动VNC控制台连接请求。下面的列表与前面的图形相匹配,描述了构建特定于实例的URL所产生的交互。每个已命名组件后面用括号括起其位置(节点名、网络名、端口号):
用于访问实例控制台的VNC进程流
一个客户端浏览器(工作站,外部),通过NoVNC插件连接到nova-api(控制节点,内部APl,端口8774),请求打开一个控制台给一个特定的在运行的服务器实例。OpenStack仪表盘连接使用haproxy(控制节点,外部,端口80)。使用CLI调用non-dashboardbrowser应用程序,该过程遵循相同的连接路径。
Nova-api将get_vnc_console请求传递给nova-compute (计算节点,内部API, AMQP)。
nova-compute将get_vnc_console请求传递给libvirt (compute)以定位VM的属性。
libvirt从VM的UUID生成一个令牌,并将该令牌返回给nova-compute(计算节点,内部API,AMQP)(控制节点,内部API,AMQP)
nova-compute将生成的令牌和connect_info对象返回给nova-api(控制节点、内部API、AMQP)
nova-api将一个authorize_console请求传递给nova-consoleauth (compute, internal API, AMQP),它使用令牌作为索引缓存connect_info对象,以便将来发生实际连接请求时使用
nova-api还将一个nova-novncproxy URL和特定于实例的令牌返回给浏览器(工作站、外部)。
注意: 图2.5底部的URL。当鼠标悬停在蓝色消息区域中的可单击链接上时,该URL位于仪表板屏幕的底部,包含用于请求服务器实例演示的令牌和实例ID的内联参数。

图2.5:构建的nova-novncproxy实例特定的URL
计算服务之前已经获得了实例的连接信息,并将其缓存到控制台授权服务中。传递给浏览器的URL不是目标实例控制台的直接地址,而是nova-novncproxy地址,它有助于反向代理允许目标实例初始化控制台屏幕刷新到用户的浏览器。下面的列表描述了在点击URL时完成反向代理VNC连接的前一个图形的其余交互:
浏览器(工作站,外部)连接到URL,由仪表板的haproxy代理(控制节点,外部,端口6080)到达nova-novncproxy(控制节点,内部APl,端口6080)。
novncproxy从URL解析令牌和实例ID,并将其传递给nova-consoleauth (控制节点,内部API, AMQP)。
使用这个令牌,nova-consoleauth从缓存中检索connect_info对象,并将其返回给nova-novncproxy(控制节点,内部API)
novncproxy在为请求的VM指定的端口上直接连接到vncserver(计算节点,内部API, 5900+),并创建一个反向代理配置。
nova-novncproxy通过仪表板haproxy发送控制台图形回用户的浏览器(工作站,外部)。
管理OVERCLOUD的启动和关闭
正常运行的OpenStack云需要在云下节点和活动云上的控制平面服务之间进行持续的通信和协调。一旦云上(overcloud)被正确部署并投入服务,它就有望永久运行。为了维护或升级,可能会暂时禁用单个节点,但不会关闭整个overcloud,除非出现一些意外或危急情况。
无论如何,OpenStack管理员应该能够正确地关闭和启动一个overcloud。了解关键服务的依赖顺序可以增强对控制平面服务和基础架构的理解。一个overcloud可以使用高可用性(HA)控制器配置,将存储分布在Ceph服务器和超融合节点上,或者使用定制的可组合角色,每个角色都会影响必要的命令序列。下面的叙述以这个教室的非ha架构为例。
**重要:**这里描述的过程是一个教育概述。它的结构只是为了在这个课程环境中执行优雅的关闭。生产中的OpenStack安装,过程必须针对特定的overcloud集群定制。
**警告:**正确地关闭一个overcloud集群需要时间。时间限制限制了学生在每次课程会话中干净地关闭和启动OpenStack集群的能力。相反,本课程使用更快但不优雅的技术,解释在课程介绍。课堂捷径在课程介绍中不应该被认为是可接受的生产环境。
正确关闭Red Hat OpenStack
红帽OpenStack平台是一个云基础设施,旨在永久运行。除特殊情况外,云下和云上不能完全关闭。控制节点安装采用高可用性设计,计算节点充足。存储节点被设计用于可扩展的冗余和复制。单个节点可以临时禁用或重新引导以进行维护,而不会影响OpenStack云的其余部分的安全操作。
仍然可能出现需要完全关闭本地OpenStack集群的情况。以下过程按照推荐的顺序进行描述,以确保工作负载数据被安全存储,服务和数据库被干净地停止,从而避免可能的服务或数据损坏。
在关闭overcloud之前,必须首先停止所有项目工作负载。停止(而不是终止)overcloud中所有计算节点上运行的实例。要列出在计算节点上运行的所有实例,使用以下命令:

使用显示的实例uuid来停止每个实例。在生产中,许多应用程序都有要在实例上或从该应用程序的控制台接口运行的关闭过程,如这里所示关闭服务器实例可能是不希望的。

当实例停止时,继续关闭overcloud计算节点。关闭计算节点将停止与存储节点的连接。

依次登录到每个计算节点并关机:

谨慎:在课堂环境中,controller0是Ceph管理节点。要正确关闭Ceph,请在登录到ceph0之前将Ceph 标记从controller0设置为关闭,然后返回到controllero停止pacemaker集群。首先停止pacemaker集群将正确地禁用Ceph servers的管理控制。
设置noout、norecover、norebalance、nobackfill、nodown和pause标志。

登录到每个Ceph节点并关闭它:

需要停止其余的OpenStack服务,以确保系统和数据的完整性。在每个控制节点上,运行以下命令并等待集群停止:

在每个控制器节点上,关闭它们,直到所有操作完成。

overcloud现已关闭。要关闭完整的Red Hat OpenStack,还需要关闭undercloud系统。如果关闭了undercloud,重新启动将需要使用classroom-environment-specific的指令来启动director系统,然后才能重新启动overcloud。

在生产环境中,完整的OpenStack集群现在已经关闭。其他补充的非openstack系统可能也需要关闭电源。
正确启动Red Hat OpenStack
红帽OpenStack平台中的大多数服务被设计为启动和等待它们的依赖项,即使节点和服务的启动顺序不正常。但是,按照推荐的顺序启动节点将尽可能减少竞争条件和启动延迟。
在启动overcloud之前,必须运行undercloud。当undercloud可用时,登录到director系统。验证nova-compute服务已启动。

检查所有节点的电源状态。如果尚未启动ceph0节点,则首先启动该节点。

如果尚未启动controller0节点,则启动该节点,然后登录并启动集群。

在controller0上,清除noout、norecover、norebalance、nobackfill、nodown和pause标志,以允许Ceph存储服务器再次处理正常的恢复任务。

当集群恢复联机时,如果overcloud计算节点尚未启,则在其上运行。

启动之前关闭的任何所需的项目服务器实例。overcloud现在已经完全启动。
课本练习
MariaDB数据库列表。
停止和启动集群资源。
验证Redis的功能。
验证Memcached的功能。
从命令行连接到实例控制台。
[[email protected] ~]$ lab controlplane-services setup Setting up workstation for lab exercise work: • Verifying project: finance.................................. SUCCESS • Creating user env file: developer1-finance-rc............... SUCCESS • Creating keypair: example-keypair........................... SUCCESS . Creating flavor: default.................................... SUCCESS . Creating image: rhel7....................................... SUCCESS . Creating internal network: finance-network1................. SUCCESS . Creating subnet: finance-subnet1............................ SUCCESS . Creating external network: provider-datacentre.............. SUCCESS . Creating router: finance-router1............................ SUCCESS . Creating security group: default............................ SUCCESS . Checking floating ip availability: 1........................ SUCCESS . Creating instance: finance-server3.......................... SUCCESS . Adding fip to instance: finance-server3..................... SUCCESS1. 从工作站,使用SSH连接到controller0。使用sudo -i命令成为根用户。
[[email protected] ~]$ ssh controller0[[email protected] ~]$ sudo -i[[email protected] ~]#2. 检查Ceph监视器服务的状态。请注意被调用的细节。
[[email protected] ~]# systemctl status [email protected] -l -n 0● [email protected] - Ceph Monitor Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-10-17 01:47:23 UTC; 11h ago Process: 7732 ExecStartPre=/usr/bin/docker rm ceph-mon-%i (code=exited, status=1/FAILURE) Main PID: 7773 (docker-current) CGroup: /system.slice/system-ceph\x2dmon.slice/[email protected] └─7773 /usr/bin/docker-current run --rm --name ceph-mon-controller0 --net=host --memory=1g --cpu-quota=100000 -v /var/lib/ceph:/var/lib/ceph:z -v /etc/ceph:/etc/ceph:z -v /var/run/ceph:/var/run/ceph:z -v /etc/localtime:/etc/localtime:ro --net=host -e IP_VERSION=4 -e MON_IP=172.24.3.1 -e CLUSTER=ceph -e FSID=fe8e3db0-d6c3-11e8-a76d-52540001fac8 -e CEPH_PUBLIC_NETWORK=172.24.3.0/24 -e CEPH_DAEMON=MON 172.25.249.200:8787/rhceph/rhceph-3-rhel7:latest3. 检查Ceph元数据服务器服务的状态。请注意被调用的细节。
[[email protected] ~]# systemctl status [email protected] -l -n 0● [email protected] - Ceph MDS Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-10-17 01:47:24 UTC; 11h ago Process: 7787 ExecStartPre=/usr/bin/docker rm ceph-mds-controller0 (code=exited, status=1/FAILURE) Process: 7731 ExecStartPre=/usr/bin/docker stop ceph-mds-controller0 (code=exited, status=1/FAILURE) Main PID: 7809 (docker-current) CGroup: /system.slice/system-ceph\x2dmds.slice/[email protected] └─7809 /usr/bin/docker-current run --rm --net=host --memory=4g --cpu-quota=100000 -v /var/lib/ceph:/var/lib/ceph:z -v /etc/ceph:/etc/ceph:z -v /var/run/ceph:/var/run/ceph:z -v /etc/localtime:/etc/localtime:ro -e CLUSTER=ceph -e CEPH_DAEMON=MDS -e MDS_NAME=controller0 --name=ceph-mds-controller0 172.25.249.200:8787/rhceph/rhceph-3-rhel7:latest4.列出MariaDB数据库,查看哪些组件在关系数据库中存储数据。
4.1. 在galera-bundle-docker-0容器内执行mysql -uroot -e “show databases;” 命令。
[[email protected] ~]# docker exec -t galera-bundle-docker-0 mysql -u root -e "show databases;"+--------------------+| Database |+--------------------+| aodh || cinder || glance || gnocchi || heat || information_schema || keystone || manila || mysql || nova || nova_api || nova_cell0 || nova_placement || octavia || ovs_neutron || panko || performance_schema |+--------------------+4.2.除了在Galera容器内执行命令之外,还可以从外部查询MariaDB。找到MariaDB root用户的密码。
[[email protected] ~]# grep password /var/lib/config-data/puppet-generated/mysql/root/.my.cnf password="dgMgg8QfNM"password="dgMgg8QfNM"4.3 确定MariaDB正在监听的接口
[[email protected] ~]# netstat -lntup | grep 3306tcp 0 0 172.24.1.1:3306 0.0.0.0:* LISTEN 21501/mysqld tcp 0 0 172.24.1.50:3306 0.0.0.0:* LISTEN 20149/haproxy4.4 连接到MariaDB并列出数据库。任何一个接口都可以工作,HAProxy将连接通过MariaDB。
[[email protected] ~]# mysql -uroot -p'dgMgg8QfNM' -h172.24.1.50 Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 42753Server version: 10.1.20-MariaDB MariaDB ServerCopyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| aodh || cinder || glance || gnocchi || heat || information_schema || keystone || manila || mysql || nova || nova_api || nova_cell0 || nova_placement || octavia || ovs_neutron || panko || performance_schema |+--------------------+17 rows in set (0.01 sec)5. 查询Redis以确保它是可用的。
5.1 找到Redis密码。
[[email protected] ~]# docker exec -t redis-bundle-docker-0 grep ^requirepass /etc/redis.confrequirepass wuTuATnYuMrzJQGj8KxBb6ZAW5.2 确定Redis正在监听的接口。
[[email protected] ~]# netstat -lntup | grep redistcp 0 0 172.24.1.1:6379 0.0.0.0:* LISTEN 20718/redis-server5.3.使用redis-cli命令连接到Redis。使用AUTH命令和前面检索到的密码进行身份验证。
[[email protected] ~]# redis-cli -h 172.24.1.1172.24.1.1:6379> AUTH wuTuATnYuMrzJQGj8KxBb6ZAWOK 172.24.1.1:6379>5.4 使用keys命令列出所有键。注意,你的结果可能会有所不同。确定gnocchi-config密钥的类型。使用HGETALL命令获取键的所有散列值。退出Redis CLI。
172.24.1.1:6379> KEYS * 1) "gnocchi-config" 2) "_tooz_beats:b72e63fc-5ddc-431e-acd7-9194b5b8a1d9" 3) "_tooz_group:compute-computehci0.overcloud.example.com" 4) "_tooz_beats:controller0.0.2192bc52-2128-4ea5-a600-b23cc129ba5b" 5) "_tooz_beats:12110a1e-a1d0-4267-9c54-93b37eb7d666" 6) "_tooz_beats:9d43efef-c661-40a7-b7a2-75f40fe32000" 7) "_tooz_group:compute-compute1.overcloud.example.com" 8) "_tooz_beats:dccd4c89-79fd-4063-a719-f3be6d6def1a" 9) "_tooz_group:gnocchi-processing"10) "_tooz_group:central-global"11) "_tooz_beats:de9d1846-ea3b-458a-8f49-f2003231f131"12) "_tooz_group:compute-compute0.overcloud.example.com"13) "_tooz_group:alarm_evaluator"14) "_tooz_groups"15) "_tooz_beats:controller0.0.8abb0c5f-870a-4dee-b232-94f2c1671ad4"172.24.1.1:6379> TYPE gnocchi-confighash172.24.1.1:6379> HGETALL gnocchi-config1) "sacks"2) "128"6. 检查memcached。
6.1 确定Memcached正在监听的接口。
[[email protected] ~]# netstat -lntup | grep memcachetcp 0 0 172.24.1.1:11211 0.0.0.0:* LISTEN 6662/memcached6.2. 在memcached容器内执行memcached-tool命令。默认情况下,这会显示slab class的类统计信息。
[[email protected] ~]# docker exec -t memcached memcached-tool 172.24.1.1 # Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM 4 192B 778s 1 1 yes 0 0 0 5 240B 39432s 1 6 yes 0 0 0 6 304B 117s 1 1 yes 0 0 0 7 384B 0s 1 0 yes 0 0 0 22 10.8K 39432s 1 3 yes 0 0 0 23 13.6K 117s 1 4 yes 0 0 0 39 482.0K 39175s 1 1 yes 0 0 0上面有两个slab类。注意,你的结果可能会有所不同。我们可以看到大小,年龄和其他相关信息。
6.3 使用stats选项再次执行memcached-tool。
[[email protected] ~]# docker exec -t memcached memcached-tool 172.24.1.1 stats#172.24.1.1:11211 Field Value accepting_conns 1 auth_cmds 0 auth_errors 0 bytes 476042 bytes_read 8410477 bytes_written 85532516 cas_badval 0 cas_hits 0 cas_misses 0 cmd_flush 0 cmd_get 7943 cmd_set 1156 cmd_touch 0 conn_yields 0 connection_structures 10 crawler_items_checked 0 crawler_reclaimed 0 curr_connections 8 curr_items 15 decr_hits 0 decr_misses 0 delete_hits 2 delete_misses 2 evicted_unfetched 0 evictions 0 expired_unfetched 306 get_expired 411 get_flushed 0 get_hits 7358 get_misses 585 hash_bytes 524288 hash_is_expanding 0 hash_power_level 16 incr_hits 0 incr_misses 0 libevent 2.0.21-stable limit_maxbytes 4100980736 listen_disabled_num 0 log_watcher_sent 0 log_watcher_skipped 0 log_worker_dropped 0 log_worker_written 0 lrutail_reflocked 0 malloc_fails 0 pid 7 pointer_size 64 reclaimed 428 reserved_fds 10 rusage_system 4.679432 rusage_user 5.372454 threads 2 time 1602941900time_in_listen_disabled_us 0 total_connections 58 total_items 1156 touch_hits 0 touch_misses 0 uptime 42679 version 1.4.39这里有几条信息:
curr_items 的值应该与 slab 类输出中的count列的总数相匹配。
cmd_set 和cmd_get 值表示缓存比率。cmd_get 值应该更高,否则您的存储项可能过期太快。
get_misses 的值表示某项不存在的频率。
7. 使用pcs命令管理pacemaker资源。
7.1 使用pcs resource show命令检查所有pacemaker资源的状态。
[[email protected] ~]# pcs resource show Docker container: rabbitmq-bundle [172.25.249.200:8787/rhosp13/openstack-rabbitmq:pcmklatest] rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): Started controller0 Docker container: galera-bundle [172.25.249.200:8787/rhosp13/openstack-mariadb:pcmklatest] galera-bundle-0 (ocf::heartbeat:galera): Master controller0 Docker container: redis-bundle [172.25.249.200:8787/rhosp13/openstack-redis:pcmklatest] redis-bundle-0 (ocf::heartbeat:redis): Master controller0 ip-172.25.249.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.25.250.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.1.51 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.1.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.3.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.4.50 (ocf::heartbeat:IPaddr2): Started controller0 Docker container: haproxy-bundle [172.25.249.200:8787/rhosp13/openstack-haproxy:pcmklatest] haproxy-bundle-docker-0 (ocf::heartbeat:docker): Started controller0 Docker container: ovn-dbs-bundle [172.25.249.200:8787/rhosp13/openstack-ovn-northd:latest] ovn-dbs-bundle-0 (ocf::ovn:ovndb-servers): Master controller0 Docker container: openstack-cinder-volume [172.25.249.200:8787/rhosp13/openstack-cinder-volume:pcmklatest] openstack-cinder-volume-docker-0 (ocf::heartbeat:docker): Started controller0 Docker container: openstack-manila-share [172.25.249.200:8787/rhosp13/openstack-manila-share:pcmklatest] openstack-manila-share-docker-0 (ocf::heartbeat:docker): Started controller07.2 禁用openstack-manila-share资源。再次执行pcs resource show确认。
[[email protected] ~]# pcs resource disable openstack-manila-share[[email protected] ~]# pcs resource show Docker container: rabbitmq-bundle [172.25.249.200:8787/rhosp13/openstack-rabbitmq:pcmklatest] rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): Started controller0 Docker container: galera-bundle [172.25.249.200:8787/rhosp13/openstack-mariadb:pcmklatest] galera-bundle-0 (ocf::heartbeat:galera): Master controller0 Docker container: redis-bundle [172.25.249.200:8787/rhosp13/openstack-redis:pcmklatest] redis-bundle-0 (ocf::heartbeat:redis): Master controller0 ip-172.25.249.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.25.250.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.1.51 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.1.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.3.50 (ocf::heartbeat:IPaddr2): Started controller0 ip-172.24.4.50 (ocf::heartbeat:IPaddr2): Started controller0 Docker container: haproxy-bundle [172.25.249.200:8787/rhosp13/openstack-haproxy:pcmklatest] haproxy-bundle-docker-0 (ocf::heartbeat:docker): Started controller0 Docker container: ovn-dbs-bundle [172.25.249.200:8787/rhosp13/openstack-ovn-northd:latest] ovn-dbs-bundle-0 (ocf::ovn:ovndb-servers): Master controller0 Docker container: openstack-cinder-volume [172.25.249.200:8787/rhosp13/openstack-cinder-volume:pcmklatest] openstack-cinder-volume-docker-0 (ocf::heartbeat:docker): Started controller0 Docker container: openstack-manila-share [172.25.249.200:8787/rhosp13/openstack-manila-share:pcmklatest] openstack-manila-share-docker-0 (ocf::heartbeat:docker): Stopped (disabled)7.3 启用openstack-manila-share资源。执行pc resource show openstack-manila-share命令来查看资源的详细信息。
[[email protected] ~]# pcs resource enable openstack-manila-share[[email protected] ~]# pcs resource show openstack-manila-share Bundle: openstack-manila-share Docker: image=172.25.249.200:8787/rhosp13/openstack-manila-share:pcmklatest network=host options="--ipc=host --privileged=true --user=root --log-driver=journald -e KOLLA_CONFIG_STRATEGY=COPY_ALWAYS" replicas=1 run-command="/bin/bash /usr/local/bin/kolla_start" Storage Mapping: options=ro source-dir=/var/lib/kolla/config_files/manila_share.json target-dir=/var/lib/kolla/config_files/config.json (manila-share-cfg-files) options=ro source-dir=/var/lib/config-data/puppet-generated/manila/ target-dir=/var/lib/kolla/config_files/src (manila-share-cfg-data) options=ro source-dir=/etc/hosts target-dir=/etc/hosts (manila-share-hosts) options=ro source-dir=/etc/localtime target-dir=/etc/localtime (manila-share-localtime) options=rw source-dir=/dev target-dir=/dev (manila-share-dev) options=rw source-dir=/run target-dir=/run (manila-share-run) options=rw source-dir=/sys target-dir=/sys (manila-share-sys) options=ro source-dir=/lib/modules target-dir=/lib/modules (manila-share-lib-modules) options=rw source-dir=/var/lib/manila target-dir=/var/lib/manila (manila-share-var-lib-manila) options=ro source-dir=/etc/pki/ca-trust/extracted target-dir=/etc/pki/ca-trust/extracted (manila-share-pki-extracted) options=ro source-dir=/etc/pki/tls/certs/ca-bundle.crt target-dir=/etc/pki/tls/certs/ca-bundle.crt (manila-share-pki-ca-bundle-crt) options=ro source-dir=/etc/pki/tls/certs/ca-bundle.trust.crt target-dir=/etc/pki/tls/certs/ca-bundle.trust.crt (manila-share-pki-ca-bundle-trust-crt) options=ro source-dir=/etc/pki/tls/cert.pem target-dir=/etc/pki/tls/cert.pem (manila-share-pki-cert) options=rw source-dir=/var/log/containers/manila target-dir=/var/log/manila (manila-share-var-log) options=ro source-dir=/etc/ceph target-dir=/etc/ceph (manila-share-ceph-cfg-dir)8. 连接到实例的控制台。
8.1 在finance项目中为developer1获取环境文件。获取finance-server3实例的控制台URL。
[[email protected] ~(developer1-finance)]$ openstack console url show -c url -f value finance-server3http://172.25.250.50:6080/vnc_auto.html?token=604145b1-aa48-4dd5-902c-7aefef9cb258注意控制台URL中的端口值为6080
8.2 登录到controller0,然后成为root用户。显示正在端口上监听的进程6080.
[[email protected] ~]# ss -lntup | grep 6080tcp LISTEN 0 128 172.25.250.50:6080 *:* users:(("haproxy",pid=20149,fd=31))tcp LISTEN 0 128 172.24.1.50:6080 *:* users:(("haproxy",pid=20149,fd=30))tcp LISTEN 0 100 172.24.1.1:6080 *:* users:(("nova-novncproxy",pid=4147,fd=4))请注意,nova-novncproxy是我们要连接的服务。它由外部网络上的HAProxy前端,允许用户连接到管理网络上的实例控制台。
8.3 连接到URL以验证服务正在工作。

清除实验
[[email protected] ~]$ lab controlplane-services cleanup章节实验
更改容器化服务的配置。
验证使用Memcached进行令牌缓存。
[[email protected] ~]$ lab controlplane-review setup- 确定memcached get_hits参数的当前增长率。
- 为controller0上的ldentity服务启用令牌缓存。使用下表中的设置来配置/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf

- 使用openstack命令测试memcached get_hits参数的值是否急剧增加。
1. 确定memcached get_hits参数的当前增长率。
1.1从工作站,登录到controllero,并更改为根用户。
[[email protected] ~]$ ssh controller0Last login: Sat Oct 17 13:06:30 2020 from 172.25.250.254[[email protected] ~]$ sudo -i[[email protected] ~]#1.2 使用watch命令监视get_hits参数。
[[email protected] ~]# watch -n 5 "memcached-tool 172.24.1.1 stats | grep -A 2 get_hits"Every 5.0s: memcached-tool 172.24.1.1 stats | grep -A 2 get_hits Sat Oct 17 14:09:38 2020 get_hits 7761 get_misses 628 hash_bytes 524288注意,这个比率的变化相当缓慢。
2.为controller0上的ldentity服务启用令牌缓存。使用下表中的设置来配置 /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf。
2.1 在工作站上打开一个新的终端,使用SSH连接到controller0,然后成为根用户。
[[email protected] ~]$ ssh controller0Last login: Sat Oct 17 13:06:30 2020 from 172.25.250.254[[email protected] ~]$ sudo -i[[email protected] ~]#2.2 使用crudini修改相关选项。
[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf cache enabled true[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf cache backend dogpile.cache.memcached[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf cache backend_argument url:172.24.1.1:11211[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf catalog caching false[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf domain_config caching false[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf federation caching false[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf revoke caching false[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf role caching false[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token caching true[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token cache_on_issue true[[email protected] ~]# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf identity caching false2.3 重新启动keystone容器以实现更改。
[[email protected] ~]# docker restart keystonekeystone[[email protected] ~]#3. 使用openstack命令测试memcached get_hits参数的值是否急剧增加
3.1 在第一个终端中,验证get_hits的当前值。
Every 5.0s: memcached-tool 172.24.1.1 stats | grep -A 2 get_hits Sat Oct 17 14:20:56 2020 get_hits 7867 get_misses 636 hash_bytes 5242883.2 在第二个终端中,在生产项目中加载operator1环境文件。执行几个openstack命令。
[[email protected] ]$ source operator1-production-rc[[email protected] ~(operator1-production)]$ openstack image list -f json[[email protected] ~(operator1-production)]$ openstack flavor list -f json[[email protected] ~(operator1-production)]$ openstack network list -f json[[email protected] ~(operator1-production)]$ openstack subnet list -f json3.3 在第一个终端中,重新检查get_hits的值。
Every 5.0s: memcached-tool 172.24.1.1 stats | grep -A 2 get_hits Sat Oct 17 14:22:59 2020 get_hits 7993 get_misses 1019 hash_bytes 524288实验评分
[[email protected] ~]$ lab controlplane-review grade Grading the student's work on workstation: . Checking Identity service configuration: controller0........ PASSOverall lab grade.............................................. PASS清除实验
[[email protected] ~]$ lab controlplane-review cleanup总结
APl端点可以通过使用服务目录来发现。网络对端点进行分类,以避免敏感信息的暴露。
所有红帽OpenStack平台组件都使用AMQP-compliant 信息系统相互通信。RabbitMQ是默认的,但是也可以使用其他消息传递后端。组件使用在消息传递系统之上实现的RPC进行通信。Oslo消息传递库将进程间通信从AMQP中抽象出来,因此开发人员不需要理解它。
RabbitMQ有一个跟踪特性,允许管理员查看通过消息传递系统传递的消息。跟踪会增加开销,所以应该只在需要时启用。
有许多支持主要组件的服务。它们允许组件在关系或非关系数据库中存储数据,在内存中执行缓存以提高性能,并允许用户连接到实例控制台。
RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第二章 描述OPENSTACK控制平面–识别overclound控制平台服务+章节实验 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注️️️ 【金鱼哥】️️️,我将会给你带来巨大的【收获与惊喜】!

边栏推荐
- R language ggplot2 visualization: use the gghistogram function of ggpubr package to visualize the grouping histogram, and use the palette parameter to customize the bar border color of the grouping hi
- IP SAN拥有独立的文件系统,应用服务器通过网络共享协议访问到IP SAN后,可以对文件系统中的文件进行读写操作
- 王者荣耀商城异地多活架构设计
- VScode+Unity3D的配置
- idea展示服务端口--service
- 欧拉角,轴角,四元数与旋转矩阵详解
- 【Makefile】关于makefile使用上的一些备忘
- C language structure to realize simple address book
- [Acwing]第 60 场周赛 B- 4495. 数组操作
- The new energy track has high risks, so please pay attention to safety
猜你喜欢

LVI-SAM:激光-IMU-相机紧耦合建图

架构实战营|模块7
![[PostgreSQL] PostgreSQL 15 optimizes distinct](/img/18/5aaae76c1c269960defc7db8a9e63f.png)
[PostgreSQL] PostgreSQL 15 optimizes distinct

【PostgreSQL 】PostgreSQL 15对distinct的优化
![Effectively understand FreeSQL wheredynamicfilter and deeply understand the original design intention [.net orm]](/img/cb/76200539c59bb865e60e5ea1121feb.png)
Effectively understand FreeSQL wheredynamicfilter and deeply understand the original design intention [.net orm]

How to solve the problem of cross domain access by Google browser

c# treeView 树形结构递归处理(企业集团型层次树形展示)

从“被动”到“主动”,ZETA技术助力“RFID2.0”升级该如何实现?

开发第一个Flink应用

On the structural types of C language
随机推荐
Stream流
【CSP-J 2021】总结
看一看这丑恶嘴脸 | MathWorks Account Unavailable - Technical Issue
Koa2 connects to MySQL database to realize the operation of adding, deleting, changing and querying
欧拉角,轴角,四元数与旋转矩阵详解
高效理解 FreeSql WhereDynamicFilter,深入了解设计初衷[.NET ORM]
[Acwing] 第 60 场周赛 C-AcWing 4496. 吃水果
一个简单的websocket例子
R language uses the KAP function of epidisplay package to calculate the proportion of calculation consistency of paired contingency tables and the value of kappa statistics, and uses xtabs function to
SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
Secondary vocational network security - (2022 network security NC batch connection script) free script oh~~~
【Makefile】关于makefile使用上的一些备忘
机器学习模型的评估方法
HCIA 静态基础实验 7.8
NAT技术及NAT ALG
VScode+Unity3D的配置
R language ggplot2 visualization: use the gghistogram function of ggpubr package to visualize the grouping histogram, and use the palette parameter to customize the bar border color of the grouping hi
从“被动”到“主动”,ZETA技术助力“RFID2.0”升级该如何实现?
On the structural types of C language
mysql不能启动了?相关组件缺失?系统升级?组件不匹配?开始重装mysql