综合架构之存储服务之NFS

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355