文件共享服务之NFS的配置与应用

简介:
NFS  service  是使不同的计算机之间能通过网络进行文件共享的一种网络协议,多用于UNIX/linux网络系统中。
由SUN公司于1984年开发,目的让不同的计算机,不同操作系统彼此可以共享文件。
NFS采用客户/服务器工作模式,在NFS服务器上将/nfs/public目录设置为输出目录(共享目录),其他的客户端就可以挂载到自己系统中的某个目录下,这个目录可以与服务器上的输出目录和其他客户机中的目录不相同。
NFS协议本身没有提供数据传输的功能,必须借助于远程过程调用(RPC)协议来实现数据的传输。
三个系统守护进程:
rpc.nfsd :基本的NFS守护进程,主要功能管理客户端能否登入服务器。
rpc.mountd: RPC安装守护进程,主要管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务器之后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限
portmap:进行端口映射,当客户端尝试连接并使用RPC服务器提供的服务时,portmap会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过该端口向服务器请求服务。
其他相关进程(线程):
rpc.statd:实现文件加锁
lockd : 内核线程,实现文件锁的一个线程
rpc.quotad:结合真正文件系统上的文件磁盘配额信息来实现当某用户基于网络访问的时候也能实现磁盘配额的功能。
安装包:nfs-util(仅仅是一个工具组件)
启动脚本:/etc/init.d/nfs  (nfsd,rcp.mountd,rpc.quotad)
          /etc/init.d/nfslock (rpc.startd,lockd)
监听端口:2049/tcp  2049/udp (nfsd)
       半随机端口(通过portmap 111/tcp  111/udp)   
配置文件:/etc/exports  /etc/sysconfig/nfs (提供额外功能)
检查NFS运行是否正常:
[root@station39 ~]# rpcinfo -p
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    666  status
    100024    1   tcp    669  status
export文件格式
<输出目录>  [客户端1 (选项1,选项2,……)]  [客户端2(选项1,选项2,……)]
PS:输出目录和客户端之间,客户端和客户端之间都使用空格分隔,但是客户端和选项之间不能有空格。
客户端列表:
单台主机:FQDN,或IP 地址
网络组 :@group
通配符:* ? .  Example:*.example.com
IP 地址: Example:192.168.0.1/255.255.255.0  192.168.0.1/24
常用选项:
ro   只读
rw  读写
async 异步写入
sync 同步写入
root_squash  将root用户及所属用户组都映射为匿名用户或用户组(默认设置)
no_root_squash 不将root用户及所属用户组都映射为匿名用户或用户组
all_squash 将远程访问的所有普通用户及所属用户组都映射为匿名用户或者用户组(一般为nfsnobody)
no_all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或者用户组(默认设置)
anonuid=xxx  将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账户为本地用户账号(UID=xxx)
anongid=xxx  将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账号(GID=xxx)
Example:编辑/etc/exports 文件,添加一个共享目录
/share 192.168.0.1/24(ro)
[root@station39 ~]# service nfs start
查看某一服务器是否有共享目录:
[root@station39 share]# showmount -e 192.168.0.39
Export list for 192.168.0.39:
/share 192.168.0.1/24
客户端挂载:
mount -t  nfs 192.168.0.39:/share  /nfs
PS :NFS根据ID号来确认用户身份,NFS协议的致命缺陷。
exportfs 命令: 修改/etc/exports文件内容后,不需重启NFS服务,直接使修改生效。
-a 输出在/etc/exports文件中所设置的所有目录;
-r  重新读取/etc/exports文件中的设置,并使设置立即生效,不需重启NFS服务
一般 -ar 结合使用。
-u 停止输出某一目录
-v  在输出目录时将目录显示到屏幕上
showmount
-e 客户端  显示某一服务器所有的共享目录
-a 服务器端 显示自己的共享文件系统里边哪一个文件系统正在被访问
[root@station39 ~]# showmount -a
All mount points on station39.example.com:
192.168.0.127: /share
-d 服务器端  显示指定的NFS服务器中哪些共享目录正在被客户端连接访问。
[root@station39 ~]# showmount -d
Directories on station39.example.com:
/share
客户端挂载方式:
/etc/fstab  开机自动挂载
192.168.0.23/:share        /nfs            nfs      defaults   0  0  
/etc/init.d/netfs  (脚本) 可以开机挂载任意设置为开机自动挂在的文件系统
autofs 可以根据需要自动挂载或卸载
手动挂载
NFS工作流程:
1 客户端向服务器端发起连接请求,服务器端通过portmap服务来找到rpc.mounted 所使用的端口并返回给客户端;
2 rpc.mountd服务根据来源地址或者主机名称验证客户端是否允许来访问共享目录。
3 如果允许,rpc.mountd给客户端返回一个文件句柄;
4 客户端使用rpc.mountd返回的文件句柄通过nfsd进程提供的基于TCP或UDP 2049端口的服务来访问或者改变文件系统;
5 lockd 和 rpc.statd服务管理文件锁。
如果要使用固定端口,可以编辑/etc/sysconfig/nfs文件
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"
MOUNTD_PORT="4002"
STATD_PORT="4003"
RQUOTAD_PORT="4005"
STATD_OUTGOING_PORT="4006"









本文转自 490999122 51CTO博客,原文链接:http://blog.51cto.com/lyp0909/535746,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
运维 Ubuntu 安全
在Linux中,如何配置NFS共享?
在Linux中,如何配置NFS共享?
|
2月前
|
存储 Kubernetes 网络安全
[k8s]使用nfs挂载pod的应用日志文件
[k8s]使用nfs挂载pod的应用日志文件
105 1
|
2月前
|
存储 Ubuntu Linux
NFS服务部署全攻略:从零到一,轻松驾驭网络文件系统,让你的文件共享像飞一样畅快无阻!
【8月更文挑战第5天】NFS(网络文件系统)能让网络中的电脑无缝共享文件与目录。基于客户端-服务器模式,用户可像访问本地文件般透明操作远程文件。部署前需准备至少两台Linux机器:一台服务器,其余作客户端;确保已装NFS相关软件包且网络通畅。服务器端安装NFS服务与rpcbind,客户端安装nfs-utils。
66 4
|
3月前
|
存储 算法框架/工具
Ceph提供nfs服务
Ceph提供nfs服务
49 6
|
2月前
|
Ubuntu Linux 网络安全
在Linux中,如何配置Samba或NFS文件共享?
在Linux中,如何配置Samba或NFS文件共享?
|
2月前
|
Kubernetes 关系型数据库 MySQL
k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
本文档介绍了如何使用Kubernetes (K8s)、NFS、PersistentVolume (PV)、PersistentVolumeClaim (PVC)和Pod来部署并实现MySQL服务的数据持久化存储。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的强大平台。NFS作为一种网络文件系统协议,能够使Kubernetes集群中的Pod跨节点访问共享文件。PV和PVC机制则提供了持久化的存储解决方案,确保数据即使在Pod生命周期结束后仍得以保留。
|
3月前
|
存储 云计算
云计算存储问题之NFS与其他文件共享协议共同点如何解决
云计算存储问题之NFS与其他文件共享协议共同点如何解决
|
5月前
|
Linux
Linux安装NFS挂载NFS卸载客户端服务端都有
Linux安装NFS挂载NFS卸载客户端服务端都有
128 0
|
5月前
|
Ubuntu 网络协议 Unix
【Linux】新唐NUC977挂载NFS实现网络文件传输
【Linux】新唐NUC977挂载NFS实现网络文件传输
|
5月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
366 0