背景
本文次要对杨传辉(日照)《大规模分布式存储系统原理解析与架构实战》、大话存储、网络资源 (具体参考文末链接) 及集体了解进行整顿,意在构建出存储倒退根本轨迹和一些基本常识,让更多像我一样的初入者有个宏观上的认知。
存储发展史
从单机到互联网,存储作为的基础设施,次要倒退都是围绕构建 低成本、高性能、可扩大、易用的指标进行演进,时至今日,在状态上存储分为单机存储、集中存储、分布式存储、云存储、云原生存储
各阶段存储的根本状态如下
各阶段根本状态
存储数据分类 & 模型
无论单机存储、分布式存储、云存储都是基于特定利用场景下,对指定数据类型构建对应的存储数据模型
数据分类
数据模型
存储类型
常见三种存储类型:块存储、文件存储、对象存储
块存储
基于 Block 块的存储模式,两种常见存储形式:
- DAS(Direct Attch Storage),直连主机存储形式
- SAN (Storage Area Netowrk),高速网络链接主机存储形式
文件存储
附丽网络提供文件存储服务
对象存储
构建于键值存储,外围是将数据通路(data)和管制通路(meta)拆散,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,对外以 RSETful API 模式服务
单机存储
基本概念
单机存储系统是单机存储引擎(数据结构在机械磁盘、SSD 等长久化介质上的实现)的一种封装,对外提供文件、键值、表格或者关系模型的存储服务。
存储引擎
存储引擎是存储系统的发动机,决定了存储系统可能提供的性能和性能, 提供性能蕴含:
- 减少(Create)
- 读取(Retrieve),随机读取和程序扫描
- 更新(Update)
- 删除(Delete)
引擎间差别如下:
引擎
机理
反对
不反对
对应的存储系统
哈希存储引擎
哈希表的长久化实现。基于哈希表构造的键值存储系统,数组 + 链表的形式实现
增、删、改、随机读取
程序扫描
键值(Key-Value)存储系统
B 树存储引擎
B 树的长久化实现
增、删、改、随机读取 & 程序扫描
关系数据库
LSM(Log-Structured Merge Tree)树存储引擎
与 B 树相似,区别在于把一棵大树拆分成 N 棵小树写时,先写入内存中,到肯定阈值后,写入磁盘,磁盘中的树定期能够做 merge 操作,合并成一棵大树,以优化读性能
增、删、改、随机读取 & 程序扫描
Bigtable; HBase;
集中式存储
基本概念
集中式存储绝对与单机存储而言,存储系统中蕴含了更多组件,除了机头(控制器)、磁盘阵列(JBOD)和交换机等设施外,还有治理设施等辅助设施。
参考:集中式存储的根本逻辑示意图
零碎形成
- 机头,整个存储系统的核心部件,通常由控制器、前后端口组成,
-
- 控制器,通常有二,实现互备高可用,控制器中的软件实现对磁盘的治理,将磁盘抽象化为存储资源池,而后划分为 LUN 提供给服务器应用。
- 前后端口,前端端口用户为服务器提供存储服务,后端端口用于裁减存储系统的容量(连贯更多的存储设备)
- 磁盘柜(Just a Bound Of Disk,JBOD),磁盘挂在服务器外的专用柜里,有独立电源、散热、接口等,外部线缆相连(SCSI),对机头后端端口对立挂载
分布式存储
基本概念
分布式存储系统,是将扩散独立的存储设备通过网络互联,零碎关联,对外作为一个整体提供存储服务。
系统分类
- 分布式文件系统
- 分布式键值零碎
- 分布式表格零碎
- 分布式数据库
设计准则
参考 CAP
云存储
基本概念
云存储,是一种云计算畛域存储服务形式,底层构建在分布式存储根底之上,下层通过 Internet 模式提供存储服务,除具备分布式存储根底个性外,更兼具灵活性,通常由云厂商提供
参考产品
引擎
对象存储
文件存储
块存储
AWS
Amazon Simple Storage Service (Amazon S3)
- Amazon Elastic File System (Amazon EFS)
- Amazon FSx for Windows File Server
- Amazon FSx for Lustre
Amazon Elastic Block Store (EBS)
Aliyun
OSS
- 文件存储 NAS
- 文件存储 CPFS
- 文件存储 HDFS
块存储
云原生存储
基本概念
云原生存储脱胎于云存储,除具备云存储的个性外、须满足具备云原生生态系统中其余所有组件具备雷同的动静(公共云 / 专有云 / 混合云等场景)构建可扩大利用、S3 API 驱动、K8S 敌对等
参考示例
Rook
CNCF 首个云原生存储我的项目 Rook,是将文件、数据块和对象存储系统引入到 Kubernetes 集群,与其余正在应用存储的应用程序和服务一起无缝运行。通过这种形式,云原生集群能够在私有云和本地部署中自力更生并且具备可移植性。该项目标开发目标是使企业可能通过动静利用编排,为在本地和私有云环境中运行的分布式存储系统实现数据中心现代化。
Rook Architecure
Ceph Rook integrates with Kubernetes
MinIO
MinIO 是一款高性能、软件定义的,对象存储套件,帮忙客户构建云原生数据基础设施。可与 Kubernetes 集成,容许操作员应用 Kubernetes 界面治理存储,而 Kubernetes 能够解决从存储提供到卷搁置的所有事务。
原文链接
本文为阿里云原创内容,未经容许不得转载。