背景
本文主要对杨传辉(日照)《大规模分布式存储系统原理解析与架构实战》、大话存储、网络资源(具体参考文末连接)及我的理解进行整理,意在构建出存储发展基本轨迹和一些基本常识,让更多像我同样的初入者有个宏观上的认知。前端
存储发展史
从单机到互联网,存储做为的基础设施,主要发展都是围绕构建 低成本、高性能、可扩展、易用的目标进行演进,时至今日,在形态上存储分为单机存储、集中存储、分布式存储、云存储、云原生存储数据库
各阶段存储的基本形态以下后端
各阶段基本形态服务器
存储数据分类 & 模型
不管单机存储、分布式存储、云存储都是基于特定应用场景下,对指定数据类型构建对应的存储数据模型网络
数据分类
数据模型
存储类型
常见三种存储类型:块存储、文件存储、对象存储数据结构
块存储架构
基于Block块的存储模式,两种常见存储方式:分布式
- DAS(Direct Attch Storage), 直连主机存储方式
- SAN (Storage Area Netowrk),高速网络连接主机存储方式
文件存储性能
依附网络提供文件存储服务阿里云
对象存储
构建于键值存储,核心是将数据通路(data)和控制通路(meta)分离,而且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,对外以RSETful API形式服务
单机存储
基本概念
单机存储系统是单机存储引擎(数据结构在机械磁盘、SSD等持久化介质上的实现)的一种封装,对外提供文件、键值、表格或者关系模型的存储服务。
存储引擎
存储引擎是存储系统的发动机,决定了存储系统可以提供的功能和性能, 提供功能包含:
- 增长(Create)
- 读取(Retrieve),随机读取和顺序扫描
- 更新(Update)
- 删除(Delete)
引擎间差别以下:
集中式存储
基本概念
集中式存储相对与单机存储而言,存储系统中包含了更多组件,除了机头(控制器)、磁盘阵列(JBOD)和交换机等设备外,还有管理设备等辅助设备。
参考:集中式存储的基本逻辑示意图
系统构成
- 机头,整个存储系统的核心部件,一般由控制器、先后端口组成,
- 控制器,一般有二,实现互备高可用,控制器中的软件实现对磁盘的管理,将磁盘抽象化为存储资源池,而后划分为LUN提供给服务器使用。
- 先后端口,前端端口用户为服务器提供存储服务,后端端口用于扩充存储系统的容量(链接更多的存储设备)
- 磁盘柜(Just a Bound Of Disk , JBOD),磁盘挂在服务器外的专用柜里,有独立电源、散热、接口等,内部线缆相连(SCSI),对机头后端端口统一挂载
分布式存储
基本概念
分布式存储系统,是将分散独立的存储设备经过网络互联,系统关联,对外做为一个总体提供存储服务。
系统分类
- 分布式文件系统
- 分布式键值系统
- 分布式表格系统
- 分布式数据库
云存储
基本概念
云存储,是一种云计算领域存储服务方式,底层构建在分布式存储基础之上,上层经过Internet形式提供存储服务,除具有分布式存储基础特性外,更兼具灵活性,一般由云厂商提供
参考产品
云原生存储
基本概念
云原生存储脱胎于云存储,除具有云存储的特性外、须知足具有云原生生态系统中其余全部组件具有相同的动态(公共云/专有云/混合云等场景)构建可扩展应用、S3 API 驱动、K8S油耗等
参考示例
Rook
CNCF首个云原生存储项目Rook,是将文件、数据块和对象存储系统引入到Kubernetes集群,与其余正在使用存储的应用程序和服务一块儿无缝运行。经过这种方式,云原生集群能够在公有云和本地部署中自给自足而且具有可移植性。该项目的开发目的是使企业可以经过动态应用编排,为在本地和公有云环境中运行的分布式存储系统实现数据中心现代化。
Rook Architecure
Ceph Rook integrates with Kubernetes
MinIO
MinIO是一款高性能、软件定义的,对象存储套件,帮助客户构建云原生数据基础设施。可与 Kubernetes 集成,容许操做员使用 Kubernetes 界面管理存储,而 Kubernetes 能够处理从存储提供到卷放置的全部事务。
本文为阿里云原创内容,未经容许不得转载。