NFS共享存储服务

一、NFS概述

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。
NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。

二、安装 nfs-utils、rpcbind 软件包

NFS 服务的实现依赖于 RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在Centos 7系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

 软件包 (包括服务器端和客户端):

  • nfs-utils (nfs端口号 2049/tcp):共享服务
  • rpcbind (RPC端口号 111/tcp) :远程共享调用
rpm -q rpcbind nfs-utils           #查询是否安装
yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包

systemctl start nfs                #开启nfs服务
systemctl start rpcbind            #开启rpcbind服务
systemctl enable nfs               #开机自启nfs服务
systemctl enable rpcbind           #开机自启rpcbind服务

三、NFS的特点

  • 采用TCP/IP传输网络文件
  • 安全性低
  • 简单易操作
  • 适合局域网环境

四、实验步骤

  • NFS服务器安装 nfs-utils、rpcbind 软件包
  • NFS服务器设置共享目录 
  • 启动 NFS服务并验证结果
  • 客户机中访问 NFS 共享资源  ,手动挂载 NFS 共享目录  ,fstab自动挂载设置 ,强制卸载 NFS

1、安装nfs和rpcbind软件

rpm -q rpcbind nfs-utils           #查询是否安装
yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包

2、设置共享目录

NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。
在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。

例如:将文件夹/opt/web共享给192.168.100.0/24网段使用 允许读写操作

mkdir /opt/web

vim /etc/exports

/opt/web 192.168.100.0/24(rw,sync,no_root_squash)

常用选项:

rw表示允许读写
ro表示为只读
sync表示同步写入到内存与硬盘中
no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
root_squash表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

 当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。
例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。

[root@localhost ~]# vim /etc/exports

/var/ftp/public 192.168.100.11(ro) 192.168.100.12(rw)

3、启动 NFS服务并验证结果

需要先启动rpc服务,因为nfs要向rpc注册端口

systemctl start nfs         #开启nfs服务
systemctl start rpcbind     #开启rpcbind服务
systemctl enable nfs        #开机自启nfs服务
systemctl enable rpcbind    #开机自启rpcbind服务

netstat -anpu | grep rpc    #过滤出rpc所有UDP连接信息

rpcinfo -p localhost        #查看nfs向rpc注册的端口信息

exports -v     #验证结果
exports -r     #刷新结果

showmount -e localhost      #验证共享

 4、客户机中访问 NFS 共享资源

 

yum install -y nfs-utils rpcbind

showmount -e 192.168.109.11                           #客户端验证共享

yum install -y httpd

mount -t nfs 192.168.109.11:/opt/web /var/www/html   #将共享目录挂载到网页目录

systemctl start httpd       #启动web服务

curl 127.0.0.1              #访问主页内容

echo "到此一游" >> /var/www/html/index.html           #客户端修改主页文件(服务端会同步)

 

NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs 。

可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。

手动挂载 NFS 共享目录

以 root 用户身份执行 mount 操作,将 NFS 服务器共享的 /opt/web目录挂载到本地目录 /var/www/html 。与挂载本地文件系统不同的是,设备位置处应指出服务器地址。

mount -t nfs 192.168.100.11:/opt/web /var/www/html

fstab自动挂载设置

修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置(文件系统类型为nfs)。
挂载参数建议添加_netdev(设备需要网络)

vim /etc/fstab

192.168.109.11:/opt/web /var/www/html           nfs     default,_netdev 0 0

 

强制卸载 NFS
  • NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h
    命令卡死的现象。
  • 这个时候使用 umount 命令是无法直接卸载的,需要加上-lf 选项才能卸载。
  • 当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。然后使用 umount 命令卸载,其中-l 选项表示解除正在繁忙的文件系统,-f 选项表示强制。
  • systemctl stop nfs    #服务器端模拟nfs挂掉
    
    umount /var/www/html   #客户端卸载时会卡住
    
    umount -lf /var/www/html   #加lf参数成功卸载
    

  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值