运维之网络文件系统NFS介绍与部署安装(CentOS7.0)

NFS概述

NFS(Network File System),即网络文件系统,是一款通过网络方式共享文件系统的通用共享解决方案。NFS目前有三个版本:NFSv2、NFSv3、NFSv4。CentOS7.0默认使用的版本是NFSv4提供网络文件系统的共享服务,NFS监听在TCP 2049端口。

当两台计算机需要通过网络建立连接时,双方需要通过IP、端口号等信息进行通信。当有100台客户端访问服务器时,服务器就需要记住这些计算机的IP、端口号这些信息(实际上就是很多个socket文件),而这些信息需要程序来管理。在Linux中,这样的信息可以由某个特定服务自己来管理,也可以委托给RPC来帮助管理。RPC是远程过程调用协议,RPC协议为远程通信双方提供所需的基本信息。这样NFS服务就可以专注于如何共享数据,至于通信连接以及连接的基本信息,则全权委托给RPC管理。CentOS7系统由rpcbind服务来提供RPC协议的支持(在老版本上是portmap来提供RPC协议的),目前NFSv4虽然不需要与rpcbind直接交互,但是rpc.mountd依然是NFSv4所必须的服务。所以在CentOS7平台上实现NFS共享,需要同时启动NFS服务和rpcbind服务。

所需的软件是:nfs-utils,rpcbind

NFS服务器配置

NFS服务器读取/etc/exports配置文件,该文件可以设置哪些客户端可以访问NFS共享文件系统(作权限精细化管理的)。

该文件的书写规则如下:

  • 空白行将被忽略
  • 以#符号开头的内容将被注释
  • 配置文件中可以用\符号转义换行
  • 每个共享的文件系统需要独立一行条目
  • 客户端主机列表需要使用空格隔开
  • 配置文件中支持通配符

一条完整的共享条目语法结构如下,其中,客户端主机可以是一个网段、单台主机或主机名。

共享路径  客户端主机   (选项)

共享路径  客户端主机1  (选项)  客户端主机2  (选项)

不添加选项时,会使用默认配置,默认配置是:ro、sync、wdelay、no_root_squash

具体的选项配置如下:

  • ro: 共享目录只读
  • rw: 共享目录可读可写
  • all_squash: 所有的访问用户都映射为匿名用户或用户组
  • no_all_squash: 访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
  • root_squash: 将来访的root用户映射为匿名用户或用户组
  • no_root_squash: 来访的root用户保持root账号权限
  • anonuid=: 指定匿名访问用户的本地用户组UID,默认为nfsnoboday(65534)
  • anongid=: 指定匿名访问用户的本地用户组GID,默认为nfsnoboday(65534)
  • secure: 限制客户端只能从小于1024的tcp/ip端口连接服务器
  • insecure: 允许客户端从大于1024的tcp/ip端口连接服务器
  • sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但能保证数据的一致性
  • async: 将数据先保存在内存缓冲区中,必要时写入磁盘
  • wdelay: 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
  • no_wdelay: 若有写操作则立即执行,应与rsync配合使用
  • subtree_check: 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
  • no_subtree_check: 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

NFS部署实例

运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第1张图片
nfs01.png

服务器的配置操作步骤为:安装软件、添加共享账户、创建共享目录、修改权限、设置NFS共享配置文件、启动共享服务。

服务器的配置如下:

运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第2张图片
nfs02.png

上面就是服务器端的配置,下面是客户端的访问和使用
** 首先在服务器端做好权限管理配置并启动服务:**


运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第3张图片
nfs04.png
  • 配置说明:/home/share/ xx.xx.248.246(rw,async,no_root_squash) *(ro)
    对xx.xx.248.246此客户端授予读写权限,其他所有客户端只读权限
运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第4张图片
nfs05.png
运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第5张图片
nfs06.png
  • showmount -e # 默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错
  • showmount -a # 显示已经与客户端连接上的目录信息

** 然后在客户端上访问和使用 **

运维之网络文件系统NFS介绍与部署安装(CentOS7.0)_第6张图片
nfs07.png

至此,我们就可以在客户端上对共享目录进行操作了。最主要的是权限的管理。

** NFS权限分析 ** ,由于共享数据实际是存储在NFS服务器上的,所以所有的操作实际是以服务器本机账户进行的,只是服务器会根据不同的情况将远程客户端的访问账户转换为不同的服务器本地账户。

  • 客户端使用普通用户连接服务器时,默认情况下,如果客户端使用的账户的UID在服务器端上也有相同账号的UID,则服务器将使用本地该UID账户进行读写操作,如果客户端访问服务器所使用的UID不存在于服务器本地,则该服务器自动将客户端来访账户转换为nfsnobody账号。此外,如果服务器端对共享属性配置了all_squash选项,则服务器会根据anonuid选项的值,将所有的账户自动转换为匿名账户。
  • 客户端使用root连接服务器时,默认会将root转换为服务器上的nfsnobody账号,如果服务器对共享属性配置了no_root_squash选项,则服务器会将远程root账户转换为本机root账户进行读写操作。
参考:http://www.cnblogs.com/dscode/p/6146409.html

你可能感兴趣的:(运维之网络文件系统NFS介绍与部署安装(CentOS7.0))