美文网首页007-2271-不出局
高可用存储架构:双机、集群、分区

高可用存储架构:双机、集群、分区

作者: 短暂瞬间 | 来源:发表于2019-02-28 22:04 被阅读1次

第76篇

极客时间《从0开始学架构》课程笔记。

存储高可用方案的本质:数据冗余,即把数据复制到多个存储设备
存储高可用方案的复杂性:如何应对复制延迟和中断导致的数据不一致问题
常见高可用存储架构有3类:
1、双机高可用:主备、主从、主备/主从切换、主主
2、数据集群:3台以上机器组合成一个系统
3、数据分区:不同分区的数据分布在不同的地理位置,每个分区存储一部分数据

一、双机高可用架构

主备复制

定义:备机只备份数据,不进行读写,切换需要人工操作

主备方案架构

优点:简单
1、客户端无需知道备机升级为主机,备机修改为主机通过人工操作
2、主机备机只需要进行数据复制,不用判断服务状态

缺点:
1、备机未提供读写操作,只进行数据备份,硬件成本有浪费
2、故障恢复时需要人工干预,无法自动恢复

应用场景:公司内部的后台管理系统。如学生管理系统、员工管理系统、文档管理系统

主从复制

定义:主机负责读写操作,从机只负责读操作,不负责写操作

主从方案架构

优点:与主备相比
1、主机故障时,读操作相关业务正常运行
2、从机提供读操作,发挥了硬件性能

缺点:
1、客户端需要感知主从关系,复杂度比主备复制要高
2、如果主从复制延迟比较大,业务会出现数据不一致问题
3、出现故障时需要人工干预

应用场景:写少读多的业务。如论坛、BBS、新闻网站、政府门户

双机切换

定义:
主备复制和主从复制在主机出现故障时存在两个问题:
1、无法进行写操作;2、需要人工指定新的主机
双机切换就是在原方案基础上增加『切换』功能,由系统自动决定主机角色并完成切换。双机切换包括主备切换个主从切换两种方案。

设计关键:
1、主备间状态判断:状态传递的渠道,以及状态检测的内容
2、切换决策:切换时机、切换策略、自动程度
3、数据冲突解决:新旧主机之间可能存在数据冲突

常见的3种切换架构:互连式、中介式和模拟式

互连式

定义:主备机直接建立状态传递的渠道

互连式切换架构

缺点:状态传递的通道本身有故障时备机自动升级为主机,出现两个主机

中介式

定义:在主备两者之外引入第三方中介,通过中介来传递状态信息

中介式切换架构

优点:主备机的连接管理和状态决策都更简单

缺点:中介本身需要高可用,否则会进入双备机状态

应用:推荐基于 ZooKeeper 搭建中介式切换架构

模拟式

定义:主备机之间不传递任何状态数据,备机模拟成一个客户端,向主机发起模拟的读写操作,根据读写操作的响应情况来判断主机的状态

模拟式切换架构

优点:实现更加简单,省去了状态传递通道的建立和管理工作

缺点:状态信息只有响应信息,基于有限的状态来做状态决策,可能出现偏差

主主复制

定义:两台机器都是主机,互相将数据复制给对方

主主复制架构

优点:无须状态信息传递,也无须状态决策和状态切换

缺点:如果采取主主复制架构,必须保证数据能够双向复制,而很多数据是不能双向复制的,如用户ID、库存数据、余额数据等

应用场景:适合于那些临时性、可丢失、可覆盖的数据场景。如用户登录产生的 session 数据(可以重新登录生成)、用户行为的日志数据(可以丢失)、论坛的草稿数据(可以丢失)等

二、数据集群

定义:单台(主机)服务器无法存储和处理大量的业务数据,必须使用多台服务器来存储数据。集群可以分为两类:数据集中集群、数据分散集群

数据集中集群:一主多备或者一主多从

数据集中式集群

复杂度体现:
1、主机如何将数据复制给备机:存在多条复制通道、可能会导致多个备机之间数据不一致
2、备机如何检测主机状态:如何处理不同备机对主机状态的不同判断
3、主机故障后,如何决定新的主机:只能允许一台备机升级为主机,选择哪一台

应用场景:适合数据量不大,集群机器数量不多的场景。例如,ZooKeeper 集群,一般推荐 5 台机器左右

数据分散集群

复杂点:如何将数据分配到不同的服务器上,算法需要考虑均衡性、容错性和可伸缩性

特点:
1、数据分散集群中的每台服务器都可以处理读写请求,客户端可以向任意服务器中读写数据
2、必须有一个角色来负责执行数据分配算法,这个角色可以是独立的一台服务器,也可以是集群自己选举出的一台服务器

应用场景:适合业务数据量巨大、集群机器数量庞大的业务场景。例如,Hadoop 集群、HBase 集群,可以达到上百台甚至上千台服务器

三、数据分区

定义

将数据按照一定的规则进行分区,不同分区分布在不同的地理位置上,每个分区存储一部分数据,目的是规避地理级别的故障所造成的巨大影响

设计关键

1、数据量

  • 数据量大小决定分区的规则复杂度
  • 服务器越多运维复杂度越高
  • 增加新服务器时分区相关配置和规则需要修改
  • 分区规则需考虑地理容灾

2、分区规则

  • 根据地理位置远近可分为洲际分区、国家分区、城市分区
  • 洲际分区主要用于面向不同大洲提供服务,可以不互通或者仅仅作为备份
  • 国家分区主要用于面向不同国家的用户提供服务,一般也仅作为备份
  • 城市分区同时对外提供服务,可以满足业务异地多活之类的需求

3、复制规则

  • 常见的3种分区复制规则:集中式、互备式、独立式
  • 集中式备份:存在一个总的备份中心,所有的分区都将数据备份到备份中心
  • 集中式备份架构优缺点:设计简单、扩展容易、成本较高
  • 互备式备份:每个分区备份另外一个分区的数据
  • 互备式备份架构优缺点:设计较复杂、扩展麻烦、成本低
  • 独立式备份:每个分区有自己的异地独立备份中心
  • 独立式备份架构优缺点:设计简单、扩展容易、成本很高

相关文章

  • 架构第9章 高可用存储架构-未完

    内容:1.高可用存储架构:双机架构2.高可用存储架构:集群和分区3.如何设计计算高可用架构本文来自于《极客时间》-...

  • 高可用存储架构:双机、集群、分区

    第76篇 极客时间《从0开始学架构》课程笔记。 存储高可用方案的本质:数据冗余,即把数据复制到多个存储设备存储高可...

  • 26 | 高可用存储架构:集群和分区

    上一期我讲了高可用存储架构中常见的双机架构,分别为主备复制、主从复制、双机切换和主主复制,并分析了每类架构的优缺点...

  • 架构总结25--高可用存储架构:集群和分区

    上一篇文章我讲了高可用存储架构中常见的双机架构,分别为主备复制、主从复制、双机切换和主主复制,并分析了每类架构的优...

  • [学习] 青龙系统最佳实践

    青龙系统发展历程 青龙系统架构最佳实践 高可用 合适的架构方案前端应用系统,双机房集群部署,后端数据库系统,主从模...

  • 25 | 高可用存储架构:双机架构

    存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复...

  • 华为云分布式缓存Redis服务是什么?

    华为云分布式缓存Redis服务是兼容Redis的内存数据库服务,基于双机热备的高可用架构,提供单机、主从、集群等丰...

  • Hadoop HA

    Hadoop HA 什么是 HA HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保...

  • Hadoop HA

    Hadoop HA 什么是 HA HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保...

  • 利用heartbeat+drbd实现双机热备

    keepavled是专门为高可用的集群而诞生的,而heartbeat生是双机热备的人死是双机热备的死人。大体来说就...

网友评论

    本文标题:高可用存储架构:双机、集群、分区

    本文链接:https://www.haomeiwen.com/subject/ufgquqtx.html