前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >「分布式计算」什么是严格一致性和最终一致性?

「分布式计算」什么是严格一致性和最终一致性?

作者头像
架构师研究会
发布于 2021-01-06 01:36:33
发布于 2021-01-06 01:36:33
1.2K0
举报
文章被收录于专栏:超级架构师超级架构师

分布式存储和一致性模型

当单片系统达到它们的极限时,它们开始被扩展的分布式系统所取代。这一趋势始于20年前的计算领域,当时大型机被服务器群所取代。然后进入了存储领域(数据库文件系统)。在数据库世界中,关系与NoSQL的争论已经激烈了一段时间。

今天,我想和大家谈谈分布式数据存储平台和一致性模型。在规划存储基础设施时,这是一个非常重要的需求。

让我们从一些基础知识开始。在分布式系统中,假设单个节点会失效。系统必须对节点故障具有弹性。因此,为了冗余,数据必须跨多个节点进行复制。

在这种情况下,让我们问以下问题:“如果我在一个节点上执行写入(或更新)操作,我是否总是能看到所有节点上更新的数据?”

这似乎是一个无关痛痒的问题。每个人都会给出肯定的回答。“咄,当然!”。但不要这么快。

这在分布式系统中实际上是一个很难解决的问题,特别是在保持性能的时候。做出这种保证的系统被称为“严格一致”。然而,许多系统采取了简单的方法,只提供最终的一致性。

最终一致性vs严格一致性

让我们定义最终一致性和严格一致性。

最终一致性

下面的视频演示了最终一致性的过程。

过程总结

  1. 从客户机写到节点1
  2. 从节点1向客户端确认
  3. 最终写入通过集群传播到节点2

观察

  • System finally return latest write:通过添加单词“finally”来削弱一致性条件
  • 如果节点失败可能导致数据丢失:添加“假设没有永久故障”的条件。

严格的一致性

下面的视频演示了严格一致性的过程。

过程总结

  1. 从客户机写到节点1
  2. 写入通过集群传播,从节点1传播到节点2
  3. 从节点2到节点1的内部确认
  4. 从节点1向客户端确认

观察

  • 系统总是返回最新的写操作:对于任何传入的写操作,一旦客户端确认了写操作,从任何节点读取的更新值都是可见的。
  • 有保证的数据弹性:对于任何传入的写操作,一旦向客户端确认了写操作,更新就会受到冗余节点故障的保护。

系统并不总是使用严格的一致性

显然,严格的一致性更好,因为可以保证用户总是看到最新的数据,并且数据在写入时就受到保护。下图比较了两种一致性模型。

严格与最终一致性

为什么不总是使用严格的一致性?

主要是因为实现严格的一致性会显著影响性能。具体来说,延迟和吞吐量将会受到影响。影响的程度取决于具体情况。

严格的一致性并不总是必需的,在某些用例中最终的一致性可能就足够了。例如,在购物车中,假设添加了一个项目,但数据中心失败了。对客户来说,再次添加该项目并不是一种灾难。在这种情况下,最终的一致性就足够了。

然而,你不希望你的银行账户刚刚存入的钱发生这种情况。因为节点失败而导致资金消失是不可接受的。财务交易要求严格的一致性。

为什么企业存储需要严格的一致性

在企业存储中,存在最终一致性是正确模型的情况,例如跨站点复制的例子。但在绝大多数情况下,严格的一致性是必需的。让我们看几个需要严格一致性的例子。

扩展文件存储

碰巧有一种主要的扩展文件存储系统只提供最终的一致性。数据只写入一个节点(NVRAM上)并被确认。一个企业客户曾经向我解释说,在负载过重的情况下,一个节点可能会被标记为脱机。实际上,它是关闭的,导致客户端在几秒钟前成功编写的文件出现“文件未找到”错误。这对它们的应用程序造成了严重破坏。

从备份中即时恢复

下一代扩展备份解决方案提供了从备份中即时恢复VM。这样的解决方案从备份系统上的备份映像副本引导虚拟机。备份系统在恢复期间充当主存储,直到可以使用storage vMotion将数据移动回原始数据存储为止。好处很明显:你可以尽快恢复业务。

然而,许多扩展备份解决方案只提供写操作的最终一致性。因此,如果恢复节点上发生故障,应用程序就会失败,系统就会丢失生产VM的实时数据。

数据保护

严格的一致性保证用户总是能看到最新的数据,并且数据一旦写入就受到保护。由于严格的一致性,即使基础设施出现故障,也能保证应用程序可用性/正常运行时间和没有数据丢失。

在设计备份环境时,应当首先考虑向外扩展文件存储和从备份中立即恢复的这些事项。

VM环境中的一致性模型

VMware vSphere和VMware Cloud Foundation等基础架构需要数据弹性和高可用性。对于这样的环境,严格一致性和最终一致性意味着什么?

对于任何使用传统或现代数据保护和恢复解决方案的组织来说,一致性模型都存在风险和问题。不幸的是,人们对这个话题的认识和理解非常缺乏。

供应商提供传统和现代的数据保护和恢复解决方案。它们提供VM或数据的快速恢复,并具有一种称为即时恢复的特性。其目标是最小化停机时间,即恢复时间目标(RTO)。

但是,根据供应商和客户的基础设施的不同,恢复工作流和实现是不同的。

数据保护

可以执行一系列恢复功能(手动或自动)来恢复VMware vSphere等环境。通常,数据保护和恢复解决方案(存储VM或数据的副本)提供某种形式的存储抽象。vSphere将为此提供额外的计算资源。

数据恢复

在恢复VM之后,必须将它迁移回主存储平台。在vSphere中,存储vMotion用于在网络上迁移数据。可以在几分钟内恢复并实例化一个VM。

然而,如果这意味着要在网络中移动数百gb,那么在几分钟内恢复是不可能的。根据在网络中传输的大小和容量不同,这个过程可能需要很长时间才能完成。低时间将取决于网络带宽、接口饱和等。

数据保护和恢复的最终一致性

本视频演示了vMotion使用最终一致性恢复vSphere环境的过程。

过程总结

  1. 准备VM并将其作为NFS卷在本地存储抽象上恢复。在最终一致性模型的基础上,从单个节点对vSphere进行了抽象。
  2. 从数据保护和恢复集群中的一个节点挂载NFS存储抽象。VM在vSphere上被实例化和访问。读和写I/O被定向到存储在单个节点的存储抽象(NFS)上的VM。
  3. 此时正在创建的新数据不受保护。它不分布在数据保护和恢复集群中的其他节点上。
  4. SvMotion开始将VM迁移回主存储平台。这可能需要很长时间,具体取决于环境。
  5. 如果数据保护和恢复集群中的某个节点在恢复到vSphere时发生故障,将会发生以下情况:
  • vSphere无法访问存储抽象(NFS)
  • VM不再可用或不可访问
  • SvMotion失败
  • 任何新创建的数据都可能丢失

当您依赖数据保护和恢复解决方案作为保险策略时,这是不可接受的结果。其结果——取决于失败的程度——可能会让一家公司倒闭,或者至少会让某些人丢掉工作。

数据保护和恢复严格一致

本视频演示了使用vMotion使用严格的一致性恢复vSphere环境的过程。

以下步骤是企业应该期待的。这是他们应该从数据保护和恢复解决方案中要求的。

  1. 在本地准备VM并将其恢复到一个存储抽象上,该存储抽象以NFS卷的形式呈现给vSphere。在严格一致性模型的基础上给出了该抽象。
  2. 自动将存储抽象从一个来自Cohesity集群的虚拟IP呈现并挂载到vSphere (NFS)。VM在vSphere上被实例化和访问。读和写I/O被定向到存储在存储抽象(NFS)上的VM, NFS来自Cohesity集群的虚拟IP。
  3. 创建的新数据被分发到Cohesity集群中的其他节点并得到确认。
  4. SvMotion启动VM迁移回主存储平台——这可能需要很长时间。
  5. 如果Cohesity集群中的一个节点发生故障,提供给vSphere的存储抽象(NFS)仍然可用。由于使用了虚拟ip和严格的一致性,SvMotion将持续到完成为止,这共同降低了数据丢失的风险。

上面描述的步骤产生了企业希望利用即时恢复等特性时,从数据保护和恢复解决方案中得到的预期结果和需求。

本视频总结了上面的信息,并演示了严格问题与最终一致性的对比。它将带您一步一步地经历两个场景。第一个示例是关于Oracle RMAN备份的,下一个示例是执行VMware的即时恢复。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 首席架构师智库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Fault-Tolerant Virtual Machines-VMware容错虚拟机设计 (2)
第2节描述了我们对FT的基本设计和协议。然而,为了创建一个可用的、稳健的和自动的系统,还有许多其他组件必须设计和实施。
s09g
2022/07/06
1K0
Fault-Tolerant Virtual Machines-VMware容错虚拟机设计 (2)
K8S数据保护工具比较
K8S数据保护工具比较:Cohesity、 Kasten、 OpenEBS、 Portworx、 Rancher Longhorn、 和Velero
Portworx
2020/04/23
1.4K0
「分布式架构」“一切都是分布式”说最终一致性
大约一年前,我在一致性模型上写了这篇文章的第一个版本,但我从来没有对它感到满意,因为它写得很匆忙,而且这个主题足够重要,需要得到更彻底的处理。ACM Queue要求我修改它以便在他们的杂志中使用,我利用这个机会改进了这篇文章。这是那个新版本。
架构师研究会
2021/01/06
5920
运维锅总详解计算机存储
本文从计算机存储简介、存储设备介绍、软件定义存储(SDS)、常见的Kubernetes CSI存储插件介绍、如何平衡成本和存储性能等方面对计算机存储进行详细分析;本文最后还通过图形展示了存储在计算机体系结构中的重要作用。希望对您有所帮助!
锅总
2024/07/11
2090
运维锅总详解计算机存储
「分布式架构」最终一致性:暗示的切换队列
在这个博客系列中,我们将探讨最终的一致性,如果没有合适的词汇表,这个术语很难定义。这是许多分布式系统使用的一致性模型,包括XDB Enterprise Edition。为了理解最终的一致性,我们需要知道两个概念:暗示切换队列和反熵,这两个概念都需要特别注意。
架构师研究会
2021/01/05
3960
分布式存储系统一致性与可用性的较量,服了!
我们要知道,无论技术如何发展,要想保证系统的高可用,其核心最本质的方法就是 “冗余”。冗余,就是为我们的系统多创建几个副本,来增加系统的可靠性和容错性。
架构师修炼
2023/09/03
4100
分布式存储系统一致性与可用性的较量,服了!
如何在VMware上部署Hadoop
本文主要讲述如何在虚拟机(VM)上部署Hadoop,因为虚拟化技术很多家都有,但本文讨论的是VMware。建议阅读人群为:系统管理员,架构师或者开发人员。
Fayson
2018/03/30
2.7K0
用分布式存储实现Harbor Registry的高可用方案
不久前,VMware发布了Docker容器数据卷的驱动(Docker Volume Driver for vSphere)1.0 beta版本,使得Docker宿主机能够直接在vSphere的数据存储(VSAN,VMFS,NFS等)中创建卷,并直接挂载到Docker容器中,可以解决Docker容器的数据持久化存储的问题。不仅可以提供存储,这些卷还能利用vSphere的“基于存储策略的管理(SPBM, Storage Policy Based Management)”, 按需设置更高的“可容忍主机故障数(FTT)”、设置更大的“条带数(SW)”等,以获得更高级别的数据保护和更好的性能。此驱动为开源项目,下载地址:https://github.com/vmware/docker-volume-vsphere
Henry Zhang
2019/04/12
1.6K0
用分布式存储实现Harbor Registry的高可用方案
VMware vSphere 6.7 新功能介绍
内容来源:2018 年 06 月 19 日,VMware大中华区原厂高级技术讲师姚泉在“VMware在线技术专题分享·第二期”进行《VMware vSphere 6.7 新功能介绍》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。
IT大咖说
2018/07/30
2.5K0
VMware vSphere 6.7 新功能介绍
Docker数据容器保护方式利弊
Docker是一个非常成功的Linux开源项目。它在Linux操作系统下无需增加管理器即可虚拟化应用程序。该应用程序常被抽象地误认为是操作系统(具有Linux内核资源隔离功能的OS)的唯一的应用程序。换句话说,该Linux应用程序部署在Docker数据容器中,该容器能利用Linux OS 的所有功能并能隔离应用程序。 Docker容器具有移动性并且与虚拟机(VMs)相互隔离,且仅在虚拟机上进行部分操作。在深入研究Docker数据保护这个问题之前,弄清楚Docker镜像和Docker数据容器之前的差异是十分必
CSDN技术头条
2018/02/11
1.4K0
分布式存储
分布式存储的思想是将数据分散存储在多个节点上,以提高数据的可靠性、可扩展性和性能。它基于以下几个核心思想:
明志德道
2023/12/18
4600
戴尔+VMware:强强联手,共赴“云原生”新征程
“从混合云基础架构,到现代化多云环境,再到边缘计算以及AI平台、对象存储、数据保护和现代化工作空间等方方面面。
用户5498443
2023/02/28
5850
戴尔+VMware:强强联手,共赴“云原生”新征程
分布式计算(1)
网格计算强调资源共享,使用者同时也是资源共享者,用于计算集中性服务(不便扩展 )。云计算的服务提供者少数而集中,资源专有,便于自动化扩展(其中对等计算更便于扩展,即每个节点拥有对等的服务,可以互相使用数据),使用者无需贡献资源。
gojam
2019/09/26
1.1K0
VMware的灾备与双活----我在vForum 2015分会场的分享(2)
摘要:vSAN延伸集群的出现,不仅使VMware有了自己的存储双活技术,从成本角度来看,更使存储双活这项技术,从“天上”来到了“民间”。 通过vSAN延伸集群加上VMware已有的SRM和VR技术,一个全新的、高效低成本的两地三中心方案应运而生。 上一篇《VMware的灾备与双活----我在vForum 2015分会场的分享(1)》介绍了VMware灾备技术SRM,作为姊妹篇,本次将介绍VMware双活技术。 目前市场上常见的硬件厂商的双活方案通常指的是分布式存储双活,如EMC vPlex, HDS
魏新宇
2018/03/22
3.9K0
VMware的灾备与双活----我在vForum 2015分会场的分享(2)
「分布式架构」最终一致性:反熵
在这个博客系列中,我们将探讨最终的一致性,如果没有合适的词汇表,这个术语很难定义。这是许多分布式系统使用的一致性模型,包括XDB Enterprise edition。理解最终一致性需要两个概念:暗示切换队列和反熵,这两个概念都值得特别关注。
架构师研究会
2021/01/05
9230
最终一致性分布式事务如何保障实际生产中99.99%高可用?
一、写在前面 二、可靠消息最终一致性方案的核心流程 二、可靠消息最终一致性方案的高可用保障生产实践
用户5927304
2019/07/31
1.2K0
VMware vSAN 7.0发布
当前HCI(超融合基础架构)技术已经被越来越多的客户和组织采用,以更灵活的方式支持IT架构的扩展,提供更好的业务敏捷性。
SuperDream
2020/06/03
2.1K0
VMware vSAN 7.0发布
AWS在re:Invent 2017大会上确立公有云发展节奏
至顶网报道 来源:siliconANGLE Amazon Web Services公司继续在公有云市场上保持主导地位。在上周于拉斯维加斯召开的第六届re: Invent大会上,AWS讨论了其如何通过深
企鹅号小编
2017/12/25
1.5K0
AWS在re:Invent 2017大会上确立公有云发展节奏
基于CRDT的数据最终一致性
对于分布式系统的架构师来说,CAP 定理所描述的一致性和可用性是一个较大的挑战。网络远程跨机房是不可避免的,数据中心之间的高延迟总是导致数据中心之间在短时间内出现某种断开。因此,传统的分布式应用体系结构被设计成要么放弃数据一致性,要么降低可用性。
半吊子全栈工匠
2021/08/06
2.7K0
vCenterServer安装与使用
官方介绍:VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。 vSphere 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。
全栈工程师修炼指南
2022/09/28
7.3K0
vCenterServer安装与使用
相关推荐
Fault-Tolerant Virtual Machines-VMware容错虚拟机设计 (2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档