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

第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种分区复制规则:集中式、互备式、独立式
  • 集中式备份:存在一个总的备份中心,所有的分区都将数据备份到备份中心
  • 集中式备份架构优缺点:设计简单、扩展容易、成本较高
  • 互备式备份:每个分区备份另外一个分区的数据
  • 互备式备份架构优缺点:设计较复杂、扩展麻烦、成本低
  • 独立式备份:每个分区有自己的异地独立备份中心
  • 独立式备份架构优缺点:设计简单、扩展容易、成本很高
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容