NFS服务配置超详细版
版权声明:原创作品,请勿转载!
本文使用linux(centos7.9)系统做演示,共3台服务器,分别是1c1g+20G,需提前配置好yum源
1.服务器规划
角色 | IP1 | IP2 | 主机名 |
NFS服务端 | 10.0.0.31/24 | 172.16.1.31 | nfs |
客户端1 | 10.0.0.7/24 | 172.16.1.7 | web01 |
客户端2 | 10.0.0.41/24 | 172.16.1.41 | backup |
2.配置
2.1 服务端配置
2.1.1 安装软件
[root@nfs01 ~]# yum install -y nfs-utils
Loaded plugins: fastestmirror
2.1.2 修改配置文件
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash)
2.1.3 创建数据目录,并更改属主属组
[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# ll /data
total 0
[root@nfs01 ~]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
[root@nfs01 ~]# ll -d /data
drwxr-xr-x. 2 root root 6 Mar 29 2024 /data
[root@nfs01 ~]# chown nfsnobody.nfsnobody /data
[root@nfs01 ~]# ll -d /data
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Mar 29 2024 /data
2.1.4 启动服务,开机自启
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
2.1.5 检查服务
[root@nfs01 ~]# cat /var/lib/nfs/etab
/data 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)
参数补充:
读写权限相关
rw:表示允许客户端对共享目录进行读写操作。数据同步相关
sync:要求NFS服务器在将数据写入磁盘后才返回操作成功的响应,这样可以保证数据的一致性,但会降低性能。
wdelay:如果有多个用户要写入NFS目录,会延迟写入,以提高写入效率。当使用async参数时,无需此设置。目录显示与挂载相关
hide:隐藏该共享目录的子目录,客户端无法直接访问子目录。
nocrossmnt:不允许客户端跨越挂载点进行访问,即只能访问共享目录本身,不能访问其挂载点之外的其他文件系统。安全相关
secure:要求NFS通过1024以下的安全TCP/IP端口发送数据,增强安全性。
root_squash:将客户端的root用户的所有请求映射成如anonymous用户一样的权限,避免客户端的root用户在共享目录上拥有过高的权限,增强系统安全性。
all_squash:将所有客户端用户的请求都映射成NFS服务器上的匿名用户(通常是nfsnobody)的权限,进一步增强安全性。
secure_locks:使用安全的文件锁机制,确保文件操作的并发安全性。
acl:启用访问控制列表,允许对共享目录进行更细粒度的权限控制。
no_pnfs:禁用并行NFS(Parallel NFS)功能,并行NFS可以提高大规模数据存储和访问的性能,但可能会带来一些兼容性问题,禁用它可以避免这些问题。用户映射相关
anonuid=65534:指定匿名用户的UID为65534,当使用all_squash参数时,客户端用户会被映射成该UID对应的用户。
anongid=65534:指定匿名用户的GID为65534,与anonuid配合使用,确保用户和组的映射一致。安全机制相关
sec=sys:指定使用系统级的安全机制进行身份验证和授权,这是NFS的一种常见安全机制。
2.2 客户端配置
2.2.1 安装软件
[root@web01 ~]# yum install -y nfs-utils
只需安装服务,不需要启动
2.2.2 识别服务端共享目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
2.2.3 客户端挂载目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt #临时挂载
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 18G 2.4G 16G 14% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 18G 2.4G 16G 14% /mnt[root@web01 ~]# vim /etc/fstab #写入永久挂载
[root@web01 ~]# cat /etc/fstab 172.16.1.31:/data /mnt nfs defaults 0 0
3.测试
[root@web01 ~]# cd /mnt
[root@web01 mnt]# ll
total 0
[root@web01 mnt]# touch test.txt
[root@web01 mnt]# ll test.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun 24 00:23 test.txt
[root@nfs01 ~]# ll /data/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun 24 00:23 test.txt
nfs服务就先介绍到这里啦~