NFS文件共享,Linux使用入门教程

作者: 今晚开什么码  发布:2019-10-12

前言
NFS 这个藉由网络分享文件系统的服务在架设的时候是很简单的,不过,它最大的问题在于『权限』方面的概念! 因为在客户端与服务器端可能必须要具备相同的账号才能够存取某些目录或档案。 另外,NFS 的启动需要透过所谓的远程过程调用 (RPC),也就是说,我们并不是只要启动 NFS 就好了, 还需要启动 RPC 这个服务。

NFS(Network File System)即网络文件系统,是由Sun公司开发的一种通过网络方式共享系统的通用共享解决方案。目前NFS有3个版本,分别为NFSv2、NFSv3、NFSv4。NFSv2是一个古老的版本,但却被众多的操作系统所支持,这样它的兼容性会更好;NFSv3拥有更多的特定,包括更快的速度、更大的单个文件大小、更多便于排错的错误及成功信息、对TCP协议的支持等;NFSv4提供了有状态的连接,更容易追踪连接状态,增强了安全特性。CentOS6.3版本默认使用版本NFSv4提供NFS网络文件系统共享服务,NFS监听在TCP 2049端口。

NFS 通常需要与 NIS 这一个可以确认客户端与服务器端身份一致的服务搭配使用,以避免身份的错乱。

RPC(Remote Procedure Call)是远程过程调用协议,RPC协议为远程通信程序管理通信双方所需的基本信息,这样NFS服务就可以专注于如何共享数据,至于通信的连接以及连接的基本信息,则全权委托给RPC管理,Centos6.3系统由rpcbind服务提供RPC协议的支持,目前NFSv4虽然不再需要与rpcbind直接交互,但rpc.mountd依然是NFSv4所必须的服务。所以,如果在Centos6.3平台上实现NFS共享,需要同时启动NFS与rpcbind服务。

NFS介绍

所需软件:nfs-utils、rpcbind

NFS=network  file system

4.1.1 NFS服务器配置

NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。

NFS服务器通过读取/etc/exports配置文件设定客户端可以访问哪些NFS共享文件系统。该文件的书写规则如下。

由于NFS使用起来非常方便,因此很快得到了大多数的UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准

  1. 空白行将被忽略

  2. 以#符号开头的内容为注释

  3. 配置文件中可以通过符号转义换行

  4. 每个共享的文件系统需要独立一行条目

  5. 每个客户端主机列表需要使用空格隔开

  6. 配置文件支持通配符

NFS使用的是C/S模式,我们今天会学习服务器的架设,和client的使用。

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

NFS只有三个系统守护进程(不包含非必要)

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

rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器

也可以为多个客户主机设置不同的访问选项,语法结构如下:

rpc.mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
rpc.lockd(非必要):
这个玩意儿可以用在管理档案的锁定 (lock) 用途。为何档案需要『锁定』呢? 因为既然分享的 NFS 档案可以让客户端使用,那么当多个客户端同时尝试写入某个档案时, 就可能对于该档案造成一些问题啦!这个 rpc.lockd 则可以用来克服这个问题。 但 rpc.lockd 必须要同时在客户端与服务器端都开启才行喔!此外, rpc.lockd 也常与 rpc.statd 同时启用。
rpc.statd(非必要):
可以用来检查档案的一致性,与 rpc.lockd 有关!若发生因为客户端同时使用同一档案造成档案可能有所损毁时, rpc.statd 可以用来检测并尝试回复该档案。与 rpc.lockd 同样的,这个功能必须要在服务器端与客户端都启动才会生效。

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

portmap:portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

不指定选项,默认属性为ro、sync、wdelay、root_squash。具体的NFS属性及其对应的含义见表4-1,查看exports的帮助文档可以找到很多服务器配置模版。

这些进程都可以在进程中找到。

表4-1

NFS的软件结构

NFS选项

功能描述

NFS选项

功能描述

ro

只读共享

rw

可读可写共享

sync

同步写操作

async

异步写操作

wdelay

延时写操作

root_squash

屏蔽远程root权限

no_root_squash

不屏蔽远程root权限

all_squash

屏蔽所有的远程用户权限

  1. 主要配置文件:/etc/exports
    这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
    现在的版本都有的,等会我们修改的也就是这个文件
  2. NFS文件系统维护指令:/usr/sbin/exportfs
    这是维护NFS共享资源的命令,我用的不是很多,我一般在配置文件里面定义
  3. 分享资源的登录档:/var/lib/nfs/*tab
    其中的etab记录了NFS分享出来的目录的完整权限设定值,另一个是xtab,记录曾经连接到此NFS主机的相关client数据。
  4. 客户端查询服务器分享资源的指令:/usr/sbin/showmount
    shouwmount命令主要是用在client端,可以用来查看NFS共享出来的目录资源

计算机对数据进行修改时会先将修改的内容写入快速的内存,随后才会慢慢写入硬盘,async选项允许NFS服务器在没有完全把数据写入硬盘前就返回成功消息给客户端,而此时数据实际还存放在内存中,但客户端则显示数据已经写入成功。注意,该选项仅影响操作消息的返回时间,并不决定如何进行写操作。sync选项将确保在数据真正写入硬盘后才会返回成功的消息。

企业NFS服务器拓扑图

 

图片 1

wdelay为延迟写入选项,也就是说,它决定了先将数据写入内存,在写入硬盘,然后将多个写入请求合并后写入硬盘,这样可以减少对硬盘I/O的次数,从而优化性能,但有可能导致非正常关闭NFS时数据丢失情况的发生。与此相反的选项是no_wdelay,但该选项与async选项一起使用时将不会生效,因为async是基于wdelay实现对客户端的一种响应功能。

相关阅读:

客户端使用普通用户连接服务器时,默认情况下,如果客户端使用的账户UID在服务器上也有相同的账户UID,则服务器将使用服务器本机上该UID账户进行读写操作,如果客户端访问服务器所使用的账户UID不在服务器上,则服务器自动将账户转换为nobody账户。此外,如果服务器端对共享属性配置了all_squash选项,则服务器会根据anonuid选项的值,将所有的账户自动转换为匿名账户。

Ubuntu 12.04安装NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

 

NFS服务器安装配置实现Ubuntu 12.04与ARM文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm

4.1.3 NFS高级设置

Ubuntu搭建nfs服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm

  1. NFS所需服务

文件服务器NFS配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm

为了在Centos6.3系统平台上提供NFS服务,该操作系统平台提供了很多有用的服务进程,以下进程在实现NFS共享的过程中需要互相协同合作。

Ubuntu下搭建NFS网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm

1)nfs:NFS服务主程序

Heartbeat_ldirector+LB+NFS实现HA及LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm

2)nfslock:为NFS文件系统提供锁机制

CentOS 5.5配置NFS服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm

3)rpcbind:提供地址与端口注册服务

Ubuntu 12.10下NFS的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm

4)rpc.mountd:该进程被NFS服务用来处理NFSv2和NFSv3的mount请求

图片 2

5)rpc.nfsd:动态处理客户端请求

6)lockd:lockd是内核线程,在服务器端和客户端运行,用来实现NLM网络协议,允许NFSv2和NFSv3客户端对文件加锁

7)rpc.statd:该进程实现网络状态监控(NSM)协议

8)rpc.rquotad:该进程提供用户配额信息

9)rpc.idmapd:提供NFSv4名称映射,/etc/idmapd.conf必须被配置

 

  1. NFS客户端配置

若想要客户端主机可以访问并使用服务器所提供的共享目录,可通过mount命令挂载NFS共享,格式如下:

#mount-tnfs-o选项服务器主机:/服务器共享目录/挂载本地目录

具体挂载选项��下。

1)Intr:当服务器宕机时允许中断NFS请求

2)nfsvers=version:指定使用哪个版本的NFS协议,version可以是2、3、4。

3)noacl:关闭ACL,仅与老版本操作系统兼容时使用

4)nolock:关闭文件锁机制,仅用来连接老版本NFS服务器

5)noexec:在挂载的文件系统中屏蔽可执行的二进制程序

6)port=num:指定NFS服务器端口,默认num为0,此时如果远程NFS进程没有在rpcbind注册端口信息,则使用标准NFS端口号(TCP 2049端口)

7)rsize=num:设置最大数据块大小调整NFS读取数据的速度,num单位为字节

8)wsize=num:设置最大数据块大小调整NFS写入数据的速度,num单位为字节

9)tcp:使用TCP协议挂载

10)udp:使用UDP协议挂载

 

  1. 使用NFS命令工具

NFS软件提供了很多便利的命令工具,这些工具可以帮我们在不重启服务的情况下,应用新的共享设置,查看NFS连接状态,查询实时的端口注册信息。

(1)exportfs命令

描述:当nfs服务启动时,/usr/sbin/exportfs命令会自动启动并读取/etc/exports文件,通过控制rpc.mountd(如果使用NFSv2或NFSv3)处理挂载请求,然后rpc.nfsd使文件系统对远程可见,手动运行exportfs命令允许root在不重启NFS服务的情况下选择共享或取消部分共享目录。

选项:-r重新读取/etc/exports文件

-a全部共享或全部取消共享

-u取消共享,与-a一起使用取消全部共享

-v显示详细信息

 

(2)nfsstat命令

描述:查看NFS共享状态

选项:-s,--server不使用该参数时,默认显示服务器端和客户端状态,使用该参数后仅将显示服务器端状态

-c,--client仅显示客户端状态

-n,--nfs仅显示NFS状态,默认显示NFS与RPC信息

-nn为数字2、3或4,仅显示NFS版本为n的状态信息

-m显示挂载信息

-l以列表形式显示信息

(3)rpcinfo命令

描述:生成RPC信息报表

选项:-m显示指定主机rpcbind操作信息表

-p显示指定主机RPC注册信息

-s显示指定主机所有注册RPC的信息程序,不指定主机时默认显示本机信息

 

  1. 在防火墙后端运行NFS

NFS需要向rpcbind动态注册端口信息,这将导致运行在防火墙后端的NFS服务器无法进行防火墙配置,因为端口信息是动态随机生成的,防火墙可以开放某些固定的端口允许客户端进行连接,但无法设置随机端口规则。允许客户端访问位于防火墙后面的NFS共享需要我们编辑/etc/sysconfig/nfs配置文件,配置固定的端口号。注意,端口号不可以指定为已经被其他程序使用的,固定端口的配置选项如下。

MOUNTD_PORT=端口号:设置mountd程序端口号

LOCKD_TCPPORT=端口号:设置tcp的lockd程序端口号

LOCKD_UDPPORT=端口号:设置udp的lockd程序端口号

STATD_PORT=端口号:设置rpc.statd程序端口号

设置完端口号之后,还需要对防火墙进行设置,需要为防火墙编写策略允许所有端口的数据通信。此外,还需要为NFS开启TCP和UDP的2049端口,以及TCP与UDP的111端口,111端口被rpcbind所使用。

--------------------------------------分割线

Ubuntu 12.04安装NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

NFS服务器安装配置实现Ubuntu 12.04与ARM文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm

Ubuntu搭建nfs服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm

文件服务器NFS配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm

Ubuntu下搭建NFS网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm

Heartbeat_ldirector+LB+NFS实现HA及LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm

CentOS 5.5配置NFS服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm

Ubuntu 12.10下NFS的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm

--------------------------------------分割线

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/107472.htm

图片 3

本文由今晚开什么码发布于今晚开什么码,转载请注明出处:NFS文件共享,Linux使用入门教程

关键词:

上一篇:平安删除工具
下一篇:没有了