手把手教你搭建NFS数据共享服务!

IT科技类资讯2025-11-05 16:05:1666
  NFS服务介绍   NFS挂载原理   NFS服务部署   NFS服务扩展

  企业为什么需要nfs

  在企业集群架构中通常会有数台web服务器来做负载均衡,手把手教S数而这些web服务器对外访问的搭建内容必须是一致的

  但是在用户上传文件时是只是上传至当前访问的服务器内,并不会上传到所有服务器上,据共这就会导致在访问其他服务器时并不会得到用户上传的享服文件,这个时候就需要用到nfs数据共享服务

  NFS服务介绍

  | 什么是手把手教S数NFS?

  NFS就是Network File System的缩写,它最大的搭建功能就是可以通过网络,让不同的据共机器、不同的享服操作系统可以共享彼此的文件

  NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的手把手教S数系统中来看,那个远程主机的搭建目录就好像是自己的一个磁盘分区一样,在使用上相当便利

  NFS一般用来存储共享视频,免费信息发布网据共图片等静态数据

  NFS挂载原理

  如上图示:

  当我们在NFS服务器设置好一个共享目录/oldboy/blog/images后,享服其他的手把手教S数有权访问NFS服务器的web服务器就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义

  挂载好后我们在本地能够看到服务端 /oldboy/blog/images的搭建所有数据。如果服务器端配置的据共客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,可以通过 df –h 命令来查看磁盘信息

  既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有对应的网络端口

  那么NFS服务器到底使用哪个端口来进行数据传输呢?

  ①基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,这个随机端口为小于1024的端口

  既然是随机的那么客户端又是如何知道NFS服务器端到底使用的高防服务器是哪个端口呢?

  ②这时就需要通过远程过程调用 RPC(Remote Procedure Call) 协议来实现了!

  | RPC与NFS通讯原理

  因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定

  客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而 RPC 就是用来统一管理NFS端口的服务,并且统一对外的端口是111

  RPC 会记录NFS端口的信息,如此我们就能够通过 RPC 实现服务端和客户端沟通端口信息

  PRC最主要的功能就是指定每个NFS功能所对应的 port number,并且通知客户端,可以连接到正常端口上去

  那么RPC又是如何知道每个NFS功能的端口呢?

  ①首先当NFS启动后,就会随机使用一些端口

  ②然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那么服务器端的亿华云计算RPC就会将之前记录的NFS端口信息告知客户端

  ③如此客户端就会获取NFS服务器端的端口信息,就会以实际端口进行数据的传输了

  注意:在启动NFS SERVER之前,首先要启动RPC服务(即 portmap 服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。

  特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效

  | NFS客户端和NFS服务器通讯过程

  ①首先服务端启动 RPC 服务,并开启111端口

  ②服务端启动NFS服务,并向 RPC 注册端口信息

  ③客户端启动 RPC 服务,向服务端的 RPC 服务请求服务端的NFS端口

  ④服务端的 RPC 服务反馈NFS端口信息给客户端

  ⑤客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

  NFS服务部署

  | 环境准备

  | 检查当前系统是否支持NFS服务

# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # uname -r 3.10.0-1160.31.1.el7.x86_64 # uname -m x86_64 # uname -n nfs01 # uname -a Linux nfs01 3.10.0-1160.31.1.el7.x86_64 #1 SMP Thu Jun 10 13:32:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

  | 安装 NFS 和 rpc

# 服务器端和客户端都要安装 yum install nfs-utils rpcbind -y # 检查是否安装成功 rpm -qa nfs-utils rpcbind

  | 启动RPC

systemctl start rpcbind.service systemctl enable rpcbind.service # 看看有没有注册的端口 rpcinfo -p 127.0.0.1

  | 启动NFS

systemctl start nfs systemctl enable nfs # 看看有没有注册的端口 rpcinfo -p 127.0.0.1 # 检查服务是否都已启动 netstat -lntup|egrep "rpc|nfs"

  | 配置nfs

  NFS配置文件 /etc/exports

  ①待共享的目录 存东西的目录 取东西的目录例如:/data

  ②访问的主机

  ③() 权限

echo /data 172.16.1.0/24(rw,sync) >> /etc/exports mkdir -p /data # 重启 NFS 下述二者等价,选一个即可 systemctl reload nfs # 生产场景必须要实现平滑重启 exportfs -r # NFS默认用户【nfsnobody】 grep nfsno /etc/passwd # 如果没有就创建 groupadd -g 65534 nfsnobody useradd nfsnobody -u 65534 -g nfsnobody -s /sbin/nologin -M # 目录授权 chown -R nfsnobody.nfsnobody /data # 查看nfs服务器共享信息,输出格式为“共享的目录名称 允许使用客户端地址” showmount -e 172.16.1.31

  | 服务本地测试挂载

# mount -t nfs 172.16.1.31:/data /mnt # df -h 172.16.1.31:/data 19G 1.8G 18G 10% /mnt # touch /mnt/oldboy.txt # ls /mnt/ oldboy.txt

  | 客户端测试

# 安装 yum install nfs-utils rpcbind -y rpm -qa nfs-utils rpcbind # 安装nfs-utils的目的是为了获得showmount命令 # 启动 systemctl start rpcbind systemctl enable rpcbind # 查看NFS服务器提供的共享目录 showmount -e 172.16.1.31 # 挂载测试 mount -t nfs 172.16.1.31:/data /mnt df -h touch /mnt/oldgirl.txt ls /mnt/

  NFS服务扩展

  | NFS客户端开机自启动挂载

  方法1:把挂载的命令放入/etc/rc.local中,以实现开机自动挂载

echo "#mount by oldboy" >>/etc/rc.local echo "/bin/mount -t nfs 172.16.1.31:/data /mnt" >>/etc/rc.local chmod +x /etc/rc.d/rc.local

  方法2:放入/etc/fstab

echo 172.16.1.31:/data /mnt nfs defaults 0 0 >> /etc/fstab # 由于在开机启动流程中加载/etc/fstab会在网卡之前,这会导致无法实现NFS挂载,所以要做延迟启动 开启remote-fs.target开机自启动 systemctl enable remote-fs.target
本文地址:http://www.bzve.cn/news/678a1799304.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

下面给出装这个工具的方法: 复制代码代码如下: sudo add-apt-repository ppa:atareao/atareao sudo apt-get update sudo apt-get install touchpad-indicator

HTCUUltra拍照表现如何?(HTCUUltra拍照体验与参数详解)

探究显卡金手指的新功能(以游戏性能提升为核心的显卡金手指更新,)

余额宝安全性解析(探究余额宝的安全性及风险控制机制)

华为Mate8触屏性能如何?(探究华为Mate8触屏体验及功能表现)

三星Q430笔记本电脑的性能与使用体验(探索三星Q430笔记本电脑的优势和不足)

了解以西伯利亚入耳式耳机(探索以西伯利亚入耳式耳机的声音表现和舒适性)

华为荣耀6x质量考察(全面考察华为荣耀6x的质量表现)

友情链接

滇ICP备2023006006号-39