一、名词解释

NFS是Network File System的缩写,即网络文件共享系统
它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录
存储服务的种类
用于中小型企业: 实现数据共享存储
FTP(文件传输协议)

例如中小型电商公司(游戏点卡 游戏币 道具 Q币 充值话费) — 财务对账信息(数据库) — 对账文件 — FTP服务器
权限(用户认证的权限 存储目录的权限(用户))
samba windows–linux之间数据传输 Linux部署samba
NFS linux–linux之间数据传输

咱们手把手安装起来,操作步骤很简单,原理介绍部分在下面

二、服务端安装

老规矩,先做好规划

服务器IP角色互通位置备注
172.16.1.0NFS存储/data服务端【必须存在的】
172.16.1.1客户端1/data/cli1客户端1【非必须】
172.16.1.2客户端2/data/cli2客户端2【非必须】
172.16.1.3客户端3/data/cli3客户端3【非必须】

在这里插入图片描述

1.下载安装软件

rpm -qa|grep -E "nfs|rpc"    #检查是否已经安装
yum install -y nfs-utils rpcbind    #yum安装

2.编写nfs服务配置文件

vim /etc/exports (man exports)
/data   客户端IP/24(rw,sync)
/data   172.16.1.1/24(rw,sync)
/data   172.16.1.2/24(rw,sync)
/data   172.16.1.3/24(rw,sync)
#提示:以上写法看上就很冗余,由于三个客户节点都属于同一网段,所以可以换成这样的方式:
#/data   172.16.1.0/24(rw,sync)

#解释一下对应参数:
01     02(03)
01: 设置数据存储的目录 /data
02: 设置网络一个白名单 (允许哪些主机连接到存储服务器进行数据存储)
03: 配置存储目录的权限信息 存储目录一些功能【具体的参数信息请看下面】

NFS配置参数权限
rw   -- 存储目录是否有读写权限
ro   -- 存储目录是否时只读权限
sync   -- 同步方式存储数据 直接将数据保存到磁盘(数据存储安全)
async  -- 异步方式存储数据 直接将数据保存到内存(提高数据存储效率)
no_root_squash  -- 不要将root用户身份进行转换   
root_squash     -- 将root用户身份进行转换
all_squash      -- 将所有用户身份都进行转换 
no_all_squash   -- 不要将普通用户身份进行转换

3.创建一个存储目录

mkdir /data/cli{1,2,3}
chown -R nfsnobody.nfsnobody /data    #授权角色

4.启动服务程序

#先启动 rpc服务(中介)
systemctl start rpcbind.service 
systemctl enable rpcbind.service
#再启动 nfs服务
systemctl start nfs
systemctl enable nfs

三、客户端安装

1.安装nfs服务软件

yum install -y nfs-utils

2.实现远程挂载共享目录

mount -t 类型 服务端IP:/xxx  /xxx(本地的目录)
#例如:
mount -t nfs 172.16.1.0:/data  /data/cli1

四、原理

澳同学: 看上去是挺简单的,通俗的理解,服务端打开一个共享磁盘,客户端去远程挂载,通过网络实现自动传输
卑微涛: 聪明,实际上客户端的数据全都存放在了NFS服务端中,而并不是scp远程复制
澳同学: 那实际的原理呢?
卑微涛: 来,咱们接着往下看

服务端:

  • 启动rpc服务,开启111端口
  • 启动nfs服务
  • 实现nfs服务进程和端口号的注册

客户端:

  • 建立TCP网络连接
  • 客户端执行挂载命令,进行远程挂载
  • 可以实现数据远程传输存储

小提示:检查nfs服务进程与端口注册信息

#查看NFS注册信息
rpcinfo -p NFS服务IP

在这里插入图片描述

#若只显示111端口号信息,则表示未注册
#例如:
rpcinfo -p 172.16.1.0
 program vers proto   port  service
 100000    4   tcp    111  portmapper
 100000    3   tcp    111  portmapper
 100000    2   tcp    111  portmapper
 100000    4   udp    111  portmapper
 100000    3   udp    111  portmapper
 100000    2   udp    111  portmapper

以上就是关于NFS的知识,这个月有点忙,总算在月底最后一天更新了一篇😝
保住了月更博主的称号,下个月好好整理一下自己,争取每月两更,还请各位小伙伴多多支持鸭~
我是励志成名一下优秀DBA的卑微涛,咱们下一篇再见了~
在这里插入图片描述

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐