NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。 NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
NFS 存储 服务器主要用于用户上传的数据 ,图片 音频 、等信息
在这里插入图片描述
机器 web01 nfs01
软件 RPC 服务 :rpcbind(C 6 & C 7) portmap(C 5) nfs服务: nfs-utils
yum install -y nfs-utils rpcbind 安装成功后检查安装包 nfs01:
[15:32 root@nfs01 ~]# rpm -qa nfs-utils rpcbind rpcbind-0.2.0-47.el7.x86_64 nfs-utils-1.3.0-0.61.el7.x86_64web01
[15:32 root@web01 ~]# rpm -qa nfs-utils rpcbind nfs-utils-1.3.0-0.61.el7.x86_64 rpcbind-0.2.0-47.el7.x86_64systemctl restart rpcbind rpcinfo -p
[15:32 root@nfs01 ~]# systemctl start rpcbind.service [15:36 root@nfs01 ~]# #查看rpc服务里面的注册信息 [15:37 root@nfs01 ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmappersystemctl restart nfs rpcinfo -p
[15:37 root@nfs01 ~]# systemctl restart nfs [15:37 root@nfs01 ~]# #查看rpc服务里面的注册信息 [15:38 root@nfs01 ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 34623 status 100024 1 tcp 40441 status 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 39890 nlockmgr 100021 3 udp 39890 nlockmgr 100021 4 udp 39890 nlockmgr 100021 1 tcp 43375 nlockmgr 100021 3 tcp 43375 nlockmgr 100021 4 tcp 43375 nlockmgr名字映射后台进程 不管哪个用户进入nfs,都属于nfsnobody,在安装nfs时默认创建了这个用户
[15:45 root@nfs01 ~]# id nfsnobody uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)1.nfs配置文件/etc/exports
2.reload平滑重启,优雅重启 不中断当前正在处理的请求 影响新的请求 注意:nfs尽量不要使用restart重启 使用之后会卡住90s
3.检查放在具体信息 可以挂载什么 showmount -e
[5:50 root@nfs01 ~]# vim /etc/exports ▽ #share /upload /upload 172.16.1.0/24(rw) [15:55 root@nfs01 ~]# cat /etc/exports #share /upload /upload 172.16.1.0/24(rw) [15:55 root@nfs01 ~]# mkdir -p /upload [15:56 root@nfs01 ~]# chown nfsnobody.nfsnobody /upload/ [15:56 root@nfs01 ~]# systemctl reload nfs [15:56 root@nfs01 ~]# #检查 挂载信息 [15:56 root@nfs01 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /upload 172.16.1.0/24把nfs upload目录挂载到/video目录
1.启动rpc服务
2.启动nfs
[16:18 root@web01 ~]# systemctl restart nfs [16:18 root@web01 ~]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 省略....3.检查放在具体信息 可以挂载什么
[16:23 root@web01 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /upload 172.16.1.7/244.把nfs upload目录挂载到/video目录
[16:24 root@web01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 18G 9% / devtmpfs 980M 0 980M 0% /dev tmpfs 991M 0 991M 0% /dev/shm tmpfs 991M 9.6M 981M 1% /run tmpfs 991M 0 991M 0% /sys/fs/cgroup /dev/sda1 197M 105M 93M 54% /boot tmpfs 199M 0 199M 0% /run/user/0 [16:24 root@web01 ~]# mkdir /video \\创建video目录 [16:25 root@web01 ~]# mount -t nfs 172.16.1.31:/upload/ /video/ [16:25 root@web01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 18G 9% / devtmpfs 980M 0 980M 0% /dev tmpfs 991M 0 991M 0% /dev/shm tmpfs 991M 9.6M 981M 1% /run tmpfs 991M 0 991M 0% /sys/fs/cgroup /dev/sda1 197M 105M 93M 54% /boot tmpfs 199M 0 199M 0% /run/user/0 172.16.1.31:/upload 19G 1.7G 18G 9% /video配置文件中权限 /etc/exports Linxu服务端 共享目录权限 755 nfsnobody
在nfs01和web01创建指定的www虚拟用户
[17:44 root@nfs01 ~]# groupadd -g 888 www [17:44 root@nfs01 ~]# useradd -u 888 -g www -s /sbin/nologin -M www [17:45 root@nfs01 ~]# id www uid=888(www) gid=888(www) groups=888(www) [17:44 root@web01 ~]# groupadd -g 888 www [17:44 root@web01 ~]# useradd -u 888 -g www -s /sbin/nologin -M www [17:45 root@web01 ~]# id www uid=888(www) gid=888(www) groups=888(www)创建/nfs目录,并检查放在具体信息 可以挂载什么
[17:47 root@web01 ~]# mkdir -p /nfs [17:50 root@web01 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /nfs 172.16.1.0/24 /upload 172.16.1.0/24挂载完成后查看一下是否挂载成功
[17:53 root@web01 ~]# mount -t nfs 172.16.1.31:/nfs/ /mnt/ [17:54 root@web01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 18G 9% / devtmpfs 980M 0 980M 0% /dev tmpfs 991M 0 991M 0% /dev/shm tmpfs 991M 9.6M 981M 1% /run tmpfs 991M 0 991M 0% /sys/fs/cgroup /dev/sda1 197M 105M 93M 54% /boot 172.16.1.31:/upload 19G 1.7G 18G 9% /video tmpfs 199M 0 199M 0% /run/user/0 172.16.1.31:/nfs 19G 1.7G 18G 9% /mnt
实例:
[17:55 root@web01 ~]# egrep '/nfs|/video' /proc/mounts sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 nfsd /proc/fs/nfsd nfsd rw,relatime 0 0 172.16.1.31:/upload /video nfs4 rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0 172.16.1.31:/nfs /mnt nfs4 rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0exports tables nfs 服务端共享信息 实例:
[17:56 root@nfs01 ~]# cat /var/lib/nfs/etab /nfs 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=888,anongid=888,sec=sys,rw,secure,root_squash,all_squash) /upload 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)未完待续…