修复 Longhorn 卷挂载失败(”CentOS 7.6-'fsck' found errors on device“)

2022-01-25 08:45:37 浏览数 (1)

目录

  • 查看 Pod 日志
  • 使用 e2fsck 修复错误
  • 下载
  • 安装
  • 修复

查看 Pod 日志

代码语言:javascript复制
kubectl describe po clickhouse-0 -n clickhouse
......
#Events:
#  Type     Reason       Age                     From     Message
#  ----     ------       ----                    ----     -------
#  ...
#  kubelet  MountVolume.SetUp failed for volume
#  "pvc-6561339a-6111-481c-a674-b4889c755299" : 
#  rpc error: code = Internal desc = 'fsck' found errors on device #/dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299
#  but could not correct them: fsck from ...
#  
# /dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299:
# UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.

提示我们运行 fsck 命令,在 pod 所在的节点,我们运行以下命令:

代码语言:javascript复制
fsck -cvf /dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299
# /dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299 has unsupported feature(s): metadata_csum
# e2fsck: Get a newer version of e2fsck!

提示我们下载 e2fsck

使用 e2fsck 修复错误

下载

代码语言:javascript复制
wget https://distfiles.macports.org/e2fsprogs/e2fsprogs-1.45.6.tar.gz
tar -zxvf e2fsprogs-1.45.6.tar.gz

安装

代码语言:javascript复制
cd e2fsprogs-1.45.6
mkdir build && cd build
../configure
make && make install

参数说明

  • device :预备检查的硬盘 partition,例如:/dev/sda1
  • -a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
  • -b : 设定存放 superblock 的位置
  • -B : 设定单位 block 的大小
  • -c : 检查该partition 是否有坏轨
  • -C file : 将检查的结果存到 file 中以便查看
  • -d : 列印 e2fsck 的 debug 结果
  • -f : 强制检查
  • -F : 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
  • -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
  • -L bad_blocks_file : 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
  • -n : 将档案系统以[唯读]方式开启
  • -p : 对 partition 做检查,若有问题便自动修复
  • -v : 详细显示模式
  • -V : 显示出目前 e2fsck 的版本
  • -y : 预先设定所有检查时的问题均回答[是]

修复

代码语言:javascript复制
fsck.ext4 -y /dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299
# /dev/longhorn/pvc-6561339a-6111-481c-a674-b4889c755299: ***** FILE SYSTEM WAS MODIFIED *****

0 人点赞