NFS网络文件系统是一种用于在linux系统中共享资源的服务软件。
特点:
CentOS8中默认安装了nfs-utils
软件包。
步骤:
[root@MyCentOS home]# mkdir nfs_database
[root@MyCentOS home]# chmod 777 nfs_database
[root@MyCentOS home]# cd nfs_database/
[root@MyCentOS nfs_database]# ll
总用量 0
[root@MyCentOS nfs_database]# echo "this is nfs database test !!" > nfs_test.txt
echo "this is nfs database test ll" > nfs_test.txt
NFS配置文件中默认没有任何内容。
定义要共享的目录与相应权限格式:
共享文件路径 允许访问的NFS客户端
配置文件路径/etc/exports
---------------------------------------------------------NFS配置文件参数-------------------------------------------------------
参数 | 作用 |
---|---|
ro | 只读(read only) |
rw | 读写(read write) |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能丢失数据 |
/home/nfs_database 192.168.127.* (rw,async,root_squash) 《《《允许该IP地址范围内的所有主机访问NFS共享资源文件夹
在使用NFS服务之前,首先需要调用RPC服务程序将NFS服务器IP地址和端口号信息发送给客户端。
步骤:
[root@MyCentOS home]# systemctl restart rpcbind
[root@MyCentOS home]# systemctl enable rpcbind
[root@MyCentOS home]# systemctl start nfs-server
[root@MyCentOS home]# systemctl enable nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
在完成上述配置之后,一定要注意查看当下防火墙和SELinux安全上下文
每当部署一个服务之后一定要将该服务添加到防火墙中进行放行。部署nfs服务不仅需要nfs
服务软件包,还需要rpc-bind
服务和mountd
服务。因为nfs服务需要向客户端广播地址和端口信息,nfs客户端需要使用mount对远程nfs服务器目录进行挂载。
十分重要:
在向防火墙添加服务后一定要使用firewall-cmd --reload进行更新
[root@MyCentOS home]# firewall-cmd --permanent --zone=internal --add-service=nfs
success
[root@MyCentOS home]# firewall-cmd --permanent --zone=internal --add-service=rpc-bind
success
[root@MyCentOS home]# firewall-cmd --permanent --zone=internal --add-service=mountd
success
[root@MyCentOS home]# firewall-cmd --reload
success
使用showmount
命令查询NFS服务器共享信息
输出格式: 共享目录名称 允许使用的客户端地址
--------------------------------------------------------showmount参数----------------------------------------------------------
参数 | 作用 |
---|---|
-e | 显示NFS服务器共享列表 |
-a | 显示本地挂载的文件资源情况 |
-v | 显示版本号 |
在linux系统中部署nfs客户端,另以linux系统是Ubuntu系统。
root@ubuntu:~# apt-get install nfs-common
root@ubuntu:~# showmount -e 192.168.127.200
Export list for 192.168.127.200:
/home/nfs_database (everyone)
root@ubuntu:~# mkdir nfs_database
root@ubuntu:~# mount -t nfs 192.168.127.200:/home/nfs_database nfs_database
释义:
fstab
文件中192.168.127.200:/home/nfs_database /nfs_database nfs defaults 0 0
root@ubuntu:~# cd nfs_database/
root@ubuntu:~/nfs_database# ll
total 8
drwxrwxrwx 2 root root 26 8月 14 15:49 ./
drwx------ 6 root root 4096 8月 14 19:44 ../
-rw-r--r-- 1 root root 29 8月 14 15:49 nfs_test.txt
root@ubuntu:~/nfs_database# cat nfs_test.txt
this is nfs database test created by CentOS8 !!
bingo ! ! ! ! ! !