我们有一个在 Linux 0.7.8 和 RHEL 7.5 上运行 ZFS 的 Linux 服务器。 /home 文件系统是 ZFS。它工作正常,直到用户报告文件系统无法访问。
Zpool显示状态是健康的。擦洗没有发现任何错误。文件系统挂载和卸载没有错误。使用的%磁盘看起来不错。但是你无法让任何 ls 工作,例如, cd /home 然后 ls 显示此错误:
ls: reading directory .: Not a directory
有没有人见过这种情况并知道如何处理?您还想查看哪些信息?谢谢!
$ zpool list home
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
home 928G 80.2G 848G - 1% 8% 1.00x ONLINE -
答案1
这是由于 Red Hat 在 7.5 内核 (v3.10.0-862) 中进行了向后移植的更改。ls
进行getdents()
系统调用,现在 iterate_dir()
代替readdir()
.
恢复到内核 v3.10.0-693.21.1 应该可以解决该问题。
答案2
zfs 0.7.9 现已在修复该问题的存储库中提供。
答案3
我没有恢复到最新的 z-stream 内核 7.4,而是使用 ZoL 开发人员提供的修复该问题的补丁重建了可用的最新软件包 (0.7.8)。我已经在这里上传了我的所有 rpm: https://step.polymtl.ca/~coyote/dist/zfs/0.7.8-1.2