
1. 基础配置
修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。命令如下:
nfs-server节点:
[root@localhost ~]# hostnamectl set-hostname nfs-server
[root@localhost ~]# bash
nfs-client节点:
[root@localhost ~]# hostnamectl set-hostname nfs-client
[root@localhost ~]# bash
2. 安装NFS服务
nfs-client节点按照实战案例3.7中的方法配置YUM源。两个节点安装NFS服务。命令如下:
nfs-server节点:
[root@nfs-server ~]# yum install -y nfs-utils rpcbind
nfs-client节点:
[root@nfs-client ~]# yum install -y nfs-utils rpcbind
注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC。
3. NFS服务使用
在nfs-server节点创建一个用于共享的目录,命令如下:
[root@nfs-server ~]# mkdir /mnt/test
编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下:
[root@nfs-server ~]# vi /etc/exports
/mnt/test 192.168.131.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
生效配置,命令如下:
[root@nfs-server ~]# exportfs -r
配置文件说明:
l /mnt/test:为共享目录(若没有这个目录,请新建一个)。
l 192.168.200.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。
l rw:read-write,可读写。
l ro:read-only,只读。
l sync:文件同时写入硬盘和内存。
l async:文件暂存于内存,而不是直接写入内存。
l wdelay:延迟写操作。
l no_root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,也拥有root权限。显然开启这项是不安全的。
l root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,拥有匿名用户权限,通常它将使用nobody或nfsnobody身份。
l all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端共享的目录来说,都拥有匿名用户权限。
l anonuid:匿名用户的UID(User Identification,用户身份证明)值,可以在此处自行设定。
l anongid:匿名用户的GID(Group Identification,共享资源系统使用者的群体身份)值。
nfs-server端启动NFS服务,命令如下:
[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# systemctl start nfs
nfs-server端查看可挂载目录,命令如下:
[root@nfs-server ~]# showmount -e 192.168.131.40
可以查看到共享的目录。
转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭,命令如下:
[root@nfs-client ~]# setenforce 0
[root@nfs-client ~]# systemctl stop firewalld
在nfs-client节点,进行NFS共享目录的挂载,命令如下:
[root@nfs-client ~]# mount -t nfs 192.168.131.40:/mnt/test /mnt/
无提示信息则表示成功,查看挂载情况。命令如下:
[root@nfs-client ~]# df -h
可以看到nfs-server节点的/mnt/test目录已挂载到nfs-client节点的/mnt目录下。
4. 验证NFS共享存储
在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值,命令如下:
[root@nfs-client ~]# cd /mnt/
[root@nfs-client mnt]# ll
总用量 0
[root@nfs-client mnt]# touch abc.txt
[root@nfs-client mnt]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427e abc.txt
回到nfs-server节点进行验证,命令如下:
[root@nfs-server ~]# cd /mnt/test/
[root@nfs-server test]# ll
总用量 0
-rw-r--r--. 1 root root 0 10月 26 10:40 abc.txt
[root@nfs-server test]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427e abc.txt
可以发现,在client节点创建的文件和server节点的文件是一样的。