LinkedIn 开源分布式存储系统Ambry

这篇具有很好参考价值的文章主要介绍了LinkedIn 开源分布式存储系统Ambry。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分布式存储入门认知

分布式存储是一种用于处理大规模数据的存储系统。随着互联网的发展和数据量的爆发式增长,传统的集中式存储已经无法满足需求。分布式存储通过将数据分散存储在多个节点上,实现高可靠性、高扩展性和高性能的存储解决方案

分布式存储的基本原理

分布式存储系统由多个存储节点组成,每个节点负责存储一部分数据。数据通常被分成多个块,并通过数据切分和冗余备份来提高容错性和数据可用性。节点之间通过网络连接进行通信和数据同步,实现数据的高效分布式存储和访问

分布式存储的优势

  • 高可靠性:分布式存储通过数据冗余备份和故障转移来提供高可靠性,即使某个节点出现故障,数据依然可用。

  • 高扩展性:由于数据被分散存储在多个节点上,分布式存储可以方便地扩展存储容量和性能,以满足不断增长的数据需求。

  • 高性能:通过将数据并行存储和访问,分布式存储可以实现高并发和低延迟的数据访问,提供快速的存储和检索能力。

分布式存储的应用场景

分布式存储广泛应用于以下场景:

  • 大数据分析:分布式存储可以存储和处理大规模的结构化和非结构化数据,支持大数据分析和机器学习等应用。

  • 云存储:云服务提供商使用分布式存储来存储用户的数据,并提供可靠的数据存储和备份服务。

  • 分布式文件系统:分布式存储可以用于构建分布式文件系统,实现高性能和可扩展的文件存储和访问。

分布式存储的设计考虑因素

在设计分布式存储系统时,需要考虑以下因素:

  • 数据切分和负载均衡:将数据切分成适当大小的块,并将块分散存储在不同的节点上,以实现负载均衡和提高性能。

  • 数据一致性和容错性:保证多个节点上的数据一致性,并通过冗余备份来提高容错性和数据可用性。

  • 数据访问和路由:设计有效的数据访问和路由机制,以实现快速的数据读写操作。

  • 安全性:保护数据的安全性和隐私,采用合适的安全机制和加密技术。

Ambry 设计

设计特点

高可用性和水平可扩展性

Ambry 是一个高可用并且最终一致的系统。在大多数情况下,写入会写入本地数据中心,然后异步复制到其他数据中心。这确保在网络分区下,写入本地数据中心仍然可用。此外,当一台机器在本地不可用时,Ambry会选择同一数据中心内另一台机器上的另一个副本来读取或写入数据。对于读取,当数据不存在于本地数据中心时,它会将请求代理到具有blob的数据中心。

低运营开销

Ambry 的一个关键设计目标是使集群的操作变得非常容易。该系统是完全去中心化的,并配备了管理集群所需的所有工具。此外,大部分操作将在软件内自动进行,以确保维护集群所需的手动工作量非常少

低MTTR(平均修复时间)

这对于分布式系统来说非常重要。机器停机、磁盘故障、服务器崩溃和 GC 停止进程。所有这些故障在分布式系统中都是完全可以接受的故障。然而,关键是要在很短的时间内解决问题。在所有情况下,系统在维修期间都可以使用。 但是,保持较低的MTTR仍然很重要

双交叉DC

默认情况下,Ambry 支持主动主动设置。这意味着对象可以写入任何数据中心的同一分区,也可以从任何其他数据中心读取。这通常不是许多系统提供的通用功能。Ambry 通过复制以及在需要时将请求代理到远程数据中心来实现这一点。

适用于大型和小型媒体对象

大多数媒体流量由数万亿个小对象和数十亿个大对象组成。系统需要为这种混合工作负载正常运行。在Ambry中实现这一点的方式是将所有对象的写入合并到一个顺序日志中。这确保所有写入都是批处理并异步刷新,并且磁盘上的碎片非常少。

成本效益

最后,任何对象存储都需要长期存储媒体和数据类型。 随着时间的推移,较旧的数据会变冷并且读取QPS非常低。此外,对象通常很大并且占用大量空间。 设计应该能够启用JBOD,支持硬盘并将空间放大保持在最低限度。

技术架构

分区

Ambry 的核心抽象是blob块,一种用于存储数据的不可变结构。每个blob都分配给磁盘上的一个分区并通过blob ID进行引用。系统的用户通过执行put, get 和delete操作

LinkedIn 开源分布式存储系统Ambry,开源,分布式,HDFS,分布式存储系统

数据分区设计可以自由扩展——当用户向系统添加更多数据时,它可以添加更多分区。默认情况下,新分区是可读写的 (意味着它同时接受 put, get,和 delete流量)。当分区接近容量时,它会转换为只读,这意味着它不再支持通过以下方式存储新的blob put操作。系统的流量往往以更新的内容为目标,从而给读写分区带来更高的负载

为了提供对blob 的可扩展读写访问,Ambry使用了三个高级组件:集群管理器(Cluster Managers)、前端层(Frontend Layer)和 数据节点(Datanodes)。

LinkedIn 开源分布式存储系统Ambry,开源,分布式,HDFS,分布式存储系统

集群管理器

集群管理器决定如何跨地理分布式数据中心将数据存储在系统中,以及存储集群的状态,状态主要存储在Zookeeper中。例如,它们存储Ambry部署的逻辑布局,包括分区可读写还是只读,以及分区在数据中心磁盘上的位置

Clustermap 由两部分组成:

  • 硬件布局:包含了机器的列表、每台机器上的磁盘以及每个磁盘的容量。布局还维护资源的状态(机器和磁盘)并指定主机名和端口,通过主机名和端口就能连接到数据节点;

  • 分区布局:包含了分区的列表、它们的位置信息以及状态。在 Ambry 中,分区有一个数字表示的 ID,副本的列表可以跨数据中心。分区是固定大小的资源,集群间的数据重平衡都是在分区级别进行的。

硬件管理

Node

Disks

Size

State

DC1:NODE1

Disk_0

Disk_1

Disk_2

...

1TB

1TB

1TB

...

Up

Down

Up

...

DC1:NODE2

Disk_0

Disk_1

Disk_2

...

1TB

1TB

1TB

...

Up

Down

Up

...

...

...

...

...

...

...

...

...

分区管理

PartitionId

State

Replica

Partition_0

Read

write

DC1:NODE1:DISK_0

DC1:NODE3:DISK_1

Partition_1

Read

write

...

Partition_2

Read

...

...

...

...

数据节点和前端服务器都能够访问 clustermap,并且会始终使用它们当前的视图来做出决策,这些决策涉及到选择可用的机器、过滤副本以及识别对象的位置等。

处理流程

在put操作中,分区是随机选择的(出于数据平衡的目的),在get/delete 操作中,分区是从blob id 中提取的

LinkedIn 开源分布式存储系统Ambry,开源,分布式,HDFS,分布式存储系统

为了put操作,Ambry可以配置为同步复制(确保 blob 在返回之前出现在多个数据节点上),或异步复制-同步复制可防止数据丢失,但会在写入路径上引入更高的延迟。

如果在异步配置中设置,分区交换日志的副本存储blob及其在存储中的偏移量。 核对这些日志之后,彼此之间再同步传递blob。

LinkedIn 开源分布式存储系统Ambry,开源,分布式,HDFS,分布式存储系统

性能评测

根据评测报告本文评估了两个主要领域:吞吐量和延迟 ,以及地理分布式操作。

为了测试系统的吞吐量和延迟(对于大规模面向用户的低成本服务至关重要),不同大小对象的读写流量发送到Ambry。该系统能够为较大对象的读/写提供接近等效的性能,但在许多小的读/写操作中达到较低的性能限制

LinkedIn 开源分布式存储系统Ambry,开源,分布式,HDFS,分布式存储系统文章来源地址https://www.toymoban.com/news/detail-765879.html

到了这里,关于LinkedIn 开源分布式存储系统Ambry的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对象存储分布式代理-go初学者的开源练手项目

    最近写了一个go语言练手项目osproxy和osproxy-grpc,代码已完全开源到github。 相信不少接触go语言的读者,都是被它\\\"极简协程\\\",“高并发”,\\\"高性能\\\"的特性所吸引,我也不例外,想着学完之后,能快速上手享受一把。 但当我看完基本语法,想找个练手项目时,才发现github上大

    2024年02月08日
    浏览(37)
  • Ceph分布式存储系统

    Ceph :ceph被称为面向未来的存储还是一个分布式的存储系统,非常灵活,如果需要扩容,只要向ceph集中增加服务器即可。ceph存储数据时采用多副本的方式进行存储,生产环境下,一个文件至少要存三份,ceph默认也是三副本存储。 可以实现的 存储方式 : 块存储:提供像普通

    2024年04月15日
    浏览(32)
  • 分布式文件存储系统-FastDFS

            前言:FastDFS 是一个分布式文件存储系统, 主要用于存储和管理 大规模 的 文件数据,如图片、视频、文档等 ,是淘宝前架构师为了存储图片用C语言开发出来的系统。         服务端有两个组件  Tracker Server 与 Storage Server ,对应两个角色: Tracker: 管理和调度集群

    2024年02月13日
    浏览(51)
  • 分布式运用——存储系统Ceph

    Ceph是一个开源的分布式存储解决方案,旨在提供可扩展性、高性能和强大的数据可靠性。它采用了一种分布式对象存储架构,能够同时提供块存储和文件存储的功能。本篇博客将深入探索Ceph的原理、特性和应用场景,帮助读者更好地理解和使用这一强大的存储解决方案。

    2024年02月17日
    浏览(34)
  • 分布式系统架构设计之分布式数据存储的扩展方式、主从复制以及分布式一致性

    在分布式系统中,数据存储的扩展是为了适应业务的增长和提高系统的性能。分为水平扩展和垂直扩展两种方式,这两种方式在架构设计和应用场景上有着不同的优势和局限性。 水平扩展是通过增加节点或服务器的数量来扩大整个系统的容量和性能。在数据存储领域,水平扩

    2024年02月03日
    浏览(50)
  • 分布式系统架构设计之分布式数据存储的安全隐私和性能优化

    在前面分布式系统部分,有对安全性做过介绍,如前面所述,在分布式系统中,确保系统的安全性和隐私是至关重要的。安全性关注系统的防护措施,而隐私是关注用户的个人信息保护。 身份认证:确保用户和系统组件的身份是合法的,通过通过密码、令牌或证书实现 授权

    2024年02月02日
    浏览(43)
  • Ceph分布式存储系统优化分析

            Ceph支持多种存储访问接口,现有的多种性能测试工具都可用于Ceph的性能测试,如测试块接口性能的fio,iometer等;测试CephFS接口的filebench,fio等;测试对象接口的cosbench等。Ceph有专用的基准测试集CBT,其包含radosbench,librbdfio,kvmrbdfio和rbdfio。radosbench基准测试使用

    2024年02月12日
    浏览(27)
  • 【Linux】分布式存储系统 Ceph

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。 Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernet

    2024年02月17日
    浏览(32)
  • 【Distributed】分布式Ceph存储系统

      单机存储设备大致分为三类,分别是DAS、NAS、SAN。 1.1 DAS   DAS (直接附加存储,是直接接到计算机的主板总线上去的存储)   例如 IDE、SATA、SCSI、SAS、USB 接口的磁盘。所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储。 1.2 NAS   NAS (网络附在存储

    2024年02月16日
    浏览(32)
  • 【Linux】分布式存储系统 Ceph应用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、创建一个名为 rbd-demo 的专门用于 RBD 的存储池 2、将存储池转换为 RBD 模式 3、初始化存储池 4、创建镜像 5、镜像管理 6、Linux客户端使用 7、快照管理 8、镜像的导出导入 1、对象存储概念 对象存储(

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包