一、NFS工作原理
1.1NFS介绍
- NFS(Network File System 网络文件服务)文件系统(软件)文件的权限
- NFS是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
- NFS也是 NAS 存储 设备必然支持的一种协议
- NFS它是文件系统,是操作系统内核来管理的
1.2NAS存储
- NFS服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能)。
- NFS也是NAS存储设备必然支持的一种协议,以完成远程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
补充:RPC采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
1.3NFS特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
1.4NFS优势
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
二、NFS软件介绍
NFS端口号2049
RPC端口号111
2.1包
软件包:nfs-utils(包括服务器端和客户端)
相关软件包:rpcbind(必须),tcp_wappers
2.2NFS服务主要进程
- rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
- rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd 非必要,管理文件锁,避免同时写出错
- rpc.statd 非必要,检查文件一致性,可修复文件
补充:
说明:CentOS 6开始portmap进程由rpcbind代替
日志:/var/lib/nfs/
NFS配置文件:/etc/exports和/etc/exports.d/*.exports
三、NFS共享配置文件格式
配置文件格式: (1)/dir 主机1(opt1,opt2) 主机2(opt1,opt2)... 解释:共享路径 共享给谁 (2)/share * 解释:共享给任何主机 *代表任意(注意此时未给权限)
1 选项介绍: 2 默认选项:(ro,sync,root_squash,no_all_squash) 3 ro,rw:只读和读写 4 async:异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低 5 sync(1.0.0后为默认):同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高 6 root_squash(默认):远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody 7 no_root_squash:远程root映射成NFS服务器的root用户 8 all_squash:所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody 9 no_all_squash(默认):保留共享文件的UID和GID 10 anonuid和anongid:指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
四、NFS工具
4.1exportfs
exportfs:可用于管理NFS导出的文件系统
1 常见选项: 2 -v:查看本机所有NFS共享 3 -r:重读配置文件,并共享目录 4 -a:输出本机所有共享 5 -au:停止本机所有共享
4.2showmount
客户机上如何查看共享:showmount -e 主机IP
4.3mount.nfs
格式: mount [服务端的IP地址]:/[共享文件夹] [挂载点]
4.4案例操作
实验环境:服务段CentOS7-1(192.168.10.10)和CentOS7-2(192.168.10.20) 实验目的:nfs 共享服务,要求客户端有读写权限,并且全压榨成 lisi用户 服务端: [root@server ~]#useradd lisi [root@server ~]#passwd lisi [root@server ~]#id lisi [root@server ~]#yum -y install nfs-utils.x86_64 [root@server ~]#systemctl start nfs [root@server ~]#mkdir /centos [root@server ~]#chmod 777 /centos/ [root@server ~]#vim /etc/exports /centos *(rw,no_root_squash,all_squash,anonuid=1001,anongid=1001) [root@server ~]#exportfs -r [root@server ~]#exportfs -v [root@server ~]#cd /centos [root@server /centos]#touch Rui.txt [root@server /centos]#ll 客户端: [root@client ~]#useradd lisi [root@client ~]#passwd lisi [root@client ~]#useradd FZR [root@client ~]#passwd FZR [root@client ~]#yum -y install nfs-utils.x86_64 [root@client ~]#systemctl start nfs [root@client ~]#showmount -e 192.168.10.10 [root@client ~]#mount 192.168.10.10:/centos /mnt [root@client ~]#df -Th [root@client ~]#cd /mnt [root@client /mnt]#ll [root@client /mnt]#touch FZR.txt [root@client /mnt]#ll [root@client /mnt]#su FZR [FZR@client mnt]$ ll [FZR@client mnt]$ touch ZZJ.txt [FZR@client mnt]$ ll
操作:
服务端:
客户端:
标签:文件,server,client,NFS,nfs,共享,root From: https://www.cnblogs.com/feizirui/p/16822589.html