前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云存储硬核技术内幕——(11) 女子会所的秘密

云存储硬核技术内幕——(11) 女子会所的秘密

作者头像
用户8289326
发布2022-08-04 15:29:50
6890
发布2022-08-04 15:29:50
举报
文章被收录于专栏:帅云霓的技术小屋

在上期,我们提到,Ceph集群使用多副本的情况下,整体读性能可达所有物理磁盘读性能的总和,但由于写入的机制为只写入主副本,然后向另外两个副本同步,因此,以三副本为例,写性能只能达到所有磁盘写性能总和的三分之一。以SATA大盘单盘,100 IOPS写性能计,6节点72大盘的总写IOPS性能只能到2400 IOPS。这是难以满足高性能数据库需求的。

而如果使用SSD盘,我们会发现,同等容量的SSD盘,其成本是机械盘的5-10倍。因此,工程师们想到,能否使用少量的SSD盘,配合低成本的SATA机械大盘,一定程度上提升Ceph集群的读写性能,特别是随机写性能呢?

让我们将镜头切换回深南大道10000号——

有一天,子虚蹦蹦跳跳地找到方老师,告诉方老师:

“我做了个社会调查——”

方老师问:

“什么样的社会调查呀?”

子虚说:

“我调查了所有的高端女子私密会所,发现一个秘密……”

原来,子虚发现两个规律:

光顾女子私密会所的顾客,如果上一次点了tony老师做头发,下一次还点tony老师做头发的可能性非常大;

如果一名顾客经常光顾女子私密会所,那么她去隔壁便利店买钢丝球和打火机的可能性非常大;

方老师笑了,告诉子虚,这叫时间局部性和空间局部性。

所谓时间局部性,指的是,如果某块数据,上一次被访问过,那么,在越近的时间内,这块数据被访问到的可能性越大;

所谓空间局部性,指的是,如果某块数据,上一次被访问过,那么,与它地址越接近的数据,下一次被访问到的可能性越大;

在计算机系统中,可以利用这些机制,用少量高价格高成本存储器搭配大量低成本低速存储器,实现较高的性能。

常见的存储器响应时间大致如下图:

可见,从2000年到2020年的20年间,RAM,缓存,CPU等电子器件的性能大致遵循摩尔定律提升,而硬盘为机械构件,其性能提升非常有限。因此,在Ceph中,引入了固态盘(SSD盘),作为RAM和HDD之间的缓冲:

这样,可以充分利用时间局部性和空间局部性原理,大大提升Ceph集群的性能。

Ceph提供的这种机制叫做——分级缓存机制。它的大致设计如下图:

如图,Ceph的Client (例如,QEMU的RBD块驱动)向Object发起读写。这一步是看不到缓存的存在的。

Object拆分为PG,并在实际节点上落盘时——此处是一个岔路口。

翻开厚厚的Ceph文档,我们发现,Ceph的缓存机制有两种工作模式:

1、写回(Write Back)。OSD会将数据写入SSD缓存中,并向Client返回写成功。此后,OSD会将SSD缓存中的数据写入HDD盘,并同步写三副本; 2、只读(Read Only)。OSD会把数据直接写入HDD盘,当数据被读取的时候暂存在缓存中。如这部分数据被改写,缓存中的数据将被标记为脏(dirty)并失效;

熟悉计算机体系结构的同学可能会发现,缓存常见的另一种工作模式——写透,在这里并没有使用。这是为什么呢?

这个问题不需要留到下回分解。

写透(Write Through)的工作模式是,控制器将缓存中的数据,真正写入物理磁盘后,才会向客户端返回成功。显然,这种工作模式会大大降低写入性能。比起写回工作模式来,写透可以避免,一旦数据并没有真正落盘,只是在缓存中,此时控制器异常或掉电,导致易失性缓存中数据丢失。

最要命的是,客户端收到的报告是,数据成功写入!

这种现象,叫做存储丢失数据,属于非常致命的产品问题,会导致产品品牌形象的崩坏。

而Ceph使用的缓存一般为SSD盘,也就是非易失性存储,因此,可以使用写回方式,大大提升写性能。

大家猜对了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档