大规模分布式存储系统
大量普通廉价服务器通过互联,对外作为一个整体提供存储服务。
系统特点:
可扩展:随着集群规模的增长,系统整体性能表现为线程增长
低成本:自动容错,自动负载均衡机制可用构建在普通服务器之上,线性扩展能力可以实现自动运维
高性能:
易用:能够提供易用接口,能够具备完善的运维系统以及与其它系统集成
技术特点:
数据分布:保证数据分布均匀,保证跨服操作
一致性:多副本复制,副本数据一致性
容错:检测服务器故障,故障服务器数据或服务迁移
负载均衡:自动负载均衡,数据迁移不影响已有服务
事务与并发控制:实现分布式事务,实现多版本并发控制
易用性:对外接口易用,运维系统易用
压缩/解压缩:根据数据特点设计压缩算法,平衡节省存储空间与消耗计算资源
分布式存储分类
数据需求:非结构化数据、结构化数据、半结构化数据
分布式存储系统一般可以分为:
分布式文件系统:存储非结构化数据对象,作为其它存储系统的底层存储,可以存储三种类型的数据——Blob对象、定长块、大文件,分布式文件系统内部按照数据块来组织数据,将数据块分散到存储集群,处理数据复制、一致性、负载均衡、容错等问题
分布式键值系统:存储关系简单的半结构化数据,支持数据分布到集群中的多个存储节点,一致性哈希就是分布式键值系统中常用的数据分布技术
分布式表格系统:存储关系较为复杂的半结构化数据,以表格为单位组织数据,支持主键CRUD功能以及范围查找功能,针对单张表格操作,同一个表格的多个数据行不要求包含相同类型的列,可以做到超大规模,支持较多的功能
分布式数据库:存储结构化数据,目前为止最为成熟的存储技术,采用二维表格组织数据,提供SQL关系查询语言