如何判断 xfs_repair 是否卡住或仍在运行?

如何判断 xfs_repair 是否卡住或仍在运行?

我有一个大约 72TB 空间的备份服务器。仅使用了大约一半。本周早些时候,我在卸载 xfs 文件系统后立即收到以下消息。

Mar 15 15:15:47 kernel: Filesystem dm-0: XFS internal error xfs_trans_cancel at line 1164 of file fs/xfs/xfs_trans.c.  Caller 0xffffffff883e54fe
Mar 15 15:15:47 kernel: 
Mar 15 15:15:47 kernel: 
Mar 15 15:15:47 kernel: Call Trace:
Mar 15 15:15:47 kernel:  [<ffffffff883dfd95>] :xfs:xfs_trans_cancel+0x55/0xfa
Mar 15 15:15:47 kernel:  [<ffffffff883e54fe>] :xfs:xfs_mkdir+0x429/0x465
Mar 15 15:15:47 kernel:  [<ffffffff883ee399>] :xfs:xfs_vn_mknod+0x161/0x215
Mar 15 15:15:47 kernel:  [<ffffffff800ed95a>] vfs_mkdir+0xe3/0x152
Mar 15 15:15:47 kernel:  [<ffffffff800edf30>] sys_mkdirat+0xa3/0xe4
Mar 15 15:15:47 kernel:  [<ffffffff800a7f3f>] sys_futex+0x129/0x14a
Mar 15 15:15:47 kernel:  [<ffffffff8005ddf9>] error_exit+0x0/0x84
Mar 15 15:15:47 kernel:  [<ffffffff8005d116>] system_call+0x7e/0x83
Mar 15 15:15:47 kernel: 
Mar 15 15:15:47 kernel: xfs_force_shutdown(dm-0,0x8) called from line 1165 of file fs/xfs/xfs_trans.c.  Return address = 0xffffffff883dfdae
Mar 15 15:15:47 kernel: Filesystem dm-0: Corruption of in-memory data detected.  Shutting down filesystem: dm-0
Mar 15 15:15:47 kernel: Please umount the filesystem, and rectify the problem(s)
Mar 15 15:15:57 kernel: Filesystem dm-0: xfs_log_force: error 5 returned.

所以我从四天前开始运行以下命令:

xfs_repair -vv -o bhash=16384 -o ihash=16384 -o ag_stride=16 /dev/mapper/cdp1raid-cdp1raid

额外的-o选项帮助大大加快了速度,并且它输出到一个日志文件,该文件确实显示了进度,但在过去的两天里,它只显示了消息:

rebuild AG headers and trees - 73 of 73 allocation groups done

我查看了诸如straceiostathtop、 之类的内容atop,看看我是否能找出它是否仍在进行或是否陷入困境,但没有看到任何说明该过程正在做什么的内容。从运行中iostat -xd我可以看到sdcsdc1和列表对、和值dm-0进行倒计时,但不确定这是否真的意味着什么。r/sw/srsec/s

对此的任何帮助或指导将不胜感激。

答案1

互联网上的一些人告诉我们,该-P标志有助于xfs_repair避免此类挂起(whns strace 仅显示FUTEX_WAIT_PRIVATE而不显示其他内容)。男人:

       -P     Disable prefetching of inode and directory blocks. Use this option if you find xfs_repair gets stuck and stops proceeding. Interrupting a stuck xfs_repair is safe.

相关内容