Intel 助力移动云百万 IOPS 云硬盘,打造极速云存储体验

前言概述

0e131373ad3c2bf46333fe02f6da5303.png

物联网、人工智能、5G 等技术带动数据爆发式增长,企业超大规模数据的存储与治理成本与日俱增,且随着数据库、实时日志分析等关键业务上云,企业对存储系统的性能要求也随之提升,存储系统面临着管理海量数据和提供极致性能的双重挑战。移动云作为国内领先的云服务提供商,与合作伙伴 Intel 一起深耕存储系统性能,打造出了一款百万 IOPS 超高 IO、 4GB/s 超大带宽、百微秒级超低时延、PB 级系统扩展规模的云硬盘产品——移动云极速型云硬盘,全面满足 DT 时代用户对高 IOPS、高带宽、低时延、高扩展性的极致存储需求。

挑战:NVMe磁盘对IO处理模式提出新的要求

NVMe SSD 的新时代已经到来,具有超低时延且提供 IO 并行处理能力的 NVMe 接口正在逐步取代已统治了存储领域 20 多年的 SAS 和 SATA 接口,SSD 市场也逐步转向 NVMe 接口。

在传统的 SATA/SAS HDD/SSD 存储介质数据处理方式中,每一个 IO 都需要以“中断”的方式将数据在用户态和内核态进行频繁交换,整个过程需要经过多次 CPU 上下文切换及数据的内存拷贝,这种处理方式老旧且低效,无法充分发挥 NVMe SSD 的 IO 低时延、高并发的特性。为此,Intel 开发了一套高性能存储套件——SPDK(如图一),

3a46668820e295c1c12a7d46a7c2d897.png

图一:SPDK 组件架构图

Intel SPDK 整体架构分为四层:

➢ 应用和协议层:指 SPDK 支持存储应用类型。iSCSI Target 对外提供 iSCSI 服务,用户可以将运行 SPDK iSCSI 服务的主机作为标准的 iSCSI 存储设备来使用;vhost-scsi,vhost-blk 或 vfio-user 对 QEMU 提供后端存储服务,QEMU 可以基于 SPDK 提供的后端存储为虚拟机挂载 virtio-scsi,virtio-blk 或 NVMe 磁盘;NVMe-oF 对外提供基于 NVMe 协议的存储服务端。

➢ 存储服务层:该层实现了对块和文件的抽象,提供更多存储服务,目前实现了包括QoS 特性,数据压缩和加密,块级缓存,逻辑卷等功能。

➢ 块存储层:该层提供了统一的块设备服务,可以支持不同的存储设备和存储服务,包括本地和远端的存储设备,高性能 NVMe SSD 设备,AIO 设备,Ceph RBD 设备,和 virtio 设备。并且支持自定义的第三方的块存储设备。

➢ 驱动层:这一层主要实现了高性能用户态驱动来支持不同的存储设备和硬件加速设备,比如本地 PCIe NVMe 驱动和网络 RDMA, TCP NVMe 驱动,以及 virtio-blk 和 virtio-scsi 驱动。同时支持 QuickData, DSA 和 VMD 等相关硬件设备。

通过以上对 Intel SPDK 应用和协议层的介绍可知,Intel SPDK 可通过 vhost-blk 对 QEMU 提供后端存储服务,以下我们以 Intel SPDK 前端配置成 vhost-blk,后端配置成 NVMe  SSD 场景为例,分析 SPDK 的 IO 栈模型 (如图二1),

1c74b238bcd7d980fcbe63c60d0a4c96.png

图二:传统内核和 SPDK 的 IO 栈对比图

参考文献1https://rootw.github.io/2018/05/SPDK-iostack/

虚机 IO 请求处理方式差异:

  • IO 下发处理方式差异:传统 NVMe SSD 驱动将请求通过系统调用传递给内核块层和 NVMe 驱动层进行处理;而 SPDK vhost 进程以轮循的方式不断从 IO 环中取出请求(意味着虚拟机下发 IO 请求时,不用通知虚拟设备),对于取出的每个请求,vhost 将其以任务方式交给 bdev 抽象层进行处理。 

  • IO 响应处理方式差异:传统 NVMe SSD 驱动在 NVMe 控制器处理完成后以物理中断方式通知 QEMU IO 线程,由它将响应放入虚拟机 IO 环中并以虚拟中断通知虚拟机请求完成;而 SPDK vhost 进程则会轮循物理 NVMe 设备的 Queue Pair,如果有响应会立刻进行处理,而无须等待物理中断。

  • IO 线程模型差异:对比传统 NVMe SSD 在操作前端虚拟机 IO 环或后端 IO  Channel 时的多线程加锁处理模式,SPDK 的每个 IO 环或 IO Channel 只会在一个 vhost 线程中被轮循,因而避免了多线程并发操作同一个对象,可以通过无锁的方式操作 IO 环或 IO Channel。

Intel SPDK 通过 IO 轮询和无锁化的优化处理,带来了 IO 时延和吞吐的巨大优化,经过端到端的测试:

➢ IO 时延:传统 NVMe IO 栈的总时延约 40us,而 SPDK 用户态 NVMe IO 栈时延不到 30us,时延上有 25%以上的优化 (如图 2)。

➢ 吞吐量:传统 NVMe IO 栈在单个 QEMU IO 线程处理时,最多能达到 20 万 IOPS,而 SPDK vhost 在单线程处理时可达 100 万 IOPS,同等 CPU 开销下,吞吐量上有 5倍以上的性能提升。

鉴于 Intel SPDK IO 低延时、高吞吐的巨大优势,移动云云存储团队与 Intel 进行深度合作,在结合 Intel SPDK 的基础上设计实现了百万 IOPS 的移动云极速型云硬盘产品。

解决方案:借力 SPDK+RDMA, 打造百万 IOPS 云硬盘产品

移动云极速型云硬盘产品系统整体架构(如图三)由块存储接口层、块存储业务层和底层统一存储引擎层组成:

➢ 块存储接入层:结合 Intel SPDK 技术实现云盘私有客户端驱动 ebsdriver,主要负责接收 KVM+QEMU 的 IO,并根据云盘路由信息将 IO 请求通过块存储服务层分发,至不同的存储节点;

➢ 块存储业务层:blockfs 负责块数据索引管理、云盘 IO 分发管理等功能;

➢ 统一存储引擎层:megrez 专注在数据面,提供数据集群的大规模水平拓展能力、集群容灾及其他服务治理能力,提供数据可靠性管理等功能。

f461ca40444afd60e25e5be0438f5148.png

图三:极速型云盘架构概览

在架构设计的技术实现上,移动云极速型云硬盘产品具备以下 4 点创新

➢ 中心化元数据设计,快速响应 IO 请求

移动云极速型云硬盘产品设计理念之一是支撑超大规模集群,超大规模集群治理首先要解决的问题是数据量增大之后的索引尺度,这个问题长期被业界探讨,根据移动云存储团队在分布式存储领域的多年耕耘与积累,认为去中心化(share-nothing)的设计复杂化了集群的可管理性以及扩容操作的可观察性,相反,中心化索引的分布式存储系统更具有调度灵活、架构简单的优势。

我们通过增大数据存储的粒度来降低索引数量的尺度。为此,移动云极速型云硬盘产品的数据管理单元做了 GB 级别切片设计,并通过内存驻存索引数据快速地响应元数据访问请求,这样即使单集群规模超百 PB,一组通用 x86 服务器组成的元数据索引集群也足够应对使用需求。

➢ 实现追加写特性,支持 Non-stop Write

通过中心化索引管理和追加写的数据模型,实现快速、无中断的可用数据节点选择和替换,在感知到节点不可用时,可立即为后续到来 IO 分配一组新的副本节点用于数据追加写入,此时只需更新索引指向新分配的数据块,即可实现 IO 的 non-stop write 特性,该特性可有效消除因网络异常等导致的 IO 抖动问题,保证存储系统的低延时、高吞吐能力。

➢  实现 CopySet 副本组,降低副本丢失概率

随着数据的增长,存储集群规模的扩大,多副本技术在面临数据中心关联故障(大面积集群重启或掉电)时数据丢失的风险也越来越被业界关注。为解决该问题,移动云极速型云硬盘产品在研发阶段根据业界总结的多种分布式存储系统副本模式对存储系统可靠性影响(如图四,《Copysets: Reducing the Frequency of Data Loss in Cloud Storage》),并最终在产品系统中设计了基于 CopySets 概念的副本管理能力,通过将所有节点划分为N/R 个 CopySet【N 为节点数,R 副本数】,每次数据写入的时候,按照预置的策略均匀地选择 CopySet 进行写入,能够有效降低数据丢失风险。

b322da31fc59c3319c90ab8652cefaab.png

图四:极速型云盘的 CopySet 副本选择策略

➢ RDMA+SPDK+CPU affinity,为百万IOPS 保驾护航

为了解决网络传输中服务器端数据处理的延迟,移动云极速型云硬盘产品引入了远程直接数据存取(如图五)协议的支持,RDMA 将数据从一个系统快速传输到远端内存中,而不对操作系统造成任何影响,它消除了数据复制和进程上下文切换的开销,解放内存、带宽和 CPU 处理能力。

Intel SPDK 的轮询、异步、无锁的 NVMe 驱动程序,提供了从用户空间应用程序直接访问 NVMe SSD 的零拷贝、高度并行能力。

CPU affinity 保证同一进程只能被调度到同一 CPU 上,有效避免因缓存未命中等对 CPU 处理性能不利的情况,从而使得进程的运行更高效,程序的性能表现更优秀。

976e5a6207d3b51d226faaebe15c8d10.png

图五:RDMA+SPDK 集成

效果:快稳融智,移动云极速型云硬盘产品正式进入百万 IOPS 时代

依托以上架构设计优势及不断的技术打磨,移动云极速型云硬盘产品在性能、扩展性、协议支持等方面表现优异:

➢ 读写操作极致性能:基于高性能 Intel NVMe SSD 和移动云自研的统一存储引擎,移动云极速型云硬盘产品可为用户提供单盘 100 万的随机 IOPS,最高 4GB/s 的吞吐,500us 的系统平均时延,200us 的单路平均时延,满足应用的极致性能需求;

➢ 集群按需灵活扩展:移动云极速型云硬盘产品允许用户根据业务需求自由配置存储容量,按需扩容。目前系统单磁盘容量最大可支持32TB,满足用户超大存储空间的使用要求;

➢ 协议支持多样性:支持 Vhost、NVMe-oF 协议,可满足虚拟化、裸金属、容器等多种应用场景。

01e82b9e9e831689a8240ba06f954b2a.png

图六:移动云极速型云硬盘产品能力

展望:与 Intel 深度合作为用户提供更极致云存储体验

移动云极速型云硬盘产品,是中国移动云能力中心云存储团队过去几年在公有云存储领域的 深耕和沉淀的成果输出,结合当前业务的需求和存储领域的发展动态,全新打造的自研分布式存储解决方案。随着全新第三代英特尔®至强®可扩展处理器的到来,其更多的处理核心、更优的架构设计及更大的内存容量会为移动云极速型云硬盘产品带来更强劲的性能助力。同时移动云后续计划结合英特尔最新 OPTANE SSD 和/或非易失性内存 OPTANE PMEM,以及 RDMA 网卡,进一步为移动云极速型云硬盘产品提升性能。

未来我们将与 Intel 一起,协力将最新的技术应用到移动云存储产品演进中,并最终惠及移动云的用户,为云上业务应用提供澎湃的动能,让用户能更放心地上云、更安心地用云。

cd9376a6f361549e5b1154ead3ce94b7.png

转载须知

DPDK与SPDK开源社区

公众号文章转载声明

推荐阅读

深入浅出Hyperscan出版啦!

SPDK Vhost 基于最新21.10发布版本的性能报告

DPDK Release 21.11

基于SPDK 加速框架的高性能PMEM Bdev

SPDK的BPF Tracing

0124e3af6aaa05795e51f0dd368ebc8e.png

8552b309ec981d3410b82e5f000eabca.gif

点点“赞”“在看”,给我充点儿电吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47797.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4G DTU设备数据上传阿里云微信小程序获取阿里云设备数据

以下文章从六个部分进行展开,分别为: 一、测试使用材料 二、设备接线 三、程序下载 四、阿里云物联网平台创建产品、设备 五、温湿度上传阿里云物联网平台 六、微信小程序获取阿里云物联网平台设备数据 一、测试使用材料 二、设备接线 2.1放置物联卡 在…

腾讯云-即时通讯 IM

https://console.cloud.tencent.com/im-detail 基本配置->账号管理 (请进入帐号管理)

近百万条数据、3 秒查询,TDengine 助力北微云平台的搭建

作者:朱永杰 小 T 导读:作为一家聚焦惯性传感技术领域的企业,北微传感致力于让物联世界更美好,其研发的数百种型号的倾角传感器、电子罗盘、航姿参考系统、惯性测量单元、光纤陀螺仪、组合导航等产品,在交通运输、工程…

2021最新 腾讯通信云服务端使用心得,腾讯云IM

腾讯通信云服务端使用心得 1.腾讯通信服务入口并创建应用 方便使用保留url地址 : https://cloud.tencent.com/product/im 注册账号腾讯云账号->通过审核->创建应用 * 创建应用完成后点击应用配置,帐号体系集成(配置完毕之后就可以进…

英特尔助力腾讯云深度优化云硬盘CBS 产品,打造极速云存储体验

前言概述 在更多企业核心系统“云化”的今天,云存储系统作为业务数据的重要载体,其性能表现正 受到越来越多的关注。作为全球领先的云服务提供商之一,腾讯云通过先进的云硬盘 CBS (Cloud Block Storage) 产品为众多行业用户提供高效、可靠…

大众点评Cat实时应用监控平台服务端部署

关于cat服务端部署的相关文档地址如下: https://github.com/dianping/cat/wiki/readme_server 话不多说,接下来就按照官方文档流程走一遍,我这里是使用的Windows系统进行部署。 第一步确认环境: 我这边使用的是如下环境&#xff…

腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务

大数据时代,数据库 SaaS 是企业实现降本增效和业务创新的重要抓手。在腾讯全球数字生态大会数据库 SaaS 专场上,腾讯云发布了多项数据库 SaaS 产品能力升级,并重点分享了其在上云、日常运维、数据库迁移等多方面的实践应用,为广大…

腾讯云的云直播和即时通讯IM开发(全网最详细之一)

如果你也在面临做直播的 业务的时候迷茫的时候,来看看吧。 腾讯云–云直播 最近这几个项目也是在做直播相关的App开发,之前刚做的时候,自己也经历很多坑。 慢慢的爬过这些坑,做了几款直播软件以后,也算有了心得。更加…

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台 一、认识SeaTunnel二、SeaTunnel 系统架构、工作流程与特性三、SeaTunnel工作架构四、部署SeaTunnel1.安装Java2.下载SeaTunnel3.安装连接器 五、快速启动作业1.添加作业配置文件以定义…

Tapdata Cloud 场景通关系列:将数据导入阿里云 Tablestore,获得毫秒级在线查询和检索能力

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata Cloud 自去年发布云版公测以来,吸引了近万名用户的注册使用。应社区用户上生产系统的要求,Tapdata Cloud 3.0 将正式推出商业版服务,提供对生产系统的 SLA 支撑。Tapdata 目前专注在实时数…

JAVA集成腾讯云即时通讯IM服务端

一. 腾讯IM快速入门 1. 注册腾讯云账号,找到即时通信IM控制台 腾讯IM控制台:登录 - 腾讯云 2. 创建即时通信应用 3. 进到应用里面可以看到这个应用的SDKAppID和key(密钥) 4. 可以参考官方提供的“服务端API接口文档”和“接口调试工具” API接口文档&am…

100套基于Java开发的毕业设计项目,完成项目源码可共分为五季,每季大约20套项目,希望大家多多支持持续关注哦!

很多大三大四的学生,苦于没有参考的毕设资料,或者下载的资料零零散散、代码有问题、数据有问题等等,造成毕设出现问题影响大学毕业。 现在,我们提供了经过审核的100个项目源码和对应的辅导视频,让大家在短时间内可以完…

chatgpt赋能python:Python选择器的SEO优化

Python选择器的SEO优化 作为一名有10年Python编程经验的工程师,我深知Python在Web开发和SEO优化方面的重要性。在这篇文章中,我将会介绍Python选择器的SEO优化并阐述如何使用它。 什么是Python选择器? Python选择器是一种解析HTML、CSS、X…

当我们聊飞书时,我们应该聊什么?

飞书,2020年的明星产品。沉寂了许久的产品界,终于迎来了话题明星。 我们已经聊腻了抖音快手短视频,看烦了直播电商小商店。现在我们终于转移了视线,转移到了飞书身上。没错,这次还是字节跳动。 那么,当我们…

吴恩达ChatGPT《LangChain Chat with Your Data》笔记

文章目录 1. Introduction2. Document Loading2.1 Retrieval Augmented Generation(RAG)2.2 Load PDFs2.3 Load YouTube2.4 Load URLs2.5 Load Notion 3. Document Splitting3.1 Splitter Flow3.2 Character Splitter3.3 Token Splitter3.4 Markdown Spl…

协同办公笔记软件综合评测:飞书、语雀、Notion、FlowUs、Wolai

飞书文档 介绍 飞书文档汇集了文档、表格、思维笔记等在线创作工具,同时为文件提供安全、强大的云端存储和内容管理能力,文档所有者可以根据需要灵活设置浏览、编辑、评论、分享等权限,让协作有序又高效。 核心特色 文稿类型:包括…

差评近一半,用 Python 分析胡歌的《猎场》到底值不值得看?

作者 | 布道 11 月 6 日,湖南卫视已经开播被称作年度压轴的大戏“猎场”,迅速占领各大榜单,成为一部高热度的电视剧。但是在豆瓣上却形成了两极分化。截止 11 月 8 日,该剧在豆瓣上的评分为 5.7 分。相比较胡歌之前《琅琊榜》的 9…

你评论,我赠书~【哈士奇赠书 - 13期】-〖Python程序设计-编程基础、Web开发及数据分析〗参与评论,即可有机获得

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4…

【Thunder送书 | 第三期 】「Python系列丛书」

文章目录 前言《Python高效编程——基于Rust语言》《Python从入门到精通》《Python Web深度学习》《Python分布式机器学习》文末福利 | 赠书活动 前言 Thunder送书第三期开始啦!前面两期都是以【文末送书】的形式开展,本期将赠送Python系列丛书&#xff…

chatgpt赋能python:Python怎么隐藏密码:常用的方法和技巧

Python怎么隐藏密码:常用的方法和技巧 互联网时代,用户需要经常输入账号密码来进行在线交互。但是,账户密码的安全性问题也随之而来。为了防止私人信息被泄露,很多应用程序都需要对用户密码进行加密和隐藏。本文将介绍Python中常…