NFS mount本地挂载的一个大坑,可有回避方案?

当文件较大或小文件频繁访问时,NFS挂载可能导致大量网络流量,甚至网络瘫痪。讨论中提出了避免使用NFS,采用存储端JVM代理、S3兼容接口、cachefilesd缓存等解决方案,以及通过调整第三方代码减少网络IO。最终通过修改底层组件,避免频繁的readdir操作,显著降低了NFS的网络开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你只需要获取一个文件的attributes,而非整个文件的内容时,它也会将整个文件传输到客户机, 

在文件很大或频繁访问小文件时,会导致极为可观的网络流量,严重时会把网络拖垮。。 



【 在 Mikov 的大作中提到: 】 
: 这种情况就别用nfs了. 本来nfs就是一种偷懒的做法. 

: 在存储端跑一个jvm做代理, 将功能接口化 

嗯,在公有云的虚拟IDC里,,, 
其实原本想用S3兼容接口的存储服务(比如Minio),不过技术调研还有些兼容性问题。 
用NFS是个过渡,还考虑过FTP的方案,但是FTP也是个巨坑。 

姑且先用cachefilesd配合NFS试试,只要能降低反复读的压力就能扛一段时间, 
等到S3兼容的存储服务OK了,就直接切换到S3 API了。 

【 在 zxeoc 的大作中提到: 】 

: 文件存进去的时候就同时存一份相关信息,手工维护一下两者的关系 

现在就等价于这么干的。 
因为文件是用户上传而来的,取得size、mime等信息的时候就改为从上传的临时文件里取了。 
不过即便如此,从临时文件到nfs落盘等,有些第三方代码还是不好控制的,导致多读了几次文件。 

回来报告一下初步结果:cachefilesd然并卵。 

有待进一步调查。 

【 在 zxeoc 的大作中提到: 】 

### 如何在Linux系统中使用 `mount` 命令挂载NFS共享 在Linux系统中,`mount` 命令是用于挂载文件系统的工具之一。要挂载一个NFS(Network File System)共享,需要指定NFS服务器的地址、共享路径以及本地挂载点。以下是一个典型的命令示例[^1]: ```bash sudo mount -t nfs server:/share /mnt/nfs-share ``` - `-t nfs`:指定了文件系统的类型为NFS。 - `server:/share`:这是NFS服务器的地址和共享目录。 - `/mnt/nfs-share`:这是本地系统上的挂载点,必须事先创建。 #### NFS服务器配置 在挂载NFS共享之前,确保NFS服务器已经正确配置并导出了共享目录。可以通过编辑 `/etc/exports` 文件来定义共享目录及其权限设置[^3]。例如: ```bash echo "/nfs *(insecure,rw,sync,no_root_squash)" > /etc/exports ``` - `/nfs`:这是要共享的目录。 - `*(insecure,rw,sync,no_root_squash)`:定义了允许访问的客户端及权限选项。 - `*`:表示允许所有客户端访问。 - `rw`:读写权限。 - `sync`:同步写入。 - `no_root_squash`:允许root用户以root身份访问共享目录。 完成配置后,需要重启NFS相关服务以使更改生效: ```bash systemctl enable --now rpcbind systemctl enable --now nfs-server ``` #### 检查NFS共享状态 可以使用以下命令检查NFS服务器是否正常工作以及有哪些共享目录可用[^2]: ```bash showmount -e localhost ``` 此命令将列出当前NFS服务器导出的所有共享目录。如果需要查看哪些客户端已经连接到共享目录,可以运行: ```bash showmount -a localhost ``` #### 自动挂载NFS共享 为了实现开机自动挂载NFS共享,可以在 `/etc/fstab` 文件中添加相应的条目。例如: ```plaintext server:/share /mnt/nfs-share nfs defaults 0 0 ``` 这样,系统启动时会自动挂载指定的NFS共享。 ### 注意事项 - 确保NFS服务器和客户端之间的网络连接正常。 - 如果遇到权限问题,请检查 `/etc/exports` 文件中的配置是否正确,并重新导出共享目录。 - 在挂载过程中可能需要root权限,因此建议使用 `sudo` 执行相关命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值