分布式存储系统
分布式存储系统概述
分布式存储发展历史
分布式存储概念
大量普通服务器,通过网络互连,对外作为一个整体提供存储服务
特性
可扩展、可用、可靠、高性能、易维护、低成本
分类
- 按数据类型:非结构化数据,半结构化数据,结构化数据
- 按存储类型:分布式文件系统,分布式KV系统,分布式数据库系统
高可用性
指分布式存储系统在面对各种异常时可以提供正常服务的能力
系统的可用性可以用系统停服务的时间和正常服务的时间的比例衡量
4个99的可用性(99.99%)
高可靠性
保证数据可靠不丢失
多机冗余,单机磁盘RAID等
高扩展性
指分布式存储系统通过扩展集群服务器规模从而提高系统存储容量,计算和性能的能力
Scale Up和Scale Out
线性可扩展:系统整体性能与服务器数量呈线性关系
数据一致性
指分布式存储系统多个副本之间的数据一致性
- 强一致性
- 弱一致性
- 最终一致性
高安全性
指分布式存储系统不受恶意访问和攻击,保护存储数据不被窃取
高性能
衡量分布式存储系统性能的常见的指标是系统的吞吐量和系统的响应延迟
系统吞吐量
在一段时间内可以处理的请求总数
QPS,TPS系统的响应延迟
某个请求发出到接收到返回结果所需要的时间
这两个指标往往是矛盾的
高稳定
综合指标
健壮性,面对任何异常都能坦然面对
分布式存储系统原理和设计
单机存储原理与设计
- 哈希存储引擎
- B树存储引擎
- LSM存储引擎
数据模型分类
文件,关系,键值,列存储,图形,文档
事务
ACID
并发控制
锁,写时复制,MVCC
多机存储原理与设计
负载均衡
取模,一致性哈希,数据迁移
复制
故障检测
心跳检测,数据冗余,故障恢复
FLP定理
异步通信中不存在一致性的分布式算法
CAP定理
分布式环境下,三者不可能同时满足
分区容忍性需要保证,在一致性和可用性进行取舍
2PC协议
实现分布式事务
Paxos协议
全局锁服务和配置服务,分布式存储系统
一致性和共识的区别
分布式存储系统分析和对比
典型的分布式存储系统
- GFS(重点)
- HDFS
- MongoDB
- Hbase
分布式存储系统之一致性
一致性的概念
一致性的几个等级
强一致性
弱一致性
最终一致性
如何做到一致性
分布式锁
基于Redis实现方式
超时机制,避免死锁分布式事务
2PC,3PC消息队列
案例
分布式存储系统之高可用高可靠
高可用重要性
高可靠重要性
如何做到高可用高可靠(单机和多机)
分层设计
日志
副本集
复制
硬件
案例
ChunkServer宕机
文件块数据校验
文件块拷贝
垃圾回收
分布式存储系统之安全
数据安全的重要性
如何做到数据安全性
鉴权方式
访问控制,对用户的访问权限进行管理
IP/授权/Token
集中控制方式
数据加密存储方式
分布式存储系统之负载均衡
客户端请求调度的负载均衡
存储服务调度的负载均衡
如何实现负载均衡
多种负载均衡算法设计
负载均衡算法优缺点
如何选择合适的负载均衡算法
分布式存储系统之高性能
QPS
TPS
吞吐量
如何实现高性能
架构层面
设计层面
代码层面
如何实现高扩展性
分布式存储系统之监控和稳定性
稳定性
如何监控
分布式存储系统实现
理论实践