CentOS7 下安装 NFS,Linux/Windows 作为客户端

一、简介

1. 定义

NFS (Network File System),最初由 Sun Microsystems 于1984年开发的分布式系统协议,允许客户端上的用户通过网络访问文件,其方式与访问本地存储的方式类似。基于 Open Network Computing Remote Procedure Call (ONC RPC) 协议,NFS 是通过 Request for Comments(RFC) 定义的开放标准,允许任何人实现该协议。

2. 版本和变化

VersionRFCDateVariations
NFSv2RFC 1094March 1989UDP,无状态;32位,仅允许读取文件的前2GB
NFSv3RFC 1813June 1995支持TCP;64位,突破2GB;异步写入;在许多响应报文中额外增加文件属性
NFSv4RFC 3010December 2000集成了对文件锁定和挂载协议的支持;增加了对强安全性(及其协商)、复合操作、客户端缓存和国际化的支持
NFS 4.1RFC 5661January 2010会话、目录委托、并行NFS (pNFS)
NFS 4.2RFC 7862November 2016

3. 部署说明

本文描述如何在 CentOS 7 上安装 NFS,并在 Linux 和 Windows 下使用 NFS 客户端进行连接。

hostnameiprole描述
nfs-server192.168.0.135serverLinux nfs server
nfs-client192.168.0.136clientLinux client
Windows192.168.0.120clientWindows client

二、服务端

1. 关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld

2. 安装 nfs

# yum -y install nfs-utils

3. 配置说明

通过文件 /etc/exports 来对 NFS 进行配置。

It follows the following syntax rules:

  • Comments start with the hash mark (#).
  • Blank lines are ignored by default.
  • Each host’s options must be placed in parentheses directly after the host identifier, without any spaces separating the host and the first parenthesis.
  • Each exported file system should be on its own individual line.
  • A list of authorized hosts needs to be separated by space characters.
  • Long lines can be wrapped with a backslash ().

NFS export default options are:

  • ro: The exported file system is read-only and remote hosts cannot make any changes to the files shared on the file system. To allow hosts to make both reads and writes, specify the rw option instead.
  • sync: Aith this option, NFS server does not reply to requests before changes made by previous requests are written to disk. To enable asynchronous writes instead, specify the option async.
  • root_squash: This prevents root users that connect remotely from having root privileges. Instead, the NFS server will assign them the user ID nfsnobody. This effectively “squashes” the power of the remote root user to the lowest local user, preventing possible unauthorized writes on the remote server. To disable root squashing, specify no_root_squash.
  • To squash every remote user (including root), use all_squash. To specify the user and group IDs that the NFS server should assign to remote users from a particular host, use the anonuid and anongid options.
  • wdelay: This reduces disk write overhead by delaying writing to the disk if it suspects another write request is imminent. This can be disabled using no_wdelay, when default sync is on.
  • subtree_check: This option enables subtree checking. It can be disabled using no_subtree_check.

4. 配置共享目录

(1)修改 exports
这里将 /mnt/data 作为共享目录,开放读写权限

# vi /etc/exports
/mnt/data 192.168.0.0/24(rw,no_root_squash)

注:这里的共享目录可以使用 Ceph 块设备挂载的文件夹,关于如何使用块设备,请参考 块设备快速入门

(2)使配置生效

# exportfs -r

(3)查看 exports

# exportfs -v
/mnt/data     	192.168.0.0/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,no_root_squash,no_all_squash)

5. 启动服务

(1)启动 rpcbind

//开机启动
# systemctl enable rpcbind

//启动
# systemctl start rpcbind
//重启
# systemctl restart rpcbind

(2)启动 nfs-server

//开机启动
# systemctl enable nfs-server

//启动
# systemctl start nfs-server
//重启
# systemctl restart nfs-server

6. 确认启动成功

# rpcinfo -p
# exportfs
/mnt/data     	192.168.0.0/24

三、Linux 客户端

1. 安装 nfs

# yum -y install nfs-utils

2. 启动 rpcbind

//开机启动
# systemctl enable rpcbind
//启动
# systemctl start rpcbind
//重启
# systemctl restart rpcbind 

3. 挂载

创建目录

# mkdir /data

挂载 nfs,-o 指定版本

# mount -t nfs -o vers=3 192.168.0.135:/mnt/data /data
or
# mount -t nfs -o vers=4 192.168.0.135:/mnt/data /data

查看挂载结果

# df -hT | grep /data
192.168.0.135:/mnt/data nfs        17G  985M   17G    6% /data
or
192.168.0.135:/mnt/data nfs4       17G  985M   17G    6% /data
# dh -h
文件系统                 容量  已用  可用 已用% 挂载点
192.168.0.135:/mnt/data   17G  982M   17G    6% /data

4. 自动挂载

磁盘被手动挂载之后,需要把挂载信息写入 /etc/fstab 这个文件中,否则下次开机启动时仍然需要重新挂载。

例如对于 NFSv3,修改 /etc/fstab

192.168.0.135:/mnt/data  /data nfs defaults,vers=3 0 0
or
192.168.0.135:/mnt/data /data nfs vers=3,proto=tcp,hard,intr,rsize=32768,wsize=32768,noatime 0 0

执行挂载命令

# mount -a

查看挂载结果

# df -hT | grep /data
192.168.0.135:/mnt/data nfs        17G  985M   17G    6% /data

5. 解挂

# umount /data

四、Windows 客户端

1. 打开NFS服务

(1)Windows 功能 - 启用或关闭 Windows 功能

(2)通过命令提示符显示 NFS 服务器

showmount -e 192.168.0.135
/mnt/data                          192.168.0.0/24

2. 挂载

方法1:映射网络驱动器

方法2:通过命令挂载

mount 192.168.0.135:/mnt/data Z:

3. 查看

方式1:打开我的点脑,就可以在网络位置看到 Z:盘了

方式2:通过命令查看

mount

本地    远程                                 属性
-------------------------------------------------------------------------------
Z:       \\192.168.0.135\mnt\data               UID=-2, GID=-2
                                                rsize=262144, wsize=262144
                                                mount=soft, timeout=3.2
                                                retry=1, locking=yes
                                                fileaccess=755, lang=GB2312-80
                                                casesensitive=no
                                                sec=sys

4. 修改权限

对挂载盘进行写操作时,提示权限不足!

如果出现这种情况,解决办法:
(1)在运行中输入regedit,打开注册表编辑器。
(2)进入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default 条目。
(3)选择新建 QWORD,新建 AnonymousUid,AnonymousGid 两个值,值为0。
(4)重启 NFS 服务 或 电脑。

5. 解挂

umount Z:

参考链接

NFS - ArchWiki
https://en.wikipedia.org/wiki/Network_File_System
https://computingforgeeks.com/configure-nfsv3-and-nfsv4-on-centos-7/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值