Windows/Linux客户端挂载NFS共享存储

本文详细介绍了如何在Linux上搭建NFS服务器,包括安装配置NFS服务、设置共享目录,并验证服务正常运行。接着讲解了Windows和Linux客户端如何挂载NFS共享存储,以及在遇到问题时如何强制卸载NFS共享。整个过程涵盖了从服务端到客户端的完整流程。
摘要由CSDN通过智能技术生成

1. Linux搭建NFS共享存储

1.1. NFS概述

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

1.2. 安装并配置NFS Server

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

关闭防火墙和SELinux:

systemctl disable firewalld
systemctl stop firewalld

sed -ri '#^SELINUX=#cSELINUX=Disabled' /etc/selinux/config
setenforce 0 
df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  8.5M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1        20G  1.6G   18G   9% /
/dev/vdb1       985G   77M  935G   1% /wangzynfs	# 使用一块单独的硬盘充当共享存储空间
tmpfs           379M     0  379M   0% /run/user/0
vim /etc/fstab
UUID=d92f2371-9009-4fc9-bd60-7c468c780ce1 /                       ext4    defaults        1 1
/dev/vdb1                                 /wangzynfs              ext4    defaults        1 1

安装nfs-utils和rpcbind软件包:

yum install -y nfs-utils rpcbind

1.3. 启动并验证NFS Server

说明: 手动加载NFS共享服务时,应该先启动/停止rpcbind,再启动/停止nfs,一定要按顺序启动和停止。
启动rpcbind和nfs服务:

systemctl start rpcbind
systemctl start nfs

systemctl enable rpcbind
systemctl enable nfs

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

cat /etc/exports
/wangzynfs 192.168.24.0/24(rw,sync,no_root_squash,insecure)
  • rw 表示允许读写
  • ro 表示为只读
  • sync 表示同步写入到内存与硬盘中
  • no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是- root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
  • root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
  • all_squash 所有访问用户都映射为匿名用户或用户组
  • async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
  • subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
  • no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
  • insecure必须加,否则会报“无法创建映射网络驱动器 网络错误-53”错误

重启NFS服务并验证:

systemctl stop rpcbind
systemctl stop nfs

systemctl start rpcbind	# 注意先启动rpcbind服务
systemctl start nfs
exportfs -v
/wangzynfs      192.168.24.xxx/32(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

showmount -e localhost
Export list for localhost:
/wangzynfs 192.168.24.xxx/32

2. 客户端挂载NFS共享存储

2.1. Windows操作系统挂载NFS共享存储

打开控制面板—程序—找到“启用或关闭Windows功能”—启用NFS服务,完成之后不需要重启Windows操作系统
说明:NFS服务默认关闭,家庭中文版不支持该功能奥
在这里插入图片描述

在这里插入图片描述

  • 选择映射网络驱动器:
    在这里插入图片描述

  • 输入:\NFS Server的IP地址\共享路径
    在这里插入图片描述

  • 挂载完成之后,往共享存储写入文件,会报“需要权限来执行此操作”
    在这里插入图片描述

接下来需要修改注册表,在注册表中添加匿名用户的默认UID和GID

  • 在运行中输入regedit,打开注册表编辑器:
    按照如下顺序检索:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
    在这里插入图片描述
    在这里插入图片描述
    新建AnonymousGig和AnonymousUid,其值都设置为0。修改完成之后,需要重启Windows客户端操作系统,注册表才会生效
    查看共享存储NFS属性信息:
    在这里插入图片描述

2.2. Linux操作系统挂载NFS共享存储

  • Linux客户端安装如下软件包:
yum install -y nfs-utils rpcbind
  • 验证服务端挂载点:
showmount -e 172.26.xxx.xxx
Export list for 172.26.xxx.xxx:
/wangzynfs 172.26.xxx.xxx/32
  • 安装HTTP服务挂载共享存储:
yum install -y httpd
mount -t nfs 172.26.xxx.xxx:/wangzynfs /var/www/html/
# NFS 共享的访问使用 mount 命令来进行挂载,对应的文件系统类型为 nfs 

手动挂载NFS共享目录:

mount -t nfs 172.26.xxx.xxx:/wangzynfs /var/www/html

df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   486M     0  486M   0% /dev
tmpfs                      496M     0  496M   0% /dev/shm
tmpfs                      496M  6.7M  489M   2% /run
tmpfs                      496M     0  496M   0% /sys/fs/cgroup
/dev/vda1                   20G  1.7G   17G   9% /
tmpfs                      100M     0  100M   0% /run/user/0
172.26.xxx.xxx:/wangzynfs  985G   76M  935G   1% /var/www/html

自动挂载NFS共享目录:
修改 /etc/fstab 配置文件,加入NFS共享目录的挂载设置,文件系统类型为nfs

vim /etc/fstab
172.26.xxx.xxx:/wangzynfs  /var/www/html         nfs     defaults,_netdev  1 1

3. 强制卸载NFS共享存储

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

模拟NFS服务端故障
systemctl stop nfs

客户端执行如下命令都会卡住
umount /var/www/html 
df -h 

需要在客户端强制解除挂载
umount -lf /var/www/html
  • 25
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

降世神童

学都学了,看也看了,感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值