8.2. 验证容器化 overcloud
以下是检查容器化 overcloud 功能的一组步骤。
流程
查找 undercloud 访问详情:
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查裸机节点的状态:
(undercloud) $ openstack baremetal node list
(undercloud) $ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 所有节点均应具有有效的电源状态(
on)和维护模式,应为false。检查失败的 Systemd 服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查失败的容器化服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查与所有服务的 HAProxy 连接。获取
haproxy.stats服务的 Control Plane VIP 地址和身份验证详情:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以下 cURL 请求中使用这些详情:
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | cut -d, -f 1,2,18,37,57 | column -s, -t
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | cut -d, -f 1,2,18,37,57 | column -s, -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<PASSWORD> 和 <IP ADDRESS> 详情替换为haproxy.stats服务的实际详情。生成的列表显示每个节点上的 OpenStack Platform 服务及其连接状态。注意如果节点运行 Redis 服务,则只有一个节点为该服务显示
ON状态。这是因为 Redis 是一个主动 - 被动服务,它一次仅在一个节点上运行。检查 overcloud 数据库复制健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; done
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 RabbitMQ 集群健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; done
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Pacemaker 资源健康状况:
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查找:
-
所有集群节点
在线。 -
任何集群节点上都没有
停止资源。 -
没有
失败的pacemaker 操作。
-
所有集群节点
检查每个 overcloud 节点上的磁盘空间:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 overcloud Ceph Storage 集群健康状态。以下命令在 Controller 节点上运行
ceph工具来检查集群:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Ceph Storage OSD 是否有可用空间。以下命令在 Controller 节点上运行
ceph工具来检查可用空间:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查时钟是否在 overcloud 节点上同步
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查找 overcloud 访问详情:
(undercloud) $ source ~/overcloudrc
(undercloud) $ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 overcloud 网络服务:
(overcloud) $ openstack network agent list
(overcloud) $ openstack network agent listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理都应
处于活动状态,其状态应为UP。检查 overcloud 计算服务:
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理的状态都应
为启用状态,其状态应为up检查 overcloud 卷服务:
(overcloud) $ openstack volume service list
(overcloud) $ openstack volume service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理的状态都应
为启用状态,其状态应为。
相关信息
- 请参阅文章 "我如何验证我的 OpenStack 环境是通过红帽推荐的配置进行部署?"。本文提供有关如何检查您的 Red Hat OpenStack Platform 环境并对红帽的建议调整配置的一些信息。