ZFS over NFS v3 - 空文件的“无效参数”

ZFS over NFS v3 - 空文件的“无效参数”

我有一台 OpenSolaris 2009.06 服务器,为 Linux 2.6.26 服务器提供 ZFS over NFS v3。通过 NFSv4 访问文件时不会发生这种情况。

非常高兴。它能捕获我们 LSI san 中的静默数据损坏。性能出色。有快照。有压缩。事务日志重放备份。最重要的是,我们不再有 Linux 服务器上发生的 FS 缓存问题和冻结。

有一件奇怪的事情:Linux NFS 客户端无法访问空文件。当我尝试 ls、cat 或 stat 它们时,我得到:

stat: cannot stat `/srv/zpools/a/write.lock': Invalid argument

Rsync 备份报告:

rsync: readlink "/srv/zpools/a/write.lock" failed: Invalid argument (22)
rsync: readlink "/srv/zpools/userX/.netbeans/6.9/var/cache/mavenindex/netbeans/write.lock" failed: Invalid argument (22)
rsync: readlink "/srv/zpools/userX/.netbeans/6.9/var/cache/mavenindex/local/write.lock" failed: Invalid argument (22)
rsync: readlink "/srv/zpools/userX/javaPrograms/mavenProjects/thesis/libbn/target/test-classes/.netbeans_automatic_build" failed: Invalid argument (22)
rsync: readlink "/srv/zpools/userX/javaPrograms/mavenProjects/scalaCommon/target/test-classes/.netbeans_automatic_build" failed: Invalid argument (22)

我无法通过仅为一些旧文件创建新的空文件来重现它。

谁能说出原因是什么?

编辑: 在 ZFS 服务器中,当查看奇怪的文件时,我发现修改时间可以追溯到 1927 年。:) 触摸服务器上的文件后,解决了 NFS 客户端上的问题。

答案1

这些文件是在 NFSv4 中创建的,并具有一些不寻常的属性(例如,修改时间是 1970 年 Unix 时代的 40 年前),现在它们在 NFSv3 下无效。

相关内容