NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法, 使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需在unix-like和windows系统之间共享,那就需要samba了。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。NFS服务器监听portmap端口udp和tcp 111、nfsd端口udp和tcp 2049、手动指定mountd端口udp和tcp xxx,那就需要在本地防火墙允许这些端口访问
- 一 . 配置 NFS 服务器
- 安装nfs-utils
[root@localhost ~]# dnf -y install nfs-utils
==============================================================================================================================================================================================================================================================================
软件包 架构 版本 仓库 大小
==============================================================================================================================================================================================================================================================================
安装:
nfs-utils x86_64 1:2.3.3-59.el8 rhel-8-baseos-rpms 515 k
安装依赖关系:
gssproxy x86_64 0.8.0-21.el8 rhel-8-baseos-rpms 119 k
keyutils x86_64 1.5.10-9.el8 rhel-8-baseos-rpms 66 k
libev x86_64 4.24-6.el8 rhel-8-appstream-rpms 52 k
libverto-libev x86_64 0.3.2-2.el8 rhel-8-appstream-rpms 16 k
事务概要
================================================================================================================================================================================================================
安装 5 软件包
=============================
总下载:769 k
安装大小:2.0 M
下载软件包:
(1/5): keyutils-1.5.10-9.el8.x86_64.rpm 14 MB/s | 66 kB 00:00
=============================
总计 62 MB/s | 769 kB 00:00
运行事务
准备中 : 1/1
安装 : libev-4.24-6.el8.x86_64 =============================
5/5
运行脚本: nfs-utils-1:2.3.3-59.el8.x86_64 5/5
验证 : gssproxy-0.8.0-21.el8.x86_64
5/5
已更新安装的产品。
已安装:
gssproxy-0.8.0-21.el8.x86_64 keyutils-1.5.10-9.el8.x86_64 libev-4.24-6.el8.x86_64 libverto-libev-0.3.2-2.el8.x86_64 nfs-utils-1:2.3.3-59.el8.x86_64
完毕!
- 配置nfs目录
[root@localhost ~]# cat /etc/exports
/home/nfsshare * (rw,no_root_squash)
[root@localhost ~]# mkdir -p /home/nfsshare
3.开机自启动服务
[root@localhost ~]# systemctl enable --now rpcbind nfs-server
查看服务状态
[root@localhost ~]# systemctl status rpcbind nfs-server
● rpcbind.service - RPC Bind
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-10-29 10:09:02 EDT; 15min ago
Docs: man:rpcbind(8)
Main PID: 27534 (rpcbind)
Tasks: 1 (limit: 26213)
Memory: 984.0K
CGroup: /system.slice/rpcbind.service
└─27534 /usr/bin/rpcbind -w -f
10月 29 10:09:02 localhost.localdomain systemd[1]: Starting RPC Bind...
10月 29 10:09:02 localhost.localdomain systemd[1]: Started RPC Bind.
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Tue 2024-10-29 10:09:02 EDT; 15min ago
Main PID: 27564 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 26213)
Memory: 0B
CGroup: /system.slice/nfs-server.service
10月 29 10:09:02 localhost.localdomain systemd[1]: Starting NFS server and services...
10月 29 10:09:02 localhost.localdomain exportfs[27548]: exportfs: /etc/exports:1: unknown keyword "(rw"
10月 29 10:09:02 localhost.localdomain systemd[1]: Started NFS server and services
/etc/exports 中条目的默认选项
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
- 二 . 配置 NFS 客户端以在 NFS 客户端上挂载 NFS 共享
安装nfsnfs-utils
[root@rhel8 ~]# yum -y install nfs-utils
测试是否可以访问nfs目录
[root@rhel8 ~]# showmount -e 10.255.xxx.xxx
Export list for 10.255.xxx.xxx:
/home/nfsshare *
挂载nfs目录
[root@rhel8 ~]# mount -t nfs 10.255.xxx.xxx:/home/nfsshare /mnt/
[root@rhel8 ~]#
查看挂载
[root@rhel8 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 1.5M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/VolGroup-lv_root 50G 39G 8.5G 82% /
/dev/mapper/VolGroup-lv_home 41G 24K 39G 1% /home
/dev/sda1 474M 221M 225M 50% /boot
tmpfs 1.6G 12K 1.6G 1% /run/user/42
tmpfs 1.6G 4.0K 1.6G 1% /run/user/0
10.255.xxx.xxx:/home/nfsshare 100G 789M 100G 1% /mnt
关注小张的知识杂货铺,让我们一起学习一起进步