zfs 之 "label is missing" 问题解决方法.
具体报错信息
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
11913441618797008747 FAULTED 0 0 0 was /dev/sdv1
sdw ONLINE 0 0 0
1611494188233271386 FAULTED 0 0 0 was /dev/sdx1
sdy ONLINE 0 0 0
sdz ONLINE 0 0 0
可以看出 label 没了, 这时候看看是不是盘读写问题导致,如果不是证明数据是好的. 只要修label就好了;
本此案例内核没有报告读写问题,所以大概率不是硬件及硬盘本身问题导致;[操作前一定要谨慎,最好要备份]
修复命令
zpool labelclear /dev/sdx1 ; zpool labelclear /dev/sdv1
zpool offline /dev/sdx1; zpool offline /dev/sdv1
- 安排机房重新插拔对应磁盘即可,尽量中间间隔几分钟在插入;
- 检查 zpool status,可以看出是
offline
状态了. - 上线磁盘
zpool offline /dev/sdx1
,尽量一块一块上线,上线完成后状态会变成online状态;zpool offline /dev/sdy1
. - 检查pool状态
zpool status
root@amd-node01:~/lotus# zpool status
pool: Rdataz2
state: ONLINE
scan: resilvered 2.25M in 00:00:01 with 0 errors on Wed Feb 15 14:53:05 2022
config:
ps: 这种状态下,detach,remove命令都是无效的,只能安排机房人员重新插排问题磁盘;
ExPs: 如果上述操作依然不能解决问题,只能上新磁盘 replace 了,两块16T要很久的至少10来天吧.
尽量手动备份下zpool export pool_name
;在未使用情况下
Ref: https://docs.oracle.com/cd/E26926_01/html/E25826/gbbwl.html#scrolltoc