虚拟机没响应,xfs文件系统被shutdown了

前段时间,客户一台kylinOS的虚拟机没响应了,登录控制台看到是这个画面,表示元数据(metadata) 损坏,xfs强行关闭了文件系统。

客户重启虚拟机后恢复访问了,但不知道元数据损坏的隐患是否还在?

先理清几个概念

元数据是什么?描述数据的数据是整个文件系统的“地图”,它描述了所有文件和目录的结构、空间分配、inode、B+树、日志位置等信息。

元数据损坏什么意思?是它描述的不对,跟磁盘上实际数据不符,就像地图不能真实反映地形一样。

元数据损坏为何强行shutdown文件系统?这是xfs处理策略,一致性优先,避免扩大损失范围;它不同与ext4,ext4是可用性优先,会继续运行,风险是进一步损坏。

元数据什么时候会检查是否损坏?xfs在mount和I/O操作阶段会检查元数据损坏与否。

为何内存要缓存元数据?是全部元数据吗?这是OS为了提升读写性能。不是全部,这个数据量大,全部缓存不经济。

再回到客户疑问。因为要排查隐患,需要借助xfs_repair对文件系统最全面扫描,前提是分区是在umount状态,而dm-0对应的是根分区,因此只能停机才能进行。

出现元数据损坏,有两种情形,一种只是内存中的元数据损坏,磁盘中元数据正常。造成原因比较复杂,可能是总线传输问题,也可能是内存硬件和OS或驱动程序问题。但这种出现概率小,chatgpt给出的是10%。另一种情形就是磁盘中的元数据本身就有问题,I/O操作阶段检查出损坏的。遇到这种错误,正确的做法就是重启进入单用户或救援模式,umount分区,借助xfs_repair做全面扫描修复。

具体步骤,以虚拟化环境和OS kylin v10为例。

一、操作前准备

为虚拟机创建 带内存的快照,必要时可快速恢复系统状态。(注意:这是虚拟机能正常开机的情况,若xfs的根分区已无法挂载,开机就就进入紧急模式,则输入root密码回车,直接跳到第三步)

二、kylin OS 进入救援模式

  1. 虚拟机配置CD/DVD连接kylin安装镜像
  2. 重启后,按ECS进入启动菜单,选择CD/DVD
  3. Troubleshooting → Rescue a Kylin system
  4. 加载后,直接enter回车进入shell界面

三、确认根分区

      输入blkid,回车查看分区

      通常采用lvm管理的根分区是/dev/mapper/klas-root

四、使用 xfs_repair -n 检查有无数据损坏

        xfs_repair -n /dev/mapper/klas-root

       有损坏则用xfs_repair -v 修复

         xfs_repair -v /dev/mapper/klas-root

       修复完,建议再检查下,看是否修复好了(可选)

        xfs_repair -n /dev/mapper/klas-root

五、退出救援模式并重启系统

        reboot

六、遇到问题 

       如果修复失败或数据丢失,可通过 之前创建的快照 恢复虚拟机状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值