盘古:阿里云飞天分布式存储系统设计深度解析

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 在10月19日的云栖社区在线培训上,来自盘古团队的吴洋分享了《盘古:飞天分布式存储系统实践》。他主要从以下三个方面进行了分享:盘古是什么?盘古是用来解决什么问题的?盘古是怎么解决问题的?他主要介绍了盘古的分布式系统架构和设计理念。

在10月19日的云栖社区在线培训上,来自盘古团队的吴洋分享了《盘古:飞天分布式存储系统实践》。他主要从以下三个方面进行了分享:盘古是什么?盘古是用来解决什么问题的?盘古是怎么解决问题的?他主要介绍了盘古的分布式系统架构和设计理念。


回顾视频:https://yq.aliyun.com/edu/lesson/play/392


本次视频直播的整理文章整理完毕,如下内容。


盘古是什么?

c4787c3d6e561c5a63d30b8d5d85dd87c9139c08

上图列举了目前主流的云计算厂商,我们发现一个很有趣的事情:所有云计算厂商都是“富二代”,它们的分布式存储技术全部采用自研技术,而没有用大家耳熟能详的开源分布式系统。

飞天梦

第一代飞天人的梦想是在大量廉价的PC服务器上,对外提供各种计算和存储服务。具体到以下几个组件:夸父,主要负责网络;女娲,主要负责协同;伏羲,主要负责调度;盘古,主要负责存储;神农,主要负责监控。

e61591399abfca1b5c0e6ec8d772a705787b0ca1

上图介绍了盘古的底层存储平台,其承担承上启下的作用。盘古作为分布式存储系统,主要提供两种类型的接口:Append Only接口,Random Access接口。

盘古是用来解决什么问题的?

单机的硬件或者系统总是不完美的,总是会小概率的出错,但是它又需要具有大规模下水平扩展的能力,因为它要管理大量的机器。这两个层面放在一起意味着出错是常态。

大规模下,小概率事件是常态

  • 4%磁盘年损坏率,1%%机器日宕机率
  • Raid卡崩溃、电容充放电导致write back模式变成write through
  • 网络分割、交换机丢包、升级重启、光纤损坏带宽降低90%、两地机房路由错误
  • 机架断电、整个机房掉电
  • 网卡TCP校验出错,磁盘访问数据校验出错
  • NTP时间漂移、内核IO线程D状态、dirty page cache无法写回
  • 系统热点无时不在,瞬时转移
  • 程序缺陷导致资源泄露、创建大量文件、访问脏数据
  • 误操作:误删数据、拔错磁盘、没有清理测试机器环境上线……

盘古面临的问题和挑战

10dd5499e9cda7d9b5bf5a52ff41f4605eb50a6c

从上图可以看到,作为统一存储,要支持虚拟机中的块存储,对象存储,表格存储,文件存储,离线大数据处理,大数据分析等诸多业务,其面临的挑战是很大的,甚至有些挑战是自相矛盾的。

盘古是怎么解决问题的?

4f4e17143c62417efa290d78d5fb03b61439862a

盘古在系统设计的时候进行了一些取舍。首先盘古使能了更多的云产品,让云产品去对接用户,这样就可以集中精力打造一个稳定可靠的分布式存储平台。高可靠、高可用是不能妥协的部分,在任何情况下要保证数据的强一致性、正确性、可靠性、可用性。有的时候追求低成本会威胁到高可用,所以要做到高性能、合理成本,提供高性价比的在线存储。易用、服务化,方便用户轻量接入、无感知运维完善好用的监控、工具、文档。

盘古总体架构

55b35df3b7df7c274e4ae987dad72ff03511c1ab

分为三个部分:Client,Master,ChunkServer。需要发起一次写入的时候,Client向Master创建一个文件,并且打开这个文件,此时Master会选好三个副本的位置反馈给Client。Client根据三个副本的位置找到ChunkServer,把数据写进去。也就是说,Client做整体的控制,Master提供源数据的存储,ChunkServer提供数据的存储。系统中的单点是非常脆弱的,如何保证其高可用?盘古的第一步是加入一个Paxos,也就是说用很多台Master组成一个group来实现高可用。即使用很多台服务器来实现高可用,最终对外服务的只能是一台服务器,当内存数据足够多的时候,就需要水平扩展。MountTable可以把目录树划分成volume,通过不同的volume就可以实现Master的水平扩展。

数据高可靠

8efd0ef43e35b403519d2bdda7ea602b181a5ca9

盘古三副本强一致,三副本位于不同的故障域,故障时自动数据复制。如上图所示,一个数据中心有3份数据存放在4个RACK中,如果RACK-1突然断电或者网络有问题。此时,比如菱形的数据原来在RACK-3、RACK-4上,当RACK-1的菱形数据丢失时,盘古会通过高效的算法从RACK-3上复制一份出来放入RACK-2,保证了数据的安全可靠。

数据保证完整性

91203f90ba093ae889a92bea82bb0ceb18403320

盘古主要做了两件事:端到端的数据校验,静默错误检查。在小概率下,内存存储的数据是可能发生变化的,磁盘上存储的数据也会发生变化。每段数据后面都有CRC,这样,一旦写入磁盘,数据和CRC是能够匹配上的,后台周期性扫描,发现数据和CRC不匹配时就判定这段数据发生了位反转,那么用其他好的副本将其覆盖。

合理成本

盘古进行了合理成本的优化。比如,线下运行的单集群有上万台,数百PB的数据。单组Master也进行了优化,读能达到15W QPS,写能达到5W QPS。单数据节点进行了软件栈极限优化,使得软件的消耗非常低,并且分层存储。最后,为了实现低成本,使用了普通PC服务器、Erasure Code。

自主服务

7a87f9f0d028d0251b651ad304fd1eefd6989227

运维是非常重要的,盘古实现了热升级应用无感知,运维操作根据配置自动化执行,不需要人工干预,通过环境标准化及时纠正,通过问题诊断自我解决问题。结构如上图所示,有一个集中管理的配置管理库,盘古管控中心会把配置管理库推送到盘古的各个组件,自动执行配置变更,发现配置不对时能够实现自动对齐,运行环境标准化检查对于大规模的分布式系统是非常重要的。

面向容错的设计

分布式系统的核心是面向容错的设计:

  • 数据安全是一种信仰:E2E Checksum;后台静默扫描;系统bug,硬件故障,运维操作的容错。大规模的系统中,总会遇到各种各样的问题,当这些问题搅在一起时就会变得非常棘手。
  • 环境检查排除隐患:磁盘分区;机架分布;配置错误;软件错误;硬件错误。
  • 单机失效无感知:数据复制保证安全;换机器重试保证读写成功;记忆并规避故障机器。
  • 监控+自愈:Master自我健康检查进行切换;Chunkserver发现故障磁盘或机器进行隔离;Client检测服务状况进行Master切换;Client自我健康检测并汇报状态。

以上的设计大大减小了运维的压力。

Master

44dbe3050bdf20fc1c1da230d81a7622e02c801f

Master需要解决的主要是三类问题:大容量、高效、稳定。大容量是指:Federation水平扩展,内存紧致排列单组支持8亿文件,读写OPS 100K/s。高效意味着最优的算法,硬件错误触发快速复制保证数据安全,数据流量动态规划实现最大吞吐,安全域动态调整保证数据高可用。稳定即Paxos数据一致、防止单点,多角度监控自动触发切换,多用户隔离防打死。由于盘古是多租户的系统,比如一万台的集群上面会跑着各种各样的应用,其相互之间是不知道的,但是它们在共用一个Master机器。如果一个用户大量访问Master,这时整个集群都不能提供对外服务,怎么杜绝这种情况?盘古做了多重隔离解决了上述问题。

Chunkserver

b5959aaaa0801ddefafb329ba1650783ac39eb9c

Chunkserver面临的问题是:闪存的价格高,IOPS高;机械硬盘价格低,IOPS低;只写入内存的方案掉电会丢失数据。如果整个集群都掉电,那么内存中还没写入数据就会丢掉,如果三份备份数据都丢掉,这对云计算是不能接受的事情。怎么结合闪存、机械式硬盘以最低的成本解决上述问题?有些解决方案使用UPS,但是UPS也存在不可靠问题,数据仍然会丢失。所以,最终的解决方案是使用少量的缓存搭配大量的机械硬盘,数据前台先写入缓存,后台将其转储到机械式硬盘。

Client

a98a1800899311df924be592dda82ac90bc75c2f

Client面临很多问题,很多现在的编程语言中,协程是非常普及的事情。传统的多线程编程中,多核系统上线程较多时,切换代价非常高,高性能的程序无法容忍这一点。有些解决方案是异步的编程,这样就使用少数的线程、不切线程。怎么样既有同步编程的便利,又有异步编程的性能?协程就是解决方案,很多现在的编程语言本身已经提供了协程,但是C++没有提供协程,所以盘古自己通过实现协程获得了高性能。Client面临的问题是:有些用户需要极致的性能,有些用户需要编程的简便,已有的海量程序要无缝支持。解决上述问题的方案是使用线程同步原语同时支持协程和非协程用户。在协程中是不切线程的,所以意味着所有的Task都在一个线程中执行,如果任何一个Task有阻塞操作,都会导致整个线程吞吐率的降低。

欢迎加入MaxCompute钉钉群讨论

35a12d1cfb9f44bb6eead5bf43e9e0ca60393eff

相关文章
|
4月前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
2月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
295 35
|
4月前
|
运维 API 开发工具
【阿里云】操作系统控制台操作体验与性能评测全解析
操作系统控制台是现代云计算环境中进行系统管理和运维的重要工具,提供系统概览、诊断、观测、管理等功能,支持API、SDK、CLI等管理方式。通过创建角色、系统配置和组件安装等操作,用户可以高效管理云端资源,提升操作系统的使用效率和稳定性。尤其适合需要高效管理操作系统的用户及学习云计算、网络管理的学生。建议增强自定义功能、优化性能报告和完善文档支持,以进一步提升用户体验。
152 21
【阿里云】操作系统控制台操作体验与性能评测全解析
|
4月前
|
缓存 边缘计算 安全
阿里云CDN:全球加速网络的实践创新与价值解析
在数字化浪潮下,用户体验成为企业竞争力的核心。阿里云CDN凭借技术创新与全球化布局,提供高效稳定的加速解决方案。其三层优化体系(智能调度、缓存策略、安全防护)确保低延迟和高命中率,覆盖2800+全球节点,支持电商、教育、游戏等行业,帮助企业节省带宽成本,提升加载速度和安全性。未来,阿里云CDN将继续引领内容分发的行业标准。
292 7
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
371 12
|
5月前
|
云安全 人工智能 安全
阿里云网络安全体系解析:如何构建数字时代的"安全盾牌"
在数字经济时代,阿里云作为亚太地区最大的云服务提供商,构建了行业领先的网络安全体系。本文解析其网络安全架构的三大核心维度:基础架构安全、核心技术防护和安全管理体系。通过技术创新与体系化防御,阿里云为企业数字化转型提供坚实的安全屏障,确保数据安全与业务连续性。案例显示,某金融客户借助阿里云成功拦截3200万次攻击,降低运维成本40%,响应时间缩短至8分钟。未来,阿里云将继续推进自适应安全架构,助力企业提升核心竞争力。
|
5月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
5月前
|
存储 弹性计算 人工智能
阿里云发票申请图文教程及常见问题解析
在购买完阿里云服务器或者其他云产品之后,如何申请发票成为了许多用户关注的焦点。尤其是对于初次购买阿里云服务器的用户来说,发票申请流程可能并不熟悉。本文将为大家详细介绍阿里云服务器购买之后如何申请发票,以及申请过程中可能遇到的常见问题,帮助大家轻松完成发票申请。
|
5月前
|
弹性计算 运维 网络安全
阿里云轻量应用服务器产品解析与搭建个人博客网站教程参考
轻量应用服务器(Simple Application Server)作为阿里云面向单机应用场景推出的云服务器产品,以其一键部署、一站式管理、高性价比等特性,深受个人开发者、中小企业及入门级用户的喜爱。本文将全面解析阿里云轻量应用服务器的产品优势、应用场景、使用须知,以及使用轻量应用服务器搭建个人博客网站的详细教程,帮助用户更好地了解和使用这一产品。
|
5月前
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!

推荐镜像

更多
  • DNS