分布式存储系统设计方案.docx
《分布式存储系统设计方案.docx》由会员分享,可在线阅读,更多相关《分布式存储系统设计方案.docx(5页珍藏版)》请在第壹文秘上搜索。
1、分布式存储系统设计方案备份容灾在分布式存储系统中,系统可用性是最重要的指标之一,需要保证在机器发生故障时,系统可用性不受影响,为了做到这点,数据就需要保存多个副本,并且多个副本要分布在不同的机器上,只要多个副本的数据是全都的,在机器故障引起某些副本失效时,其它副本仍旧能供应服务。本文主要介绍数据备份的方式,以及如何保证多个数据副本的全都性,在系统消失机器或网络故障时,如何保持系统的高可用性。数据备份数据备份是指存储数据的多个副本,备份方式可以分为热备和冷备,热备是指直接供应服务的备副本,或者在主副本失效时能马上供应服务的备副本,冷备是用于恢复数据的副本,一般通过DUmP的方式生成。数据热备按副
2、本的分布方式可分为同构系统和异步系统。同构系统是把存储节点分成若干组,每组节点存储相同的数据,其中一个主节点,其他为备节点;异构系统是把数据划分成许多分片,每个分片的多个副本分布在不同的存储节点,存储节点之间是异构的,即每个节点存储的数据分片集合都不相同。在同构系统中,只有主节点供应写服务,备节点只供应读服务,每个主节点的备节点数可以不一样,这样在部署上会有更大的敏捷性。在异构系统中,全部节点都是可以供应写服务的,并且在某个节点发生故障时,会有多个节点参加故障节点的数据恢复,但这种方式需要比较多的元数据来确定各个分片的主副本所在的节点,数据同步机制也会比较简单。相比较而言,异构系统能供应更好的
3、写性能,但实现比较简单,而同构系统架构更简洁,部署上也更敏捷。鉴于互联网大部分业务场景具有写少读多的特性,我们选择了更易于实现的同构系统的设计。系统数据备份的架构如下图所示,每个节点代表一台物理机器,全部节点按数据分布划分为多个组,每一组的主备节点存储相同的数据,只有主节点能供应写服务,主节点负责把数据变更同步到全部的备节点,全部节点都能供应读服务。主节点上会分布全量的数据,所以主节点的数量打算了系统能存储的数据量,在系统容量不足时,就需要扩容主节点数量。在系统的处理力量上,假如是写力量不足,只能通过扩容主节点数来解决;而在写力量不足时,则可以通过增加备节点来提升。每个主节点拥有的备节点数量可
4、以不一样,这在各个节点的数据热度不一样时特殊有用,可以通过给比较热的节点增加更多的备节点实现用更少的资源来提升系统的处理力量。接睥同步机制在上面的备份架构中,每个分组只有主节点接收写恳求,然后由主节点负责把数据同步到全部的备节点,如下图所示,主节点采纳一对多的方式进行同步,相对于级联的方式,这种方式在某个备节点故障时,不会影响其它备节点的同步。在CAP理论中,可用性和全都性是一对冲突体,在这里主节点执行写操作后会马上回复客户端,然后再异步同步数据到备节点,这样并不能保证主备节点的数据强全都性,主备数据会有短暂的不全都,通过牺牲肯定的全都性来保证系统的可用性。在这种机制下,客户端可能在备节点读到
5、老数据,假如业务要求数据强全都性,则可以在读恳求中设置只读主选项,这样读恳求就会被接口层转发到主节点,这种情况下备节点只用于容灾,不供应服务。为了保证主备节点的数据全都性,需要一种高效牢靠的数据同步机制。同步分为增量同步和全量同步,增量同步是主节点把写恳求直接转发到备节点执行,全量同步是主节点把本地的数据发到备节点进行掩盖。接下来具体介绍同步机制的实现,同步的整体流程如下图所示。系统中数据分片的单位是全都性哈希环中的VNOCie(虚拟节点),每个VNode有一个自增的同步序列号SyncSeq,VNode中所包含的数据的每一个写操作都会触发它的SyncSeq进行自增,这样在每个VNode内Syn
6、cSeq就标识了每一次写操作,并且SynCSeq的大小也反映了写操作的执行挨次。数据的每次写操作除了修改数据,还会保存写操作对应的SynCSeq,后面可以看到,SynCSeq是同步机制牢靠性的基础。主节点的写进程收到写恳求后,先修改数据,把当前VNode的SyncSeq加1并更新到数据中。接下来会纪录BinIog,BinIog是一个三元组VNode主节点备U点VNodelSyncSeqSyncSeqSyncSeqVNode2SyncSeqSyrxSeqSyncSeqVNode3SyncSeqSyncSeqSyncSeq主备节点的数据同步由主节点上的同步进程异步进行,通过扫描上图的同步进度表中主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 存储系统 设计方案