专栏首页Linux、云计算技术交流第三章 NFS网络文件系统

第三章 NFS网络文件系统

第三章 NFS网络文件系统

3.1 NFS服务简介

NFS,全称为Network File System,即网络文件系统。功能是让不同的机器、不同的操作系统,可以彼此共享资源,一般主要部署于Linux或Unix系统之间。

NFS所共享出的目录,可以允许多台客户机同时使用,并且客户机以挂载的方式连接到NFS服务器所共享出的目录,使用时与本机资源完全一样,方便、便捷。

NFS采用C/S架构,借助于RPC服务(Remote Procedure Call 远程过程调用)完成通信的识别。RPC服务可以视为一种远程访问的中转者,客户端访问NFS时,其实是先向服务器端的RPC服务发出请求,由RPC通知客户端NFS的实际通信端口,客户端再向NFS服务发起请求连接。因此NFS 必须要有 RPC 存在时才能成功的提供服务,我们也可以称 NFS 为 RPC server 的一种。事实上RPC服务可代理的中转的业务也可以很多,不只有NFS,如:windows的共享也是借助于RPC工作的。

具体NFS的工作原理如下:

1、服务器端首先启动RPC(portmap)服务,再启动NFS服务。NFS服务会向RPC服务注册自己使用的通信端口。

2、客户端如果需要连接NFS服务,首先客户端的RPC服务会连接服务器端的RPC服务(TCP/UDP111),从而获取到NFS的工作端口(TCP/UDP 2049)。

3、然后使用客户端的动态端口向NFS服务器的端口(TCP/UDP 2049)进行连接,建立连接后,实现数据传输。

3.2 NFS服务案例

NFS服务的配置原理其实比较简单,安装完毕软件后,通过配置文件即可完成部署。具体实验案例如下:

1、实验环境

两台Linux主机,ip分别为:192.168.10.10 、192.168.10.11,其中192.168.10.10作为服务器使用,另一台为客户端

2、服务器配置

1)软件安装

yum -y install nfs-utils rpcbind

注:nfs的相关软件包,存放于系统安装光盘,可自行配置yum源

2)创建共享目录

cd /mnt ---假设要共享出去的目录都存放在/mnt/下

mkdir share1 share2 share3 ---创建共享目录

chmod 777 share* ---设置该三个目录的权限为满权限

注意,网络数据的访问,必须遵守权限规则,网络权限(即共享权限)与文件或目录的安全权限,二者以最严格的的为准。也就是说二者谁会拒绝该访问就以谁为准。那么我们为了证明NFS实验的成功,先将目录的安全权限放开为满权限,则可证明下面NFS设置的共享权限的有效。

3)编辑配置文件,设置共享

vi/etc/exports ---编辑配置文件,指定要发布的共享目录

/mnt/share1 192.168.10.0/24(rw)

---指定共享目录及客户端, *(ro)表示所有人

/mnt/share2 192.168.10.3(rw) 192.168.10.5(ro)

---仅允许10.3和10.5访问该共享,且权限不同

/mnt/share3 aaa.test.com(ro) bbb.test.com(rw)

---以主机域名的形式指定客户

4)配置域名解析

如果服务器端已配好DNS,并可以正常解析出上一步中的aaa、bbb的两个域名,则本步可以省略,但是如果服务器未配置DNS或无法解析出aaa、bbb,则可以使用静态解析文件完成解析:

vi /etc/hosts ---编辑静态解析文件,写入

192.168.10.11 aaa.test.com

192.168.10.12 bbb.test.com

注:若exports文件中有主机域名的指定,则必须可以解析得到ip,使用DNS或hosts静态解析文件都可以

5)启动服务

systemctl restart nfs ---启动服务

systemctl list-unit-files | grep nfs ---查看nfs服务的开机状态

systmectl enable nfs --- 设置开机自动启动服务

注:nfs的开机启动服务为nfs-server。也可以使用服务nfs,但在很多CentOS7.4之前版本中,开机服务只能指定nfs-server。其实nfs服务类似于一个服务组,内部包含了nfs-server。

netstat -atn |grep 2049

---查看已开启并正在监听的端口,可抓取查看见111或2049

netstat -tn |grep 2049

---查看正在通信的tcp连接端口,可见客户端连接信息

另外,若更改了exports文件的配置后,不想重启便启用新的共享,则可以使用如下命令:

exportfs -r ---更新共享,启用exports文件中的设置

showmount -e ---查看本机已经共享出的目录

6)关闭防火墙

iptables -F

注:其实iptables是firewall防火墙的基础,所以只要关闭了iptables即可,firewall防火墙无需再手动关闭。PS:关于iptables、firewall防火墙会在之后章节中讲解。

setenforce 0

3、客户端配置

1)安装软件包

yum -y install nfs-utils rpcbind

2)创建挂载点

cd /mnt ---假设客户端的挂载点都创建在/mnt下

注:其实Linux中的/mnt/目录主要就是为各种挂载提供的统一的挂载点存放目录

mkdir s1 s2 s3 ---创建挂载点

3)挂载使用

mount 192.168.10.10:/mnt/share1 /mnt/s1 ---挂载访问nfs

mount 192.168.10.10:/mnt/share2 /mnt/s2 ---会报挂载被拒绝

mount 192.168.10.10:/mnt/share3 /mnt/s3 ---可以挂载成功

umount /mnt/s1 ---卸载

mount ---查看挂载表,可见已挂载的nfs共享

注:显示结果中type显示的文件系统类型是 nfs4

另外,本步骤中,可以挂载服务器共享出的所有目录,如:10.11的客户端可以挂载share1,并可读写;10.11挂载share2会报被拒绝,客户端更换正确的ip(10.3或10.5)后才可以挂载成功;10.11可以挂载share3,但只读。由此可证明服务器端exports文件中设置的共享权限的生效

4)客户端配置开机自动挂载

与Linux一贯的文件挂载原理相同,命令挂载的文件系统,只是临时生效,必须写入到文件系统配置文件中才可以开机自动挂载。如下:

vi /etc/fstab

192.168.10.10:/mnt/share1 /mnt/s1 nfs4 defaults 0 0

注意:配置fstab文件后,客户端虽然可以实现重启自动挂载,但是如果服务器端重启了,虽然已经设置nfs服务开机启动,但是由于重启后防火墙启动了,所以很可能客户端挂载将失败,所以服务器端需要把关闭防火墙的命令(iptables -F 及 setenforce 0)写入到/etc/rc.d/rc.local中,并给该文件增加x权限后,服务器重启才会自动关闭防火墙。当然,客户端也可以如此设置,开机关闭防火墙。PS:关于/etc/rc.d/rc.local文件的操作,在Linux系统教材中已经讲解过,读者可自行查阅。

本文分享自微信公众号 - 教主小筑(gh_e0879483602d),作者:教主小筑

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第十一章 时间同步服务

    NTP是网络时间协议(Network Time Protocol)的简称,功能是同步各主机的时间。因为在服务集群中,很多服务要求所有主机必须保持时间一致,所以就...

    晓天
  • 第八章 web服务之apache (1)

    说到http协议,其实大家都不陌生,我们日常上网,打开网页,使用的就是http协议,实现web浏览功能。

    晓天
  • 第三章 负载均衡LB服务之Haproxy(三)

    在上一节的案例中我们看到,通过acl可设定URI的访问规则,那么里面的hdr(host)是什么意思,又有哪些其他可以做设置的项呢?下面我们就来具体分析一下。

    晓天
  • 如何优雅扩容云硬盘(附视频)

    放心,在腾讯云的服务器上,不论是加块硬盘还是扩容已有硬盘的大小,都是轻松又简单的。

    溪歪歪
  • CentOS 7中搭建NFS文件共享存储服务的完整步骤

    NFS(Network File System)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂...

    砸漏
  • CentOS 7中搭建NFS文件共享存储服务的完整步骤

    NFS(Network File System)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂...

    砸漏
  • Php-fpm相关配置

    老七Linux
  • PHP 安全与性能

    目录 1. Apache mod_php / php-fpm 1.1.1. Apache 1.1.2. Nginx / lighttpd + fastcgi 1...

    netkiller old
  • 一句话木马与中国菜刀

     以php一句话为例,我们可以直接将这些语句插入到网站的某个php文件上,或者直接创建一个新的文件,在文件里写入一句话木马,然后把文件上传到网站上即可。

    mathor
  • 获取多说评论数并集成到Typecho

    许杨淼淼

扫码关注云+社区

领取腾讯云代金券