本文主要介绍在专有云环境中,ECS物理机上实例磁盘配置文件缺失的修复方法。
方案总览
类别 | 内容 |
风险等级(方案执行的影响) | 高 |
操作方式 | 黑屏 |
操作复杂度 | 低 |
预估执行时长 | 120分钟 |
客户业务的影响 | 有 |
可监控性 | 不支持 |
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) | 临时 |
数据修订(变更是否涉及增删改操作) | 无 |
执行灰度策略 | 请向产品侧咨询,明确灰度策略 |
首次发布时间 | N/A |
预计完成时间 | N/A |
实例所在物理机上磁盘配置文件缺失本身属于异常现象,需要修复。
由于现场环境对应VM的conf文件缺失,从而在升级、扩容、排查问题等场景下若没有提前排查,在直接重启tdc服务后,running状态的实例所在物理机上的/guest/[$Instance_ID]/conf/
目录下存在.conf
磁盘配置文件缺失的情况。实例内部缺失磁盘对应的读写,则无法正常运行,从而导致业务异常,因此需要处理conf文件缺失的实例。
说明:[$Instance_ID]为实例ID。
mkdir -p /tmp/check_ecs_vm_conf/msg
说明:msg目录为固定的,必须与本文保持一致。
/tmp/check_ecs_vm_conf/
目录。说明:MD5值为b6862d87cb7f3da05de9d7651c67bde9
。
md5sum check_ecs_vm_conf.zip系统显示类似如下。
cd /tmp/check_ecs_vm_conf/
unzip check_ecs_vm_conf.zip
ll
命令,检查解压后的压缩文件,确认包含check_ecs_vm_conf.py
、command.py
、log.py
三个脚本文件,以及msg
的文件目录。search
命令在后端执行,这样即使窗口中断之后,进程还在后台运行。说明:脚本的输出结果在msg目录中。
/home/tops/bin/python check_ecs_vm_conf.py系统显示类似如下。
[2020-07-10 17:38:00,000] [ERROR] [check_ecs_vm_conf.py:95] all vm device check down, vm don't find device conf count [2], vm list is : ['/guest/i-tx905uqhaXXXXgbn4ii/conf/46125-21678.conf', '/guest/i-tx905XXXXXm1j9gbn4ii/conf/46125-21679.conf']系统显示类似如下。
/home/tops/bin/python check_ecs_vm_conf.py [$Hostname]
说明:[$Hostname]需要查询的物理机的主机名。系统显示类似如下。
/home/tops/bin/python check_ecs_vm_conf.py [$Hostname1],[$Hostname2],[$Hostname3],...
说明:多台物理机查询的时候,物理机与物理机之间用英文的逗号(,)隔开即可。系统显示类似如下。
每次执行脚本文件,都会生成一个日志文件,该文件记录的就是脚本的输出信息,可以针对输出的日志进行分析,查看是否存在缺失异常的conf文件。如存在异常信息,请联系阿里云技术支持协助处理。
说明:日志文件存放在
msg
目录中。
conf
文件所在的物理机。sudo virsh list --all|grep [$Instance_ID]
说明:[$Instance_ID]为实例ID。系统显示类似如下。
go2which [$Instance_ID]系统显示类似如下。
ll
命令查看实例对应的磁盘conf文件是否都存在。说明:磁盘文件所在目录为/guest/[$Instance_ID]/conf
,多个磁盘就存在多个conf
文件。以下示例中,实例实际有3个磁盘,但是以下目录中只有系统盘的磁盘文件,因此判定磁盘conf
文件缺失。
以下2种方法中,任何一种修复方式都需要重启实例,需要确认之后进行操作,请谨慎操作,修复期间实例需要暂时停止,业务也会中断。
go2hyapi restart_vm vm_name=[$Instance_ID]系统显示类似如下。
go2which [$Instance_ID]系统显示类似如下。
ll
命令确认缺失的磁盘文件重启实例后已生成。go2hyapi stop_vm vm_name=[$Instance_ID]系统显示类似如下。
go2which [$Instance_ID]系统显示类似如下。
go2hyapi recover_vm vm_name=[$Instance_ID] region_id=[$Region_ID]
说明:[$Region_ID]为实例所在的区域ID。系统显示类似如下。
go2which [$Instance_ID]系统显示类似如下。
登录OPS服务器,依次执行以下命令,确认环境中无异常信息输出。
cd /tmp/check_ecs_vm_conf
/home/tops/bin/python check_ecs_vm_conf.py
系统显示类似如下。
磁盘文件缺失本身属于异常现象,无需回滚。
在文档使用中是否遇到以下问题
更多建议
匿名提交