前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVM 常见故障恢复

CVM 常见故障恢复

原创
作者头像
dinghailong
发布2024-02-08 12:01:25
2160
发布2024-02-08 12:01:25

1 背景

CVM (Cloud Virtual Machine) 是运行在云上的虚拟机.云上环境使其能够自由迁移,具备了规避绝大多数硬件故障的能力.但是由于各种各样的原因,有时候也难免出现软件故障导致无法使用.本文将对常见的 CVM 软件故障进行分析,并介绍快速恢复的办法.

2 基本原理

2.1 基本操作流程

CVM故障时通常已经无法正常进入操作系统,此时需要在救援模式下启动另外一个 OS来修复当前系统下的问题.其基本步骤为:进入救援模式;挂载故障 CVM磁盘;排查并修复问题;退出救援模式.其基本流程如下图所示:

基本操作流程
基本操作流程

2.2 操作步骤说明

进入救援模式可以通过登录腾讯云控制台,找到故障的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 的问题了.

3 典型情况分析

3.1 磁盘空间满

客户反馈CVM异常宕机,重启也无法恢复.进入救援模式后分析系统日志可以看到是audit 将系统关闭了,日志如下显示:

再进一步,我们可以看到整个系统盘已经满了,特别是日志文件占用特别大.

处理方法就是将旧的日志文件删除,退出救援模式后,重启就可以恢复了.

3.2 磁盘信息变化

带有本地盘的 CVM,例如:IT型号的机器,裸金属机器,以及某些 GPU 机型,若所在母机发生故障换盘了,或者迁移到一个新的母机上,就会发生 CVM 中的配置信息与磁盘信息不一致的情况.若又遇到配置参数设置不当,则重启后会遇到CVM 无法启动的情况.这种情况下,需要进入到救援模式修改 CVM 的/etc/fstab 配置文件.下图显示 fstab 中的配置信息,注意换盘后磁盘的 UUID 可能会变化.

需要注意的是,当使用盘符时,例如这里配置文件中的vda,其盘符与识别的顺序有关.若发生拔盘,插盘操作,盘符也有可能发生变化,出现挂载磁盘失败,从而导致 CVM 无法启动.在这种情况下,建议使用磁盘的UUID.

3.3 启动项被修改

不恰当地修改启动项也会导致 CVM无法启动.救援模式登录后,通过分析操作记录,会为发现问题找到一些线索.例如这里我们通过查看命令记录,发现启动项被修改过.重建启动项后 CVM 恢复正常.

3.4 分区表被修改

救援模式进入后发现无法挂载系统盘,此时怀疑分区表被损坏.运行 TestDisk 工具检测并修复后系统正常.

3.5 库文件损坏

用户因为安装软件导致系统库文件被更新,重启后CVM无法进入的情况也非常普遍.这种情况下,可以通过查询软件安装的记录确认都有哪些库被替换,然后通过对比原始镜像来恢复这些库.若无法恢复,则建议客户备份出数据后重装系统.备份数据的操作可以在救援模式下进行.

4 问题讨论

1) 如何减少 CVM 故障发生?

CVM 启动故障通常有两大来源:一是fstab 配置信息的变化;另外一个是CVM 内操作导致的问题.针对第一种问题,由于 CVM 系统盘通常是云盘而且不会变化的.特别要注意的是数据盘的配置信息.建议在fstab 配置文件中在数据盘的配置加上nofail参数[2],这样就不会因为数据盘信息不一致导致无法启动.

针对第二种情况,需要注意的是时刻注意创建快照备份.CVM 可以设置定时创建快照,并保留多份.此外在做高风险操作前,记得创建快照.这样当发现CVM异常时可以选择某个正常时间点的快照迅速回滚恢复.“道路千万条,安全第一条”,创建快照无疑是最重要的手段.

2) 不同操作系统如何进入救援模式?

腾讯云控制台提供的救援模式镜像当前只有 CentOS. CVM 使用不同的Linux,例如 CentOS, Ubuntu, TencentOS, Debian 等都可以使用该镜像.但是目前还不支持 Window 的救援模式.若客户CVM 使用的Windows 操作系统发生故障,可以提交工单给腾讯云后台工程师协助解决.

3) 何时使用救援模式或者单用户模式?

腾讯云的有些产品,例如裸金属,目前尚不支持救援模式.这种情况下可以进入单用户模式[3]解决问题.

5 参考资料

[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 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 背景
  • 2 基本原理
    • 2.1 基本操作流程
      • 2.2 操作步骤说明
      • 3 典型情况分析
        • 3.1 磁盘空间满
          • 3.2 磁盘信息变化
            • 3.3 启动项被修改
              • 3.4 分区表被修改
                • 3.5 库文件损坏
                • 4 问题讨论
                • 5 参考资料
                相关产品与服务
                云服务器
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档