CentOS7.5搭建NFS(网络文件系统)

Posted opsprobe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7.5搭建NFS(网络文件系统)相关的知识,希望对你有一定的参考价值。

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机(Linux客户端)的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

安装

yum install nfs-utils

第1步:为了检验NFS服务配置的效果,需要使用两台Linux主机(一台充当NFS服务器,一台充当NFS客户端),下表12-6来设置它们所使用的IP地址。

两台Linux主机所使用的操作系统以及IP地址

主机名称 操作系统 IP地址
NFS服务端 CentOS7.5 192.168.5.136
NFS客户端 CentOS7.5 192.168.5.65

 

第2步:在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。

mkdir /nfsfile

chmod -Rf 777 /nfsfile

echo "Welcome to NFS" > /nfsfile/readme

第3步:NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。

例如,如果想要把/nfsfile目录共享给192.168.5.0/24网段内的所有主机,让这些主机都拥有读写权限,在将数据写入到NFS服务器的硬盘中后才会结束操作,最大限度保证数据不丢失,以及把来访客户端root管理员映射为本地的匿名用户等,则可以按照下面命令中的格式,将下表中的参数写到NFS服务程序的配置文件中。

用于配置NFS服务程序配置文件的参数
参数 作用
ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

需要注意,NFS客户端地址与权限之间没有空格。

vim /etc/exports

/nfsfile 192.168.5.*(rw,sync,root_squash)

第4步:启动和启用NFS服务程序。由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。

systemctl restart rpcbind

systemctl enable rpcbind

systemctl start nfs-server

systemctl enable nfs-server

NFS客户端的配置步骤也十分简单。先使用showmount命令(以及必要的参数,见下表)查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

  showmount命令中可用的参数以及作用
参数 作用
-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况NFS资源的情况
-v 显示版本号

 

 

安装showmount:

yum install showmount

showmount -e 192.168.5.136

技术图片

 

然后在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

技术图片

挂载时遇到如下错误:

技术图片

本以为是防火墙的原因,于是关闭了防火墙,问题依旧。

解决方法:

查看 exports 手册中关于 secure 选项说明

man exports

secure This option requires that requests originate on an Internet port less than IPPORT_RESERVED (1024). This option is on by default. To turn it off, specify insecure.

secure 选项要求mount客户端请求源端口小于1024(然而在使用 NAT 网络地址转换时端口一般总是大于1024的),默认情况下是开启这个选项的,如果要禁止这个选项,则使用 insecure 标识 修改配置文件/etc/exports,加入 insecure选项

/nfsfile 192.168.5.*(insecure,rw,sync,root_squash)

mount成功!

挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了

cat /nfsfile/readme

技术图片

 

如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中: 

vim /etc/fstab

如下图所示

技术图片

 

 

 

卸载:

umount /nfsfile/

以上是关于CentOS7.5搭建NFS(网络文件系统)的主要内容,如果未能解决你的问题,请参考以下文章

NFS网络文件系统的搭建

CentOS7 搭建 NFS 服务器

centos7 NFS网络文件系统搭建

linux下实现文件共享:搭建nfs服务器(网络共享文件系统)

Qemu搭建ARM vexpress开发环境----NFS网络根文件系统

NFS 网络文件系统 简单搭建