十一、NFS服务器配置和管理

11.1、NFS简介

NFS是Network File System的缩写,中文名为网络文件系统,它是一种能使安装了不同操作系统的计算机之间通过网络进行共享的网络协议。由于NFS可以快速地进行文件共享,有效地提供资源的利用率,节省本地磁盘空间,方便集中管理,所以应用广泛。

NFS采用C/S工作模式,NFS服务器设置好共享文件目录后,其他的NFS客户端就可以把这个由远端服务器共享出来的目录到本地系统上的某个自行定义的挂载点,并进行使用。

NFS支持的功能很多,而不同的功能由不同的程序来实现,每启动一个功能就需要打开一些端口进行数据传输。所以与其他大部分的C/S结构不同,NFS并不是监听一些固定端口,而是随机采用一些未被使用的小于1024的端口作为数据传输。但是客户端需要连接服务器时首先必须知道服务端程序提供服务的端口,而NFS端口的随机性为客户端连接带来了麻烦,为此NFS使用了远程过程调用RPC(Remote Procedure Call)来解决。

当NFS启动时,它会随机地使用服务器上未被使用的小于1024的端口来为服务端口,然后会把端口号、进程ID和监听IP等信息在RPC服务中注册。这样一来,RPC服务就知道各个NFS功能对应的服务端口,当客户端通过固定端口111连接上RPC服务后,RPC就会把NFS各个功能所对应的端口号返回给客户端。至此,客户端就可以通过这些端口直接与NFS进行通信。

11.2、NFS服务器安装与配置

NFS服务器主要设计的软件有rpcbind和nfs-utils,它们分别是RPC和NFS主程序,关于这两个软件包,其作用分别为:


rpcbind:监听端口111/tcp, 111/udp,最主要的功能就是在指定每个NFS功能所对应的端口号,并且汇报给客户端,让客户端可以连结到正确的端口上去。

nfs-utils:NFS的主程序,监听端口2049/tcp, 2049/udp,包括提供NFS服务所需要的rpc.nfsd和rpc.mountd两个守护进程和其他相关配置文件。

[[email protected] home]# yum install -y rpcbind nfs-utils   #yum安装软件包
[[email protected] home]# rpm -ql rpcbind      #查看文件的具体安装路径
/etc/rc.d/init.d/rpcbind                    #rpcbind自动启动脚本
/sbin/rpcbind                               #主程序
/usr/sbin/rpcinfo
/usr/share/doc/rpcbind-0.2.0                #文档
/usr/share/doc/rpcbind-0.2.0/AUTHORS
/usr/share/doc/rpcbind-0.2.0/ChangeLog
/usr/share/doc/rpcbind-0.2.0/README
/usr/share/man/man8/rpcbind.8.gz           #帮助文件
/usr/share/man/man8/rpcinfo.8.gz
/var/cache/rpcbind

#启动NFS服务时,先启动rpcbind,后启动nfs服务
[[email protected] home]# service rpcbind start   #启动rpcbind
Starting rpcbind: [  OK  ]
[[email protected] home]# service nfs start       #启动nfs
Starting NFS services:  [  OK  ]
Starting NFS mountd: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting RPC idmapd: [  OK  ]

#关闭NFS服务时,先关闭nfs服务,后关闭rpcbind服务
[[email protected] home]# service nfs stop
Shutting down NFS daemon: [  OK  ]
Shutting down NFS mountd: [  OK  ]
Shutting down RPC idmapd: [  OK  ]
[[email protected] home]# service rpcbind stop
Stopping rpcbind: [  OK  ]

NFS服务端的配置文件通过/etc/exports配置文件来实现,更改配置文件后需要通过exports命令使更改后的配置生效。

  • exports配置文件

  /etc/exports文件是NFS主要的配置文件,该文件用于设置服务器的共享目录,以及目录允许访问的主机、访问权限等信息。NFS安装后会在/etc目录下创建一个空白的exports文件,即没有任何的共享目录,用户需要进行手工编辑。文件每一行定义了一个共享目录,其格式为:

共享目录 [客户端1(选项1,选项2 ...)]   [客户端2(选项1,选项2 ...)] ...

共享目录与各客户端之间以空格进行分隔,除了共享目录以外,其他内容可选。


共享目录:提供NFS客户端使用的目录

客户端:可以访问共享目录的计算机,可以通过IP地址和主机名进行指定,也可以使用子网掩码指定网段或者使用通配符‘*‘或‘?‘进行模糊指定。

选项:指定该共享目录的访问权限,如果不指定,则NFS使用默认选项。

客户端示例:

客户端 说明
Demoserver 主机名为Demoserver的计算机
10.0.0.71 IP地址为10.0.0.71的计算机
192.168.2.0/24 子网192.168.2.0中的所有计算机
host?.example.com ?表示任意字符
*.example.com .example.com域中的所有计算机
* 所有计算机

客户端常用选项:

客户端选项 说明
ro 客户端只能以只读方式访问共享目录中的文件,不能写入
rw 对共享目录可读写
sync 将数据同步写入内存与硬盘中
async 异步IO方式,数据会先暂存在内存中,待需要时再写入硬盘
secure 限制NFS服务只能使用小于1024端口号进行数据传输
insecure 使用大于1024端口
wdelay 如果多个客户端要对同一目录进行读写,则将这些操作集中执行
no_wdelay 有写操作则立即写入,当设置了async选项时,该选项无效
hide 共享目录时,不共享目录中的子目录
no_hide 共享子目录
subtree_check 强制NFS检查共享目录父目录的权限
no_subtree_check 不检查父目录权限
all_squash 不管登录NFS的使用者是什么身份,都把他的UID和GID映射为匿名用户和用户组
no_all_squash 保留用户原来的UID和GID,不进行映射
anonuid 指定NFS服务器使用/etc/passwd文件中UID为该值的用户作为匿名用户,应该尽量保持客户端和服务器端用户UID的一致性
anongid 指定NFS服务器使用/etc/group文件中GID为该值的用户作为匿名用户组
root_squash 如果登录NFS服务器使用共享目录的使用者是root,则把这个使用者的权限映射为匿名用户
no_root_squash 如果登录NFS服务器使用共享目录的使用者是root,保留它的root权限,这可能会导致严重的安全问题
  • exportfs命令:输出共享目录

NFS服务启动时,会读取/etc/exports配置文件的内容,把文件中设置的共享目录输出,供客户端使用。在NFS服务启动后,如果要对/etc/exports进行更改,需要通过exportfs对共享目录进行输出,其命令格式为:

/usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
/usr/sbin/exportfs -r [-v]
/usr/sbin/exportfs [-av] -u [client:/path ..]
/usr/sbin/exportfs [-v]
/usr/sbin/exportfs -f

常用选项:


-a:全部输出或取消输出所有的共享目录

-i:忽略/etc/exports配置文件,而使用默认或命令行中指定的选项

-o:指定输出的客户端选项

-r:重新读取/etc/exports中的配置,并同步/var/lib/nfs/xtab与/etc/exports的内容

-u:取消一个或多个共享目录的输出

-v:如果不跟其他选项一起使用,则显示当前共享的所有目录及他们的选项设置,如果输出或取消输出共享目录,则显示进行了那些操作

11.3、NFS客户端配置

要在NFS客户端上使用服务器的共享目录,需要在本地主机上启动rpcbind服务,然后使用showmount命令查看NFS服务器共享的目录有哪些,使用mkdir命令在本地建立共享目录的挂载点,最后使用mount命令挂载共享目录到本地。

showmount命令格式为:

showmount  [选项]  [主机IP或名称]

常用选项:


-a:一般在NFS服务器上使用,用于显示已经挂载服务器共享目录的客户端及他们使用的共享目录

-d:与-a类似,但只显示目录,不显示具体客户端

-e:显示指定NFS服务器输出的共享目录列表

-h:显示帮助信息

-v:显示版本信息

--no-headers:不输出标题信息

挂载点可以由用户自行指定,创建挂载点后,就可以挂载共享目录,挂载共享目录使用的命令与挂载本地文件系统的命令一样,使用mount命令,其格式为:

mount  [选项]  NFS服务器IP或主机名:共享目录  挂载点

常用选项:

选项 说明
-t nfs 指定要挂载的文件系统类型为NFS
-o ro 只读挂载的文件系统为只读
-o rw 可读写
-o rsize=n 指定NFS服务器上读文件时NFS使用的块大小,单位字节
-o wsize=n 指定NFS服务器上写文件时NFS使用的块大小,单位字节
-o timeo=n 指定超时后重新发送请求的延时时间,单位十分之一秒
-o retrans=n 指定放弃挂载前尝试的次数
-o acregmin=n 指定文件在缓冲中存放的最小时间,单位秒
-o acregmax=n 指定文件在缓冲中存放的最大时间,单位秒
-o acdirmin=n 指定目录在缓冲中存放的最小时间,单位秒
-o acdirmax=n 指定目录在缓冲中存放的最大时间,单位秒
-o actime=n 该选项值代替acregmin,acregmax,acdirmin,acdirmax,把这四个值设为一样
-o retry=n 指定放弃挂载前尝试的时间,单位分钟
-o port=n 指定连接NFS服务器使用的端口号
-o proto=n 指定挂载NFS文件系统时使用的网络协议
-o fg 使用前台方式完成挂载工作
-o bg 使用后台方式完成挂载工作
-o hard 如果超时,则在控制台显示server not responding的错误信息并重复尝试连接,直到恢复为止
-o soft 如果连接超时,则返回I/O错误给请求的程序
-o intr 如果NFS文件操作超时,而使用了hard方式挂载,允许中断文件操作
-o noac 禁止缓存,强制进行同步写
-o fsc 启动本地磁盘缓存

11.4、使用autofs按需挂载共享目录

传统NFS共享目录使用方式中,客户端要挂载共享目录一般是通过手工执行mount命令或在fstab文件中配置开机自动挂在这两种方式完成。但是,NFS客户端与服务器之间不是永久连接,而NFS一个缺点是当客户端和服务器连接后,任何一方离线都可能导致另一方不断等待超时。同时,可能很多用户挂载了共享目录,但实际没有使用,导致NFS服务器资源的消耗,为了解决这些问题,一般做法是使用autofs服务,仅在访问时动态挂载共享目录。

autofs是一个按需挂载文件系统的程序,可以直接使用yum安装。

[[email protected] ~]# yum install -y autofs
[[email protected] ~]# service autofs start
Loading autofs4: [  OK  ]
Starting automount: [  OK  ]

/etc/auto.master是autofs的主配置文件,配置格式为:

挂载点顶层目录  映射文件

挂载点顶层目录: 例如要把共享目录挂在到/nfs/public目录下,那么这里的值就设置为/nfs, 而/nfs/public不需要手工创建

映射文件:该文件是由用户自行指定并创建,在该文件中设置的NFS系统应该如何挂载

映射文件格式:

挂载点  [-挂载选项]  NFS服务器名或IP:共享目录

其中,挂载点是基于auto.master文件中所设置的‘挂载点顶层目录‘的相对路径。配置文件更改后需要重启autofs服务式配置生效,也可以使用reload重载。

配置实例

假设NFS服务器nfsserver所输出的共享目录有4个,/tmp,/sharefiles/public, /sharefiles/private,/media/cdrom,exports文件具体内容为:

[[email protected] ~]# cat /etc/exports 
/tmp                     192.168.191.*(rw,no_root_squash)
/sharefiles/public       192.168.191.*(rw,all_squash,anonuid=40,anongid=40)
/sharefiles/private      192.168.191.*(rw)
/media/cdrom             192.168.191.*(ro)

要通过autofs服务把这些目录都挂载到本地

/nfs/tmp
/nfs/public
/nfs/private
/nfs/cdrom

创建挂载点顶层目录

[[email protected] ~]# mkdir /nfs

编辑/etc/automaster文件,添加如下内容:

/nfs    /etc/auto.nfs

编辑/etc/auto.nfs映射文件:

[[email protected] ~]# cat /etc/auto.nfs 
tmp        -  192.168.191.128:/tmp
public     -  192.168.191.128:/sharefiles/public
private    -  192.168.191.128:/sharefiles/private
cdrom      -  192.168.191.128:/media/cdrom

重启autofs服务:

[[email protected] nfs]# service autofs reload
Reloading maps
[[email protected] home]# cd /nfs/           #进入nfs目录,目录为空
[[email protected] nfs]# ls            
[[email protected] nfs]# ls /nfs/cdrom       #访问各挂载的目录
cdrom.txt
[[email protected] nfs]# ls /nfs/private
private
[[email protected] nfs]# ls /nfs/public
public
[[email protected] nfs]# ls /nfs/tmp
yum.log
[[email protected] nfs]# ls                  #当访问时,挂载的目录才出现
cdrom  private  public  tmp
时间: 2024-10-18 09:28:46

十一、NFS服务器配置和管理的相关文章

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

【NFS服务器配置】【(CIFS)SMB】

**********************************************        ********************NFS服务器配置***************        ***********************************************类UNIX/etc/exports 示例/var/ftp/pub    192.168.0.0/24(ro,sync)         [()与前面不能空开,要是有,则表示 前面的只读,其它主机都

NFS服务器配置

案例说明: 1.假设服务器的IP为192.168.127.200. 2./tmp共享为可读写,并且不限制用户身份的方式,共享给192.168.127.0/24网段的所有计算机. 3./home/nfs共享的属性为只读,可提供除了网段内的工作站外,向Internet亦提供数据内容. 4./home/upload作为192.168.127.0/24这个网段的数据上传目录,其中,/home/upload的用户 及所属组为nfs-upload这个名字,它的UID与GID均为210. 5./home/an

15.TFTP 与 NFS 服务器配置

15. TFTP 与 NFS 服务器配置 实验要求: 1.安装并配置TFTP服务. 2.安装并配置NFS服务. 实验器材: 软件: 1. 安装了RHEL6的vmware虚拟机. 2. TFTP的rpm安装包. 3. TFTP下载工具Tftpd32. 4. NFS的rpm安装包. 硬件: 1.PC机一台. 背景知识: 1. 交叉开发: 嵌入式系统开发多采用交叉开发模式.所谓嵌入式开发就是指在宿主机上进行程序的编写,然后通过交叉编译生成目标机平台上可以运行的二进制代码,最后在下载到目标平台上的特定位

《Windows服务器配置与管理》模块化教学任务工单(No.1)

<Windows服务器配置与管理>模块化教学任务工单(No.1) 专业班级 模块名称 Windows Server 2008安装与基本配置 指导教师 赵培琨 设备构成 计算机 人员构成 任务时间 1周 人员分工 分值情况 单人满分10 知识准备 (1)不同版本的Windows Server 2008的介绍 (2)Window server 2008的安装 (3)桌面.控制面板.网络连接的设置 (4)mmc的使用 注意事项: (1)该任务完成所需知识可参考<Windows服务器配置与管理&

Linux 红帽 NFS服务器配置

Linux  红帽   NFS服务器配置 什么是FNS? NFS是1980年由SUN发展出来在UNIX/Linux系统间实现磁盘文件共享的一种方法,支持应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议. 1. 场景 某单位需要配置NFS 服务器,为另外一台运行Oracle 数据库的Linux 服务器提供备份存储. 主机名 IP地址 您实验环境的IP地址 nfs1.adc.local 192.168.1.241 ab1.abc.local 192.16.1.242 2. 实验环境

Web 服务器配置和管理

第3 篇  网络服务管理篇 第16 章  Web 服务器配置和管理 Web 服务是目前Internet 上最常见的服务之一,要搭建一个Web 服务器,首先要选择 一套合适的Web 程序.在本章中将会以强大的Apache 为例,介绍相关的安装.配置.维 护和高级功能等方面的知识,演示如何在Linux 操作系统下构建基于Apache 的Web 服 务器. 16.1  Web 服务器简介 万维网又称为Web(World Wide Web,www),是在Internet 上以超文本为基础形成 的信息网.

linux的web服务器配置与管理——创建用户个人主页

本实验用的是RedHat linux9.0,在虚拟机上进行操作,它已具有相当完善的可视化界面,这样用户会更加容易接受和理解. 首先呢就是虚拟机的相关配置,这个就不说了,当我们安装完系统后,打开终端,输入命令"rpm   -q   httpd",因为linux9.0已经安装了Apache服务,所以此时窗口会显示安装的版本信息,这就说明系统已成功安装Apache服务.接下来就是启动服务了,这里有几条命令如图所示: 第一条命令是查看服务的状态,开启还是关闭:第二条是启动Apache服务,然后

linux 下 NFS服务器配置

rhel6 安装系统时一般默认安装NFS组件:若你的系统中没有安装,自行安装: yum -y install nfs-utils  portmap. 首先配置NFS服务器端.用vi编辑NFS配置文件/etc/exports(文件默认内容为空白),添加如下内容:   /home/tools/sharedir 10.0.0.7 *(rw)     这句话的意思是,此配置文件可以让IP为10.0.0.7的主机以读写的方式访问/home/tools/sharedir文件夹./home/tools/sha