NFS介绍、服务端安装配置、NFS配置选项

时间:2021-10-19 13:00:38

6月21日任务

14.1 NFS介绍
14.2 NFS服务端安装配置
14.3 NFS配置选项

14.1 NFS介绍

NFS介绍、服务端安装配置、NFS配置选项

NFS介绍、服务端安装配置、NFS配置选项

NFS介绍、服务端安装配置、NFS配置选项

14.2 NFS服务端安装配置

1、首先需要2台机器,一台是服务端,一台是客户端,分别安装nfs-utils。

服务端需要安装的程序

[root@jimmylinux- ~]# yum install -y nfs-utils rpcbind

客户端需要安装的程序

[root@jimmylinux- ~]# yum install -y nfs-utils

2、编辑文件 vim /etc/exports

[root@jimmylinux- ~]# vim /etc/exports

写入以下内容
/home/nfstestdir 192.168.52.0/(rw,sync,all_squash,anonuid=,anongid=) 前面一段是共享目录,后面一段定义你要给那个机器去分享共享这个目录,指定一个IP或IP段。

3、创建要分享的目录,并设置成777的权限,设置成777权限是为了方便一会做实验。

[root@jimmylinux- ~]# mkdir /home/nfstestdir

[root@jimmylinux- ~]# chmod  /home/nfstestdir

4、启动rpcbind 服务

[root@jimmylinux- ~]# systemctl start rpcbind

查看rpcbind 服务监听端口

[root@jimmylinux- ~]# netstat -lnpt
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 2572/rpcbind
tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
tcp6 ::: :::* LISTEN /rpcbind
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master
tcp6 ::: :::* LISTEN /mysqld

5、启动nfs服务,在启动nfs服务后会自动启动rpc相关的其他服务。

NFS介绍、服务端安装配置、NFS配置选项

6、如果想让nfs服务开机自启动,还需要执行以下命令。

[root@jimmylinux- ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

14.3 NFS配置选项

[root@jimmylinux- ~]# cat /etc/exports
/home/nfstestdir 192.168.52.0/(rw,sync,all_squash,anonuid=,anongid=) 括号里面是nfs的配置选项内容

NFS配置选项的含义:

rw   读写
ro   只读
sync                        同步模式,内存数据实时写入磁盘(sync很快的就会把数据写到磁盘去,但是不好之处就会降低磁盘效率)
async                      非同步模式(不需要实时把数据写入到磁盘,每隔一段时间会把内存数据刷入到磁盘,好处是可以保障磁盘效率,不好就是万一断电,数据可能会丢失)
no_root_squash     客户端挂载NFS共享目录后,root用户不受约束,权限很大
root_squash           与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
all_squash              客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
anonuid/anongid    和上面几个选项搭配使用,定义被限定用户的uid和gid

下面在客户端上做一个挂载

1、安装rpcbind,rpcbind包是由nfs-utils自带的包一起安装的。

[root@jimmylinux- ~]# yum install -y nfs-utils

2、假如有一台机器已经做了nfs的服务,可以使用showmount查看是否有权限。

NFS介绍、服务端安装配置、NFS配置选项

如果出现上面的报错,说明网络不通,没有办法和192.168.52.128的111端口通讯,要么是对方的rpcbind服务没有开启,如果服务开启了还不行,那就是防火墙的关系导致。

把服务端和客户端的防火墙都关闭,包括selinux。

[root@jimmylinux- ~]# systemctl stop firewalld  关闭服务端防火墙

[root@jimmylinux-001 ~]# setenforce 0

[root@jimmylinux- ~]# systemctl stop firewalld 关闭客户端防火墙 [root@jimmylinux- ~]# getenforce 关闭selinux
Enforcing
[root@jimmylinux-002 ~]# setenforce 0

这个时候再showmount 查看权限就可以了

NFS介绍、服务端安装配置、NFS配置选项

3、mount 挂载

NFS介绍、服务端安装配置、NFS配置选项

可以在这个目录下创建一个文件

NFS介绍、服务端安装配置、NFS配置选项

NFS介绍、服务端安装配置、NFS配置选项

为什么服务端和客户端2边的显示名字不一样呢?

因为在配置选项中有anonuid和anongid,而配置文件中有写了一个

anonuid=1000,anongid=1000(1000的id来限定一个普通用户)意思就是说一旦挂载了nfs共享的目录,不够用哪个用户来操作,最终都是以1000uid和1000gid的用户体现出来。

NFS介绍、服务端安装配置、NFS配置选项NFS介绍、服务端安装配置、NFS配置选项

这个就是因为限定了用户,所以会显示成这样子的。