揭秘全闪|千万级IOPS的超高性能是如何实现的?

2024-01-07 04:40

本文主要是介绍揭秘全闪|千万级IOPS的超高性能是如何实现的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、 概述

1.1. 产品简介
FASS是大道云行面向高IO密集型应用场景,完全自主研发的分布式全闪存存储系统。基于高效的分布式存储软件设计和高性能的全闪存硬件平台,FASS可将多个节点的SSD资源通过高速以太网或Infiniband网络组成一个高性能、高可用、易扩展块存储资源池。通过iSCSI、iSER、NVMeoF存储接口,可广泛应用于如下各类高IO性能要求业务场景。
在这里插入图片描述

  • 强大的性能

FASS采用主流的服务器硬件和全NVMe硬盘配置,通过软件层面先进的体系结构设计、微控制器并行流水线设计、多级元数据索引管理,实现了三节点千万级IOPS、100us级延迟的强大性能。

  • 可靠的架构

FASS采用全对称分布式架构,可实现多节点的IO均衡与叠加,结合多副本、纠删码、快照等冗余与数据备份机制,消除了存储系统的单点故障,也保证了可靠的存储服务输出。

  • 大规模扩展

FASS的分布式集群支持3-512 scale out扩展,单卷可达32PB容量。通过数据分布与元数据管理的自动负载均衡,实现存储与计算的按需扩展,满足业务动态发展的苛刻要求。
在这里插入图片描述
△FASS产品概览

1.2. 设计哲学
性能驱动
定位于下一代全闪存存储产品,FASS的核心理念即性能驱动一切。

由于标准的操作系统并非为高性能IO模式设计,其任务调度、内存管理、系统调用在高并发IO场景下非常低效,成为全闪存储性能的最大瓶颈。

FASS团队很早就意识到了这个问题,开发了独有的XPE加速引擎以取代OS的低效调度,结合高效的微控制器模型,全NVMe软硬件设计,使得在有限硬件条件下,FASS也能发挥出超高的IOPS和延时性能。

软件定义
TaoCloud始终贯彻软件定义存储的理论,通过极致优化的存储软件,搭载配置合理的标准X86硬件,可以做到三节点千万级IOPS的惊人性能。软硬件解耦可以给各类数据中心带来更好的灵活性与经济性,有利于各类高性能云基础设施的建设。

分布式体系
FASS的数据与元数据管理都采用分布式模型设计,带来了极高的可靠性,从磁盘到物理节点到网络,都可以实现有效冗余,在各类故障情况下,保障数据以及元数据的完整性与高可用。

2、 原理架构

FASS基于标准服务器硬件设计了高性能的分布式块存储体系。
在这里插入图片描述

各个节点通过高速网络连接形成存储集群,FASS软件服务将各个节点上的高速SSD介质、CPU、内存等资源抽象整合,对外输出成单一块存储资源池,提供高速块存储服务。

2.1逻辑架构
FASS可以部署在主流的Linux环境,如CentOS、Redhat、Ubuntu、SUSE等,也已适配银河麒麟、深度等国产Linux操作系统。每个物理节点都需要安装FASS的suzaku软件服务。通过对各节点存储资源的管理与整合抽象,以逻辑存储卷的方式为对上层提供iSCSI/iSER、NVMeoF块存储服务和访问接口和统一管理控制。

FASS平台管理层支持提供命令行访问控制接口和REST API,并集成到Web GUI对整个存储集群进行节点管理、用户管理 、访问管理、存储空间管理、缓存管理、快照管理、监控管理等。
在这里插入图片描述
△FASS逻辑架构

FASS通过ETCD模块实现高可用集群管理,主要用于共享配置和服务发现,从而实现在故障情况下的重新选举、自动切换等高可用特性。硬件上,FASS支持部署于X86服务器或国产CPU硬件平台,如飞腾、申威、海光等服务器平台,推荐采用全NVMe SSD硬盘配置,以发挥FASS的最佳性能。集群最低三节点起配,硬件拓扑上包含三层网络:存储网络、业务网络和管理网络。

集群所有节点通过高速网速(推荐100GbE/200GbE RoCE或Infiniband)互联,以实现节点间的协作与数据分布与转移。业务网络提供存储访问,该网络的带宽建议与存储网络带宽一致。管理网络主要负责管理监控、配置维护,采用普通千兆网络即可。
在这里插入图片描述
△FASS硬件组网参考(注:实际部署建议配置冗余网络)

3、 定位与对比

3.1传统分布式存储
传统分布式存储产品受限于底层架构的设计,很多分布式存储无法实现对NVMe、RDMA等技术的有效支持,也未能针对闪存进了有效的软件优化,因而即使采用全闪存配置,也无法发挥硬件真正的性能。

3.2全闪存阵列
全闪存阵列(AFA)仍然属于存储阵列范畴,采用控制器架构并集成存储管理软件,以scale up为主要扩展方式。

AFA虽然一定程度提高了性能,但是成本高昂、灵活性差、扩展性低。随着闪存单盘性能突破100万IOPS,控制器是最大的性能瓶颈,scale up对于闪存性能是一种极大的浪费。

3.3分布式全闪存储
12块NVMe SSD硬盘即可耗尽一颗Intel CPU的全部lane,控制器或存储节点的计算能力,成为了全闪存储的最大瓶颈,Scale out是全闪存储的必然选择。随着高速网络、RDMA技术的成熟应用,us级的外部网络的延时使得跨节点扩展已经不再是全闪存储的瓶颈。

分布式全闪存储系统在标准硬件基础上,通过优秀的软件核心对硬件性能的极致压榨与叠加,可以更好实现高性能的SDS存储系统。
在这里插入图片描述
△对比分析

4、 总结展望

全闪存不只是SSD的堆叠,还需要从根本上去解决中国用户应用全闪存的痛点。高性能、高可用、高扩展、易管理,这些存储需求无法通过传统烟囱式模式以及简单的Scale-up纵向扩展来很好地解决。从全闪阵列到分布式,从分布式到全闪,这是殊途同归的,终极目标是分布式全闪系统,兼取闪存和分布式的长板,根本上解决云计算、大数据、人工智能等应用场景下面临的存储新挑战。

5、 参考资料

FASS技术白皮书(完整版)下载
欢迎乘坐FASS磁悬浮列车,下一站全闪时代
【POC邀请】您的存储集群需要FASS一下

这篇关于揭秘全闪|千万级IOPS的超高性能是如何实现的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/578756

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

三国地理揭秘:为何北伐之路如此艰难,为何诸葛亮无法攻克陇右小城?

俗话说:天时不如地利,不是随便说说,诸葛亮六出祁山,连关中陇右的几座小城都攻不下来,行军山高路险,无法携带和建造攻城器械,是最难的,所以在汉中,无论从哪一方进攻,防守方都是一夫当关,万夫莫开;再加上千里运粮,根本不需要打,司马懿只需要坚守城池拼消耗就能不战而屈人之兵。 另一边,洛阳的虎牢关,一旦突破,洛阳就无险可守,这样的进军路线,才是顺势而为的用兵之道。 读历史的时候我们常常看到某一方势

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份