
NFS服务介绍、NFS自动挂载
发布日期:2021-05-08 05:15:13
浏览次数:24
分类:精选文章
本文共 2145 字,大约阅读时间需要 7 分钟。
NFS即网络文件系统,是一种基于内核的文件系统,由Sun公司开发。NFS允许用户像访问本地文件一样,通过网络访问远端服务器上的文件资源,其核心技术实现依托于RPC(远程过程调用协议)。RPC采用客户端-服务器模式工作机制,客户端向服务器发送带有进程参数的调用信息,服务器进程保持睡眠直到接收到调用信息,随后计算结果并返回答复信息供客户端接收。这种方式实现了远程文件访问的高效性和灵活性。
NFS具有显著的优势,主要体现在存储资源优化上。通过将常用数据(如home目录)存放在NFS服务器上,终端设备可以显著减少本地存储空间占用。
在软件安装与配置方面,NFS服务依赖以下关键组件:
- 软件包:nfs-utils
- 内核支持:nfs.ko
- 端口:2049(nfsd),其他端口由portmap(111)动态分配
- 配置文件:/etc/exports 和 /etc/exports.d/*.exports
需要注意的是,CentOS7不支持同一目录同时使用NFS和Samba进行共享,这与两者不同的锁机制有关。
NFS服务运行的关键进程包括:
- rpc.nfsd:管理客户端的挂载权限
- rpc.mountd:负责挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd(非必要):管理文件锁,防止并发写入冲突
- rpc.statd(非必要):检查文件一致性,支持文件修复
NFS日志存储路径为:/var/lib/nfs/
在网络防护方面,建议对NFS服务进行防火墙管理,开放相关端口:
- 固定端口:配置NFS使用固定端口
- 防火墙规则:开放TCP和UDP端口2049、111等共计4个端口
- 配置文件:vim /etc/sysconfig/nfs,设置相关参数
- RQUOTAD_PORT=875
- LOCKD_TCPPORT=32803
- LOCKD_UDPPORT=32769
- MOUNTD_PORT=892
- STATD_PORT=662
- STATD_OUTGOING_PORT=2020
文件系统导出格式遵循特定规则:
- 导出文件系统:/dir 主机1(opt1,opt2) 主机2(opt1,opt2)...
- 主机格式:
- 单个主机:IP地址、IPv6地址、主机名(可选FQDN)
- IP网络:支持两种掩码格式
- 通配:支持主机名通配(如*.magedu.com),不支持IP通配
- 网络组:NIS域内主机组(@group_name)
- 匿名访问:使用*通配所有客户端
- 默认选项:(ro,sync,root_squash,no_all_squash)
权限管理选项:
- 读写权限:ro(只读)、rw(读写)
- 同步机制:async(数据写入不立即同步) vs. sync(数据同步立即写入)
- 用户映射:root_squash(远程root映射为nfsnobody) vs. no_root_squash(保留远程root权限)
- 匿名用户:anonuid和anongid,可结合all_squash使用
配置示例如下:
vim /etc/exports.d/a.exports/nfsroot www.test.com/nfsroot *.test.com/nfsroot 192.168.1.10(rw)
vim /etc/exports.d/a.exports/nfsroot 192.168.1.11(rw,anonuid=1000,anongid=1000,all_squash)
配置完成后可通过 exporfs -r
重新加载配置,无需重启服务。
挂载选项建议:
- 安全选项:nosuid、nodev、noexec
- 挂载模式:fg(前台) vs. bg(后台)
- 挂载策略:hard(持续请求) vs. soft(非持续请求)
- 请求中断:intr和hard配合使用
- 数据传输大小:默认为32768字节,可自定义rsize和wsize
- 网络挂载:_netdev选项可用于无网络环境
示例挂载命令:
mount -o rw,nosuid,fg,hard,intr 192.168.1.11:/testdir /mnt/nfs/
在系统启动时,可将NFS共享添加至/etc/fstab:
192.168.1.11:/public /mnt/nfs nfs defaults 0 0
关于NFS自动挂载,autofs包可实现按需挂载和自动卸载的功能。通过配置/etc/auto.master文件,指定挂载点由autofs守护进程管理。文件系统在失活时自动卸载,间隔时间可配置为5分钟。NFS共享可通过特殊匹配规则(如 -host "*.example.com")启用浏览功能。
注意事项:
- 相对路径:如使用相对路径可能导致覆盖问题,建议使用绝对路径
- 自动挂载优化:如需仅挂载特定子目录,可参考以下示例:
mkdir -p /mnt/nfs/test/dir1vim /etc/dir1
或使用绝对路径:
vim /etc/auto.nfs
示例配置:
/data/nfs -fstype=nfs,rw 192.168.1.11:/data/nfsdir
通过以上配置和管理,可以实现NFS服务的高效、安全和易用性。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月25日 13时49分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C语言的数值溢出问题(上)
2019-03-05
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2019-03-05
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05
聊聊我的五一小假期
2019-03-05
数据库三个级别封锁协议
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2019-03-05
SLAM学习笔记-求解视觉SLAM问题
2021-05-08
普歌-允异团队-HashMap面试题
2021-05-08
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2021-05-08
程序员应该知道的97件事
2021-05-08
create-react-app路由的实现原理
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
Android数据库
2021-05-08
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2021-05-08