一、NFS服务介绍
NFS是 Network File system的缩写
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
分为2.3.4三个版本,2和3由sun公司起草开发,4.0开始netapp公司参与并主导开发
NFS数据传输基于RPC协议:
应用场景:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
NFS原理图:(NFS服务不监听任何端口,但是RPC服务中的模块,rpcbind默认监听111端口,)
NFS服务端安装配置
1.首先需要两台机器,一个为服务端(ip10.21.95.122)一个为客户端(ip10.21.95.58)。
2.服务端安装两个包
[root@bogon ~]# yum install -y nfs-utils rpcbind
3.客户端安装包
[root@sunyujun02 ~]# yum install -y nfs-utils
4.接下来在服务端编辑:
[root@fuwuduan ~]# vim /etc/exports [root@fuwuduan ~]# /home/nfstestdir 10.21.95.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
# 第一段来定义共享目录的绝对路径 第二段指定ip和一些选项
# rw 读写
# ro 只读
# sync 同步模式,内存数据实时写入磁盘
# async 非同步模式
# no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
# root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
# all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
# anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
5.保存配置文件以后,因为共享目录不存在,所以做以下操作。
[root@fuwuduan ~]# mkdir /home/nfstestdir [root@fuwuduan ~]# chmod 777 /home/nfstestdir/
6.查看rpcbind所用的111端口已经启动
[root@fuwuduan ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 75879/nginx: worker
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 4161/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1475/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1477/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2778/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 75879/nginx: worker
tcp6 0 0 :::3306 :::* LISTEN 3849/mysqld
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1475/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1477/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 2778/master
[root@fuwuduan ~]#
7.客户端和服务端都启动rpcbind
[root@fuwuduan ~]# systemctl start rpcbind [root@fuwuduan ~]# ps aux|grep rpc root 752 0.0 0.0 0 0 ? S< 2月19 0:00 [rpciod] rpc 37786 0.6 0.1 64952 1040 ? Ss 17:20 0:00 /sbin/rpcbind -w root 37788 0.0 0.0 112684 976 pts/2 S+ 17:20 0:00 grep --color=auto rpc [root@fuwuduan ~]#
[root@sunyujun02 ~]# systemctl start rpcbind [root@sunyujun02 ~]# ps aux|grep rpc root 818 0.0 0.0 0 0 ? S< 2月20 0:00 [rpciod] rpc 47335 0.2 0.1 64936 1052 ? Ss 17:20 0:00 /sbin/rpcbind -w root 47337 0.0 0.0 112668 976 pts/1 R+ 17:20 0:00 grep --color=auto rpc [root@sunyujun02 ~]#
8.服务端启动nfs
[root@fuwuduan ~]# systemctl start nfs [root@fuwuduan ~]# ps aux|grep nfs root 37863 0.0 0.0 0 0 ? S< 17:22 0:00 [nfsd4] root 37864 0.0 0.0 0 0 ? S< 17:22 0:00 [nfsd4_callbacks] root 37872 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37873 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37874 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37875 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37876 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37877 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37878 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37879 0.0 0.0 0 0 ? S 17:22 0:00 [nfsd] root 37895 0.0 0.0 112680 972 pts/2 R+ 17:22 0:00 grep --color=auto nfs [root@fuwuduan ~]#
9.启动nfs后发现rpc.statd也自动启动了
[root@fuwuduan ~]# ps aux|grep rpc root 752 0.0 0.0 0 0 ? S< 2月19 0:00 [rpciod] rpc 37786 0.0 0.1 64952 1412 ? Ss 17:20 0:00 /sbin/rpcbind -w rpcuser 37852 0.0 0.1 44464 1828 ? Ss 17:22 0:00 /usr/sbin/rpc.statd root 37853 0.0 0.0 42560 948 ? Ss 17:22 0:00 /usr/sbin/rpc.mountd root 37854 0.0 0.0 21384 416 ? Ss 17:22 0:00 /usr/sbin/rpc.idmapd root 37939 0.0 0.0 112684 972 pts/2 R+ 17:23 0:00 grep --color=auto rpc [root@fuwuduan ~]#
10.设置开机启动
[root@fuwuduan ~]# systemctl enable nfs Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service. [root@fuwuduan ~]#