我正在尝试对数百个服务器上的数千个NFSV3文件服务器导出进行一些测试。从服务器上的配置到网络连接,很多事情可能会出错。我能做的最完整的测试是实际尝试将其安装在客户端上。
我可以做到这一点,但实际上安装一切都超出了我的需求,将状态和资源带到了程序的执行之外,并且倾向于强调客户。我不止一次地看到似乎表明客户上的某些问题是不开心的,并阻止了安装座的发生。(除了客户重新启动以外,没有其他更改,坐骑再次起作用)。
我希望相反,将重量更轻的重量编码为NFS客户端,然后查看NFS安装呼叫是否成功返回了FileHandle。如果这样做,我的服务器正在运行,并且我的客户端已授权。但是我没有找到任何简单的代码。
当我查看Linux源时,看来至少某些代码与Linux模块有关,这令人困惑。
是否有一些用户空间代码仅通过安装呼叫请求NFS FileHandle,我可能可以剥离?(或者有什么理由我的想法行不通)?这是所有的auth_sys,所以我不必获得kerberos门票或任何东西。
在不知道的情况下,我会根据我对NFS/Linux文件系统的了解来推测一点。
我假设您的客户端是Linux(但是,如果存在NFS客户端,则可以适用于Windows)。
听起来好像是在安装座上时,您到达了要消耗资源的地步,以至于客户无法再安装NFS安装座。当您重新启动时,它再次开始工作时,重新启动将丢弃NFS安装座(假设您是明确/以编程方式安装),从而可以再次发生安装。我敢打赌,您只是在安装NFS坐骑,从不卸载它们。因此,我建议以下内容:
- 安装
- 在刚刚安装的NFS文件系统中访问文件或目录
- 启用NFS文件系统
好,然后只需获取正在运行的NFS版本的RPC协议定义文件,可能是版本3或4,通过RPCGEG XDR协议编译器运行它们,您将在C您可以编译可以与服务器拨打电话。但是他们将执行多个系统系统调用,如果不发生这种情况,就无法执行网络通信Linux,并且它将在Linux内核中使用TCP/IP堆栈(您可能会使用UDP)。您可能可以在Sun/Oracle网站上找到NFS协议定义文件,或者您可以在Linux发行的源中找到它们 - 您将进行应用程序层调用,但客户端调用RPC库函数又将调用它linux系统调用将转到内核