问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Crimson:高性能,高扩展的新一代 Ceph OSD

发布网友 发布时间:2024-09-28 04:17

我来回答

1个回答

热心网友 时间:2024-10-06 15:06

随着物理硬件的不断进步,存储软件的硬件需求也在不断演变。在过去,Ceph对象存储守护程序(OSD)主要部署在机械硬盘上,提供数百IOPS的读写和数十G的磁盘容量。然而,现代NVMe设备能够提供数百万的IOPS读写,支持TB级别的磁盘容量。在内存方面,DRAM容量在过去20年间增加了128倍,网络IO设备现在能够提供超过400Gbps的速度,与几年前的10Gbps相比,这是一个显著提升。

Ceph的性能挑战在于其架构设计,特别是对于单核CPU性能的依赖,这限制了它充分利用不断增长的IO能力。Crimson项目通过引入shared-nothing设计和run-to-completion模型,重新设计了Ceph OSD,以提高CPU扩展性,同时保持与现有客户端和组件的兼容性。通过比较传统OSD与Crimson OSD的架构差异,我们了解到Crimson OSD如何针对CPU扩展进行重新设计。

在传统OSD架构中,线程池在各个组件中进行操作,导致在多CPU核心场景下共享队列处理任务效率低下。在简单示例中,一个PG操作需要通过messenger worker线程处理原始数据流的组装或解码,然后放入消息队列中进行调度。之后,PG worker线程获取消息,经过处理后将请求提交给ObjectStore。事务提交后,PG完成操作,再次通过发送队列和messenger worker线程发送回复。尽管可以通过增加线程数量来扩展工作负载到多个CPU核心,但这些线程默认共享资源,因此需要锁,这会引入争用问题。

传统架构的主要挑战是锁竞争开销随着任务数和CPU核心数的增加而迅速扩大,某些场景下每个锁点都可能成为扩展瓶颈。此外,即使没有争用,这些锁和队列也会产生延迟开销。多年来,社区一直在分析和优化更细粒度的资源管理和快速路径实现以跳过队列,但这类优化的成果正在减少,可扩展性似乎在当前设计架构下达到了瓶颈。

Crimson项目通过shared-nothing设计和run-to-completion模型,旨在解决CPU扩展性问题。该设计将每个内核或CPU分配一个固定线程,并在用户空间中分配非阻塞任务。请求及其资源可以被分配到各个核心,直到处理完成。理论上,我们不再需要所有的锁和上下文切换,因为每个正在运行的非阻塞任务都使用CPU,直到它完成任务。如果不需要与数据路径中的其他分片通信,理论上性能将随着内核数量线性扩展,直到IO设备达到其极限。这种设计非常适合Ceph OSD,因为在OSD层面,所有IO已经被PG分片了。

虽然跨区通信不能完全消除,但那通常是用于OSD全局状态的维护,而不是用于数据路径中的通信。这里的挑战是,相当一部分现有的锁或线程代码无法重用,需要重新设计,同时保持向后的兼容性。实现这一目标需要对代码的整体理解,以及相关的注意事项。使用shared-nothing架构实现底层one-thread-per-core和用户空间调度是另一个挑战。

Crimson项目基于Seastar框架进行OSD的重新设计,Seastar是一个异步编程框架,具有实现上述目标的所有理想特性。它不仅在C++中实现了one-thread-per-core的shared-nothing架构,还提供了一套全面的功能和模型,这些功能和模型已被证明在其他应用程序中对性能和扩展有效。资源默认情况下不在分片之间共享,Seastar实现了自己的内存分配器以进行无锁分配,并利用NUMA拓扑结构的优势,将最近的内存分配给分片。对于不可避免的跨核资源共享和通信,Seastar要求明确地处理它们。

Seastar框架允许用户在构建块中组织逻辑,通过将逻辑上连接的异步结构组合在一起,而不是将它们分散用于普通的回调中,这使代码更易于实现和可读性更好。Seastar还为循环、计时器以及基于未来的生命周期控制提供了高级工具,以进一步简化应用程序。网络和磁盘访问被封装在shared-nothing和基于f/p/c设计的模式中,不同I/O堆栈(如epoll、linux-aio、io-uring、DPDK等)的复杂性和细微控制对应用程序代码是透明的。

性能测试显示,在相同的随机4KB RBD工作负载下,通过将传统和Crimson OSD与BlueStore后端进行比较来验证single-shard run-to-completion。两个OSD都分配了2个CPU资源。Crimson OSD的随机读取性能大约提高了25%,随机写入情况下的IOPS大约比传统OSD高24%。进一步的分析表明,在随机写的情况下,CPU的利用率很低,大约20%的CPU被消耗在频繁的查询中,这表明Crimson OSD可能不是当前的瓶颈。

Crimson OSD提交和完成IO任务以及在Seastar和BlueStore线程之间进行同步,也有额外的开销。因此,针对MemStore后台重复了同一组实验,两个OSD都分配了1个CPU。结果显示,Crimson OSD在随机读取中提供了大约70%的IOPS,在随机写入中比传统OSD高25%,这与之前的结论一致,即Crimson OSD可以做得更好。

实现多分片路径明确,由于每个PG中的IO已经在逻辑上被分片,所以对IO路径没有太大改变。主要的挑战是确定无法避免的跨核通信,并设计新的解决方案以尽量减少其对IO路径的影响。为了确保解决方案的可扩展性,一些限制需要认真考虑,例如RADOS协议的限制以及Seastar框架的限制。尽管存在一些挑战,如与特定核心上定义的连接的限制,以及Seastar套接字在被accept()或connect()后不能移动到另一个核心,但大部分工作是优化扩展到多个内核的消息传递工作负载,以最小化跨内核消息沿IO路径传递,并理想情况下保持每个消息发送和接收操作最多保持1跳。

实现多核Crimson OSD的一个简单原则是将所有与共享状态相关的处理保持在专用内核上。如果一个IO操作要访问共享资源,要么按顺序访问专用核,要么访问保持同步的共享信息的独占副本。为了实现这一目标,首先让IO操作根据PG分片策略运行在多个OSD分片中,包括PG状态在内的所有全局信息都维护在第一个分片中。此步骤在OSD中启用分片,但需要在第一个分片中做出有关IO调度的所有决策。为了减少不平衡的CPU使用,下一步是将PG-core映射扩展到所有OSD分片。此外,Crimson支持三种ObjectStore后端:AlienStore、CyanStore和SeaStore,每种后端的实现多分片支持的路径是不同的。

最后,加快科技创新的步伐,关键核心技术实现突破,战略性新兴产业发展壮大。在载人航天、探月探火、深海深地探测、超级计算机、卫星导航、量子信息、核电技术、大飞机制造、生物医药等众多领域取得了重大成果,中国成功进入创新型国家行列。科技创新正在推动着社会的进步与发展。
Crimson:高性能,高扩展的新一代 Ceph OSD

Ceph的性能挑战在于其架构设计,特别是对于单核CPU性能的依赖,这限制了它充分利用不断增长的IO能力。Crimson项目通过引入shared-nothing设计和run-to-completion模型,重新设计了Ceph OSD,以提高CPU扩展性,同时保持与现有客户端和组件的兼容性。通过比较传统OSD与Crimson OSD的架构差异,我们了解到Crimson OS...

Ceph Crimson和Seastore介绍

在Crimson中,整个Ceph OSD模块被Seastar库重构,新的IO路径显著提升了性能。Seastar框架的引入使Ceph能够更好地适应现代高性能存储设备,提升存储系统的整体效率。Seastore是Crimson为了适应Seastar模型而开发的一个ObjectStorage系统,取代了原有的BlueStore。Seastore的设计目标是优化SSD等Flash设备的性能,避免...

卓越性能和高性能区别 win10高性能 新一代ix25 新一代ix35 高性能 高性能模式有什么用 高性能模式 高性能处理器 笔记本高性能
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抵押合同能够没有主合同吗 女人梦见老公要打自己是什么意思 磁铁,材质:钕铁硼,永磁体 应归哪个编码下 苹果手机连续亮屏息屏怎么解决 糯香芝麻番薯饼做法 番薯煎饼怎么做好吃 钓鱼模拟器如何钓到发光的鱼 香煎番薯饼制作步骤 番薯饼做法 抵抗1游戏介绍 离婚女人:二十位离婚女人的内心独白 孟云剑孟云剑 一个离婚女人的内心独白 西安的IT公司有哪些 比亚迪fo这款车他的安全配置怎么样? 请高手赐教 电脑主机机箱有电啊~~~ 我要配一部2200的主机,在各方面都可以,请高手赐教 组装一台主机,高手赐教 ...3000左右。玩游戏用,各种3D游戏不卡那种,请大神们赐教。_百度... 贵人指教 航嘉百盛的天使M101机箱究竟咋样啊 关于电脑机箱响不停的问题???(请高手赐教) 装机达人不吝赐教 申通快递牛X!把投诉的关闭了!你只要打过去他就话务员工作繁忙,请稍后再... 投诉申通快递中山南头派件员 你遇到的申通有多烂?? 申通快递的服务态度怎么那么差,怎么投诉 ...电话从来打不通的!大家一起拒绝使用申通 永远拒绝使用申_百度知 ... 请问他是谁啊 在大红灯笼高高挂中有出演的 还有旁边那个繁体字是福什么... 高职高专金融投资专业教材·商业银行综合柜台业务目录 电视剧大红灯笼高高挂里面的曲子 快手怎么快速激活账号? 电流比100比5是什么意思? 高速数据采集系统高速数据采集系统分类 高速数据采集系统高速数据采集系统基本原理 高速数据采集卡的概念分类及用途 高速数据采集系统高速数据采集系统的结构形式 高速数据采集卡在BOTDR(布里渊光时域反射)系统中的应用 正常水箱上下水管哪个热 水箱的下水管是多大的? 别对我太好,免得我陷得太深你又不要。 ...个女孩子很好,那个女孩子她说你不要对我这么好,你对我这么好我都不... 梦见有人给我打车 描写庐山风景秀丽成语 庐山美景的成语 庐山可以用什么成语 在word里打开机密文档以后,利用“复制”、“粘贴”功能可否将内存中的... 哪位大哥知道能把中文翻译成英文的在线翻译网站? 把中文翻译成英文的网站有什么 哪里有能把一篇文章翻译成英文的网站 请问哪位有把中文段落翻译成英文的网站或软件?谢谢!~ 请问有谁知道可以把中文句子直接翻译成英文的网站