问题标签 [nfsclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么 java FileOutputStream 的 write() 或 flush() 不能让 NFS 客户端真正向 NFS 服务器发送数据?
我的 Java Web 应用程序使用 NFS 文件系统,我使用 FileOutputStream 打开、写入多个块然后关闭文件。
从探查器统计信息中,我发现 stream.write(byte[] payload,int begin, int length) 甚至 stream.flush() 都需要零毫秒。只有方法调用 stream.close() 需要非零毫秒。
似乎 java FileOutputStream 的 write() 或 flush() 并没有真正导致 NFS 客户端向 NFS 服务器发送数据。是否有任何其他 Java 类可以使 NFS 客户端实时刷新数据?还是需要进行一些 NFS 客户端调整?
python - python libnfs NfsClient 创建文件
我是 python libnfs (NfsClient) 的新手。我正在尝试在服务器上创建一个特定大小的新文件。有人可以告诉我怎么做吗?
如果我尝试以写入模式打开,则会收到无效文件错误(文件不存在)。我看了看有一个我不知道如何使用的 _create 函数。
这是我正在使用的 libnfs 模块,我可以在任何地方在线找到它的文档,你也可以帮我找到它的文档吗?
ubuntu - Nginx/phpfpm 不显示更新的内容
服务器:ubuntu 14.04lts nginx(v1.10)服务器在我已经更改文件时显示较旧的内容,更改会在 3-6 分钟后看到。文档根目录是从 nfs 共享挂载的。当我cat
立即读取/文件时可以看到文件中的更改,但在浏览器上看不到相同的更改
注意:我已经清除了浏览器缓存并禁用了 phpopcache,nfs 和 nginx 之间的平均延迟小于 0.3 毫秒。没有缓存服务器/客户端完成
下面是我在客户端的 nfs 挂载选项
下面是 nfs 服务器中的导出 conf
例如:-我有一个名为showme.php
以下内容的文件
如果我把它改成
这没有反映在浏览器上
ansible - 在 Ansible 清单中动态构建字符串
我在使用 Ansible 角色 NFS 时有一个问题。
NFS 角色: https ://github.com/geerlingguy/ansible-role-nfs
我的情况是这样的:我们将创建一个虚拟机列表,这些虚拟机是 NFS 客户端。我们需要对 NFS 服务器进行访问控制。因此,我们根据上面的角色在 Ansible 库存中设置了一个名为 'nfs_exports' 的列表。
部分虚拟机将在完成工作负载后终止和退役。我们将重新运行包含 NFS 角色的剧本以更新 NFS 服务器设置。所以,有一个主机组'client_group',主机的数量是可变的。
如果有一个 VM,nfs_exports 列表将是:
如果有两个虚拟机,
如果有三个虚拟机,
这在我们的情况下不好。因为每次虚拟机数量发生变化时,我都需要手动更改“nfs_exports”。
我需要动态构建列表“nfs_exports”中的字符串。因此,如果有一台 VM,“nfs_exports”中将只有一个客户端。如果有多个 VM,则所有 VM 都应自动包含在“nfs_exports”中。
谁能提供有关在“nfs_exports”中构建字符串的解决方案,而不是在“client_group”更改时手动更改“nfs_exports”?
c - 如何获取 NFS 文件句柄?
我正在尝试对数百台服务器上的数千个 NFSv3 文件服务器导出进行一些测试。从服务器上的配置到网络连接,很多事情都可能出错。我能做的最完整的测试是实际尝试将它安装在客户端上。
我可以做到这一点,但实际上安装所有东西超出了我的需要,占用了程序执行之外的状态和资源,并且往往会给客户带来一点压力。我不止一次看到似乎表明客户端上的某些事情不满意并阻止安装发生的问题。(除了客户端重新启动之外没有任何更改,安装再次工作)。
我希望编写一些更轻量级的代码,它可以简单地充当 NFS 客户端,并查看 NFS MOUNT 调用是否成功返回了文件句柄。如果是这样,我的服务器正在运行并且我的客户端已获得授权。但我还没有找到任何简单的代码来做到这一点。
当我查看Linux Source时,看起来至少有一些代码涉及它是一个 linux 模块,这令人困惑。
是否有一些用户空间代码只是通过挂载调用请求 NFS 文件句柄,而我可能能够删除这些代码?(或者有什么理由让我的想法行不通)?这都是 AUTH_SYS,所以我不必获得 kerberos 票证或任何东西。
linux - 将 NFS 服务器用户应用到客户端
我希望我的客户端 NFS 对我的共享挂载 FS 具有 RW 权限,而不必在我的客户端计算机上创建与 NFS 服务器计算机上的 ID 用户匹配的任何用户。
在我的 NFS 服务器上,我按如下方式导出 NFS:
uID 和 gID 是:
在我的客户端计算机上,我使用此命令进行了挂载,因为没有选项可以使用 uid 和 gid 进行 NFS 挂载。
因此,当我将文件复制到共享 NFS 目录时,它会在服务器上应用 irods 用户和组。这就是我想要的。但是在我的客户中,我没有 irods 用户。我客户端的用户 ID 996 和 gpID 994 属于另一个用户(davfs2)。当我在客户端挂载时,每个文件都属于该组和用户。
当我首先尝试将目录复制到 NFS 共享 FS 时,我更改了所有者chown -R davfs2.davfs2 Overige-Joana-s1-irodsprodvm/
并进行了复制。它创建目录和文件。该目录和文件具有 irods 所有者,这是正确的。但是文件没有RW的权限。服务器 >>
但在复制之前,我检查了客户端上我是否有 RW 权限。客户 >>
我将在不同的机器(linux、Mac、Windows)上挂载相同的 NFS 服务器目录。我将复制到此目录的所有文件都必须至少具有 irods 组。我试图找出一些方法,不必在所有客户端计算机上创建具有相同 ID 的所有用户和组。有什么线索吗?谢谢!
linux - 在同一台服务器上安装多个 NFS 的 puppet
我在同一台服务器上几乎没有 NFS 挂载点,但目录不同。前任:
但是当我尝试运行 puppet 时,它会在我的 fstab 中添加以下内容。(错误的安装分配)
它在所有已挂载的分区上使用最后一个挂载选项。所以我做了一些研究,发现了以下错误。
然后添加了 nosharecache 选项,但仍然没有运气。这是我的木偶代码
我的 hieara 查找如下
为什么它会导致一些意想不到的行为?
c - 即使应用程序使用 O_DSYNC 打开文件,NFS 客户端也会聚合写入请求
我正在运行一个应用程序,它使用O_DSYNC
选项打开 NFS 挂载中的文件。然后应用程序6500
循环将数据字节写入文件 1000 次。
我监视了客户端的行为,并注意到它正在以 4096 和 8192 字节的批次将写入发送到底层文件系统。
根据man open
,对打开的文件的写入操作O_DSYNC
将按照同步 I/O 数据完整性完成的要求完成。它进一步说,
我假设在底层文件系统成功写入数据之前O_DSYNC
,write()
调用不会返回。这不是这里发生的事情。NFS 客户端正在缓存写入并以 4k 的倍数刷新它们。为什么会这样?
请注意,我使用的是运行 Linux 4.9 版的 Amazon EC2 实例,页面大小为 4096。
ubuntu-14.04 - mount.nfs:在 ubuntu 14.04.1 LTS 上连接超时
我第一次尝试创建一个 nfs 服务器。在尝试安装到服务器时,我收到错误“mount.nfs:连接超时”。我的服务器版本是 ubuntu 14.04.5 LTS,而我的客户端是 ubuntu 14.04.1 LTS。以下是我执行的步骤。
在服务器端:
# vi /etc/exports
# sudo service nfs-kernel-server 重启
# sudo exportfs -u
在客户端:
# sudo mount 192.168.13.80:/home/nfs /home/nfs
在尝试中,
#sudo mount -t nfs4 -o proto=tcp,port=2049 192.168.13.80:/home/nfs /home/nfs
“# rpcinfo -p”给出:
我不确定要尝试什么或如何尝试。请帮忙。任何帮助将不胜感激。谢谢。
nfs - 网络文件系统中的查找操作
有人能详细解释一下 NFS v3.0 中的查找操作吗?发生在客户端和服务器端的操作。