介绍
NFS(Network File System)是一种网络文件系统,主要具有以下特点:
允许网络中的计算机之间通过TCP/IP网络共享文件。
可以透明地让不同操作系统的机器访问同一个文件系统。
用户可以像访问本地文件一样访问远程NFS服务器上的文件。
NFS主要由两个组件构成:NFS服务器端与NFS客户端。
服务器端负责共享文件系统、控制权限,客户端负责访问服务器端的资源。
主要协议是NFSv3和NFSv4,基于RPC工作。
支持不同客户端并发访问、文件锁、权限控制等。
性能稳定,通常用于数据共享。
主要应用在异构操作系统间共享文件,或者数据中心与分支机构之间共享数据。
也可用于Kubernetes集群中不同节点间共享文件存储。
NFS是一个成熟、高效、安全的网络文件共享服务,使得异构系统能透明地访问共享数据。但需要注意配置访问权限控制。
安装
yum -y install rpcbind nfs-utils.x86_64
yum -y install表示使用 yum 命令安装软件包,-y 参数表示自动回答 yes 不需要确认。
需要安装的包是:
rpcbind:提供 NFS 远程调用服务的守护进程,NFS 客户端需要依赖该服务。
nfs-utils:NFS 实用工具,包含 NFS 挂载需要的命令如 showmount、mount.nfs 等。
所以这条命令安装的包是:
rpcbind - NFS 远程调用服务
nfs-utils - NFS 客户端和工具
安装这两个包就可以让系统获得访问 NFS 共享目录的能力。
之后还需要将 NFS 主机的共享目录挂载到本地生成挂载点。
配置
定义共享目录
vim /etc/exports
这行打开 NFS 配置文件 /etc/exports 进行编辑。
/nfsdata *(rw,no_root_squash)
这行在配置文件中定义了一个共享目录 /nfsdata,主要参数说明如下:
/nfsdata:表示要共享出去的服务器目录
*:表示允许所有客户端访问这个共享目录,可以替换为指定的客户端,或者指定网段
rw:表示这个共享目录对客户端是可读写的
no_root_squash:允许客户端使用 root 用户访问共享目录,不会降级权限
所以这两行命令的效果就是配置了一个对所有客户端开放的可读写的 /nfsdata 共享目录,并允许 root 权限访问。
NFS共享目录在/etc/exports文件的配置中,括号里的参数还可以包括:
async:设置为异步模式,提高性能。
sync:设置为同步模式,更安全可靠。
secure:要求访问使用安全NFS。
insecure:允许客户端不使用端口映射访问。
wdelay:检查写入权限的延迟时间。
nohide:共享隐藏文件。
subtree_check:检查子目录权限。
no_subtree_check:不检查子目录权限。
anonuid/anongid:匿名用户的UID/GID。
all_squash:所有访问用户映射为匿名用户。
创建
如果定义的共享目录不存在,请在启动服务前创建目录
mkdir /nfsdata
启动
systemctl enable rpcbind --now
systemctl enable nfs --now
启动和设置 NFS 服务开机启动
rpcbind 服务是 NFS 的重要依赖,提供了远程调用服务,必须启动该服务。
nfs服务是NFS服务器进程 itself,提供文件共享服务。
--now 参数表示启动服务, enable 参数表示设置服务开机自动启动。
所以这两条命令的效果是:
启动 rpcbind 服务
设置 rpcbind 开机启动
启动 nfs 服务
设置 nfs 开机启动
这样就可以启动 NFS 服务器的服务,并在重启后自动运行。
NFS SERVER 就配置完成了,之后客户端可以挂载共享目录进行访问。
客户端
安装
客户端也需要安装才可以访问挂载
yum -y install rpcbind nfs-utils.x86_64
查看
查看nfs服务器共享的目录
showmount -e "nfs服务器IP"
[root@localhost ~]# showmount -e 192.168.9.9
Export list for 192.168.9.9:
/nfsdata *
挂载
mount -t nfs "nfs服务器地址":"共享目录: "要挂载到客户端本机的那个目录"
[root@localhost ~]# mount -t nfs 192.168.9.9:/nfsdata /opt/