分布式存储系统

分布式存储系统概述

分布式存储发展历史

分布式系统设计 - 图1

分布式存储概念

大量普通服务器,通过网络互连,对外作为一个整体提供存储服务

特性

可扩展、可用、可靠、高性能、易维护、低成本

分类

  • 按数据类型:非结构化数据,半结构化数据,结构化数据
  • 按存储类型:分布式文件系统,分布式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

吞吐量

如何实现高性能

架构层面

设计层面

代码层面

如何实现高扩展性

分布式存储系统之监控和稳定性

稳定性

如何监控

分布式存储系统实现

理论实践

分布式存储系统之发展