带你读《对象存储实战指南》第二章协调和复制2.1协调(一)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 《对象存储实战指南》第二章协调和复制2.1协调

分布式系统要管理大 规模服务器,而软件就要运行在海 服务器之上。管理的服务器越多,越需要在系 统中提供协调 ( Coordination) 的仲裁服务,从而让运行在多台服务器上的软件达成共识 ( Consensus)、形成( Agreement) ,典 如对象存储核心元数据

协调服务本身也由运行在多台服务器上的软件组成的,当某台服务器发生故障无法修复时,还需要继续提供服务。此时引入复制 ( Replication)  技术将数据在多台服务器之间复制,即使某台服务器发生故障也能快速、无缝地切换到其他服务器,从而继续提供仲       裁服务 ,最终让客户端无感知地调用仲裁功能

制技术也大规模用到分布式存储系统中,实现数据的副本冗余或纠删码冗余,撑多台服务器 的盘发生故障后,数据仍然可用,还能继续提供数据服务

因此,协调和复制存在的联系,本章将通过介绍术界和 业界的技术发展过程来加强对它们的理解

2.1.1  协调技术发展史

    先让我们从学术界研究过程和产业界实践过程回顾下协调技术发展史  

     1.    学术界研究过程 

1975年 , AkkoyunluEkanadhamHuber在论SomeConstraints and Trade-offs intheDesignofNetworkCommunications首次提出两组匪徒通信的问题1978年 ,JimGray在论NotesonDataBaseOperatingSystems中 将 该 问 题式命名为两将问题( Two Gene rals'Problem) ,描述 在不可靠环境中如何协调达成共识

1982年,基千两将间题的不可 通信环境,继续出现拜占庭故障( Byzantine  Fault,传递伪造的错误消息)的新挑战,LeslieLamport( 2013年图灵奖获得者提出拜占庭将问题,从而解决拜占庭故障下的共识问题

1985年,BirmanKenneth论文 ReplicationandFault-ToleranceintheISISSystem中提Broadcast技术,并于1987年和 JosephThomas共同发表论文ReliableCommunicationinthePresenceofFailures ,  构建组播 ( GroupBroadcast,  GBCAST)  协议础,千组播成员视图 ( View) 的原子广AtomicBroadcast, ABCAST),从而解决共识问题

1988年,BrianOkiBarbaraLiskov( 2008年图灵奖获得在论文 Vie ws tampedReplication: ANewPrimaryCopyMethodtoSupportHighly-AvailableDistributedSystems中详细描述基千主 ( PrimaryCopy)  技术实 现高可用分布式系 统的过程该论文的核心思想是主服务器负 责复制数据逻辑 ,以及主服务器 故障发生 ( Reorganize) 过程,从而应对服务器 崩溃和网络分区 的故障场景。由千采用类似时间戳( Timestamp) Views tamp来检测复制中丢失的信息,所以简称视图复制( ViewstampedReplication, VR)

1989年,LeslieLamport提出过拜占庭将问题发表文章 PaxosislandinGreece,时并未引起太多视,直到 1998年,他在论ThePart-TimeParliament中将 PAXOS进行了严格的数 证明,之后基于 PAXOS的各种变体将该理论不断 完善优化,形成今业界流行的技术 之

2013年,斯坦福大学的 DiegoOngaroJohnOusterhoutRAFT论文 InSearchofanUnderstandableConsensusAlgorithm中将复杂 的 PAXOS理论用更简式描述,同时参考VR程落地性,极大地帮助了开发人员对PAXOS的理解,从而以RAFT础的开源代码展现出蓬勃

 

2产业界实践过程

 

l) 企业领域高可用集群

 

产业界多服务器 的协调产品发展过程 是从双机高 可用群系统逐步演 进到大规模分布式系统双机系 统从 1960年的研究项目演进到 DatapointARCnet商用品,再逐步 发展为DECVAXcluster在大型机领域,IBM  1990年发布了 Systems  Complex系统,提供双机错能力 早期的双机系 统,通常都是通过( Primary/Secondary) 模式实现系统协调的 ,正常时都由( Primary)  来裁决,异常时 Secondary角色切换为新的 Primary角色继续提供裁决功能高可用集群如图 2-1所示

image.png

2-1      

 

20世纪 90年代,随业务的迅速增长 ,多个厂家都发布了支持超过两个节点的高可用集群产品例如,IBMPowerHA  SystemMirror产品 、HPServiceguard产品OracleSolarisClusterRedHatCluster、开Linux-HAMicrosoftMSCS(MicrosoftClusterServer) ,以及 Veritas司的 VCS(VeritasClusterServer)

特别是 VCS品,它引入了 原子广播技术实 现局成员服务和 广播 ( GlobalmembershipservicesandAtomicBroadcast, GAB) 模块提供集群和共识服

全局成员服务与原子广播模块运 行在专 有网络中 与数据访 问路径的业务网络隔离有网络交换机提供集群节点间通信和调的能力实现立的控制网保证控面的服务质量。但是,该络存在交换机异常时出现脑裂   ( Split   Brain)   的问题,此时些服务器 之无法 通信协调,但是数据通 路都是正常 的,如有服务器 都继续入数,那么很可能出 现数致性问题此引入 IOFencing技术

如图 2-2专有网络交 换机异常 时,集群可能会被分为两 个子集群,集群内的服务器可以相互通信为了解决子集群同写入出现的数据致性问题,需要通IOFencing技术选取某个 子集群继续工作有网络异常 ,只能依赖正常的数据路径支撑选取,同时数据路径如果   错误,就会导致务中断,就没有新数据入,所以数据路径非常适合完成该工作,其步骤如下

image.png

2-2IOFencing技术 原理

·   配置磁盘阵 列 ( SAN存储支待 SCSI(SmallComputerSystem Interface) 的预留(Persistent  Reservation)  命令。登录  SAN  存储,配置奇数个协调盘  ( CoordinatorDisks),保证集 群的服务器都能发送预留命令给协调盘 中预留命令就 像原子操作 多台服务器 给某个协调盘发送该命令,只允许其中台服务器 预留成功,其他服务器预留失败。

·   集群间通信协调网络交 换机异常 时,集群出现脑裂,子集群内的服务器相互确当交换机异常时,协调网络心跳探测包返回部分失败并确认无法和对应服务器通信,  从而 使能 相互通的服务器形成子集群,并且从子集群中选取个代表参与 协调盘竞争通常加入集群的服务器会分配 ID, 此时选择ID较小的服务器作为代表),避免子集群的多台服务器同时去竞争,导致竞争算法成功率降低。

·   代表两个子集群去竞争的服务器 A和服务器 B, 分别在 SAN存储竞争奇数个协调盘,竞争到多数的服务器 将胜利,如服务器A。竞争成功的服务器所在的子集群将继续工作,如服务器 A所在的子集群。竞争失败的服务器所在的子集群将停止工作,如服务器 B所在的子集

通过 IOFencing  实现脑裂时的协调能力,提高集群在异常场的可用性对千特别极端的异常场,如专有网络交 换机全部出现故障,可以结合子集群的服务器 数目、服务器集群ID的数值作为竞协调盘的优先级输入 如竞时间间隔),从而从工 程上支撑协调成功



相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
对象存储
|
对象存储
|
存储 对象存储
带你读《对象存储实战指南》第三章命名和同步3.4小结
《对象存储实战指南》第三章命名和同步3.4小结
178 0
带你读《对象存储实战指南》第三章命名和同步3.4小结
|
存储 数据库 对象存储
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(一)
《对象存储实战指南》第三章命名和同步3.3逻辑时钟
183 0
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(一)
|
存储 监控 算法
带你读《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
227 0
带你读《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
|
域名解析 存储 缓存
带你读《对象存储实战指南》第三章命名和同步3.1命名技术(三)
《对象存储实战指南》第三章命名和同步3.1命名技术(三)
192 0
带你读《对象存储实战指南》第三章命名和同步3.1命名技术(三)
|
网络安全 对象存储 网络架构
《对象存储实战指南》第三章命名和同步3.1命名技术(二)
《对象存储实战指南》第三章命名和同步3.1命名技术
203 0
《对象存储实战指南》第三章命名和同步3.1命名技术(二)
|
监控 网络协议 Java
带你读《对象存储实战指南》第三章命名和同步3.1命名技术
《对象存储实战指南》第三章命名和同步3.1命名技术
206 0
带你读《对象存储实战指南》第三章命名和同步3.1命名技术
|
vr&ar 对象存储
带你读《对象存储实战指南》第二章协调和复制2.3小结
《对象存储实战指南》第二章协调和复制2.3小结
131 0
带你读《对象存储实战指南》第二章协调和复制2.3小结
|
存储 对象存储 块存储
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(二)
《对象存储实战指南》第三章命名和同步3.3逻辑时钟(二)
184 0

热门文章

最新文章