详解 NFS共享存储服务

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

使用 NFS 发布共享资源

NFS服务的实现依赖于 RPC Remote Process Call ,远端过程调用)机制,以完成远程
到本地的映射过程。在 C ent OS 7 系统中,需要安装 nfs utils 、 rpcbind 软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

1.安装 nfs utils 、 rpcbind 软件包

[root@localhost ~]#yum y install nfs utils rpcbind
[root@localhost ~]#systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind

2.设置共享目录

NFS的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。在 exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址 权限选项 ))”。例如,若要 将文件夹 /opt/wwwroot 共享给 172.16.16.0/24 网段使用,允许读写操作,具体配置如下所 示。

[root@localhost ~]#mkdir p /opt/wwwroot
[root@localhost ~]# vi /etc/exports
/opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)

其中客户机地址可以是主机名、IP 地址、网段地址,允许使用 、 通配符;权限选项中的 rw 表示允许读写( ro 为只读), sync 表示同步写入, no_root_squash 表示当客户机以root 身份访问时赋予本地 root 权限(默认是 root_squash ,将作为 nfsnobody 用户降权对待)。

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

[root@localhost ~]#vi /etc/exports
/var/ftp/pub 192.168.4.11(ro) 192.168.4.110(rw)

3.启动 NFS 服务程序

[root@localhost ~]#systemctl start rpcbind
[root@localhost ~]#systemctl start nfs
[root@localhost ~]#netstat anpt | grep rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 10508/rpc.mountd
tcp 0 0 0.0.0.0:52732 0.0.0.0:* LISTEN 10495/rpc.statd
tcp6	0 0 :::20048 LISTEN 10508/rpc.mountd
tcp6	0 0 :::47669 LISTEN 10495/rpc.statd

4.查看本机发布的 NFS 共享目录

[root@localhost ~]#showmount e
Export list for localhost.localdomain:
/opt/wwwroot 192.168.7.0/24
/var/ftp/pub 192.168.4.110,192.168.4.11

在客户机中访问 NFS 共享资源

NFS协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs 。既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。考虑到群集系统中的网络稳定性, NFS 服务器与客户机之间最好使用专有网络进行连接。

1.安装并启动 rpcbind

若要正常访问NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind系统服务。另外,为了使用 showmount 查询工具,建议将 nfs utils 软件包也一并装上。

[root@localhost ~]#yum y install rpcbind nfs util s
[root@localhost ~]#systemctl enable rpcbind
[root@localhost ~]#systemctl start rpcbind

如果已经安装了nfs utils 软件包,则客户机也可以使用 showmount 查看 NFS 服务器端共享了哪些目录,查询格式为“ showmount e 服务器地址”。

[root@localhost ~]#showmount e 192.168.7.250
Export list for 192.168.7.250:
/opt/wwwroot 192.168.7.0/24
/var/ftp/pub 192.168.4.110,192.168.4.11

2.手动挂载 NFS 共享目录

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

[root@localhost ~]#mount 192.168.7.250:/opt/wwwroot /var/www/html
[root@localhost ~]# tail 1 /etc/mtab 确认挂载结果
192.168.7.250:/opt/wwwroot /var/www/html nfs4
rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,prot	o=tcp,port=0,time
o=600,retrans=2,sec=sys,clientaddr=192.168.7.21,local_lock=none,ad dr=192.168.7.250 0
0
[root@localhost ~]#vi /var/www/html/index.html 在客户机创建测试文件
Real Web Server Document

完成挂载以后,访问客户机的/var/www/html 文件夹,实际上就相当于访问 NFS 服务器中的 /opt/wwwroot 文件夹,其中的网络映射过程对于用户程序来说是透明的。例如,上述操作中创建的 index.html 测试文件,会立刻出现在服务器的 /opt/ 目录下。

3.fstab 自动挂载设置

修改/etc/fstab 配置文件,加入 NFS 共享目录的挂载设置。注意将文件系统类型设为nfs ,挂载参数建议添加 _netdev (设备需要网络);若添加 soft 、 intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS 共享资源了。

[root@localhost ~]#vi /etc/fstab
……省略部分信息
192.168.7.250:/opt/wwwroot /var/www/html nfs default s,_netdev 0 0

4. 强制卸载NFS

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

[root@localhost ~]# umount / mnt
umount. nfs: /mnt : device is busy
[root@localhost ~]# umount lf /mnt
[root@localhost ~]#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值