NFS介绍、服务端安装配置、NFS配置选项
6月21日任务
14.1 NFS介绍
14.2 NFS服务端安装配置
14.3 NFS配置选项
14.1 NFS介绍
14.2 NFS服务端安装配置
1、首先需要2台机器,一台是服务端,一台是客户端,分别安装nfs-utils。
服务端需要安装的程序
[root@jimmylinux-001 ~]# yum install -y nfs-utils rpcbind
客户端需要安装的程序
[root@jimmylinux-001 ~]# yum install -y nfs-utils
2、编辑文件 vim /etc/exports
[root@jimmylinux-001 ~]# vim /etc/exports
写入以下内容
/home/nfstestdir 192.168.52.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
前面一段是共享目录,后面一段定义你要给那个机器去分享共享这个目录,指定一个IP或IP段。
3、创建要分享的目录,并设置成777的权限,设置成777权限是为了方便一会做实验。
[root@jimmylinux-001 ~]# mkdir /home/nfstestdir
[root@jimmylinux-001 ~]# chmod 777 /home/nfstestdir
4、启动rpcbind 服务
[root@jimmylinux-001 ~]# systemctl start rpcbind
查看rpcbind 服务监听端口
[root@jimmylinux-001 ~]# 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:80 0.0.0.0:* LISTEN 1101/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 942/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1267/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1101/nginx: master
tcp6 0 0 :::111 :::* LISTEN 2572/rpcbind
tcp6 0 0 :::22 :::* LISTEN 942/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1267/master
tcp6 0 0 :::3306 :::* LISTEN 1315/mysqld
5、启动nfs服务,在启动nfs服务后会自动启动rpc相关的其他服务。
6、如果想让nfs服务开机自启动,还需要执行以下命令。
[root@jimmylinux-001 ~]# 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-001 ~]# cat /etc/exports
/home/nfstestdir 192.168.52.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) 括号里面是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-002 ~]# yum install -y nfs-utils
2、假如有一台机器已经做了nfs的服务,可以使用showmount查看是否有权限。
如果出现上面的报错,说明网络不通,没有办法和192.168.52.128的111端口通讯,要么是对方的rpcbind服务没有开启,如果服务开启了还不行,那就是防火墙的关系导致。
把服务端和客户端的防火墙都关闭,包括selinux。
[root@jimmylinux-001 ~]# systemctl stop firewalld 关闭服务端防火墙
[root@jimmylinux-001 ~]# setenforce 0
[root@jimmylinux-002 ~]# systemctl stop firewalld 关闭客户端防火墙
[root@jimmylinux-002 ~]# getenforce 关闭selinux
Enforcing
[root@jimmylinux-002 ~]# setenforce 0
这个时候再showmount 查看权限就可以了
3、mount 挂载
可以在这个目录下创建一个文件
为什么服务端和客户端2边的显示名字不一样呢?
因为在配置选项中有anonuid和anongid,而配置文件中有写了一个
anonuid=1000,anongid=1000(1000的id来限定一个普通用户)意思就是说一旦挂载了nfs共享的目录,不够用哪个用户来操作,最终都是以1000uid和1000gid的用户体现出来。
这个就是因为限定了用户,所以会显示成这样子的。