NFS: 网络文件系统(netwok file system)
提供网络文件系统平台, 需要借助 RPC(远程过程调用)协议来发送文件传输的控制指令.
发布时间: 1984
公司: SUN 公司. 典型产品有 JAVA.SUN 公司被 Oracle 公司收购
NFS 软件:
nfs-utils,rpcbind
注意: 如果是安装了 CentOS 桌面环境, 这两个软件包都已经安装好了.
如果是安装了 CentOS 最小环境, 需要手动安装这两个软件包.
NSF 部署:(网络部署的通用部署)
0. 关闭安全功能, 并查状态:
1. 查软件是否已安装, 如果未安装就安装软件.
2. 启动服务, 并允许开机自动启动
3. 设置共享目录, 重新加载设置.
4. 做本地 (内测) 访问测试, 做异地 (公测) 访问测试.
关闭网络安全
- systemctl stop firewalld ; setenforce 0
- systemctl status firewalld ; getenforce
NFS 安装
查看是否安装: rpm -q nfs-utils rpcbind
安装: yum install -y nfs-utils rpcbind
查看软件的文件列表: rpm -qll nfs-utils
查配置文件列表: rpm -qc nfs-utils
NFS 服务管理
重启服务: systemctl restart nfs rpcbind
允许启动自动启动: systemctl enable nfs rpcbind
查看服务状态: systemctl status nfs rpcbind
共享需要的文件 (通过修改 / etc/exports 共享配置文件来实现.)
exports 配置文件语法如下: man exports 查帮助中的 EXAMPLE 例子.
VIM /etc/exports
共享目录的绝对路径 1 号客户主机名或 IP(共享选项) n 号客户主机名或 IP(共享选项)
- /usr (ro) 192.168.11.13(rw)
- /opt(rw,no_root_squash) 192.168.11.0/24(rw)
共享选项:
ro (常用选项)可读 ReadOnly
rw (常用选项)可读可写 read + write
sync (常用选项)同步传输
async (常用选项)异步传输
no_root_squash (常用选项)不将 root 映射成 nfsnobody 匿名用户, 即让 root 用自己的身份和权限访问共享
no_all_squash (默认启用)不将所有用户映射成 nfsnobody 匿名用户, 即让所有用户用自己的身份和权限访问共享
root_squash 将 root 映射成 nfsnobody 匿名用户(默认启用)
all_squash 将所有用户映射成 nfsnobody 匿名用户
anonuid 匿名用户的 uid 号
anongid 匿名用户的 gid 号
nfs 的其他配置文件:(仅了解一下, 无需修改)
cat /var/lib/nfs/etab 记录 nfs 共享的完整设置选择, 此文件的内容来源于 / etc/exports 文件. 当重启 nfs 服务时, 会自动更新 etab 文件内容.
平滑重启 nfs 服务: exportfs -rav 或 systemctl reload nfs(重加载, 不会影响到其他用户)
exportfs 命令选项: man exportfs
-r 重新共享所有目录
-a 打开或取消所有目录共享.
-v 输出详细信息. 当共享或者取消共享时, 显示在做什么.
-f 在 "新" 模式下, 刷新内核共享表之外的任何东西.
本地 (内测) 查询共享资源列表: showmount -e 127.0.0.1
showmount 选项: man showmount
-a 或 --all 以 host:dir 这样的格式来显示客户主机名和挂载点目录.
-d 或 --directories 仅显示被客户挂载的目录名.
-e 或 --exports 显示 NFS 服务器的输出清单.
异地 (公测) 做挂载访问测试: showmount -e 127.0.0.1
本地 (内测) 查询共享资源列表:
创建挂载点: mkdir -pv /mynfs
挂载: mount -t nfs 192.168.11.11:/usr /mynsf
查磁盘空间使用状态: df -hT
在 Win7/10 中访问 NFS 共享:
1. 安装 nfs 客户端 (client) 程序.
运行 Win+R-->control 控制面板 -->程序 -->打开或关闭 Windows 功能 -->NFS 服务 -->勾选 "NFS 客户端"-->确定.
2. 运行 Win+R-->cmd-->输入如下命令.
查共享资源列表: showmount -e 192.168.11.11
挂载共享资源为 K 盘: mount 192.168.11.11:/usr k:
打开共享: win+E--->双击 K 盘图标
注意:[root@node01 ~]# showmount
clnt_create: RPC: Program not registered
由于网络原因 nfs 服务被中断, 重新开启 nfs 服务然后在客户端重新 mount
解决方案就是: systemctl restart nfs
service nfs restart 或 /etc/rc.d/init.d/nfs restart 亦可
附加操作 1: 卸载共享的 k 盘: 右击 K 盘图标 --->断开
附加操作 2: 查看 touch 后的 a.txt 权限如下:
-rw-r--r--. 1 nfsnobody nfsnobody 0 1 月 21 10:49 a.txt
说明: a.txt 的属主, 属组均为 nfsnobody 匿名用户账号.
文件共享权限要考虑的 2 个要素:
1. 用户对目录自身的访问权限.
2. 目录做共享时设置的访问权限.
警告: 用户访问共享时想可读可写, 必须是以上两个权限都为可读可写.
来源: http://www.bubuko.com/infodetail-2932974.html