技术文档

随着我司的H3Cloud OS云计算产品在全国各地深受各行各业客户欢迎;售后服务工程师,渐渐面临产品维护的挑战。

因此本案例对我司H3Cloud OS大云产品售后维护涉及操作命令,做简单介绍;主要包含:H3Cloud OS常用命令以及Docker容器常用操作命令。

通过图文并茂的形式,以帮助读者轻松上手,掌握H3Cloud OS大云售后维护的基本操作。

一、H3Cloud OS常用维护命令介绍

目前H3Cloud OS安装部署以及维护主要使用root用户(也称作根用户,具有最高用户权限),本文操作命令均以根用户执行。

1,查看用户当前所在路径操作,执行命令:pwd

用户用CRT/SSH/XSHELL等工具首次登陆H3Cloud OS大云平台,默认路径为/root即跟用户的家目录(目录可以对应理解为文件夹,但是同时包含文件路径的含义),如上图所述。

2,切换目录路径操作,执行命令:cd  加目的路径

本例给出从/root目录切换到/var/log目录操作,执行命令:cd  /var/log

具体如下图所示:

3,查看某个目录占用磁盘空间情况,执行命令: du -sh  加对应目录

H3Cloud OS中一个点号“.”的含义为当前目录,比如查看当前目录占用磁盘空间,则可以通过执行“du –sh .”来实现,具体如下图:

与上图等同效果,还可以通过执行该命令实现: du -sh /var/log 具体如下图所示:

比较上两种查看目录占用磁盘空间的异同:实质为点号“.”和“/var/log”前者为相对路径,后者为绝对路径; du –sh .”为查看当前目录占用磁盘空间大小,而“du –sh /var/log”命令的含义是查看“/var/log”目录占用磁盘空间大小。

4,查看磁盘分区及磁盘空间使用情况,执行命令:df –h

在实际维护案例中,尤其是测试或演示环境,经常出现安装部署时磁盘规划不规范:分配安装H3Cloud OS大云平台的物理机或虚机的磁盘空间过小,比如经常遇到分配80G甚至是50G的磁盘空间;H3Cloud OS大云平台运行一段时间后出现磁盘空间使用率达100%情况,由于磁盘空间不足而导致Docker容器相关进程异常,出现页面无法访问等一系列问题。

在此提醒各位读者,安装部署H3Cloud OS大云平台,一定要阅读版本说明书,按规范规划磁盘空间,即使是演示或测试环境也不例外,在顾及户环境实际资源的同时,一定要考虑到后期的维护工作,和客户确认:测试演示环境会运行多久以及业务规模,以做好磁盘规划工作。

当遇到磁盘空间不足情况,请参考KMS案例《H3Cloud OS根分区划分问题排查文档》案例号:201610300002

5,删除目录或文件命令为rm,虽然该命令能清空文件以释放磁盘空间,但是该命令为高危操作,在此不做介绍,一般不推荐一线工程师操作该命令,除非在十分明确操作结果的情况。

6,修改root用户密码,执行命令:passwd root

为满足安全需求,避免弱密码隐患,完成安装部署后,及时修改root用户密码,并设置符合指定复杂度要求的新密码,具体如下图所示。

7,使用Docker命令查看H3Cloud OS大云平台使用容器进程的运行状态,执行命令:docker ps,具体如下图所示:

上图需要关注的信息包含:第一列为容器的UUID信息,第二列为容器的镜像名称,第四列为容器进程创建时间,第五列为容器运行状态显示已运行的时长;

另外上图信息各客户环境不同,以具体环境为准。

日常运维经常需要关注openstack相关的容器状态,运行命令:docker ps | grep openstack,执行结果如下图所示:

在本案例环境中,H3Cloud OS的控制器容器名称为“cloudos-openstack:E1136”,对应的UUID值为“83171fc867f0”,UUID为唯一值;H3Cloud OS的计算节点容器名称为“cloudos-openstack-compute:E1136”,对应的UUID值为“1f9a9969dd20”。UUID后续命令会使用,以进入容器。

8,进入容器操作,执行命令:docker exec –it 加容器UUID /bin/bash

此处以进入H3Cloud OS计算节点容器为例。

第一步先搜索到计算节点的UUID信息,具体如下图所示:

计算节点对应容器的UUID值为1f9a9969dd20,随后执行命令:docker exec –it 1f9a9969dd20 /bin/bash进入容器,执行结果如下图所示:

上图红色标出明显的改变,主机名发生变化,从cloudos5变化为compcasku996lx8rc-bep8a

9,查看H3Cloud OS主机名,执行命令:hostname

结合上一步进入Docker容器的命令来介绍hostname命令,进入容器前后的主机名变化:由cloudos5变化为compcasku996lx8rc-bep8a;具体如下图所示。

10,进入H3Cloud OS控制节点或计算节点容器后,查看openstack相关进程服务的状态,需要先执行加载环境变量,用于openstack内部组件间授权。执行命令:source /root/admin-openrc.sh

此处以在计算节点容器为例,具体如下图,该命令运行正常无任何回显输出。

11,在计算节点容器内查看nova进程状态,执行命令: nova service-list

需要提醒的是,执行nova service-list命令前必须执行source /root/admin-openrc.sh,在此给出两种情况对比说明。

第一情况,未运行source /root/admin-openrc.sh命令,此时执行nova service-list 会报错如下:

ERROR (CommandError): You must provide a username or user id via --os-username, --os-user-id, env[OS_USERNAME] or env[OS_USER_ID]

具体如下图所示:

遇到上述报错时,执行source /root/admin-openrc.sh即可解决问题,随后再输入nova service-list即可查看nova服务的状态信息,具体如下图所示:

执行结果如上图,反馈出nova的所有服务状态信息:服务Id,服务名称,服务所在主机名,计算可用域名称,服务运行状态,服务启动时间,服务终止运行的原因。

具体以Id59nova-compute为例:

1)对应的运行主机名为compcasku996lx8rchostname命令输出一致,但是需要注意的是:只显示出主机名的前一部分;

2)对应的计算可用域名称为test

3)对应的状态为“可用”,并处于“up”状态;

4)服务启动时间为:2016-12-03T09:21:39.856946

本例的Id9nova-compute服务因对应计算节点删除,已停止服务,显示状态为down。随后新加计算节点时,重新创建计算可用域test,而对应生成Id59nova-compute服务。

12,手动停止和启动nova服务操作,停止服务操作命令:systemctl  stop 加服务名称;同理启动服务执行命令:systemctl  start 加服务名称;

此处以Id值为59nova-compute为例,执行命令:systemctl  stop openstack-nova-compute.service手动将该服务停止,具体如下图:

执行命令后查看状态显示为down

现在再手动启动Id59nova-compute进程,执行命令:systemctl  start openstack-nova-compute.service