目录

1.概述

1.1)NFS简介

1.2)NFS工作机制

2.NFS的安装与启动

3.配置NFS服务


1.概述

1.1)NFS简介

NFS是Network File System的缩写,及网络文件系统,这是一种使用于分散式文件系统的协议,由SUN公司开发,于1984年向外公布。用于Linux间共享资源。

1.2)NFS工作机制

NFS是文件系统,RPC负责文件传输(依赖RPC自带的)。

2.NFS的安装与启动

安装NFS

由于NFS服务的运行需要RPC服务的支持,在进行NFS服务的操作之前,首先需要验证是否已安装了RPC和NFS服务器组件。RPC服务器由rpcbind程序实现,该程序由rpcbind包提供。NFS本身是很复杂的,它由很多进程组成,这些进程的启动程序由nfs-utils包提供。可执行如下命令:

#rpm - qa|grep rpc                 //查询是否安装了含有rpc字符串的软件包
rpcbind-1.2.5-4.el8.x86_64
#rpm - qa|grep nfs                 //查询是否安装了含有nfs字符串的软件包
nfs-utils-2.3.3-26.el8.x86_64

命令执行结果表明系统已安装了RPC和NFS服务器。如果未安装,超级用户(root)可以用命令来安装或卸载NFS服务。由于NFS是使用RPC框架实现的,所以需要先安装好rpcbind。有时使用DNF安装nfs-utils时会自动安装rpcbind。具体步骤如下:

(1)创建挂载目录

#mkdir /media/cdrom

(2)把光盘挂载到/media/cdrom目录下面

#mount /dev/cdrom /media/cdrom

(3)进入RPC、NFS安装软件包所在的目录(注意大小写字母,否则会出错)

#cd /media/cdrom/BaseOS/Packages

(4)安装RPC服务

#rpm - ivh rpcbind-1.2.5-4.x86-64.el8.rpm

如果出现如下提示,则证明被正确安装。

warning: rpc-1.2.5-4.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature,key ID8483c65d: NOKEY
Verifying...                   ######################################[100%]
Preparing...                   ######################################[100%]
Updating / installing...
l:rpcbind-1.2.5-4.el8          ######################################[100%]

(5)安装NFS服务

#rpm - ivh nfs-utils-2.3.3-26.el8.x86_64.rpm

或者挂载光驱、配置DNF源后,使用dnf install nfs-utils 命令直接安装。

(6)查看安装生成的配置文件名称及路径

安装完成后可以查看安装生成的配置文件名称及路径,以便后续配置。

#rpm - qc nfs-utils
/etc/gassproxy/24-nfs-server.conf
/etc/modprobe.d/locked.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/var/lib/nfs/etab
/var/lib/nfs/rmtab

启动、停止NFS服务器

在启动NFS服务时,系统会先启动RPC服务,否则NFS无法向RPC注册。如果RPC服务重新启动,其保存的信息将丢失,需重新启动NFS服务以注册端口信息,否则客户端将无法访问NFS服务器。NFS服务使用nfs-server 进程,其启动、停止或重启可以使用如下命令:

#systemctl start nfs-server         //启动NFS服务
#systemctl status nfs-server        //查看NFS服务运行状态
#systemctl restart nfs-server       //重启NFS服务
#systemctl stop nfs-server          //停止NFS服务

3.配置NFS服务

(1)配置NFS导出目录

在将服务端的目录共享或者说导出给客户端之前,需要先配置好要导出的目录。一般要指定哪些地址可以访问该目录、该目录是否可写、以什么身份访问和导出目录等。

配置导出目录的配置文件为/etc/exports 文件,这是NFS的主要配置文件,不过系统并没有默认值,需要使用vim命令手动在文件里面写入配置内容。在NFS服务启动时,会自动加载这些配置文件中的所有导出项。/etc/exports文件内容的书写格式为:

共享目录[客户端1(参数)][客户端2(参数)]
共享目录:指定服务器共享目录的绝对路径。
客户端:指定客户端时可以使用IP地址、网络号地址、FQDN、DNS区域等。可以指定多个客户端,客户端之间用空格分隔。
参数:对满足客户端匹配条件的客户端进行相关配置。参数必须紧跟在客户端的圆括号中,括号与客户端之间无空格。
客户端实例及其含义
客户端 示例 含义
指定单一主机IP 192.168.1.70 客户端IP地址为192.168.1.70
指定某一网段 192.168.1.0/24 客户端所在网段为192.168.1.0/24
指定某一主机域名 nfs.example.com 客户端FQDN为nfs.example.com
指定域名范围 *.example.com 客户端FQDN的DNS后缀为.example.com
所有主机 * 任何访问NFS服务器的客户端
可用参数及含义
参数 含义
ro 设置共享为只读,这是默认选项
rw 设置共享为可读写
root_squash 当NFS客户端使用用户是root时,将被映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端当前用户是root时,将被映射为NFS服务器的root用户
all_squash 将所有用户映射为NFS服务器的匿名用户,这是默认选项
anonuid 设置匿名用户的UID
anongid 设置匿名用户的GID
sync 保持数据同步,同时将数据写入内存和硬盘,这是默认选项
async 先将数据保存在内存,然后写入硬盘,效率更高,但可能造成数据丢失
secure NFS客户端必须使用NFS保留端口(1024以下的端口),这是默认选项
insecure 允许NFS客户端不使用保留端口(1024以下的端口)
wdelay 如果NFS服务器认为有另一个相关的写请求正在处理或马上就要达到,NFS服务器将延迟提交写请求到磁盘,这就允许使用一个操作提交多个写请求到磁盘,可以改善性能,这是默认选项
nowdelay NFS服务器将每次写操作写入磁盘,设置了async时该选项无效
subtree_check 若输出目录是一个子目录,则NFS服务器将检查其父目录的权限,这是默认选项
no_subtree_check 即使输出目录是一个子目录,NFS服务器也不检查也不检查其父目录的权限,这样可以提高效率

(2)管理维护NFS导出列表

在生产环境中如果使用了NFS服务器,会遇到修改NFS服务器配置的情况。如果想重新让客户端加载上修改后的配置,但是又不能重启rpcbind服务,则需要使用export命令让新修改的配置生效。

NFS服务端维护着一张可被NFS客户端访问的本地物理文件系统的表。表中的每个文件系统都被称为导出的文件系统,或简称为导出项。exportfs命令维护NFS服务端当前的导出表。其中导出表存放在/var/lib/nfs/etab文件中。当客户端发送一个NFS挂载请求时,rpc.mountd进程会读取该文件。

一般来说,导出主表是用exportfs -s命令读取/etc/exports和/etc/exports.d/*.exports文件来初始化的。但是,系统管理员可以使用exportfs命令直接向主表中添加或删除导出项,而不需要去修改/etc/exports或/etc/exports.d/*.exports文件。

语法:

exportfs[选项][client:/path...]

常用选项说明如下:

-d kind:开启调试功能。有效的kind值为all、auth、call、general和parse。
-a:导出或卸载所有的目录。
-o options,...:指定一系列导出选项(如rw、async、root_squash)。
-i:忽略/etc/exports和/etc/exports.d目录下文件,此时只有命令行中给定选项和默认选项会生效。
-r:重新导出所有目录,并同步修改/var/lib/nfs/etab文件中关于/etc/exports和/etc/exports.d/*.exports的信息(即还会重新导出/etc/exports和/etc/exports.d/*等配置文件中的项,移除var/lib/nfs/etab中已经被删除和无效的导出项)。
-u:卸载(即不再导出)一个或多个导出目录。
-f:如果/prof/fs/nfsd或/proc/fs/nfs已被挂载,即工作在新模式下,该选项将清空内核中导出表中的所有导出项。客户端下一次请求挂载导出项时会通过rpc.mountd将其添加到内核的导出表中。
-v:输出详细信息。
-s:显示适用于/etc/exports的当前导出目录列表。

(3)检查NFS服务器挂载情况

使用showmount命令可以查看某一台主机的导出目录情况,因为涉及PRC请求,所以如果RPC问题,showmount命令将会默默地等待。

语法:

showmount[选项][主机]

常用选项说明如下:

-a:以host:dir格式列出客户端名称/IP以及所挂载的目录。但需注意,该选项是读取NFS服务端/var/lib/nfs/rmtab文件,而该文件很多时候并不准确,所有showmount-a的输出信息很可能并非是准确无误的。
-e:显示NFS服务端所有导出列表。
-d:仅列出已被客户端挂载的导出目录。

(4)挂载NFS文件系统

服务器配置完毕,在客户端测试时,客户机也需要安装NFS和RPCBIND服务,才能将NFS服务器共享的目录挂载至客户机的本地目录下来使用服务器指向的共享目录中的文件。例如:

#mount -t nfs 192.168.1.70:/data /mnt

挂载时-t nfs可以省略,因为对于mount而言,只有挂载NFS文件系统才会写成“host:/path”格式。当然,除了mount命令,nfs-utils包还提供了独立的mount.nfs命令,它其实和mount -t nfs 命令是一样的。

(5)相关命令

nfsstat

功能:显示有关NFS客户端和服务器活动的统计信息。

语法:

nfsstat[选项]

常用选项说明如下:

-s:表示仅列出NFS服务器端状态。
-c:表示仅列出客户端状态。
-n:表示仅列出NFS状态,默认显示NFS客户端和服务器的状态。
-m:表示列出以加载的NFS文件系统状态。
-r:表示仅显示RPC状态。

rpcinfo

功能:查看RPC信息,用于检测RPC运行情况。

语法:

rpcinfo[选项][host]

常用选项说明如下:

-p:列出所有在host中用portmap注册的RPC程序。如果没有指定host,就查找本机上的RPC程序。
-n port:根据-t选项或者-u选项,使用编号为port的端口,而不是由portmap指定的端口号。
-u:用UDP协议RPC调用host上程序的指定版本(如果已经指定),并报告是否接到响应。
-t:用TCP协议RPC调用host上程序的指定版本(如果已经指定),并报告是否接到响应。
-b:向程序的指定版本进行RPC广播,并列出响应的主机。
-d:将程序的指定版本从本机的RPC注册表中删除。只有具有root特权的用户才可以使用这个选项。

rpcdebug

功能:设置或清除NFS和RPC内核调试标识。设置这些标识会导致内核向系统日志发送消息以响应NFS活动。调试信息通常存放在/var/log/messages中。

语法:

rpcdebug[选项]

常用选项说明如下:

-c:表示清除调试标识。
-h:表示显示帮助信息。
-s:表示设置调试标识。
-v:表示以详细方式输出。
-m:表示指定要设置或清除哪个模块(NFSD、NFS、NLM、RPC之一)的标识。

NFS服务器配置与管理笔记相关推荐

  1. redhat 7 中NFS服务器配置与管理

    实验准备 软件:VMware Workstation Pro 虚拟机:Red Hat Enterprise Linux 7 64 位 两台(一台服务器,一台客户端) 综合案例 某公司现需配置一台NFS ...

  2. NFS笔记(二)NFS服务器配置实例

    一.NFS服务器配置实例 实验拓扑 二.实验要求及环境 2.1实验环境 NFS服务器 IP:192.168.8.5 环境: [root@server7 ~]# uname -a Linux serve ...

  3. RHEL5下NFS服务器配置与应用

    RHEL5下NFS服务器配置与应用 试验环境 1.一台安装有RHEL5的计算机: 2.系统安装盘: 试验内容 1.安装nfs软件包 2.配置nfs服务器 3.nfs服务器管理 4.客户端测试 试验步骤 ...

  4. Linux服务器配置与管理项目教程(CentOS7 /RHEL 7)(第三版)题库带答案

    Linux服务器配置与管理项目教程 (CentOS7 /RHEL 7)(第三版)微课版 第1篇   系统安装与网络配置 项目1  安装CentOS 服务器 项目2  配置Linux基础网络 不积跬步, ...

  5. VPN服务器配置、路由服务器配置、视频服务器配置、DNS服务器配置、DHCP服务器配置、E-mail服务器配置、FTP服务器配置、Web服务器配置、证书服务器配置及管理

    期末考核学习笔记记录 本文主要记录了VPN.路由服务.视频服务器.DNS服务器.DHCP服务器.E-mail服务器.FTP服务器.Web服务器.证书服务器的简单配置与管理.此为作者期末考核作业,配置过 ...

  6. CentOS下NFS服务器配置实例

    LINUX下NFS的配置与安全设置 Redhat Linux NFS配置     NFS简介:     NFS是网络文件系统的简写(network file system),主要用在linux或uni ...

  7. iOS 与OS X多线程和内存管理 笔记 ARC与所有权修饰符

    注:本文为笔记形式,所以很多都是摘抄的.<<iOS 与OS X多线程和内存管理>>书中写的很棒,简单易懂,建议各位看官自己去看看. ####ARC和MRC 前一篇主要是MRC环 ...

  8. oracle 10g 用户管理笔记

    Oracle用户管理笔记 1.创建用户 sql>conn system/manager sql>create user xiaoming identfied by m123; //密码必须 ...

  9. RHCE课程-RH131Linux管理笔记五-Linux远程登陆telnet及ssh服务

    telnet相信大家都不陌生,在RHCE课程-RH131Linux管理笔记三-linux系统服务介绍及管理里面我们已经配置过了,我也不多做介绍,直接说安装吧. 使用yum安装的前提是你已经配置好YUM ...

最新文章

  1. PowerPoint中如何插入MP3歌曲
  2. 再说 Spring AOP
  3. NYOJ 61 传纸条(一)
  4. 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow
  5. netcore docker_深入浅出 ASP.NET Core 与 Docker 入门课程目标说明
  6. C#中Abstract和Virtual的区别
  7. 大数据时代已来,开发者该如何出击?
  8. 暑假集训第四场选拔赛 解题报告
  9. 2017php类库,AMQB官方PHP库
  10. ddr5内存上市时间_DDR5内存年底开始量产,2022年成为主流!
  11. matlab 多项式排序,MATLAB多项式
  12. urllib2 爬虫 打印页面内容,部分无法显示
  13. 无线路由器常用的五种工作模式详细介绍
  14. Windows10 10大高级功能,个个功能强大,5倍提升工作效率
  15. 实验2:MIPS指令系统和MIPS体系结构
  16. 欧拉定理——数论定理
  17. robomongo 连不上mongodb 权限问题
  18. Python 抓取微信公众号账号信息
  19. PowerPC的字节序问题
  20. 深度学习的数学-卷积神经网络的误差反向传播

热门文章

  1. PowerManagerService分析(二)之updatePowerStateLocked()核心
  2. 线程池大小如何确定?
  3. 谷歌java模板_如何创建Google表格模板
  4. outlook邮箱附件无法打开,提示无法创建文件
  5. 数据库事务和范式理解
  6. [USACO18JAN] Lifeguards S
  7. NAT模式、路由模式、桥接模式的区别和对比
  8. 无限火力服务器爆炸,lol:无限火力这些英雄打架,腾讯看的都紧张,打到服务器爆炸!...
  9. 川大博士生被华为以200万年薪录用!分享以下科研及论文写作经验
  10. 中国大学MOOC-陈越、何钦铭-数据结构-2016秋期末考试