目录
- 查看 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
所在的节点,我们运行以下命令:
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 *****