什么是NFS?
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中 的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。其就相当于windows里面共享文件,然后其他主机把这个共享文件映射成了本地盘使用一样。 NFS一般用来存储共享视频,图片等静态数据
安装部署
两个服务器一个客户端,一个服务端
共享过去就覆盖了以前的东西
安装nfs-utils,rpcbind,提供NFS共享的服务为nfs,完成安装以后建议调整两个服务的自启动状态,以便每次开机后自动启动。手动加载NFS共享服务时,应该先启动rpcbind,然后在启动nfs。(因为NFS要向RPC注册端口信息)
服务端配置
1. yum install -y nfs-utils rpcbind
2. mkdir -p /data/share
3. chmod 666 /data/share
4. vim /etc/exports
/data/share 192.168.72.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
参数 说明
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async nfs 在写入数据前可以响应请求
secure nfs 通过 1024 以下的安全 TCP/IP 端口发送
insecure nfs 通过 1024 以上的端口发送
wdelay 如果多个用户要写入 nfs 目录,则归组写入(默认)
no_wdelay 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置
hide 在 nfs 共享目录中不共享其子目录
no_hide 共享 nfs 目录的子目录
subtree_check 如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check 不检查父目录权限
all_squash 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录
no_all_squash 保留共享文件的 UID 和 GID(默认)
root_squash root 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squash root 用户具有根目录的完全管理访问权限
anonuid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID
anongid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID
启动nfs
1. systemctl start rpcbind(先启动)
2. systemctl start nfs
3. $ showmount -e localhost
Export list for localhost:
/data/share 192.168.72.0/24
客服端配置
yum -y install nfs-utils
mkdir -p /share
mount 192.168.72.128:/data/share /share(挂载)
[root@localhost share]# df -h | grep 192.168.72.128
192.168.72.128:/data/share 17G 4.5G 13G 26% /share
最后在服务端的/data/share目录下创建文件,在客户端/share/下就能访问到