NFS安装以及使用

NFS安装

安装nfs和rpcbind

yum -y install nfs-utils
yum -y install rpcbind

配置NFS

修改/etc/exports文件 
格式:共享目录 客服端IP(权限)
例1:/data/ftp/ 192.168.101.0/24(rw,no_root_squash,no_all_squash,sync)
例2:/data/ftp/ 192.168.101.1(rw,no_root_squash,no_all_squash,sync)

配置文件详解

rw:read-write,可读写;
ro:read-only,只读;

sync:同步写入(文件同时写入硬盘和内存),适用在通信比较频繁且实时性比较高的场合
async:异步写入(文件先写入内存,稍候再写入硬盘),性能较好(速度快),适合超大或者超多文件的写入,但有数据丢失的风险,
比如突然断电等情况;
注意:除非特別有需要,否则不建议使用 async。如果沒有指定 sync 或 async,NFS 服务器在启动的时候会印出警告信息。

no_root_squash:NFS客户端连接服务端时如果使用的是 root 的话,那么对服务端分享的目录也使用 root 权限。不安全!
root_squash:把客户端 root 身份的 UID/GID (0/0) 对应到服务端的 nobody 用户去,即服务端使用 nobody 用户来操作共
享目录;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。

启动服务

rpc需要先启动
systemctl start rpcbind
systemctl start nfs

查看NFS共享配置

服务端
showmount -e
客户端
showmount -e 服务端地址

权限问题

服务端
注意:如果不是映射的root,就需要加属主
将nfsnobody用户给共享目录
chown -R nfsnobody 共享目录

客户端挂载NFS共享

挂载
mount -t nfs 服务端IP:/data/ftp/ /data/ftp/

开机自动挂载
服务端IP:/data/ftp/     /data/ftp                    nfs     defaults        0 0

挂载nfs用到的选项

  1. hard or soft: 指定当程序无法通过NFS连接使用服务器输出的文件系统上的文件时,是否需要等待服务器重新在线。如果是soft情况,它将报错。如果指定hard,用户无法不能终止程序等待NFS通讯恢复,除非同时指定了intr选项。如果指定了soft,用户可以设置附加选项timeo=,指定了错误报告之前的秒数。
  2. intr:当服务器宕机或者无法到达时,允许中断NFS请求。
  3. nfsvers:nfsvers=2或者nfsvers=3 – 指定使用那个版本的NFS协议。
  4. nolock:禁用文件锁。这个设置在连接到一个旧版本的NFS服务器时偶尔会用到。
  5. noexec: 防止执行被挂接的系统上的二进制文件。这在系统通过NFS挂接一个包含有不兼容的二进制文件的非linux系统时是很有用的。
  6. nosuid – 禁用"设置用户标志位"(set-user-identifier)或者"设置组标志位"(set-group-identifier)。这样防止远程用户运行setuid程序获得更高权限。
  7. rsize=8192和wsize=8192 – 通过设定大的同时传输的数据块大小(bytes),以提高NFS读写的速度。改变这些值时要当心,一些旧的linux内核和网卡在大的块大小不能正常工作。
  8. tcp – 指定NFS使用TCP协议mount,替换UDP
  9. 例如:在开发板上挂载PC机上的一个目录,如/source/rootfs (该目录已经在/etc/exports文件中配置)
    mount -t nfs -o nolock -o tcp -o nfsvers=3 192.168.8.129:/source/rootfs /mnt/nfs

NFS 固定端口

NFS启动时会随机启动多个端口并向RPC注册,为了设置安全组以及iptables规则,需要设置NFS固定端口。
NFS服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad这5个服务,其中nfs、portmapper的端口是固定的,另外三个服务的端口是随机分配的,所以需要给mountd,nlockmgr,rquotad设置固定的端口。

修改配置

其中,给mountd、rquotad设置端口的方式很简单,在/etc/sysconfig/nfs中添加一下设置即可:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

重启rpc、nfs的配置与服务

systemctl restart rpcbind.service
systemctl restart nfs.service

查看端口使用情况

rpcinfo -p

修改nlockmgr端口

可以看到mountd服务已经使用了配置的端口,但是nlockmgr的端口还是随机的,还需在/etc/modprobe.d/lockd.conf中添加以下设置:
options lockd nlm_tcpport=30002
options lockd nlm_udpport=30002

重新加载NFS配置和服务

systemctl restart nfs-config
systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值