NFS Configuration
NFS配置
NETWOKR FILE SYSTEM
一、Server端配置
-
创建共享目录:
mkdir /opt/shared;
-
配置文件修改:
cat >> /etc/exports <<EOF #[shared_dir] [shared_ip] ([arguements]) /opt/shared 192.168.1.11/24(ro,sync,insecure,no_root_squash) EOF
-
重启服务:
service nfs restart;
二、Client端配置
-
创建共享目录:
mkdir /opt/shared;
-
挂载共享目录:
mount -t nfs 192.168.1.11:/opt/shared /opt/shared
三、附1:配置参数说明
#####
参数 | 说明 |
---|---|
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 |
四、附2:相关文件
- /etc/exports 主配置文件
- /var/lib/nfs nfs日志目录
- /usr/sbin/exportfs nfs文件系统维护命令
- /usr/sbin/showmount 查看nfs挂载信息
五、附3:相关进程
- rpc:远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。
- portmapper:负责分配rpc server的端口,并在client端请求时,负责响应目的rpc server端口返回给client端,工作在tcp与udp的111端口上。
- mountd:是nfs服务的认证服务的守护进程,client在收到返回的真正端口时,就会去连接mountd,认证取得令牌。
- nfsd:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户,工作在tcp和udp的2049端口。
- idmapd:是NFS的一个程序,用来负责远程client端创建文件后的权限问题。
- quotad:用用于实现磁盘配额,当client端挂载nfs后可以限制磁盘空间的大小。
六、附4:问题
- (ro,sync,insecure,no_all_squash) 这样配置会报错,必须加上no_root_squash才行,不知道为啥。
WRITE BY HARRY IN 2020-04-15