NFS详解——局域网中的共享存储技术

一、NFS共享存储服务概述

1、NFS的概念及优点

NFS是一种基于TCP/IP传输的网络文件系统协议。

通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源;对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的方法,NFS也是NAS存储设备必然支持的一种协议;

2、NFS的缺点

由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只在局域网中使用。

3、NFS的使用要求:

NFS服务的实现依赖于RPC(远程过程调用)机制,以完成远程到本地的映射过程,所以需要安装nfs-utils、rpcbind软件包来提供共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。

• 依赖于RPC (远端过程调用)
• 需安装nfs-utils、rpcbind软件包
• 系统服务: nfs、rpcbind
• 共享配置文件: /etc/exports

4、NFS的配置文件

NFS的配置文件为/etc/exports
格式为:共享的目录名称 客户机地址(权限选择)

5、NFS原理图

二、NFS共享存储服务配置的步骤

1、服务器端配置

1.1  安装nfs-utils和rpcbind程序,可使用yum和rpm进行安装

rpm -q rpcbind nfs-utils 					#查看是否安装
yum install-y rpcbind nfs-utils 			#未安装可以使用yum进行安装

1.2 设置共享目录

mkdir -p /opt/share						#创建目录
chmod 777 /opt/share						#赋予权限
vim /etc/exports							#编辑配置文件
/opt/share 192.168.229.0/24(rw,sync,no_root_squash)			#新增的配置

配置文件内容的解释:

客户机地址可以是主机名、IP地址、网段地址,允许使用“*”、“?”通配符;

“rw”表示允许读写,“ro”表示为只读;
“sync”:表示同步写入到内存与硬盘中;
“no_root_squash”:表示当客户机以root身份访问时赋予本地root权限(默认是root_squash);
“root_squash”:表示客户机用root用户访问更改共享目录时,将root用户映射成匿名用户;

其他常用选项:

“all_sauash”:所有访问用户都映射为匿名用户或者用户组;
“async”:将数据先保存在内存缓冲区中,必须时才写入磁盘;
“subtree_check”(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
“no_subtree_check”:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样做可以提高效率。
“anonuid=xxx”:指定NFS服务器/etc/passwd文件中的匿名用户的UID
“anongid=xxx”:指定NFS服务器/etc/passwd文件中的匿名用户的GID

1.3、关闭防火墙和增强安全功能(可在配置实验前将其关闭,以防后面忘记)

systemctl stop firewalld
setenforce 0
systemctl status firewalld  

1.4、启动NFS服务,并查看rpcbind端口是否开启(默认为TCP端口111)

注意:手动加载NFS时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind				#开启rpcbind
systemctl start nfs					#开启nfs
systemctl enable rpcbind			#将rpcbind设为自启动
systemctl enable nfs				#将nfs设为自启动

netstat -anpt | grep rpcbind		#查看rpcbind是否开启
netstat -anpt | grep 111			#查看端口111是否开启

1.5 发布NFS共享目录并查看  

exportfs -rv						#发布NFS共享目录
showmount -e						#查看NFS共享目录

2、客户端配置

2.1 安装nfs-utils和rpcbind程序,可使用yum和rpm进行安装  

rpm -q rpcbind nfs-utils 					#查看是否安装
yum install-y rpcbind nfs-utils 			#未安装可以使用yum进行安装

2.2 查看服务器端共享的目录,然后进行挂载(手动或者自动挂载)  

showmount -e 192.168.229.30                            #查看服务器NFS共享目录
mkdir /data	                               #新建目录						
mount 192.168.229.30:/opt/share  /data/		#进行手动挂载
df -hT 												#查看挂载情况

设置自动挂载:
vim /etc/fstab
192.168.229.30:/opt/share   /data   nfs  defaults,_netdev     0 0

_netdev:表示挂载设备需要网络

2.3 强制卸载NFS  

如果服务器端NFs服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行df-h命令卡死的现象。这个时候直接使用umount命令是无法直接卸载的,需要加上-lf选项才能卸载。

umount -lf /server_share/							#强制卸载

三、实例操作:配置NFS共享存储服务  

1、服务器端基本配置(服务器端IP地址为192.168.229.30)

1.1 查看是否安装nfs-utils和rpcbind程序,如未安装可用yum或者rpm安装

1.2  新建共享目录并修改权限

1.3 编辑NFS的配置文件(新增配置,格式为共享目录的名称  客户机地址(权限选择)  

 

 1.4 关闭防火墙和增强安全功能

1.5 启动NFS服务,并查看rpcbind端口是否开启

  

1.6 发布NFS共享目录并查看

2、客户端基本配置(客户端IP地址为192.168.229.20)

2.1  查看是否安装nfs-utils和rpcbind程序,如未安装可用yum或者rpm安装

2.2   查看服务器端共享的目录,然后进行挂载

3、测试共享存储功能

3.1  测试1:在服务器端创建文件,在客户端查看

服务器端

客户端

3.2 测试2:修改NFS配置文件,使用root_equals(系统默认的,可以加也可以直接删掉),增加anonuid=1001

服务器端

客户端

3.3 测试3:修改NFS配置文件,将权限修改为只读(ro)

服务器端

客户端

3.4 测试4:网页共享

服务器端

客户端

四、总结

1、NFS的概念及作用:是一种基于TCP/IP传输的网络文件系统协议;可以实现客户机访问远程服务器中的共享资源

2、NFS的缺点:安全性差

3、NFS的使用要求:需要安装nfs-utils(共享发布和访问)、rpcbind(远程过程调用)

4、NFS的配置文件:/etc/exports

5、配置NFS共享存储的步骤:

服务器端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:设置共享目录并把共享目录的权限设为777

第三步:修改NFS的配置文件(格式为:共享的目录名称 客户机地址(权限))

第四步:启动NFS服务(先启动rpcbind,再启动nfs),并设置开机自启动

第五步:发布NFS共享目录,并查看

客户端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:查看服务器端的共享目录,并将其挂载到新建目录上(可手动或自动挂载)

posted on 2021-07-03 16:13  笑洋仟  阅读(3297)  评论(0编辑  收藏  举报

levels of contents