NFS共享详解

NFS服务

1、NFS工作原理图

NFS:Network File System 网络文件系统,基于内核的文件系统。
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
在这里插入图片描述

2、软件包

红帽系统: nfs-utils: 包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)
Ubuntu: nfs-kernel-server 服各器包名,nfs-common 客户端包名

3、NFS服务主要进程

rpcinfo 工具可以查看RPC相关信息

查看注册在指定主机的RPC程序
rpcinfo -p hostname
查看RPC注册程序
rpcinfo -s hostname
#查看远程主机的NFS共享
showmount -e hostname

[root@backup ~]# showmount -e 10.0.0.104
Export list for 10.0.0.104:
/data/nfs2 *
/data/nfs1 10.0.0.0/24

rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
rpc.lockd 非必要,管理文件锁,避免同时写出错
rpc.statd 非必要,检查文件一致性,可修复文件

4、NFS配置文件:

/etc/exports
/etc/exports.d/*.exports

5、红帽系统安装

[root@nfs ~]# yum -y install nfs-utils
查看包文件
[root@nfs ~]# rpm -ql nfs-utils
/usr/lib/systemd/system/nfs-server.service
/etc/exports.d
/etc/gssproxy/24-nfs-server.conf
/etc/modprobe.d/lockd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf

[root@nfs ~]# systemctl enable --now nfs-server.service
查看状态,服务已经启动
[root@nfs ~]# systemctl status nfs-server.service

6、Ubuntu安装

服务器
[root@ubuntu2004 ~]#apt install nfs-kernel-server
客户端
[root@ubuntu2004 ~]#apt -y install nfs-common

7、NFS共享案例

(1)服务端
案例:

#创建文件夹/data/nfs1,文件夹所有者所有组为nobody
[root@nfs ~]# mkdir /data/nfs1 -p
[root@nfs ~]# chown nobody:nobody /data/nfs1

[root@nfs ~]# vim /etc/exports
#所有权限
/data/nfs1      *(rw,all_squash)

[root@nfs ~]# exportfs -r

案例2

#创建共享用户,指定UID,GID
[root@nfs ~]# groupadd -g 66 nfstest
[root@nfs ~]# useradd -u 66 -g 66 nfstest
#创建文件夹/data/nfs2,文件夹所有者所有组为nfstest
[root@nfs ~]# mkdir /data/nfs2 -p
[root@nfs ~]# chown nfstest:nfstest /data/nfs2
#指定主机范围,所有权限
/data/nfs1      10.0.0.0/24(rw,all_squash,anonuid=66,anongid=66)

[root@nfs ~]# exportfs -r

(2)客户端

未安装nfs客户端挂载失败
[root@backup ~]# mount 10.0.0.104:/data/nfs1 /mnt
mount: /data/nfs: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helperprogram.
安装客户端
[root@backup ~]# yum -y install nfs-utils.x86_64
[root@backup ~]# mount 10.0.0.104:/data/nfs1 /mnt

[root@backup ~]# df -T
Filesystem            Type     1K-blocks    Used Available Use% Mounted on
devtmpfs              devtmpfs    379312       0    379312   0% /dev
tmpfs                 tmpfs       398024       0    398024   0% /dev/shm
tmpfs                 tmpfs       398024    5692    392332   2% /run
tmpfs                 tmpfs       398024       0    398024   0% /sys/fs/cgroup
/dev/nvme0n1p2        xfs       52403200 2172828  50230372   5% /
/dev/nvme0n1p1        xfs        1038336  206604    831732  20% /boot
tmpfs                 tmpfs        79604       0     79604   0% /run/user/0
10.0.0.104:/data/nfs1  52403200 2199936  50203264   5% /data/nfs
10.0.0.104:/data/nfs2  52403200 2199936  50203264   5% /mnt

开机自动挂载,使用defaults网络异常会开机启动不了	使用_netdev
[root@backup ~]# vim /etc/fstab
10.0.0.104:/data/nfs1                     /data/nfs/              nfs     _netdev         0 0

8、exportfs

exportfs:可用于管理NFS导出的文件系统
常见选项:

-v #查看本机所有NFS共享
-r #重读配置文件,并共享目录
-a #输出本机所有共享
-au #停止本机所有共享

案例

#重读配置文件,并共享目录
[root@nfs ~]# exportfs -r
#查看本机所有NFS共享
[root@nfs ~]# exportfs -v
/data/nfs1    	10.0.0.0/24(sync,wdelay,hide,no_subtree_check,anonuid=66,anongid=66,sec=sys,rw,secure,root_squash,all_squash)
/data/nfs2    	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,all_squash)
#停止本机所有共享
[root@nfs nfs1]# exportfs -au
#输出本机所有共享
[root@nfs nfs1]# exportfs -a

9、NFS共享配置文件格式

/共享的文件夹 主机1(opt1,opt2) 主机2(opt1,opt2)...

主机格式:

所有主机
*(rw,all_squash)
指定主机
 10.0.0.100(rw,all_squash)
 指定此网段主机可访问
 10.0.0.0/24(rw,all_squash)

选项:

默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值