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

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4