文件服务器-NFS

本文详细介绍了NFS网络文件系统的工作原理,包括如何通过RPC实现远程文件共享,以及如何在Linux服务器上安装、配置和管理NFS服务,包括启动相关守护进程、配置文件挂载等步骤。
摘要由CSDN通过智能技术生成

一、简介

    NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端端看起来,就像访问本地文件一样。

RPC,基于C/S模型。程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节,甚至可以请求对方的系统调用。

对于Linux而言,文件系统是在内核空间实现的,即文件系统比如ext3、ext4等是在Kernel启动时,以内核模块的身份加载运行的。

二、原理

NFS本身的服务并没有提供数据传递的协议,而是通过使用RPC(远程过程调用 Remote Procedure Call)来实现。当NFS启动后,会随机的使用一些端口,NFS就会向RPC去注册这些端口。RPC就会记录下这些端口,RPC会开启111端口。通过client端和sever端端口的连接来进行数据的传输。在启动nfs之前,首先要确保rpc服务启动。

具体过程如下:

  1. 本地用户要访问nfs服务器中文件,先向内核发起请求,内核处理调用nfs模块及rpc client

  2. rpc client向rpc server发起连接

  3. 在连接之前,NFS服务除了启动nfsd本身监听的端口2049/tcp和2049/udp,还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口

  4. 完成连接,接受访问请求

  5. nfs应用程序向内核发起请求

  6. 内核调用文件系统

       然后client端通过获取的NFS端口来建立和server端的NFS连接并进行数据的传输。

以下为启动各服务的作用

rpc:远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。

portmapper:负责分配rpc server的端口,并在client端请求时,负责响应目的rpc server端口返回给client端,工作在tcp与udp的111端口上。

mountd:是nfs服务的认证服务的守护进程,client在收到返回的真正端口时,就会去连接mountd,认证取得令牌。

nfsd:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户,工作在tcp和udp的2049端口。

idmapd:是NFS的一个程序,用来负责远程client端创建文件后的权限问题。

quotad:用用于实现磁盘配额,当client端挂载nfs后可以限制磁盘空间的大小。

三、NFS服务搭建

# service:
 
# 安装 NFS 服务
rpm -qa nfs-utils rpcbind
yum install -y nfs-utils rpcbind
 
mkdir nfs
chmod 777 nfs
 
vim /etc/exports
/data/nfs        *(rw,sync,no_root_squash)
 
# 使配置生效
sudo exportfs -r
 
# 查看状态
systemctl status rpcbind && systemctl status nfs
 
# 启动 rpcbind 和 nfs 服务
systemctl start rpcbind && systemctl start nfs
 
# 查看端口
rpcinfo -p localhost
 
# 查看服务端是否正确加载了设置的 /etc/exports 配置
showmount -e localhost
 
 
# 将 rpcbind , nfs 设置为开机自启
sudo systemctl enable rpcbind
sudo systemctl enable nfs
 

#################################################


# client:
 
# 安装 NFS 服务
rpm -qa nfs-utils rpcbind
yum install -y nfs-utils rpcbind
 
mkdir -p /opt/apps/faas/nfs
chmod 777 /opt/apps/faas/nfs
 
showmount -e ip
 
# 应用服务器 配置挂载,mount nfs ip:文件路径 本机文件路径
mount nfs_ip:/data/nfs /opt/apps/faas/nfs

 
# 开机自动挂载配置
vim /etc/fstab

nfs_ip:/data/nfs /opt/apps/faas/nfs nfs defaults 0 0

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值