分布式存储学习入门(三)

文章目录

  • 文件系统
    • 文件的组成
    • 文件共享协议
      • CIFS
      • NFS Network File System protocol 网络文件系统
  • 分布式存储原理
    • 切片
    • 对象存储
  • 分布式副本及纠删码
    • 副本模式
    • 纠删码模式
      • 纠删码功能介绍
      • 节点与冗余度
      • 纠删码原理:Reed Solomon算法

文件系统

文件的组成

1、目录项:包括文件名和inode节点号。
目录项的列表称为目录,即目录文件。
2、INode:又称文件索引节点,包含文件的基础信息以及数据块指针。
文件存储在硬盘上,硬盘的最小存储单位是扇区,每个扇区存储512字节(相当于0.5KB)。操作系统一次性连续读取多个扇区,即一次性读取一个块(block)。文件存取的最小单位是块,4KB,八个扇区组成一个块。
存储文件的元信息包括:
文件字节数,User ID,groupID,读写执行权限,时间戳,连接数,文件数据block位置。
3、数据块:包含文件的具体内容。
4、超级块:保存了全局文件信息,如硬盘已用空间、数据块可用空间、inode结点信息。

硬链接:一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。

文件共享协议

NAS设备包含组件:NAS引擎(CPU和内存);一个或多个网路接口卡(NIC);一个优化的操作系统用于NAS功能管理;文件共享协议NFS和CIFS、FTP、http;标准存储协议的磁盘FC、SAS、SCSI;访问NAS的客户端。

CIFS

集成至操作系统中,运行在TCP/IP上,使用DNS进行名称解析。

NFS Network File System protocol 网络文件系统

传统的UNIX环境文件共享协议。NFS用于独立的传输,使用TCP或UDP。需要配备专用软件,连接故障后可自动恢复。

分布式存储原理

分布式存储系统(Distributed Storage System),是将数据分散存储在多台独立的设备上。
传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。
分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

切片

横向扩展方式支持系统可扩展性,即通过增加机器数据获得水平扩展能力。
对于待存储的海量数据,需要通过数据分片(Shard/Partition)来将数据进行切分、并通过数据路由(Route)机制分配到各个机器中。

数据切片:实现系统的水平扩展,达到通过增加机器来提高容量的目的。
数据复制:实现数据的高可用性,将数据复制多份来保障数据不会丢失。

对象存储

块存储:读写快,不利于共享。文件存储:读写慢,利于共享。对象存储:读写快,利与共享。
一个文件包括属性(metadata元数据)和内容(数据)。
FAT32 文件系统,将元数据和数据一起存储,打散读取。读写速率慢。按顺序按图索骥,实际1个在工作,最终完成读取。
对象存储将元数据独立出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。
当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,用户直接访问指定服务器。OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难。
数据库适合块存储,对象存储成本高,如不是海量,只为做文件共享,可直接用文件存储,性价比高。

分布式副本及纠删码

副本模式

空间利用率低,性能损耗大,使用场景少。
副本是将每个原始数据分块都镜像复制到另一存储介质上,从而保证在原始数据失效后,数据仍然可用并能通过副本数据恢复。在副本机制中,数据的可靠性和副本数是呈正相关,副本数越多,数据可用性越好,可靠性也越高,但也意味着更低的空间利用率以及更高的成本。

纠删码模式

空间利用率高,性能损耗少,使用场景广泛。

分布式存储中经常遇到纠删码的概念:当冗余级别为n+m时,从n个源数据块中计算出m个的校验块,将这n+m个数据块分别存放在n+m个硬盘上,就能容忍任意m个硬盘故障;硬盘故障时,只需任意选取n个正常的数据块就能计算得到所有的源数据。如果将n+m个数据块分散在不同的存储节点上,那么就能容忍m个节点故障。

纠删码功能介绍

简化IO读写流程,用户只需访问元数据服务器,从存储中指定节点度读写。

节点与冗余度

节点数>=N+M :冗余度为M个节点。
节点数

纠删码原理:Reed Solomon算法

分布式存储学习入门(三)_第1张图片
当编码数据出现D1,D4,C2 数据丢失后,
分布式存储学习入门(三)_第2张图片
残留矩阵求逆:
分布式存储学习入门(三)_第3张图片
原始数据恢复:
分布式存储学习入门(三)_第4张图片

你可能感兴趣的:(存储)