因此,有一个 Java 应用程序可以从第 3 方站点下载文件并将其保存在 NFS 共享中。但偶尔,保存的文件会应用非常奇怪的权限、所有者和其他元数据。甚至没有可用的尺寸信息
Windows 工具显示该文件的日期为 1974 年,大小为 0 字节,在 Linux 主机上,除了显示的信息之外,我看不到任何信息。
当我尝试对文件进行统计时,它说它不存在。
有什么办法可以解决这个问题吗?如果我删除文件,应用程序将重新下载它,但在几天、几周后问题会再次出现
-?????????? ? ? ? ? tmp-Football.xml
谢谢
这是一个损坏的文件,几乎可以肯定是 NFS 在出现某种传输错误之前创建的(通常与重新启动 NFS 服务器或客户端在应用程序传输数据时错误卸载有关)。
如果 NFS 客户端以任何方式出现故障,它要么保持缓冲它尝试发送的最后一位信息,然后冻结直到 NFS 服务器再次可用以接收该位数据,要么它会丢弃最后一位信息并抛出 I/O 错误,以便应用程序可以处理/忽略该错误(并正常进行而不被冻结)。
这是硬装和软装的本质区别。硬是冻结类型,软是在您遇到不可避免的轻微网络故障时悄悄破坏您的数据的类型。
如果您过度关注飞行中数据的数据完整性,请使用硬安装。如果您更关心应用程序的稳定性,请使用软安装座。如果您遇到损坏问题,并且您没有像某些数据中心流氓那样疯狂地重新启动 NFS 服务器,那么现在是分别检查 NFS 服务器日志和客户端日志的好时机。同时,一些网络诊断和监控/日志是为了查看网络是否有问题。
Wireshark 非常适合飞行中的流量监控,除了切换日志外,还有许多 GUI 可以以比纯文本更不可怕的方式解释其输出。两个系统上的系统日志应该会显示大部分内容,因为卸载的文件系统和重新启动的服务器显示得很好。