NFS网络文件系统

  • Post author:
  • Post category:其他




NFS网络文件系统



1.nfs基本概述


NFS:Network File System 网络文件系统


​ 通过局域网让不同主机系统之间共享文件或目录

​ 主要实现LINUX系统之间文件共享(早期)

小文件存储系统(Moosefs,FastDFS)

大文件存储系统(glusterfs,HDFS)

文件系统:ext4 xfs


为什么要使用NFS服务进行存储?


​ 1.实现多台服务器之间的数据共享

​ 2.实现多台服务器之间的数据一致性



2.NFS实现原理

在这里插入图片描述

NFS守护进程rbcbind

​ PRC.nfsd

​ 守护进程,管理NFS

​ PRC.mount

​ 管理NFS的文件系统

本地文件操作方式

1.当用户执行mkdir命令,该命令会通过shell解释器翻译给内核,由内核解析完成后驱动硬件,完成响应操作…

NFS实现原理(需要先了解[程序][进程][线程])

  • 用户进程访问NFS客户端,使用不同的函数对数据进行处理
  • NFS客户端通过TCP/IP的方式传递给NFS服务端
  • NFS服务端接收到请求后,会调用portmap进程进行端口映射
  • nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端
  • RPC.mount进程判断客户端是否有对应的权限进行验证.
  • portmap进程实现用户映射和压缩
  • 最后NFS服务端会将对应请求的函数转为本地能识别的命令,传递至内核,由内核驱动硬件.

rpc是一个远程过程的调用,那么使用nfs必须由rpc服务

pc过程调用



3.共享权限参数

​ rw 读写权限 ***

​ ro 只读权限

root_squash 当NFS客户端以root管理员访问时,映射为NFS服务的匿名用户

​ no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root用户

​ all_squash 无论NFS客户端使用什么账号访问呢,均映射为NFS服务器的匿名用户***

​ no_all_squash

​ sync 同时将数据写入内存与因公安中,保证不丢失数据 ***

​ async 优先将数据保存到内存,然后再写入硬盘:这样效率提高,但可能会丢失数据

​ anonuid 配置all_aquash使用,指定NFS的用户UID,必须存在系统 ***

​ anongid 配置all_squash使用,指定NFS的用户UID,必须存在系统***

参考写法:


/data	192.168.1.0/24(rw,all_squash,sync),*(ro) #  使用* 表示所有ip
/backup 192.168.1.1/32(ro)
echo "/data 192.168.1.0/24(rw,no_root_squash,sync)" > /etc/exports



4.NFS服务实践



1.环境准备

服务器系统 角色 主机名 外网名 内网IP

centos 7.5 NFS服务器 NFS 10.0.0.31 172.16.1.31

centos 7.5 NFS服务器 backup 10.0.0.41 172.16.1.41‘

防火墙、selinux关闭



2.安装nfs

yum -y install nfs-utils rpcbind



3.配置

主被指文件vim /etc/exports,默认空

格式:

共享目录的路径 允许访问的FNS客户端(共享权限参数)

共享目录的路径:服务端本地目录

允许访问的客户端:ip或域名

​ 网段:192.168.1.0/24

​ 主机:192.168.1.1/32

​ 域名:*.oldboedu.com

echo "/data *(rw,no_root_squash,sync)" > /etc/exports



4.创建相关环境

mkdir /data
chown -R nfsnobody:nfsnobody /nfs_data/



5.启动服务

systemctl restart nfs-server rpcbind



6.验证是否生效

showmount -e



5.NFS客户端挂载

1.安装软件包yum -y install rbcbind

2.客户端使用showmount -e 服务端ip地址

3.mount :目录 本地目录

4.永久挂载

echo "172.16.1.31:/nfs /nfs_backup nfs defaults 0 0 " >> /etc/fstab

5.强制卸载 web节点和nfs服务器连接终端会当值web服务器卡断 这是需要强制卸载

umount -lt /nfs_backup	



版权声明:本文为weixin_43357497原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。