介绍:
Network File System 的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由 Sun 公司开发, 于 1984 年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类 Unix 系统间实现磁盘文件共享的一种方法。
优点:节省磁盘空间
缺点:明文不安全(内网使用)
使用场景:
主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS 服务器可以允许 NFS 客户端将远端 NFS 服务器端的共享目录挂载到本地的 NFS 客户端中。在本地的 NFS 客户端的机器看来,NFS 服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。
客户端 NFS 和服务端NFS 通讯过程
1) 首先服务器端启动 RPC 服务,并开启 111 端口
2) 启动 NFS 服务,并向 RPC 注册端口信息
3) 客户端启动 RPC(portmap 服务),向服务端的 RPC(portmap)服务请求服务端的NFS 端口
4) 服务端的 RPC(portmap)服务反馈 NFS 端口信息给客户端。
5) 客户端通过获取的 NFS 端口来建立和服务端的 NFS 连接并进行数据的传输。
NFS部署:
1.1、安装nfs所需软件包
yum install rpcbind nfs-utils
1.2、创建测试文件并赋权限
mkdir /home/test chmod -R 777 /home/test/ cd /home/test/ vim aaa/bbb.txt
1.3、修改配置文件
vim /etc/exports 写入 /home/test 192.168.121.0/24(rw) 共享文件路径 允许共享网段(共享文件可执行权限) 共享文件可执行权限有: ro 只读访问 rw 读写访问 sync 所有数据在请求时写入共享 hide 在NFS共享目录中不共享其子目录 no_hide 共享NFS目录的子目录 all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 no_all_squash 保留共享文件的UID和GID(默认) root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认) no_root_squas root用户具有根目录的完全管理访问权限
1.4、开启服务
systemctl start rpcbind nfs 设置开机自启 echo "192.168.121.38:/home/test /nfs nfs4 defaults 0 0" >> /etc/fstab mount -av
1.5、查看共享信息
showmount -e 192.168.121.38 (此处ip地址为搭建服务器主机地址)
1.6、访问nfs服务器
linux端访问:
mount 192.168.121.38:/home/test/ /mnt/ df
1.7、现网实例
nfs配置
yum install rpcbind nfs-utils vim /etc/exports 写入:#共享目录 客户端(访问权限,用户映射,其他) /appslog/smms_home/backup 192.168.21.84(ro,anonuid=0,async) service rpcbind stop;service nfs stop service rpcbind start service nfs start showmount -e 192.168.0.92 输出:Export list for 192.168.0.92: /appslog/smms_home/backup 192.168.21.84 nfs客户端配置 echo"192.168.0.92:/appslog/smms_home/backup /bigData/data/idc_home/xinan_92 nfs defaults 0 0" >> /etc/fstab mount -a df -hT |grep nfs 输出:192.168.0.92:/appslog/smms_home/backup nfs4 8.0T 6.1T 1.6T 80% /bigData/data/idc_home/xinan_92
nfs验证
客户端:192.168.21.84 df -hT|grep nfs |grep idc 192.168.0.92:/appslog/smms_home/backup nfs4 8.0T 6.1T 1.6T 80% /bigData/data/idc_home/xinan_92 服务端:192.168.0.92(例) cat /etc/exports #共享目录 客户端(访问权限,用户映射,其他) /appslog/smms_home/backup 192.168.21.84(ro,anonuid=0,async)