我有一个大中型服务器,我的所有工程用户都在使用它。这是一个 32 核、256GB 的系统,托管 19 个 Xvnc 会话以及过多的工具、登录会话,以及这样的用户群所暗示的。所有用户都通过 NIS 进行配置,并在 NFS 上拥有主目录。各种自动化进程也使用 NIS 定义的用户和 NFS 安装的文件系统。
有问题的计算机运行的是 CentOS 6.5,所涉及的文件服务器是 NetApp。
有时,在计算机运行一段时间后,人们会在删除某些内容时遇到间歇性问题;该错误与“设备/资源繁忙”类似。lsof 没有显示任何保留相关项目(文件或目录)的内容;经过一些不确定的时间(通常少于找到管理员并让他查看问题所需的时间)问题消失并且可以删除该项目。
大约在同一时间,使用 SVN 的自动化流程之一出现如下错误:
svn: E155009: Failed to run the WC DB work queue associated with '/home/local-user/tartarus/project8/doc/verif/verification_environment/learning/images', work item 930 (file-install doc/verif/verification_environment/learning/images/my-sequence.uml 1 0 1 1)
svn: E000018: Can't move '/home/local-user/tartarus/project8/.svn/tmp/svn-j3XrNq' to '/home/local-user/tartarus/project8/doc/verif/verification_environment/learning/images/my-sequence.uml': Invalid cross-device link
Run Code Online (Sandbox Code Playgroud)
如果我们尝试删除有问题的文件,我们会得到:
rm: cannot remove `project8/doc/verif/verification_environment/learning': Device or resource busy
Run Code Online (Sandbox Code Playgroud)
谷歌搜索“无效的跨设备链接”导致了很多关于 svn 版本的讨论,并且不支持跨设备写入,这与我们无关,因为这通常有效并且我们没有运行跨版本的 svn 存储库。或者跨设备存储库,因为 .svn 目录与工作副本所在的设备位于同一设备(nfs 挂载)上。
重新启动计算机会使问题消失数周或数月——在我目前的情况下,计算机的正常运行时间刚刚达到 185 天。但是工程师们并不热衷于比必要的更频繁地重启他们的世界。
我们已将文件服务器排除在外,因为其他计算机不会出现相同的问题,除非该问题在主系统上出现。也就是说——如果主系统不能移动/重命名文件,我们可以复制文件不能被移动/重命名的事实,但是其他计算机从来没有独立地表现出这种行为。
NFS 文件系统的挂载选项是: …
我的 CentOS 7.3.1611 系统中有四个接口,位于三个区域:
# firewall-cmd --get-active-zones
dmz
interfaces: ens192
internal
interfaces: ens256 ens161
external
interfaces: ens224
Run Code Online (Sandbox Code Playgroud)
我希望两个内部区域上的系统能够相互通信。
我尝试添加双向直接规则:
# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -o ens256 -i ens161 -j ACCEPT
# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens256 -o ens161 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
...因为这就是我允许内部网络之一与 dmz 网络通信的方式,但是 A) 这似乎在区域内情况下不起作用;B)由于该命令不接受该--permanent
标志,我怀疑这样的命令能否在重新启动后继续存在。
两个内部接口可以与外部(互联网)区域正确通信。
如何允许同一区域中两个接口之间的流量流动?