通过nfs-ganesha代理NFS服务

网友投稿 1736 2022-05-30

假设局域网A中的机器需要访问局域网B的NFS服务,但是基于网络安全的考虑,局域网A中只有机器A1可以访问局域网B的NFS服务,相信这种场景是比较常见的。最近,笔者就遇到了类似的使用场景,在调查解决方案的时候,搜索引擎多次关联到一个叫nfs-ganasha的开源软件。于是,笔者就根据nfs-ganasha为数不多的文档,结合nfs-ganesha源代码尝试解决我的问题。

nfs-ganesha目前最新的正式release版本为v3.3,经多次验证,是不支持代理NFS v3服务的,所幸,笔者从当前最新更新的代码分支中(next分支),查到了代理V3服务器的逻辑,于是费了好大劲从最新代码中编译二进制文件,经验证,问题得到解决,下面我会简单介绍一下如何配置nfs-ganesha解决我的问题的。

先睹为快

1. 首先准备好配置文件(比如叫做ganesha-v3.conf)

EXPORT {         Export_Id = 77;         # 这个是上面提到的局域网B的NFS服务export的一个目录         Path = /my_shared_dir;         Pseudo = /tmp_proxy;         Access_Type = RW;         Squash = no_root_squash;         # Exporting FSAL         FSAL {                 Name = PROXY_V3;                 # 这个是上面提到的局域网B的NFS服务IP地址                 Srv_Addr = 100.0.0.1;         } } NFS_CORE_PARAM {         ## Allow NFSv3 to mount paths with the Pseudo path, the same as NFSv4,         ## instead of using the physical paths.         mount_path_pseudo = true; }

2. 然后启动ganesha服务

注意:ganesha-v3.conf的内容如步骤1所示

通过nfs-ganesha代理NFS服务

rpcbind rpc.statd -L rpc.idmapd /usr/bin/ganesha.nfsd -F -L /dev/stdout -f /usr/bin/ganesha.nfsd -F -L /dev/stdout -f ganesha-v3.conf

3.尝试挂载

注意:如果在不同于步骤2的机器上挂载,127.0.0.1设为步骤2机器的公网IP

mkdir lhg mount -t nfs 127.0.0.1:/tmp_proxy lhg

代码编译ganesha

wget https://github.com/nfs-ganesha/nfs-ganesha/archive/next.zip && unzip next.zip cd next/next cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev -DPROXY_HANDLE_MAPPING=ON -DUSE_9P=OFF -DUSE_FSAL_CEPH=OFF -DUSE_FSAL_GLUSTER=OFF -DUSE_FSAL_LUSTRE=OFF -DUSE_FSAL_LIZARDFS=OFF -DUSE_FSAL_XFS=ON -DUSE_FSAL_RGW=OFF -DRADOS_URLS=OFF -DUSE_RADOS_RECOV=OFF -D_MSPAC_SUPPORT=OFF -DUSE_GSS=ON -DUSE_FSAL_LUSTRE=OFF -DALLOCATOR=libc ../src/ \ make make install

总结

Nfs-ganesha是运行在用户空间的NFS(支持v3,4.0,4.1,4.1 pNFS和4.2)文件服务,旨在解决linux内核FUSE(Filesystem in Userspace)不支持通过NFS协议向外export FUSE的痛点,目前可支持通过NFS export多种文件系统,包括ceph,Cluster,GPFS等(更多信息请参阅链接)。

Nfs-ganesha适用于较多的使用场景,希望本文能够帮助到大家。

Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:我造的假我自己打,Adobe 推出“反 PS”
下一篇:《MXNet深度学习实战》—1.1.3 深度学习
相关文章