- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试找到正确的方法来处理 NFS 客户端上的陈旧数据。考虑以下场景:
(另外,出于性能原因,知道两台服务器上的缓存装载选项都非常高可能也很有用)。
我想了解的是:
谢谢。
最佳答案
- Is there reliable method to check, that file is present? In the scenario given above lstat on the file returns success and application fails only after trying to move file.
这就是正常的 NFS 行为。
- How can I manually sync contents of directory on the client with server?
这是不可能手动完成的,因为 NFS 伪装成一个普通的 POSIX 兼容文件系统。
我曾尝试编写 close()/open() 代码,试图以某种方式减轻 NFS 客户端缓存的影响。在我的例子中,我需要读取写入其他服务器上文件的信息。但即使是重新打开技巧也几乎为零。而且我无法将 fdatasync() 添加到写入端,因为这会减慢整个应用程序的速度。
到目前为止,我对 NFS 的体验是,您无能为力。在关键代码路径中,我只是编码以重试返回 ESTALE 的文件操作。
- Some general advise on how to write reliable file management code in case of NFS?
随心所欲地修改我,但如果您的客户想要可靠性,那么他们不应该使用 NFS。
例如,如果客户需要可靠性,我的公司会宣传使用适当的分布式文件系统(我有意省略了品牌)。我们的核心软件不能保证在 NFS 上运行,我们不支持此类配置。但在我们的例子中,我们确实需要保证,一旦数据写入 FS,它们就可以在所有其他节点上访问。
可以实现 NFS 的一致性,但会以性能为代价,使 NFS 几乎无法使用。 (检查它的挂载选项。)NFS 疯狂地缓存以隐藏它是服务器文件系统的事实。为了使所有操作保持一致,NFS 客户端必须为每个小操作同步转到 NFS 服务器,绕过本地缓存。这永远不会很快。
但由于我们在这里谈论的是 Linux,因此可以建议该软件的客户评估可用的集群文件系统。例如。 RedHat 现在正式支持GFS .我听说有人在使用 CodaFS,但没有关于它的确切信息。
关于c - 确保客户端上的文件状态与 NFS 服务器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204835/
我正在运行 Debian GNU/Linux 7 VM mount.nfs 版本 mount.nfs: (linux nfs-utils 1.2.6) 我想在 NFS 挂载上设置配额。 NFS 服务器
我正在尝试使用 VirtualBox 作为提供程序并使用 ansible 作为配置工具来“升级”一台 CentOS 机器 (centos7-x64-vbox43)。我执行了以下命令: vagrant
我最近使用 inotify 创建了一个保管箱系统,监视在特定目录中创建的文件。我正在监视的目录是从 NFS 服务器挂载的,并且 inotify 的行为与我的预期不同。考虑以下场景,其中 inotify
我已经在我的本地机器上安装了一个 NFS 挂载(所以,我想我的机器是 NFS 客户端)并且一个文件正在被托管 NFS 挂载的远程机器(NFS 服务器)写入 NFS 挂载中。现在,我如何使用 JAVA
我关注这个tutorial为我的服务器设置 NFS。目前,我有 1 台服务器将其部分目录共享为 HOST,2 台服务器将这些目录作为 CLIENT。 我的问题很直接,如果我的HOST包含200万张图片
我在主机上有一个 NFS 分区,如果将其添加到容器中 docker run -i -t -v /srv/nfs4/dir:/mnt ubuntu /mnt 将包含共享数据,但它不会导致冲突吗?因为它还
没有 iptables 规则,我可以挂载我的 NFSSERVER:/PATH 但有了它(firewall/iptables) 已启用,但我无法安装。 [.e.g., after iptables --
我们有两个数据中心,每个数据中心都有许多共享一个基于 EMC 的大型 nfs 的 Linux 服务器。 挑战在于保持两个 nfs 同步。目前假设写入仅发生在 nfs1 上,然后 nfs1 必须将更改传
我在尝试挂载 nfs 导出时遇到以下错误。 sudo mount 192.168.1.175:/mnt/nas /mnt/c/nas mount.nfs: No such device 关于如何解
NFS 挂载在我的 RHEL 7 AWS 实例中不起作用。 当我做一个 mount -o nfsvers=3 10.10.11.10:/ndvp2 /root/mountme2/ 我得到错误: mou
我正在复制 Controller 示例 [1] 中尝试 Kubernetes NFS 卷声明。 我已经设置了 NFS 服务器、PV 和 PVC。我的复制 Controller 看起来像这样 apiVe
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我想查找并更改用户帐户及其在本地文件系统上的默认组,但不包括大量 NFS 安装和指向这些安装的符号链接(symbolic link)。我尝试了多种语法但没有成功 - find / -user dumm
我正在使用 docker NFS 容器,但是在安装导出的目录(即使在本地主机上)时遇到了麻烦。 问题 exportfs: does not support NFS export 设置 我的容器使用入
HDFS NFS GateWay mount.nfs:输入/输出错误? 1.报错如下: [root@xx sbin]# mount -t nfs -o vers=3,proto=tcp,nolock,
我无法为 Docker Swarm 安装 NFS 卷,并且缺乏有关 --mount 语法( https://docs.docker.com/engine/reference/commandline/s
我有一个 Kubernetes 集群设置(本地),它有一个 NFS 共享(my-nfs.internal.tld)安装到 /exports/backup在每个节点上创建备份。 现在我正在设置我的日志记
我想将 sqlite 数据库嵌入到现有的 tcl 应用程序中(从平面文件迁移)。 目前;我们的 tcl 解释器是从网络位置运行的; /bin/tclsh8.3 我有一个 nfs $PATH对于已经为所
我在一台服务器上为客户端创建了一个 NFS 共享服务器和客户端都是centos 6系统。服务器 nfs 导出:/srv/diskless/tmp *(rw,sync,no_root_squash)。
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前关闭。 Improve
我是一名优秀的程序员,十分优秀!