揭秘全闪|千万级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

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一