最近的调查研究表明,多达50%的企业表示希望将业务从云计算迁移回数据中心,虽然这种回旋效应有很多原因,但缺乏数据一致性是最主要的原因之一。CAP定理描述了分布式存储系统只能提供三个要素中的两个:Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)。在考虑云计算迁移的应用时,必须应用CAP理论来判断云计算存储架构是否适合每个应用的需求。
理解CAP定理
CAP定理专注于分布式数据存储,这是AWS、谷歌云平台和微软Azure等云计算服务提供商所采用的主流设计。分布式数据存储由一系列称为节点的服务器构建而成。每个节点都有内部存储,当节点成簇时,它将成为一个全局存储池。当数据被写入存储时,通过复制每个对象或对象的子段的擦除编码来将数据分布在节点上。
分区容错性是指分布式存储在网络出现故障时继续提供数据的能力,而故障将会导致节点之间任意数量的消息丢失或延迟。由于网络故障在全球基于云计算的任何存储服务中都是不可避免的,因此所有系统都必须提供分区容错。
一致性意味着系统必须在应用程序或相应的过程开展之前确认每个写入操作。确认的必要性也适用于数据保护。例如,一致的数据存储必须将对象复制到另一个节点,并在确认总体写入之前验证完成。提供一致的模型是昂贵的,尤其是在分布式体系结构中,因为在任何给定的时间点,所有节点都必须具有相同的数据。提供一致性不会影响分布式存储中的应用程序性能,这意味着需要高速的节点内部网络、节点之间的距离和高性能存储介质。即使节点本身也比较昂贵,这样就需要更快地处理数据。
尽管成本高昂,但注重一致性是绝对必要的。例如,支持金融机构的存储基础设施需要确保所有节点始终保持同步。如果成交了一百万美元的交易,而这些节点没有更新,则会出现严重的问题。
可用性的关注点
可用性的关注点意味着当初始写入发生时,在后台通过复制或完成数据的擦除编码来将延迟的应答延迟到满足数据保护要求。这取决于其他节点的位置,一致的时间范围可以从几秒到几分钟。而高交易环境可能永远不会达到一致的状态。
可用性的关注点有许多优点,其中主要的一个优点是降低成本。节点之间的联网、节点中的存储介质以及节点本身的处理能力不需要在一致性关注的分布式存储系统的能力范围内执行。
此外,可用性关注点是数据分发的理想选择。无论是为了防范区域性灾难,还是确保数据在地理位置上尽可能接近用户,可用性关注点都可以实现分发,而无需为原始用户或应用程序提供性能。
将CAP应用到NAS和对象存储
考虑迁移到云端的本地应用程序通常使用网络附属存储(NAS)。这些网络附属存储系统在传统上都有一致性的特点,尽管它们中的大部分数据在一个不太一致但更可用的设计中工作得很好。为了保持一致性,网络附属存储系统通常通过紧密耦合的集群和相对较小的节点计数提供扩展功能或非常有限的扩展。这些网络附属存储系统提供对共享存储的低延迟访问,并且可以保持严格的一致性。
网络附属存储系统受到其他存储系统的一致性的影响:高成本、有限的规模和有限的可用性。虽然大多数网络附属存储(NAS)系统提供复制以进行灾难恢复,但是这种复制是异步完成的。这个过程对于网络性能比较敏感,几乎总是一个相同的系统,而二次系统最终成为主系统的镜像。
这个机会并不是网络附属存储上的所有数据都需要一致的体系结构功能,实际上,网络附属存储上的大部分数据在专注于可用性体系结构上。
最常见的可用性存储系统类型是对象存储,这是所有云计算提供商为其负担得起的存储层所使用的设计。对象存储成本低,可扩展到数千个节点。在广泛的地理区域分布数据也很容易,使数据更易于访问和恢复。
使用CAP来识别云计算兼容的应用程序
鉴于对CAP的了解以及从云计算提供商那里获得的最具成本效益的存储是以可用性为中心的认识,组织应该能够更容易地确定哪些应用程序最适合在云端使用。
第一步是确定一致性不成问题的数据集,一个主要的例子是非活动或休眠的非结构化数据集。典型使用的网络附属存储容量的80%以上是非活动数据。这些数据集应该转移到侧重于可用性的成本更低的分布式存储上。将这些数据转移到以可用性为中心的存储中不仅会降低保留这些数据的成本,而且这些类型的存储架构更适合长期保存。
下一步是确定在活动数据集内是否还存在处于休眠状态的子集。问题是识别和移动这些数据子集更加困难。最后一步是确定非常活跃的数据,并需要在整个存储架构中保持一致的表示。
佚名
……
关注读览天下微信,
100万篇深度好文,
等你来看……