部署Nfs服务

服务概述

Nfs是network file system的缩写,中文意思是网络文件系统,主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录
互联网中小型网站集群架构后端常用Nfs进行相互据共享
大型网站,有可能用到更复杂的分布式文件系统,例如:Moosefs GlusterFs FastDFS

存储服务器存在的意义

①实现数据统一存储
②节省磁盘购买成本

存储服务存储原理

  • 在存储客户端创建本地存储数据目录
  • 在存储服务端创建共享存储数据目录
  • 实现客户端目录和存储目录建立挂载

客户端目录中操作数据等价于存储服务器目录中操作数据

部署过程

服务端

  1. 安装软件
yum -y install rpcbind nfs-utils
  1. 编写配置文件
vim /etc/exports

在这里插入图片描述

  1. 创建存储目录
mkdir /data
chown nfsnobody.nfsnobody /data
  1. 编写本地解析配置文件
vim /etc/hosts
  1. 启动服务程序
systemctl start nfs rpcbind

客户端

  1. 安装软件程序
yum -y install nfs-utils

2.挂载应用存储服务
临时挂载

 mount -t nfs ip地址或者主机名:/存储目录  挂载点

永久挂载
①vim /etc/rc.local

在这里插入图片描述
②vim /etc/fstab( 先加载/etc/fstab —> 启动网络服务 —> 加载/etc/fstab(systemctl start remote-fs.target))

在这里插入图片描述
mount -o 挂载参数
/proc/mounts

rsize 提示数据存储效率,减缓存储服务器压力 在客户端内存中设置了缓存
wsize 提升数据读取效率,减缓存储服务器压力 在客户端内存中设置了缓冲
hard 实现长连接挂载操作 (对于架构而言,配置hard容易造成耦合度过程) 架构师
soft 实现长连接挂载操作(具有超时时间timeo=600) (对于架构而言,配置soft可以实现解耦) 架构师
proto 网络挂载时选择通讯协议 (tcp/udp)
atime 访问存储数据时,会消耗磁盘IO, 影响磁盘性能
noatime 访问存储数据时,不要更改atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗 优化
diratime 访问存储目录时,会消耗磁盘IO, 影响磁盘性能
nodiratime 访问存储目录时,不要更改目录atime属性信息, 不会消耗磁盘IO, 减少磁盘性能消耗 优化

配置文件参数

/var/lib/nfs/etab---- 记录nfs服务配置信息/var/lib/nfs/etab

rw ---- 是否允许向存储目录中存储数据,可读可写
ro ---- 是否允许向存储目录中存储数据,只读
async ---- 异步传输数据 (先存储到内存中,再存储到磁盘中)
sync ---- 同步传输数据 (直接存储到磁盘中)
root _squash ---- 是否将用户信息做映射转换 将root用户身份进行转换(默认转换为用户nfsnobody)
np_root _squash ---- 是否将用户信息做映射转换 不将root用户身份进行转换
all_squash ---- 是否将用户信息做映射转换 将普通用户身份进行转换 (默认转换为用户nfsnobody)
no_all_squash ---- 是否将用户信息做映射转换 不将普通用户身份进行转换
anonuid ---- 指定映射用户身份信息 (uid)
anongid ---- 指定映射用户身份信息 (gid)
总结:参数配置时,尽量配置root_squash,no_all_squash,anonuid=xxx,anongid=xxx

存储服务常用命令

rpcinfo 查看nfs服务注册信息

rpcinfo -p IP地址

注册之前显示状态
部署Nfs服务_第1张图片
注册之后显示状态
部署Nfs服务_第2张图片

showmount 查看可用挂载目录信息

showmount -e IP地址

在这里插入图片描述
exportfs 管理nfs服务运行状态

exportfs -arv 配置文件 不用重启服务,配置文件也能生效

存储服务权限设置

存储服务端配置文件参数没有设置正确(rw/ro xxx_squash)
存储服务端存储目录本身权限配置问题
存储客户端挂载参数配置问题 (ro)
存储目录权限继承关系 (服务端配置文件中不要有目录层级配置)

存储服务企业应用

弃用Nfs案例:如何解决Nfs服务单点故障
读取数据时:弃用Nfs服务(将存储数据和web服务器数据做同步),让用户读取web服务器本地数据
写入数据时:弃用Nfs服务(写入数据到本地 将数据进行恢复同步),让用户写入web服务器本地数据
分布式存储

你可能感兴趣的:(部署Nfs服务)