day18---nfs网络文件系统(ob06)

一、NFS介绍

NFS是Network File System的缩写,它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件或目录。
NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。
在本地NFS客户端的机器看来,NFS服务器端共享的目录就好象是自己的磁盘分区或者目录一样。

在这里插入图片描述
在这里插入图片描述

1.1 RPC (remote procedure call 远程过程调用)

在这里插入图片描述
以上描述整个启动过程如下图所示: NFS工作原理简图
在这里插入图片描述

二、NFS Server端设置

centos 7 ,其中centos7中的已经将portmap名字改成rpcbind了。因为centos7自带了rpcbind,所以不用安装rpc服务。 端口111,rpcbind
192.168.26.136 服务端 Server
192.168.26.137 客户端Client
部署NFS服务,要安装下面两个软件包:

1、nfs-utils:NFS主程序
2、portmap:RPC主程序
yum install nfs-utils -y

2.1 先启动portmap服务 (rpcbind)

systemctl start rpcbind
systemctl status rpcbind
ss -naltp | grep rpc
lsof -i:111

2.2 开启nfs服务

systemctl start nfs
systemctl status nfs
systemctl enable nfs

2.3 修改NFS配置文件 /etc/exports

生产环境场景配置:
在这里插入图片描述
NFS配置权限设置
在这里插入图片描述

在这里插入图片描述

三、NFS配置实例

实例一、共享/oldboy目录给192.168.26.0/24整个网段的读写

在这里插入图片描述
服务端26.136操作:

systemctl start nfs
systemctl start rpcbind
mkdir -p /oldboy && cd /oldboy && touch {
    
    1..3}.txt && mkdir test1

vim /etc/exports
/oldboy 192.168.26.0/24(rw,sync)

exportfs -r

客户端26.137操作:

[root@memcache137 ~]# showmount -e 192.168.26.136
Export list for 192.168.26.136:
/oldboy 192.168.26.0/24

umount -lf /mnt/
#挂载nfs
mount -t nfs 192.168.26.136:/oldboy /mnt
df -h

在这里插入图片描述
此时136的 /oldboy目录权限是755, drwxr-xr-x 3 root root 67 Mar 16 17:37 oldboy 。
客户端此时无法创建文件的,会出现permission denied 。可以oldboy目录给777权限,但是不推荐这种操作。

[root@lb-136 oldboy] cat /var/lib/nfs/etab
/oldboy 192.168.26.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

cat /var/lib/nfs/rmtab

注意事项

在这里插入图片描述

https://blog.csdn.net/weixin_33826609/article/details/89822811
《开机挂载mount etc/fstab与/etc/rc.d/rc.local区别》

二、实操例子

2.1考试题九:

实现当多台客户端同时挂一台NFS SERVER时,无论从哪个客户端写入数据,其它客户端同样也可以读写,即让所有nfs 客户端写入到Nfs Server 的文件或目录在NfsServer上的用户和组都是同一个名称oldboy。请给出操作步骤,并加以说明。

[root@lb-136 ~]# cat /var/lib/nfs/etab
/oldboy 192.168.26.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
grep nfsnobody /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

无论什么版本的系统,nfs服务默认配置里匿名用户的uid和gid都是65534anonuid=65534,anongid=65534

方法1:

# 尽量不用777权限,因为权限过大
chmod 777 /oldboy/
这时候客户端是可以任意删除/新增文件的。创建出来的用户,用户组是nfsnobody

在这里插入图片描述

方法2:

136服务端操作: (该方法在32bit系统中有效, 64bit也行)

cat /etc/exports
/oldboy 192.168.26.0/24(rw,sync,all_squash)

chown -R nfsnobody /oldboy/
chown 755 /oldboy
/etc/init.d/nfs reload

[root@lb-136 /]# chown -R nfsnobody /oldboy
[root@lb-136 /]# ll -ld /oldboy/
drw-r--r-- 4 nfsnobody root 93 Mar 19 15:23 /oldboy/

在这里插入图片描述

万能方法:

groupadd oldboy -g 1207
useradd oldboy -u 1207 -g oldboy
chown -R oldboy /oldboy

cat /etc/exports
/oldboy 192.168.26.0/24(rw,sync,all_squash,anonuid=1207,anongid=1207)
systemctl restart nfs

#客户端挂载:
mount -t nfs 192.168.26.136:/oldboy /mnt

在这里插入图片描述

2.2 NFS客户端mount挂载参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
增加NFS健壮性:
在这里插入图片描述

优化NFS配置:
在这里插入图片描述
在这里插入图片描述

2.3 nfs server挂了, nfs client会出问题(df -h窗口会死掉)

处理方法1:

umount -lf /mnt

处理方法2:
客户端在挂载时,加上上面说的优化参数hard,intr , 这样服务端那边挂了,客户端执行df -h只会死掉几秒,会有个超时时间,中断操作。
在这里插入图片描述

mount -t nfs -o rw,hard,intr 192.168.26.136:/oldboy /mnt

NFS的局限:
在这里插入图片描述
在这里插入图片描述

NFS Server端的防火墙设置

iptables -A INPUT -i eth1 tcp -s 10.0.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth1 udp -s 10.0.0.0/24 --doirt 111 -j ACCEPT

3、exportfs命令

exportfs语法:
在这里插入图片描述

停止输出所有目录:

exportfs -auv

启用所有目录

exportfs -rv

在这里插入图片描述

exportfs -o rw,sync,all_squash 192.168.1.0/24:/ex

在这里插入图片描述

END
2021年3月25日09:10:01 实属懒狗了

猜你喜欢

转载自blog.csdn.net/Nightwish5/article/details/114869078