nfs简介:
(1)NFS(Network File System):网络文件系统
是FreeBSD支持的文件系统中的一种
允许网络中的计算机之间通过TCP/IP网络共享资源(不同的计算机、操作系统)
主要在unix系列操作系统上使用(2)NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中, 而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样
(3)NFS支持的功能比较多,不同的功能会使用不同的程序来启动,每启动一个功能就会 启用一些端口来传输数据,因此NFS的功能所对应的端口并不固定,而是随机取用一 些未被使用的小于1024的端口用于传输
(4)RPC(Remote Procedure Call,远程过程调用)的服务。
由于当服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知 道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到 正确的端口上去。
RPC采用固定端口号port 111来监听客户端的需求并向客户端响应正确的端口号。
注:在启动 NFS 之前,要先启动 RPC ,否则 NFS 会无法向 RPC 注册。RPC 若重新启动,原来注册的数据会消失不见,因此RPC 重启后,它管理的所有服务都 需要重新启动以重新向 RPC 注册。
权限相关参数:
参数值 | 说明 |
rw,ro | 共享目录的权限是 可读写/只读,与文件系统的rwx有关 |
sync,async |
sync
:数据会同步写入到内存与硬盘中
async
:数据会先暂存于内存当中,而非直接写入硬盘
|
no_root_squash
root_squash
|
客户端在共享目录里创建的文件的所属者和所属组是
root
用户和
root
组
no_root_squash
:文件的所属者和所属组是root
用户和
root
组;
root_squash
:将
root
用户和组 映射为匿名用户和组 (默认设置)。
|
all_squash
no_all_squash
|
all_squash:
客户端所有用户创建文件时,客户端会将文件的用户 和组映射为匿名用户和组
no_all_squash:
客户端普通用户创建的 文件的
UID
和
GID
是多少,服务端就显示为多少(默认设置)
|
anonuid=
anongid=
|
将文件的用户和组映射为指定的
UID
和
GID
若不指定默认为65534(
nfsnobody
)
|
nfs配置:
一、客服端和服务端都关闭防火墙
二、安装包
yum install nfs-utilsyum install rpcbind(不用单独装)
三、创建共享目录
创建共享目录:/data
data 所属者为 root ,权限:读和执行
vim /etc/exports
进入后,写共享哪个目录(data),共享给谁(客户端),权限为只读
四、重启nfs服务
用服务端(192.168.198.130)命令去检测
在客户端(192.168.198.137),输入命令去检测能否读取那个表
autofs自动挂载
autofs 服务:在客户端的上面,会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS 文件系统资源,并进行自动挂载的操作。
由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时。
为了解决这样的问题,就出现了下面的想法:
当客户端在有使用 NFS 文件系统的需求时才让系统自动挂载。 当NFS 文件系统使用完毕后,让 NFS 自动卸载。