CVM (Cloud Virtual Machine) 是运行在云上的虚拟机.云上环境使其能够自由迁移,具备了规避绝大多数硬件故障的能力.但是由于各种各样的原因,有时候也难免出现软件故障导致无法使用.本文将对常见的 CVM 软件故障进行分析,并介绍快速恢复的办法.
CVM故障时通常已经无法正常进入操作系统,此时需要在救援模式下启动另外一个 OS来修复当前系统下的问题.其基本步骤为:进入救援模式;挂载故障 CVM磁盘;排查并修复问题;退出救援模式.其基本流程如下图所示:
进入救援模式可以通过登录腾讯云控制台,找到故障的CVM 实例,在菜单:更多->运维与检测->进入救援模式.点击后 CVM 将进入救援模式[1].使用完毕记得退出救援模式.
进入救援模式后,依次执行如下命令:
首先创建目录:
mkdir -p /mnt/vm1
其次挂载系统盘:
mount /dev/vda1 /mnt/vm1
依次挂载原文件系统的一部分子目录
mount -o bind /dev /mnt/vm1/dev
mount -o bind /dev/pts /mnt/vm1/dev/pts
mount -o bind /proc /mnt/vm1/proc
mount -o bind /run /mnt/vm1/run
mount -o bind /sys /mnt/vm1/sys
通过 chroot 命令用来在指定的根目录下运行指
chroot /mnt/vm1 /bin/bash
然后就可以开始修复故障 CVM 的问题了.
客户反馈CVM异常宕机,重启也无法恢复.进入救援模式后分析系统日志可以看到是audit 将系统关闭了,日志如下显示:
再进一步,我们可以看到整个系统盘已经满了,特别是日志文件占用特别大.
处理方法就是将旧的日志文件删除,退出救援模式后,重启就可以恢复了.
带有本地盘的 CVM,例如:IT型号的机器,裸金属机器,以及某些 GPU 机型,若所在母机发生故障换盘了,或者迁移到一个新的母机上,就会发生 CVM 中的配置信息与磁盘信息不一致的情况.若又遇到配置参数设置不当,则重启后会遇到CVM 无法启动的情况.这种情况下,需要进入到救援模式修改 CVM 的/etc/fstab 配置文件.下图显示 fstab 中的配置信息,注意换盘后磁盘的 UUID 可能会变化.
需要注意的是,当使用盘符时,例如这里配置文件中的vda,其盘符与识别的顺序有关.若发生拔盘,插盘操作,盘符也有可能发生变化,出现挂载磁盘失败,从而导致 CVM 无法启动.在这种情况下,建议使用磁盘的UUID.
不恰当地修改启动项也会导致 CVM无法启动.救援模式登录后,通过分析操作记录,会为发现问题找到一些线索.例如这里我们通过查看命令记录,发现启动项被修改过.重建启动项后 CVM 恢复正常.
救援模式进入后发现无法挂载系统盘,此时怀疑分区表被损坏.运行 TestDisk 工具检测并修复后系统正常.
用户因为安装软件导致系统库文件被更新,重启后CVM无法进入的情况也非常普遍.这种情况下,可以通过查询软件安装的记录确认都有哪些库被替换,然后通过对比原始镜像来恢复这些库.若无法恢复,则建议客户备份出数据后重装系统.备份数据的操作可以在救援模式下进行.
1) 如何减少 CVM 故障发生?
CVM 启动故障通常有两大来源:一是fstab 配置信息的变化;另外一个是CVM 内操作导致的问题.针对第一种问题,由于 CVM 系统盘通常是云盘而且不会变化的.特别要注意的是数据盘的配置信息.建议在fstab 配置文件中在数据盘的配置加上nofail参数[2],这样就不会因为数据盘信息不一致导致无法启动.
针对第二种情况,需要注意的是时刻注意创建快照备份.CVM 可以设置定时创建快照,并保留多份.此外在做高风险操作前,记得创建快照.这样当发现CVM异常时可以选择某个正常时间点的快照迅速回滚恢复.“道路千万条,安全第一条”,创建快照无疑是最重要的手段.
2) 不同操作系统如何进入救援模式?
腾讯云控制台提供的救援模式镜像当前只有 CentOS. CVM 使用不同的Linux,例如 CentOS, Ubuntu, TencentOS, Debian 等都可以使用该镜像.但是目前还不支持 Window 的救援模式.若客户CVM 使用的Windows 操作系统发生故障,可以提交工单给腾讯云后台工程师协助解决.
3) 何时使用救援模式或者单用户模式?
腾讯云的有些产品,例如裸金属,目前尚不支持救援模式.这种情况下可以进入单用户模式[3]解决问题.
[1]进入救援模式详细说明
https://cloud.tencent.com/document/product/213/66678
[2]云硬盘nofail 挂载方式说明
https://cloud.tencent.com/document/product/362/53951
[3]进入单用户模式详细说明
https://cloud.tencent.com/document/product/362/2353
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。