一、NFS概述

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

二、NFS的组成

一台NFS服务器和若干台客户机,客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。
NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。

三、NFS 应用
  1. 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
  2. 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
  3. 不同客户端可在NFS上观看影视文件,节省本地空间。
  4. 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
四、搭建实验环境

搭建实验的步骤:

1. 配置两个虚拟机的ip和yum源并且更改主机名,一个名字改为client.westos.com,一个改为server.westos.com
2. 然后在各自的虚拟机里作解析vim /etc/hosts
   客户端是:172.25.254.112 client.westos.com
   服务端是:172.25.254.212 server.westos.com

搭建虚拟机Desktop环境:

为了实验的纯净,配置环境之前首先将Desktop进行重置

1. 配置虚拟机Desktop的网络

linux 修改nfs pdflush参数 linux中的nfs_客户端


linux 修改nfs pdflush参数 linux中的nfs_服务端_02

linux 修改nfs pdflush参数 linux中的nfs_客户端_03


2. 更改虚拟机desktop的主机名

linux 修改nfs pdflush参数 linux中的nfs_客户端_04


3. 在虚拟机desktop上对文件进行本地解析

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_05


4. 配置虚拟机desktop的yum源

linux 修改nfs pdflush参数 linux中的nfs_服务器_06

linux 修改nfs pdflush参数 linux中的nfs_客户端_07


linux 修改nfs pdflush参数 linux中的nfs_服务器_08


搭建虚拟机Server的环境:

为了实验的纯净,配置环境之前首先将Server进行重置

1. 配置虚拟机Server的网络

linux 修改nfs pdflush参数 linux中的nfs_服务端_09


linux 修改nfs pdflush参数 linux中的nfs_服务端_10


2. 重启网络,并更改虚拟机Server的主机名

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_11


3. 对虚拟机Server进行本地解析

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_12


4. 配置虚拟机Server的yum源

linux 修改nfs pdflush参数 linux中的nfs_服务器_13


linux 修改nfs pdflush参数 linux中的nfs_服务端_14


linux 修改nfs pdflush参数 linux中的nfs_服务端_15


实验的环境搭建好以后,在一个shell中用ssh连接,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_16

五、配置NFS服务器

实验步骤:

在服务端配置如下:

1.安装可以使用网络文件系统的软件

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_17


linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_18


2.关闭火墙,进入服务的配置文件

linux 修改nfs pdflush参数 linux中的nfs_客户端_19

3.编辑服务的配置文件

linux 修改nfs pdflush参数 linux中的nfs_客户端_20

4.开启服务,并查看服务的状态,最后将共享的目录显示在屏幕上

linux 修改nfs pdflush参数 linux中的nfs_服务端_21


在客户端的测试如下:

1.安装服务软件

linux 修改nfs pdflush参数 linux中的nfs_服务端_22


linux 修改nfs pdflush参数 linux中的nfs_服务器_23


2.显示导出目录的列表,挂载目录并查看

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_24


3.进入挂载目录,建立文件,发现不能建立,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_25


4.卸载挂载并查看,发现卸载成功,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_26


注意:

  1. exportfs若果修改了/etc/exports文件后不需要重新激活NFS,只需要重新扫描一次/etc/exports文件,并重新将设定加载即可
  2. 当挂载成功后,本地/mnt下如果有数据,则原有的数据都不可见,用户看到的是远程主机172.25.254.212上面的/mnt目录文件列表
  3. exportfs命令常用参数说明:

-a

全部挂载/etc/exports文件中的设置

-r

重新挂载/etc/exports中的设置

-u

卸载某一目录

-v

在export时将共享的目录显示在屏幕上

  1. showmount命令常用参数说明:

-a

列出NFS服务共享的完整目录信息

-d

仅列出客户机远程安装的目录

-e

显示导出目录的列表

  1. sync和async的区别:
    <1> sync:将数据同步写入内存缓冲区和磁盘中,效率低,但可以保证数据的一致性
    <2>async:将数据先保存到内存缓冲区中,必要时写入磁盘
六、NFS服务器管理

1. 使nfs服务器可写,如下所示:

1.编辑服务端的配置文件,将只读挂载更改为读写挂载,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_27


linux 修改nfs pdflush参数 linux中的nfs_服务端_28


2.将共享的目录显示在屏幕上,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_29


3.在客户端测试,发现还是不能建立文件,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_30


当以读写方式挂载后,还是不能建立文件,此时原因是本地的目录/mnt并没有可写的权力,还需要我们去给一个权限,如下图所示4.在服务端给用户一个满权限,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_31


5.再次去客户端建立文件测试,发现能建立成功,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_32


6.查看文件的属性,发现用户和用户组都为匿名用户,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_33


2. 在本地对nfs服务器文件所有人、所有组的修改,如下所示:

NFS常用选项说明如下:

all_squash

将远程访问的所有普通用户及所属组都映射为匿名用户或用户组,相当于使用nobody用户访问该共享目录

no_all_squash

与all_squash取反,该选项为默认设置

root_squash

将root用户及所属组映射为匿名用户或用户组,为默认设置

no_root_squash

与root_squash取反

anonuid

将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户

anongid

将远程访问的所有用户都映射为匿名用户组账户,并指定该匿名用户组账户为本地本地用户组账户

实验步骤如下:

1.在服务端创建用户,并查看用户的id,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_34


2.编辑配置文件,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_35


3.刷新,并将共享目录显示在屏幕上,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_36


4.在客户端进入挂载的目录下,创建一个文件并查看文件的属性,发现文件的用户和用户组都为1001,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_37


5.再次进入服务端的配置文件,编辑配置文件,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_38


linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_39


6.再次刷新,并将共享目录显示在屏幕上,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_40


7.再次在客户上建立文件测试,发现文件的所有人所有组为root用户,给本地用户满权限并且切换到student用户下建立文件,发现文件的所属人和所属组都为student,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_41


8.测试:

在服务端进入/mnt下查看文件,文件file1的用户和用户组都为feng,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_42


在客户端进入挂载的目录下查看,发现文件file1的用户和用户组为1001,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_43


9.卸载挂载,并查看发现卸载成功,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_44

七、NFS服务器在本地的自动挂载与卸载

此实验在客户端进行,操作步骤如下:

1.安装自动挂载的服务,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_45


linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_46


2.开启服务并使服务开机自启动,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_47


3.查看服务的版本与配置文件,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_48

4.设置自动挂载等待时间,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_49


linux 修改nfs pdflush参数 linux中的nfs_客户端_50


5.测试,当使用时进入/net/172.25.254.212/mnt/查看发现有刚建立的文件,df查看有挂载,当不用时相当于退出,此时再去查看发现没有挂载,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_51


注意:

  1. 不要df一直查看,因为查看一次就会被读取一次
  2. 正因为目录能被自动挂载的原因是因为,autofs在开启的时候会有/net这个目录,当关闭的时候就不存在,如下所示:
八、更改共享目录的挂载点

实验需求:

1. 将服务端172.25.254.212:/mnt目录挂载到客户端的/mnt/westos目录下
2. /mnt/westos是不存在的

此实验在客户端进行,操作步骤如下:

1.进入/etc/auto.master目录,挂载/mnt到/etc/auto.nfs,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_52


linux 修改nfs pdflush参数 linux中的nfs_客户端_53


2.编辑自动挂载文件,挂载的子目录为westos,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_54


linux 修改nfs pdflush参数 linux中的nfs_客户端_55


3.重启服务,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_56


4.进入到挂载目录下,查看发现挂载成功,退出目录再次查看发现自动卸载成功,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_57


5.也可以指定挂载类型和版本,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务器_58


linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_59


6.在客户端测试,发现挂载成功,并且用mount查看,发现挂载的类型为只读,版本为3,如下图所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_60


linux 修改nfs pdflush参数 linux中的nfs_服务器_61


7.进入挂载目录建立文件,发现不能建立,因为只读挂载,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_62

8.退出挂载目录,查看发现再次自动卸载成功,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_63

九、设置NFS服务器在客户端自动挂载目录和服务端目录相对应

1.首先在服务端建立目录并查看,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_linux下的nfs_64


2.在客户端编辑文件,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_客户端_65


linux 修改nfs pdflush参数 linux中的nfs_客户端_66


3.重启自动挂载服务,并测试,发现进入/mnt/haha1目录下查看挂载,挂载即为/mnt/haha1,进入/mnt/haha2目录下查看挂载,挂载即为/mnt/haha2,如下所示:

linux 修改nfs pdflush参数 linux中的nfs_服务端_67