【NFS】NFS实战:权限控制、挂载选项

一、 NFS优缺点

NFS是Network File System的缩写及网络文件系统,NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph。

1、NFS存储优点

1)NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。(2000w日pv以下网站没问题)
2)NFS文件系统内存放的数据都在文件系统之上,所有数据都是能看得见。

2、NFS存储局限

1)存在单点故障, 如果nfs服务器宕机,所有客户端都不能访问。
解决:需加backup机器,维护麻烦web->nfs()->backup
2)NFS数据明文, NFS并不对数据完整性做任何校验。
3)客户端挂载NFS服务没有密码验证, 安全性一般(内网使用)

3、NFS应用建议

1)生产场景应将静态数据(比如:jpg\png\mp4\avi\css\js)尽可能往前端推,减少后端NFS存储压力。
比如使用CDN加速以及内网搭建文件缓存服务(Squid、Nginx、Varnish)
2)多个目录挂载到不同NFS服务器上(即NFS拆分为多台)
3)使用分布式文件系统(如MFS、FastDFS)
4)如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用

二、 NFS原理介绍

我们知道,NFS通过网络进行数据传输。因此,NFS会使用一些端口来传输数据,那么,NFS到底使用哪些端口呢?
通过重启NFS测试可知,NFS会随机启动很多端口。

[root@nfs ~]# netstat -lntup|grep rpc
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      6752/rpcbind        
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      6789/rpc.mountd    
tcp        0      0 0.0.0.0:40868           0.0.0.0:*               LISTEN      6746/rpc.statd      
tcp6       0      0 :::111                 :::*                   LISTEN      6752/rpcbind        
tcp6       0      0 :::20048               :::*                   LISTEN      6789/rpc.mountd    
tcp6       0      0 :::49786               :::*                   LISTEN      6746/rpc.statd      
udp        0      0 127.0.0.1:986           0.0.0.0:*                           6746/rpc.statd      
udp        0      0 0.0.0.0:987             0.0.0.0:*                           6752/rpcbind        
udp        0      0 0.0.0.0:20048           0.0.0.0:*                           6789/rpc.mountd    

也就是说,NFS在传输数据时使用的端口会随机选择。既然这样,NFS 客户端是怎么知道 NFS 服务器端使用的是哪个端口的呢?答案就是通过 RPC (Remote Procedure Call,中文意思远程过程调用)服务/协议来实现。

什么是RPC?

因为 NFS 支持的功能相当多,而不同的功能会使用不同的程序来启动,每启动个功能就会启用一些端口来传输数据,因此,NFS 的功能所对应的端口无法固定,它会随机取用一些未被使用的端口作为传输之用,其中 Centos5.x 的随机端口都小于 1024,而 Centos7.6 的随机端口都是比较大的。

因为端口不固定,这样一来就会造成 NFS 客户端与 NFS 服务器端的通信障碍,因为 NFS 客户端必须要知道 NFS 服务器端的数据传输端口才能进行通信,才能交互数据。要解决这个问题,就要RPC出马了。

NFS 的 RPC服务最主要的功能就是记录每个 NFS 功能所对应的端口号,并且在 NFS 客户端发出请求时将该端口和功能对应的信息传递给请求数据的 NFS 客户端,从而确保客户端可以连接到正确的 NFS 端口上去,达到实现数据传输、交互数据目的。这个RPC服务类似 NFS服务器端和 NFS 客户端之间的一个中介,NFS 工作流程如下图所示。

那么RPC又是如何知道每个NFS端口号呢?

当 NFS 服务器端启动服务时会随机取用若干端口,并主动向 RPC 服务注册取用的相关端口及功能信息,如此一来,RPC 服务就知道 NFS 每个端口对应的 NFS 功能了。然后 RPC 服务使用固定 111端口来监听 NFS 客户端提交的请求,并将正确的 NFS 端口信息回复给请求的 NFS 客户端,这样一来,NFS 客户端就可以与 NFS 服务器端进行数据传输了。

因此,在启动 NFS Server 之前,首先要启动 RPC 服务(Centos6/7 环境下为rpcbind 服务),否则 NFS Server 就无法向 RPC 服务注册了。另外,如果 RPC 服务重新启动,原来已经注册好的 NFS 端口数据就会丟失,因此,此时 RPC 服务管理的 NFS 程序也需要重新启动以重新向 RPC 注册。要特别注意,修改 NFS 配置文件后是不需要重启 NFS 的,直接在命令行执行 systemctl reload nfs 或 exportfs-r 即可使修改的/etc/exports 生效。

总之,NFS客户端向服务端存取文件时,数据流程大致如下图:


image.png

从上面流程可知,NFS客户端和服务端都需要先启动RPC服务,NFS服务必须在RPC启动后启动,客户端无需启动NFS服务,但需要RPC服务。

三、 NFS 权限控制

image.png

四、 NFS 挂载选项

image.png
1、控制读写
rw、ro

2、控制文件权限
root_squash
no_root_squash
all_squash
no_all_squash

3、控制写模式
sync
async

4、控制用户
anonuid
anongid

统一用户:

1、创建用户
# groupadd www -g 666
# useradd www -u 666 -g 666 -M -r -s /sbin/nologin 

2、修改挂载点权限
# chown -R www.www /web/

3、使用

五、参考

NFS设置固定端口,添加防火墙规则
https://www.jianshu.com/p/9fb004b30f1e

NFS 安全加固
https://www.jianshu.com/p/12bbe84112d4

NFS服务的用户身份映射
https://blog.51cto.com/yttitan/2406403

NFS客户端挂载目录后无写入权限的解决方案
https://www.jianshu.com/p/736ff7c15cd6

NFS网络共享存储快速入门:NFS原理
https://mp.weixin.qq.com/s/OwgMV7sTRHENAGI-0w8bMA

那一夜无眠之我被国内存储厂商给坑了
https://mp.weixin.qq.com/s/woSLVMLloxZY2ldvqQ2Ftw

完全解读NFS
https://mp.weixin.qq.com/s/ZGJjz8IRkZvqRFlO84TT7w

Linux之NFS
https://mp.weixin.qq.com/s/SHd6musOQxQeFXLr2dk8iA

NFS实战(含NFS常用权限配置参数)
https://mp.weixin.qq.com/s/JF-cdYCACZeFyCSXSLFYGA

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容