NFS网络文件系统
思维导图:
1. NFS概述
1.1 两个核心组件
- NFS(Network File System),通过网络让不同主机系统之间可以彼此共享文件或目录
- RPC(Remote Procedure Call),远程过程调用 ,RPC服务会记录每个NFS功能所对应的端口
- 端口: 111/tcp, 111/udp
- 在NFS客户端请求时将该端口和功能对应的信息,传递给请求数据的NFS客户端,从而可以确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互数据的目的
1.2 工作图示
- 在启动NFS服务之前要启动RPC服务,它们之间共同配合才能完成NFS服务
2. NFS的安装
- 安装NFS和RPC服务
- yum install nfs-utils rpcbind -y
- 或者yum groupinstall "NFS file server" -y
- 启动顺序
- 先启动rpc,(systemctl start rpcbind.socket)
- 后启动nfs,(systemctl start nfs)
- 查看rpc服务的状态
- rpcinfo -p localhost
3. NFS的配置
3.1 配置文件
- 主配置文件
- /etc/exports
- /etc/exports.d/*
- NFS完整参数设定的配置文件
- /var/lib/nfs/etab
3.2 配置格式
- NFS共享的目录 客户端地址1(参数1,参数2 …) 客户端地址2(参数1,参数2 …)
3.3 配置参数
- 常规参数
- rw
- ro
- sync
- async
- secure
- 用户ID映射参数
- all_squash
- root_squash
- no_root_squash
- anonuid
- anongid
4. NFS的使用
4.1 基本命令
- rpcinfo
- -p
- showmount
- -e 显示NFS服务器输出的目录结构
- exportfs
- -r 重新导入
- -v 显示详细信息
- -o 临时的配置NFS参数(exportfs -o rw,sync,all_squash,anonuid=555,anongid=555 10.0.0.0/24:/hgzero_data)
4.2 在客户端挂载NFS
- mount -t nfs 10.0.0.201:/hg /mnt
- 直接挂载文件系统可能是写入不了文件的,需要考虑权限的问题
- 在Server端将该目录给777的权限
- 直接将属主和属组改成nfsnobody
- 在facl中定义nfsnobody对于该文件的权限
4.3 NFS挂载时的额外参数
- fg/bg
- hard/soft
- intr
- rsize/wsize
5. NFS的应用概述
- 2千万PV/天以下的都可以用NFS来搞定
- NFS数据是明文的,NFS对数据的完整性不做验证
- 客户端认证是基于IP和主机名的,权限是根据ID识别的,安全性一般,内网使用问题不大
- NFS服务端出现问题,所有NFS客户端都挂掉,耦合度太高
6. 思维导图