美文网首页
综合架构之存储服务之NFS

综合架构之存储服务之NFS

作者: 一只打不死的小强 | 来源:发表于2019-07-16 21:11 被阅读0次
1. 存储服务概念介绍
2. 存储服务部署流程 
3. 存储服务存储原理 
4. 存储服务配置参数
5. 存储服务挂载方法 
6. 存储服务常见异常
7. 存储服务优点缺点

第一部分 存储的概念介绍

1.1存储服务器的价值

1. 可以实现数据统一共享存储(解决数据不一致的问题)
2. 节省架构服务运营成本(如果不用共享存储,则会每台服务器都会存储一个集群内服务器的数据,更浪费磁盘资源。)
3. 减少web服务器的压力。

1.2如何实现数据存储

NFS(network file system --- 网络共享文件系统 不支持windows) server u 搭建FTP服务器
FTP(文件共享存储 --- windows比较方便简单 linux如何部署FTP--数据权限设置)
samba (linux部署服务端 可以让 windows 与 linux同时可以访问)

注:samba配置比较复杂 135 139端口也较危险。

1.3分布式存储

分布式存储原理图

原理:将数据分散的传到各个存储服务器,通过一定的算法将数据进行保存。然后由一台管理服务器进行对多个存储服务器进行控制。当客户端访问存储时,只需要访问分布式存储服务器的管理服务器即可。同时当一台存储服务器出现问题时,这时将数据转移到其他服务器上。

第二部分 部署nfs存储流程

nfs存储原理图

存储服务器 客户端
把远程的存储服务器的一个目录作为存储设备
把客户端的一个目录作为挂载点
由多个服务器共同挂载服务端的目录,通过网络并实现共享存储。

2.1 rpc服务的原理

RPC 远程过程调用程序---中介服务

rpc服务原理

实际上用租房子来理解 租客找房子要找中介,中介那有房源信息。相当于客户端挂载必须要找RPC服务。


2.2 nfs服务的工作原理

nfs多进程服务

一旦服务一启动,会出现多个网络进程。每个进程会产生相应的端口,并且是随机端口,为了减少客户连接的复杂度,出现了一个RPC服务。客户端连接存储,只需要访问RPC服务。


图片.png

2.3 nfs服务的部署流程

第一个历程:安装软件程序
    yum install -y nfs-utils rpcbind
    rpm -qa nfs-utils 
    rpm -qa rpcbind
    第二个历程:编写配置文件
    vim /etc/exports
    01                              02 
    可以进行共享存储目录     允许存储数据网段信息(存储目录权限配置 存储数据方式配置)
    /data                    172.16.1.0/24(rw,sync-同步方式存储数据)
    同步方式存储数据:用户有数据存储  ----  存储服务器(磁盘中) 存储安全性高 安全
    异步方式存储数据:用户有数据存储  ----  内存 --- 存储服务器(磁盘中)  存储效率高
    /data 172.16.1.0/24(rw,sync) 英文小括号 多个参数用,分割
    第三个历程:创建备份目录 对存储目录进行授权
    mkdir /data
    chown nfsnobody.nfsnobody /data
    第四个历程:启动服务程序
    systemctl start rpcbind
    systemctl enable rpcbind
    systemctl start nfs
    systemctl enable nfs

2.4客户端部署的流程

第一个历程:安装相关软件
    yum install -y nfs-utils
第二个历程:进行存储目录挂载
mount -t nfs  172.16.1.31:/data  /mnt
第三个历程:进行测试
客户端web01   在挂载点创建数据   存储服务是否有创建好的数据
                                     检查其它客户端挂载点是否有创建的数据

客户端一定要安装nfs-utils这个软件,否则会出现报错!



报错提示:文件类型使用错了


第三部分 nfs服务用户映射原理

三种服务用户映射原理图

当客户端的用户通过网络向存储服务器进行存储,无认证项目,白名单通过,最终会把用户变成nfsnobody(安装好服务以后,会默认有这个用户)。


当软件包无法安装时该如何解决

 异常下载软件问题:
    01. 更新yum源 更改后 yum clean all
    02. 利用rpm安装软件 获得rpcbind软件包
        vim /etc/yum.conf 
        cachedir=/var/cache/yum/$basearch/$releasever   --- 下载软件保存路径
        keepcache=1                                     --- 下载软件保留下来,不要被删除,0代表删除。
yum reinstall rpcbind
        rpm -ivh  rpcbindxxx.rpm
  [root@nfs01 ~]#   rpm -ivh /tmp/rpcbind-0.2.0-47.el7.x86_64.rpm 
    Preparing...                          ################################# [100%]
    error: %pre(rpcbind-0.2.0-47.el7.x86_64) scriptlet failed, exit status 1   --- 创建用户动作 nfsnobody
    rpm -e rpcbind --nodeps
    error: rpcbind-0.2.0-47.el7.x86_64: install failed
    说明:发现还不行的时候看报错信息 脚本创建失败
    1. nfs服务安装好之后,会自动创建nfsnobody虚拟用户
    2. 需要确认4个和用户相关的文件不能上锁
    lsattr 
   chartr -i 是解锁

第四部分 存储服务配置文件编写格式

man exports

  • ro 只读配置 使存储目录权限位只读
    应用场景:使开发人员(线下)可以查看线上服务器数据(线上的服务器只能运维操作)
    一是 让他查看自己的电脑
    二是 给他挂载只读目录
  • rw 读写权限
    sync 同步存储数据
    async 异步存储数据

注:以上四个为常用


all_squash     将所有普通用户映射为指定nfsnobody用户
 no_all_squash  将所有普通用户都不做映射
root_squash    将root用户映射为指定nfsnobody用户
no_root_squash 将root用户不做映射

  • all_squash映射实践:
    第一步: 服务端(修改配置文件)
    /data 172.16.1.0/24(ro,sync,all_squash)

systemctl reload nfs
restart:将所有连接会话都会直接断开
reload: 只会将没有数据传输链接断开, 重新建立连接 让用户访问感受更好 让传输的数据继续传,传完再断开再重新传.

第二步:上传数据测试
[oldboy@web01 mnt] touch oldboy.txt
[oldboy@web01 mnt]$ ll
total 4
-rw-r--r-- 1 nfsnobody nfsnobody 19 Jul 16 12:03 oldboy.txt --- 所有普通用户都会做映射

  • no_all_squash映射实践:
    第一步: 服务端(修改配置文件)
    /data 172.16.1.0/24(ro,sync,no_all_squash)
    systemctl reload nfs
    第二步:上传数据测试 服务端查看
    [root@nfs01 data]# ll
    total 4
    -rw-rw-r-- 1 1017 1017 0 Jul 16 12:08 oldboy02.txt
    -rw-rw-r-- 1 1017 1017 0 Jul 16 12:10 oldboy_1017.txt --- 用户传输数据身份没有变化,看用户uid信息

注:当服务端也有普通用户并且uid也和客户端相同时,则可以存储,如果不相同 会将属主组变为客户端文件uid信息
如果服务端已经有了用户并且uid和服务端相同,备份的时候虽然会显示备份的文件属组 属组会显示服务端用户的名字。但UID是跟客户端相同的。

  • root_squash映射实践:
    第一步:服务端编写配置文件
    /data 172.16.1.0/24(rw,sync,root_squash)
    第二步:客户端检查存储信息
    [root@web01 mnt]# touch root_01.txt
    [root@web01 mnt]# ll
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Jul 16 12:19 root_01.txt --- root用户会映射为指定的nfsnobody用户

  • no_root_squash映射实践:
    第一步:服务端配置文件修改
    /data 172.16.1.0/24(rw,sync,no_root_squash)
    第二步:客户端检查存储信息
    [root@web01 mnt]# touch root_02.txt
    [root@web01 mnt]# ll
    -rw-r--r-- 1 root root 0 Jul 16 12:22 root_02.txt

相关文章

  • 综合架构之存储服务之NFS

    第一部分 存储的概念介绍 1.1存储服务器的价值 1.2如何实现数据存储 NFS(network file sys...

  • Centos7.6NFS储存服务

    NFS存储服务概念 NFS详解.png NFS工作流程 储存服务存在的意义 可以实现数据统一共享存储 节省架构服务...

  • 存储服务NFS内容补充

    NFS用户映射4种squash在架构中的选择存储服务配置参数nfs挂载常见问题NFS服务相关重要文件命令总结挂载参...

  • 综合架构之SSH服务

    远程服务概念说明远程服务连接原理远程服务连接方式远程服务配置文件远程访问防范入侵方案 远程服务概念说明: teln...

  • 28-网络文件共享服务

    本章内容 ◆ FTP服务◆ NFS服务◆ SAMBA服务◆ 数据同步 存储基础知识---存储网络 直接存储(Dir...

  • Linux-NFS存储服务

    1.NFS存储服务作用 实现数据的共享存储编写数据操作管理节省购买服务器磁盘开销 2.NFS服务部署流程 RPC:...

  • NFS存储服务

    Server端配置 1、环境配置 关闭防火墙、selinux 2、安装nfs [root@nfs ~]# yum ...

  • 存储服务 NFS

    1. NFS 介绍 NFS 是 Network File System 的缩写,中文意思是网络文件系统,它的主要功...

  • 38-综合架构-NFS服务补充

    一、NFS永久挂载 方法1:/etc/rc.local 开机自启动 需要添加执行权限:chmod +x /etc...

  • Day32综合架构nfs共享存储

    什么是nfsnetwork file system 网络文件系统. nfs能干什么?实现不同主机系统之间的共享 ...

网友评论

      本文标题:综合架构之存储服务之NFS

      本文链接:https://www.haomeiwen.com/subject/opbtlctx.html