linux必学知识

网络文件共享nfs服务

2017-10-16  本文已影响0人  不知岁月惜

NFS服务

#NFS: Network File System 网络文件系统,基于内核的文件系统。 Sun公司开发,通过使用NFS,用户
和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC( RemoteProcedure Call Protocol远程
过程调用)实现
# RPC采用C/S模式。客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信
息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,
计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,
然后调用执行继续进行。
#NFS优势:节省本地存储空间,将常用的数据如: home目录,存放在一台NFS服务器上且可以通过网络访问,那么本地终端
将可以减少自身存储空间的使用
NFS服务介绍
软件包: nfs-utils
Kernel支持:nfs.ko
端口: 2049(nfsd), 其它端口由portmap(111)分配
配置文件: /etc/exports,/etc/exports.d/*.exports
CentOS7不支持同一目录同时用nfs和samba共享,因为使用锁机制不同
相关软件包:rpcbind(必须), tcp_wrappers
CentOS6开始portmap进程由rpcbind代替    设置为开机启动
CentOS6 rpcbind设置为开机启动  rpcbind先启动,nfs后启动
chkconfig nfs on  开机启动
日志: /var/lib/nfs/ 
NFS服务主要进程:
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
rpc.lockd 非必要,管理文件锁,避免同时写出错
rpc.statd 非必要,检查文件一致性,可修复文件
配置防火墙
配置防火墙,开放NFS服务      nfs一般是内部使用不配置防火墙
• 配置NFS使用固定端口
• vim /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
• 防火墙除开放上述端口,还需开放TCP和UDP的111rpcbind和2049nfs主服务端口
共4个端口

NFS配置文件

导出的文件系统的格式:
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)...
#开始为注释
 主机格式:
• 单个主机: ipv4, ipv6, FQDN
• IP networks:两种掩码格式均支持
172.18.0.0/255.255.0.0
172.18.0.0/16
• wildcards:主机名通配,例如*.linux.com, IP不可以
• netgroups: NIS域的主机组, @group_name
• anonymous:表示使用*通配所有客户端
每个条目指定目录导出到的哪些主机,及相关的权限和选项
• 默认选项: (ro,sync,root_squash,no_all_squash)
• ro,rw 只读和读写
• async 异步,数据变化后不立即写磁盘,性能高
• sync( 1.0.0后为默认)同步,数据在请求时立即写入共享
• no_all_squash (默认)保留共享文件的UID和GID
• all_squash 所有远程用户(包括root)都变成nfsnobody
• root_squash (默认)远程root映射为nfsnobody,UID为65534,早期版本是4294967294 (nfsnobody)
• no_root_squash 远程root映射成root用户
• anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nfsnobody,可配合all_squash使用
•anonuid=<UID>:指定匿名访问用户的本地用户UID,默认nfsnobody(65534);
•anongid=<GID>:指定匿名访问用户的本地用户组GID,默nfsnobody(65534);
•secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
•insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
•wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
•no_wdelay:若有写操作则立即执行,应与sync配合使用;
•subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
•no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

NFS相关命令

1、exportfs
不重启nfs服务应用更新,相关选项如下:
-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。

2、nfsstat
查看NFS的运行状态。
 
3、rpcinfo
查看rpc服务注册情况。
相关选项:
-p 显示所有的端口与程序信息。
示例:
rpcinfo -p localhost  #列出本机的RPC注册状况。

3、showmount
查询nfs共享目录信息,相关选项如下:
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
 
示例:
showmount -e localhost  #查询本机nfs共享目录情况
showmount -a localhost  #查询本机共享目录连接情况

NFS工具

rpcinfo
rpcinfo -p hostname
rpcinfo –s hostname 查看RPC注册程序 版本、协议
exportfs
–v 查看本机所有NFS共享
 –r 重读配置文件,并共享目录
–a 输出本机所有共享    恢复挂载
–au 停止本机所有共享  临时取消挂载
showmount -e hostname   客户端工具 可以查看远程主机有哪些nfs共享文件夹
mount.nfs 挂载工具
NFSv4支持通过挂载NFS服务器的共享“根”,从而浏览
NFS服务器上的共享目录列表
mount nfsserver:/ /mnt/nfs    默认只读共享 vers4版本    :/ 是挂载的根    伪根里面也可以创建目录信息,客户端上只能看到挂载信息

客户端NFS挂载

基于安全考虑,建议使用nosuid,nodev,noexec挂载选项
NFS相关的挂载选项:
fg(默认)前台挂载, bg后台挂载
hard(默认)持续请求, soft 非持续请求
intr 和hard配合,请求可中断
rsize和wsize 一次读和写数据最大字节数, rsize=32768
_netdev 无网络不挂载
示例:
mount -o rw,nosuid,fg,hard,intr 172.16.0.1:/testdir /mnt/nfs/
开机挂载:/etc/fstab
172.16.0.1:/public /mnt/nfs nfs defaults 0 0
自动挂载
可使用autofs按需要挂载NFS共享,在空闲时自动卸载
由autofs包提供
系统管理器指定由/etc/auto.master自动挂载器守护进程控制的挂载点
自动挂载监视器访问这些目录并按要求挂载文件系统
文件系统在失活的指定间隔5分钟后会自动卸载
为所有导出到网络中的NFS启用特殊匹配 -host 至“ browse”
参看帮助: man 5 autofs
支持含通配符的目录名
* server:/export/&
上一篇下一篇

猜你喜欢

热点阅读