NFS共享存储服务

  • 1.什么是NFS共享存储服务
  • 2.NFS共享存储服务配置的相关步骤
  • 2.1 服务器端配置:
  • 2.2 客户端配置:
  • 3.实验:配置NFS共享存储服务的具体步骤


1.什么是NFS共享存储服务

nfs 共享搭建 nfs局域网共享_运维

NFS的优点:

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

nfs 共享搭建 nfs局域网共享_nfs_02

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

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

配置文件相关:

NFS的配置文件为/etc/exports

格式为:共享的目录名称 客户机地址(权限选择)

nfs 共享搭建 nfs局域网共享_运维_03

2.NFS共享存储服务配置的相关步骤

2.1 服务器端配置:

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

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

2.设置共享目录

mkdir -p /opt/server						#创建目录
chmod 777 /opt/server						#赋予权限
vim /etc/exports							#编辑配置文件
/opt/server 192.168.80.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

3.启动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是否开启

4.发布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.查看服务端共享的目录,然后进行挂载(手动或者自动挂载)

showmount -e 192.168.80.77							#查看服务器NFS共享目录
mount 192.168.80.77:/opt/server /server_share/		#进行手动挂载
df -h 												#查看挂载情况

设置自动挂载:

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

umount -lf /server_share/							#强制卸载

3.实验:配置NFS共享存储服务的具体步骤

1.服务端检查nfs-utils和rpcbind程序是否安装,查询一下作为服务端的本机ip,我这里为192.168.80.77,关闭防火墙和安全防护功能。

nfs 共享搭建 nfs局域网共享_运维_04


nfs 共享搭建 nfs局域网共享_nfs_05

2.设置共享目录的相关配置

nfs 共享搭建 nfs局域网共享_nfs_06


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

nfs 共享搭建 nfs局域网共享_centos_07

4.发布NFS共享目录并查看是否发布成功

nfs 共享搭建 nfs局域网共享_centos_08

5.客户端检查nfs-utils和rpcbind程序是否安装,查询一下作为服务端的本机ip,我这里为192.168.80.80

nfs 共享搭建 nfs局域网共享_nfs 共享搭建_09


6.查看NFS服务器共享了哪些目录

nfs 共享搭建 nfs局域网共享_运维_10


7.手动挂载NFS共享目录

nfs 共享搭建 nfs局域网共享_linux_11


测试1:服务器创建文件,然后在客户端查看.服务器端(我这里为192.68.80.77)创建:abc.txt,内容为123456

nfs 共享搭建 nfs局域网共享_nfs_12


客户端(我这里为192.68.80.80)查看:abc.txt的内容是否为123456

nfs 共享搭建 nfs局域网共享_linux_13


测试2:服务器端修改配置,共享目录为只读权限,然后默认使用root_equals

nfs 共享搭建 nfs局域网共享_运维_14


保存以上修改的配置后,重启rpcbind和nfs服务

nfs 共享搭建 nfs局域网共享_nfs 共享搭建_15


客户端显示为只读

nfs 共享搭建 nfs局域网共享_运维_16


测试3:服务器端修改配置,共享目录为读写权限,然后默认使用root_equals,增加annotallow=1000的,为了测试是否能加root用户映射为ccc0307

nfs 共享搭建 nfs局域网共享_linux_17


保存以上修改的配置后,重启rpcbind和nfs服务

nfs 共享搭建 nfs局域网共享_nfs 共享搭建_15


测试结果符合我们配置的

nfs 共享搭建 nfs局域网共享_linux_19


实验三:服务器端开始网页共享

第一步:服务端(我这里为192.68.80.77)安装httpd服务,并创建网页展示内容。

nfs 共享搭建 nfs局域网共享_运维_20


nfs 共享搭建 nfs局域网共享_运维_21

第二步:开启httpd服务并修改exports配置文件

nfs 共享搭建 nfs局域网共享_nfs 共享搭建_22


第三步:重新发布共享目录并查看

nfs 共享搭建 nfs局域网共享_centos_23


第四步:客户端(我这里为192.68.80.80)安装httpd服务

nfs 共享搭建 nfs局域网共享_linux_24


第五步:开启httpd服务并扫描服务端的共享目录,挂载到本地

nfs 共享搭建 nfs局域网共享_nfs_25


第六步:测试共享网页是否正常

nfs 共享搭建 nfs局域网共享_nfs_26