阿里云(飞天)里的 盘古

article/2025/8/31 23:26:01

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

盘古是什么?

 

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有阻塞操作,都会导致整个线程吞吐率的降低。


http://chatgpt.dhexx.cn/article/FkQAhsD4.shtml

相关文章

阿里云飞天系统的技术架构(转)

阿里云有以下五大优势:中国万网,提供虚拟主机托管的服务,而且还提供域名等服务,其客户群非常庞大。淘宝、阿里巴巴(内部称:B2B)、支付宝等其他子公司:有大量的数据分析业务&#xff…

阿里云飞天技术总架构师唐洪:飞天技术与应用

一年一度的阿里技术论坛(Alibaba Technology Forum)已走进第7个年头,4月15日,阿里众多技术领军人走进清华校园。通过特设的三大技术论坛,参会人员近距离接触了阿里巴巴在云计算、大数据、金融、电商等方面的技术创新。…

从飞天到倚天 阿里云底层自研技术大爆发

10月20日,2021云栖大会上,阿里云发布了倚天、磐久、神龙4.0、龙蜥、灵杰等多款重磅产品,阿里云“做深基础”成果浮出水面,底层自研技术迎来大爆发。 阿里云智能总裁张建锋表示,过去十二年,阿里云打造出中国…

阿里飞天大数据飞天AI平台“双生”系统正式发布,9大全新数据产品集中亮相

作者 | 夕颜 责编 | 唐小引 出品 | AI科技大本营(ID:rgznai100) 如今,大数据和 AI 已经成为两个分不开的词汇,没有大数据,AI 就失去了根基;没有 AI,数据不会呈现爆发式的增长。如何将 AI 与大…

独家揭秘阿里自研飞天操作系统洛神平台如何支撑起 2684 亿全球大促!| 问底中国 IT 技术演进...

作者 | 宗志刚 阿里云资深技术专家 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 2019年双11当天总成交额2684亿,交易峰值54.4万笔/秒,成交量背后是单日970PB的数据处理量。阿里巴巴核心系统100%上云,意味着公共云…

阿里云的“飞天“是什么?

转:阿里云的“飞天“是什么? 一、飞天是什么? 飞天(Apsara)是由阿里云自主研发、服务全球的超大规模通用计算操作系统。它可以将遍布全球的百万级服务器连成一台超级计算机,以在线公共服务的方式为社会提…

阿里云飞天平台

目录 0 参考列表 1 概念 2 系统架构 2.1 系统架构图 2.2 飞天内核 2.3 飞天开放服务 0 参考列表 CSDN:BigData入门(四):Fuxi(伏羲)https://blog.csdn.net/MOU_IT/article/details/95896744 1 概念 阿里云飞天平…

阿里云飞天系统

阿里云飞天系统 有幸在阿里云飞天部门工作几年,下面给出基础架构一览:

【阿里—云计算】从飞天系统到飞天2.0(核心组成:飞天洛神)

声明:资料来源 本文为此学期云计算课程的一个拓展性任务,用于了解飞天系统与其2.0版本中的飞天洛神,因存为word易丢失,于是整理成博文放置CSDN,便于今后按需查看,因为本文除排版外全为引用内容,…

【云计算与大数据计算】大数据物理、集成、安全架构及阿里云飞天系统架构讲解(超详细)

一、物理架构 物理架构 - 企业大数据系统的各层次系统最终要部署到主机节点中,这些节点通过网络连接成 为一个整体,为企业的大数据应用提供物理支撑 ,企业大数据系统由多个逻辑层组成,多个逻辑层可以映射到一个物理节点上,也可以映射到多个物…

阿里云飞天系统的技术架构

阿里云飞天系统的技术架构 阿里云有以下五大优势: 中国万网,提供虚拟主机托管的服务,而且还提供域名等服务,其客户群非常庞大; 淘宝、阿里巴巴(内部称:B2B)、支付宝等其他子公司有大…

阿里飞天云平台架构简介

一. 简介 飞天是由阿里云开发的一个大规模分布式计算系统,其中包括飞天内核和飞天开放服务。 飞天内核负责管理数据中心Linux集群的物理资源,控制分布式程序运行, 隐藏下层故障恢复和数据冗余等细节,有效提供弹性计算和负载均衡…

程序人生 - 猫咪冷知识!猫咪“呼噜呼噜”声究竟代表什么?

猫咪,包括所有的猫科动物,它们的习性都非常相似。猫咪有一个习惯,就是总是会时不时地就发出“呼噜呼噜”的声音。这种声音的频率和音调其实蛮有催眠效果的,反正八酱听到猫咪在身边发出这样的声音的时候,就很容易安眠了…

[鼠标指针][仅需1步]宝藏的猫咪Cat老师[win10/11][点击看更多免费]......

win10/11好看的免费鼠标指针样式... 1.鼠标指针样式介绍****** 推荐猫咪老师 ******* 2.安装使用3.来源 1.鼠标指针样式介绍 ****** 推荐猫咪老师 ******* Janguru CursorsJanguru Cursors X2Win 11 Cursors LightWin 11 Cursors DarkOverwatch PointerOS X El Capitan v4 MIN…

【python】采集可爱猫咪数据并作可视化

前言 嗨喽~大家好呀,这里是魔王呐 ! 环境介绍: python 3.6 pycharm 爬虫部分使用模块: csv requests >>> pip install requests parsel 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入安装命令 pip install 模…

猫咪单独为某个网站添加Proxy

猫咪将overleaf网站添加到猫咪名单中,猫咪单独为某个网站添加猫咪 坑。暂时没有找到解决方案。 我想实现的效果是,打开一个网站,如果网站比较卡,就把这个网站添加到直联列表中。停止对它的猫咪。 方案1: 1、修改猫…

最近非常火的猫咪回收站操作总结来了~

具体步骤: ①下载喵咪图标,百度网盘: 链接:https://pan.baidu.com/s/1noZvCVeyj3Zs4G9XaK69BQ?pwdu1g5 提取码:u1g5 ②开始-打开电脑设置-个性化-主题-桌面图标设置-更改回收站图标-结束 注意事项:改图标…

Java新特性(2):Java 10以后

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~ 虽然到目前为止Java的版本更新还没有什么惊天动地的改变,但总是会冒出一些有趣的小玩意。前面列举了Java9和Java10的一些特色,现在接着来…

【JavaSE】Java9Java10Java11新特性(687~717)

687.复习:动态代理 688.复习:Lambda表达式 689.复习:函数式接口 690.复习:方法引用与构造器引用 691.复习:Stream API 692.复习:Optional类的使用 693.jdk版本更新说明 JDK 9 的发布 经过4次跳票&#x…

Java-13

学习来源:日撸 Java 三百行(41-50天,查找与排序)_闵帆的博客-CSDN博客 42 哈希表 42.1 使用 (最简单的) 除数取余法获得数据存放地址 (下标)。 42.2 使用 (最简单的) 顺移位置法解决冲突。 代码: /***************…