分布式 KV 存储系统 Cellar 演进之路
美团点评基础架构部,存储研发团队负责人 • Cellar:分布式KV存储服务 • Databus:数据库变更实时传输服务 • Venus:图片服务 11年毕业于天津大学 11 年到 14 年任职于百度,负责分布式文件系统和 KV 存储系统研发 有多年分布式存储研发经验 个人简介 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 • Cellar起源 • 中心节点架构演进 越 存越香。 Cellar起源 • 14年初 美团引入阿里Tair作为NoSQL存储 • 14年底 大范围应用,并对Tair修修补补,积累领域问题 • 16年初 基于开源版本研发新一代KV存储系统Cellar • Now Cellar日请求量达万亿级,美团点评最大NoSQL存储 Cellar起源 Cellar起源—Tair架构 路由表 Cellar起源—Tair架构 HASH0 码力 | 34 页 | 1.66 MB | 1 年前3万亿级数据洪峰下的消息引擎Apache RocketMQ
01 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 l onized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim watermark min watermark low reclaim kswapd wakeup allocate extra free_kbytes 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺内核源码分析 Entity Inode i_mapping i_data address_space radix_tree_root nrpages writeback_index0 码力 | 35 页 | 993.29 KB | 1 年前3万亿级数据洪峰下的消息引擎 Apache RocketMQ
01 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 l onized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim watermark min watermark low reclaim kswapd wakeup allocate extra free_kbytes 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺内核源码分析 Entity Inode i_mapping i_data address_space radix_tree_root nrpages writeback_index0 码力 | 35 页 | 5.82 MB | 1 年前3更新OpenShift Data Foundation
确保 OpenShift Data Foundation 集群正常运行,数据具有弹性。 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。 检查 Overview - Block and File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示 存储 集群、对象服务和数据弹性都是健康的。 确保所有 OpenShift OpenShift Data Foundation 集群是否正常运行并且数据具有弹性。 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。 检查 Overview - Block 和 和 File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示存储集 群、对象服务和数据弹性是健康的。 如果验证步骤失败,请联系红帽支持。 确保 OpenShift Data Foundation 集群正常运行,数据具有弹性。 进入到 Storage → Data Foundation → Storage Systems 选项卡,然后点存储系统名称。 检查 Overview - Block 和 和 File 和 Object 选项卡的状态卡上绿色勾号。绿色勾号表示存储集 群、对象服务和数据弹性是健康的。 确保所有 OpenShift0 码力 | 18 页 | 239.14 KB | 1 年前3Curve核心组件之mds – 网易数帆
Curve核心组件之 MDS 陈威Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github 用于抽象描述物理服务器上的一块物理磁盘 (SSD),chunkserver以一块磁盘作为最小的服务单元。TOPOLOGY curve在上物理pool之上又引入逻辑pool的概念,以实现统一存储系统的需求,即在单个存储系统中多副 本PageFile支持块设备、三副本AppendFile(待开发)支持在线对象存储、AppendECFile(待开发)支持 近线对象存储可以共存。 如上所示Logical ySet的粒度进行探活、配置变更,降低 开销。 3. 提高数据可靠性:在数据复制组过度打散的情况下,在发生多个节点同时故障的情况下,数据的可靠性会受 到影响。引入CopySet,可提高分布式存储系统中的数据持久性,降低数据丢失的概率。COPYSET ChunkServer,Copyset和Chunk三者之间的关系如下图: Mds在分配空间时,轮流在不同的copyset中分配,每次从copyset中分配1个chunk,0 码力 | 23 页 | 1.74 MB | 5 月前3OpenShift Container Platform 4.8 存储
对象动态置备。它与一个节点一样,是一个集群资源。 PV 是卷插件,与 Volumes 资源类似,但PV 的生命周期独立于任何使用它的 pod。PV 对象获取具体存 储(NFS、iSCSI 或者特定 cloud-provider 的存储系统)的实现详情。 重要 重要 存储的高可用性功能由底层的存储架构提供。 PVC 由 PersistentVolumeClaim API 项定义,它代表了开发人员对存储的一个请求。它与一个 pod Create 创建存储类。 4.1.2. 创建持久性卷声明 先决条件 先决条件 当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。 流程 流程 1. 在 OpenShift Container Platform 控制台中,点击 Storage → Persistent Volume Claims。 2. 在持久性卷声明概述页中,点 Storage Class 4.2.2. 创建持久性卷声明 先决条件 先决条件 当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。 流程 流程 1. 在 OpenShift Container Platform 控制台中,点击 Storage → Persistent Volume Claims。 2. 在持久性卷声明概述页中,点0 码力 | 118 页 | 1.60 MB | 1 年前3Idris 语言文档 Version 1.3.1
:需 需 需要 要 要登 登 登录 录 录的 的 的数 数 数据 据 据存 存 存储 储 储系 系 系统 统 统 许多软件的组件依赖于状态,有些操作仅在特定状态下才有效。 例如,考虑一个安全的数据存储系统, 它只有在用户登录的情况下才能访问某些机密数据。 该系统可以处于以下两种状态之一夺 • 已登录,在此状态下,用户可以访问机密数据 • 未登录,在此状态下,用户无法访问机密数据 我们可以提供登录、登出和读取数据命令,如下图所示: 已登录 状态时才有效。 我们通常使用类型检查器来确保变量和参数的使用一致性。然而,主流的类型系统并不能很好地支持像 “某些操作只有在资源处于合适的状态时才被执行”这类性质的静态检查。 例如,在数据存储系统的 示例中,检查“用户在执行 读取数据 前是否成功登录”这一性质非常重要。 ST 库能让我们在类型系统 中表达这类协 协 协议 议 议,并且在编 编 编译 译 译阶 阶 阶段 段 段确保机密数据只有在用户处于已登录状态时才能被读取。 姩 妡妵 夶夹天 一节中,我们用状态转移图展示了数据存储系统的抽象状态, 以及可以对它执行的动 作: 3. 3. 用 用 用类 类 类型 型 型表 表 表示 示 示状 状 状态 态 态机 机 机 78 I d r i s 语 语 语言 言 言文 文 文档 档 档, 版 版 版本 本 本 1. 3. 1 我 我 我们之所以把它称作该存储系统的抽 抽 抽象 象 象状态,是因为具体的状态会包含更多信息。例如,它可能包0 码力 | 224 页 | 2.06 MB | 1 年前3Ozone:Hadoop 原生分布式对象存储
社区推出了新一代分布式Key-value对象存储系统 Ozone,同时提供对象和文件访问的接 口,从构架上解决了长久以来困扰HDFS的小文件问题。本文作为Ozone系列文章的第一篇,抛个 砖,介绍Ozone的产生背景,主要架构和功能。 如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop 背景 HDFS是业界默认的大数据存储系统,在业界的大数据集群中有非常广泛的使用。HDFS集群有着 有非常多的小文件,HDFS的元数据访问性能会受到影响。虽然可以通过各种Federation技术来扩 展集群的节点规模, 但单个HDFS集群仍然没法很好的解决小文件的限制。 基于这些背景,Hadoop 社区推出了新的分布式存储系统 Ozone,从构架上解决这个问题。 Ozone的设计原则 Ozone 由一群对大规模Hadoop集群有着丰富运维和管理经验的工程师和构架师设计和实现。他 们对大数据有深刻的洞察力,清楚的了解 Hive,Spark 等应用不需要做任何修改,就可以运行在 Ozone上 。Ozone 同时支持 Data Locality,使得计算能够尽可能的靠近数据。 语义 Ozone是一个分布式Key-value对象存储系统。Ozone提供给用户的语义包含Volume, Bucket 和Key。 2 / 10 Ozone:Hadoop0 码力 | 10 页 | 1.24 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
Master-Slave模型 - Master是管理者 - Slave是执行者 • 解决Master节点瓶颈 - 常规操作不经过Master • 一般计算系统 • Bigtable、Tera等存储系统 - 使Master无状态 • 非最底层系统都可以设计无状态Master - Master分布化 • BFS选择的解决方案 NameServer Cluster 故障容忍 • 设备都是会坏的 BFS避免了过渡设计 - 用设计中的不可扩展达到最大的可扩展 • 最多支持6万台机器 • 最多支持100亿文件 分布式存储系统设计的特殊性 • 最基础服务的提供者 - 不可能做成无状态的 • 最底层的仲裁者 - 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决 这些设计给BFS带来哪些优势? HDFS BFS 名字节点 扩展方式 联邦式 分裂的目录树 分布式0 码力 | 24 页 | 937.45 KB | 1 年前3OpenShift Container Platform 4.14 存储
对象动态置备。它与一个节点一样,是一个集群资源。 PV 是卷插件,与 Volumes 资源类似,但PV 的生命周期独立于任何使用它的 pod。PV 对象获取具体存 储(NFS、iSCSI 或者特定 cloud-provider 的存储系统)的实现详情。 重要 重要 存储的高可用性功能由底层的存储架构提供。 PVC 由 PersistentVolumeClaim API 项定义,它代表了开发人员对存储的一个请求。它与一个 pod 以获得动态置备的持久性卷。 4.1.2. 创建持久性卷声明 先决条件 先决条件 当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。 流程 流程 1. 在 OpenShift Container Platform 控制台中,点击 Storage → Persistent Volume Claims。 2. 在持久性卷声明概述页中,点 Storage Class 4.2.2. 创建持久性卷声明 先决条件 先决条件 当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。 流程 流程 1. 在 OpenShift Container Platform 控制台中,点击 Storage → Persistent Volume Claims。 2. 在持久性卷声明概述页中,点0 码力 | 215 页 | 2.56 MB | 1 年前3
共 167 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17