从零开始学架构 06-存储高可用 【笔记】

常见的高可用存储架构
  • 主备复制
  • 主从复制
  • 主主负载
  • 数据集群
  • 数据分区
1. 主备复制

缺点:备份机无读写操作,硬件成本有浪费,故障后需要人工干预,否则无法自动恢复

2. 主从复制

主写、从读,适合读多写少的系统,一般读是写的10倍甚至100倍以上

主备与主从区别

  • 主从再主机发生故障时,从仍然可以读,对其相关的读操作业务不影响
  • 主从复制,主写从读,发挥了硬件的功能
  • 主从更复杂,主要体现在客户端需要感知主从关系,并将不同的操作发送给不通的机器进行处理

主备倒换与主从倒换

  • 倒换时机:多少时间从自动转换为主
  • 倒换策略:从生主,主恢复后是否新主切换回备等
  • 自动程度:自动倒换还是半自动
    倒换架构的形式
    互联式:主备互相专递状态
    中介式:主备将状态上报给中介,如MongoDB的Replica Set,Apache Hadoop下的Zookeeper,使用Zookeeper来做状态同步
    模拟式:备模拟客户端调用主,根据相应信息判断,但可能出现偏差。
3、主主复制
  • 主主复制架构对数据的设计有严格的要求,一般适用于那些临时性、可丢失、可覆盖的数据场景。
    如session、用户的行为日志、轮草的草稿数据
4、数据集群

对称集群,也叫负载均衡集群
非对称集群,如master-slave

  • 数据集中集群
    一主多备,一主多从
    问题
    1. 主机如何将数据复制给备机
    2. 备机如何检测主机状态
    3. 主机故障后,如果选择新的主机
    以Zookeeper为典型,Zookeeper通过ZAB协议来解决上述的几个问题
  • 数据分散集群
    多个服务器组成一个集群,每台服务器多会负责存储一部分数据,同时为了提高硬件利用率,每台服务器又会备份一部分数据。
    • 复杂点在于如何将数据分配到不同的服务器上,算法需要考虑:均衡性、容错性、可伸缩性

数据集中集群与数据分散集群差异

  • 数据集中集群:客户端只能将数据写到主机中,其他从机从主机同步数据
  • 数据分散集群,客户端可以向任意服务器中读写数据

正因为这样关键的差异,决定了两种集群的应用场景不同

  • 数据集中集群适合数据量不大,集群机器数量不多的场和
    • 如Zookeeper集群,一般推荐5台服务器左右,数据量是单台服务器就能支撑
  • 数据分散集群:由于零号的可伸缩性,适应业务数据量巨大,集群机器数量庞大的业务场景
    • 如hadoop、habase集群,大规模的集群可以达到上百甚至上千台服务器
分布式事物算法

数据可能分布在冉的集群节点上,节点之间只能通过消息进行通信

  • 2PC:二阶段提交

    • 一个节点作为协调者,其他节点作为参与者
    • 所有节点采用预写式日志
    • 所有节点不会永久性损坏,即使损坏,仍然可以恢复

    第一阶段:提交请求阶段
    第二阶段:提交执行阶段
    缺点:同步阻塞,状态不一致,单点故障

  • 3PC:3阶段提交

    • 第一阶段,提交判断阶段
    • 第二阶段,准备提交阶段
    • 第三阶段,提交执行阶段

分布式一致性算法
保证所有节点的数据都一致

  • Paxos.被理论上证明为正确的算法
    • 多数一致性,不是全体一致性
    • client发起的请求可以是任何操作,读,写
    • 算法中的角色(Proposer,acceptor,learner,leader)是裸机上划分,不是集群上的物理节点要这样划分。
  • Raft,为了工程实践而设计的
    • Leader选举
    • 日志复制
    • 安全保证
  • ZAB(Zookepper Atomic Broadcast Protocol)

Paxos、Raft、ZAB差异就是复制的方式

  • Paxos和Raft采用static machine replication,或active replication,主动复制,直接传递,节点自己执行操作
  • ZAB采用primary backup或passive replication 被动复制,直接将执行结果复制给其他节点

5、 数据分区

  • 分区规则:洲际分区,国家分区,城市分区
  • 复制规则
    • 集中式,一个总的备份中心
      设计简单
      扩展容易
      成本较高
    • 互备式:每个分区备份另一个分区的数据
      设计比较复杂
      扩展麻烦
      成本低
    • 独立式:每个分区均有自己的备份中心
      设计简单
      扩展容易
      成本高
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值