背景

扬州万方科技股份有限公司主要从事通信、计算机和服务器、智能车辆、基础软件等产品的科研生产,是国家高新技术企业、专精特新小巨人企业、国家火炬计划承担单位。

业务介绍

申威处理器是在国家“核高基”重大专项支持下、由国家高性能集成电路(上海)设计中心自主研发,采用自主指令集,具有完全自主知识产权的处理器系列。当前主流的申威3231处理器是基于第三代“申威 64” 二次优化版核心的国产高性能多核处理器,主要面向高性能计算和高端服务器应用。申威3231采用 CC-NUMA 多核结构和 SoC 技术,单芯片集成了32个64位 RISC 结构的申威处理器核心、8路DDR4存储控制器接口、40lane的PCI-E 4.0标准I/O接口以及3路直连接口,最高工作频率可达2.5GHz。

2018年至今,万方科技基于申威系列处理器研制了面向海量存储、高密度存储、全闪存储等多种需求的多类型存储系统,大量采用了基于 Ceph 的分布式统一存储技术。在随后的生产环境使用维护中,Ceph 在性能一致性、运行稳定性、故障修复能力等方面的表现不尽如人意,并且复杂的 IO 处理流程、数据放置及迁移机制、庞大的代码规模等增加了使用运维成本。同时,我们也持续关注存储的技术生态,有意向另辟蹊径,探索新型的存储技术,改善目前存储产品的不足。在深入调研了 Curve 的技术架构、应用成熟度、社区背景的基础上,决定在申威硬件平台上适配、试用 Curve 技术,主要的试用场景包括高性能块存储、超融合等。

应用实践

Curve适配的申威平台,由于申威3231处理器采用自主申威指令集,因此需要使用申威平台的 gcc 对 Curve 进行重新编译。

Curve 的移植适配需要解决的核心问题是 brpc 的编译,brpc 采用 M:N 的线程模型,为了进一步优化性能,在原子操作、用户态上下文切换等部分使用了与处理器平台强关联的汇编语言,我们使用申威的汇编指令重写了这两部分内容,并且优化了申威平台非对齐访问内存的相关代码。

高性能块存储场景实践,高性能是 Curve 的主要特点之一,而在业务层面,高性能块存储是支撑数据库等性能型应用的关键。在 Ceph 存储技术的实际应用中,我们大量使用了 NVMe 闪存盘,通过 bcache 缓存方案提升机械盘的存储性能。

对于高性能块存储场景,我们采用全 NVMe 闪存方式构建 Curve 集群。

为了充分发挥NVMe闪存性能,我们基于SPDK技术重构Chunkserver的Ext4 filepool。与当前社区中所采用的 Polarfs+SPDK 的方式不同,我们使用 SPDK blobstore 实现 Chunkserver 的底层存储逻辑。

这种方案需要注意的点是:SPDK blobstore 不存在目录的概念,只支持blob读写,不支持目录操作及文件命名等功能。为了尽量减少对于 Chunkserver 上层逻辑的修改,我们仍然使用 Chunkserver 既有的目录结构,但 filepool 中的文件不再用于存储真实用户数据,而是记录blob id,用于将Ext4文件系统中的文件关联到对应的 SPDK blob,目录操作、文件命名等功能仍然沿用Ext4文件系统的相关操作接口,从而实现基于 SPDK blobstore 的数据存储。

经过相关改造,在3节点 * 3块NVMe闪存盘、万兆网络互联的申威3231存储服务器集群上,单个NBD盘IOPS达到32K。

超融合场景实践,万方科技的超融合产品采用混闪的硬件存储架构,并基于 Kubernetes 统一管理容器及KVM虚拟机。

由于超融合产品需要适应大容量、高性能等不同的存储场景,因此需要 Curve 满足同一物理池中支持不同类型存储介质的需求,为实现这一需求,我们为 chunkserver 增加了存储介质类型的属性,并在逻辑池创建时通过配置存储介质类型匹配 chunkserver 并创建 copyset,从而使得逻辑池的物理存储空间在指定类型存储介质上进行分配。

另一方面,为了实现 Kubernetes 对于传统 KVM 虚拟机的统一管理,以容器方式运行 KVM 虚拟机,并使用 Curve 的 CSI 接口为 KVM 虚拟机提供虚拟磁盘,Curve 为虚拟机的容器化运行提供了稳定、高性能的存储服务。

后续规划

结合 Curve 及万方科技相关产品的发展规划,后续工作将会集中在两个方面:

  1. CurveFS 在申威平台的适配、验证;
  2. 结合社区的 SPDK+RDMA 块存储性能优化方案,探索 NVMe 全闪存储的性能优化。

作者简介: 杨阳,博士,先后就职于中船重工第七一六研究所、阿里云计算有限公司,目前担任扬州万方科技股份有限公司研发中心主任,主要工作方向集中在分布式存储、云计算、大数据等领域,并长期关注国产自主可控领域的技术发展。

了解更多网易技术产品

扬州万方:基于申威平台的 Curve 块存储在高性能和超融合场景下的实践的更多相关文章

  1. CSDN不限积分代下载,知网、万方、sci、IEEE论文代下载,智慧树、超星尔雅刷课

    下载内容: 1.CSDN不限积分代下载. 2.知网.万方.sci.IEEE论文代下载. 3.超星尔雅,智慧树刷课. 注:由于本人手抖买一个CSDN会员,想挽回一点损失,所以创立了一个下载群,绝对不是骗 ...

  2. 基于机器学习的语音编解码器声网Agora Silver:支持超低码率下的高音质语音互动

    从 1860 年电话发明,到现如今通过网络进行语音互动,语音始终是最自然.最基础的实时互动方式.过去几年,语音实时互动成为越来越多人日常生活的一部分.但是每个人都会遇到弱网环境,这会直接影响语音通话体 ...

  3. 云计算管理平台之OpenStack块存储服务cinder

    一.cinder简介 cinder是openstack环境中的块存储服务,主要为运行在openstack之上的虚拟机提供块存储服务的:所谓块存储就是我们经常用的硬盘呀,U盘啊,SD卡等等这些块设备的, ...

  4. 【原创译文】基于Docker和Rancher的超融合容器云架构

    基于Docker和Rancher的超融合容器云架构 ---来自Rancher和Redapt 超融合架构在现代数据中心是一项巨大的变革.Nutanix公司发明了超融合架构理论,自从我听说他们的“iPho ...

  5. 论文 查重 知网 万方 paperpass

    相信各个即将毕业的学生或在岗需要评职称.发论文的职场人士,论文检测都是必不可少的一道程序.面对市场上五花八门的检测软件,到底该如何选择?选择查重后到底该如何修改?现在就做一个知识的普及.其中对于中国的 ...

  6. 基于云计算Iaas平台的ZStack

    2015年4月,一家全新的基础架构即服务的软件产品ZStack面世.ZStack的主创人员是自在海外云计算公司的中国人.ZStack是基于Java语言,结合了OpenStack和CloudStack上 ...

  7. 372-基于XC7VX690T的高速模拟信号、万兆光纤综合计算平台

    基于XC7VX690T的高速模拟信号.万兆光纤综合计算平台 一.板卡概述 基于V7的高性能PCIe信号处理板,板卡选用Xilinx 公司Virtex7系列FPGA XC7VX690T-2FFG1761 ...

  8. 国产CPU 申威1621 异数OS基础组件理论性能测试报告

    国产CPU 申威1621 异数OS基础组件理论性能测试报告 文章目录 国产CPU 申威1621 异数OS基础组件理论性能测试报告 前言 测试平台 测试项目 SW1621 异数OS 容器虚拟交换机模拟性 ...

  9. 基于科大讯飞AIUI平台自定义语义库的开发

    说明:我写这篇文章的主要目的是因为我在做这块的时候遇到过一些坑,也是希望后来者能少走一些弯路. 科大讯飞AIUI开放平台地址 科大讯飞AIUI开放平台后处理地址 AIUI后处理开放平台协议 1. 科大 ...

  10. 云无关、桌面端、基于Kubernetes的平台Otomi

    一.Otomi介绍 Otomi官网:https://otomi.io/ Otomi-core核心模块Github地址:https://github.com/redkubes/otomi-core Ot ...

随机推荐

  1. 5GC 关键技术之 SBA(基于服务的软件架构)

    目录 文章目录 目录 前文列表 5GC 的关键技术 SBA(基于服务的软件架构) 微服务架构 NF 的模块化 NF Service 的服务化 前文列表 <简述移动通信网络的演进之路> &l ...

  2. angualr2+ 性能优化-trackBy

    1.使用trackBy提高性能 为什么使用trackBy进行性能优化,在平时的开发中,我们对数组的处理基本都是通过接口获取新的数组进行替换或push,但是在这个过程中,Angular不知道你是要做什么 ...

  3. docker flannel网络

    部署etcd github部署访问链接:https://github.com/etcd-io/etcd/releases/ ETCD_VER=v3.5.1 # choose either URL GO ...

  4. 树莓派 ubuntu server 22.x 连接无线网络

    前言 树莓派系统安装完成后,需要配置网络,由于家里没有多余的网线(网线多少有点乱),所以决定配置无线上网的方式,现在记录下来操作过程 具体操作 sudo nano /etc/netplan/xxxxx ...

  5. 通过 Wireshark 解密 Kerberos 票据

    前言 在使用 Wireshark 分析 Active Directory 的 Kerberos 的流量时,会遇到加密票据的情况,这对进一步探究 AD 下的漏洞篡改事件的详细过程造成了影响.在查询资料时 ...

  6. 互联网软件的安装包界面设计-Inno setup

    https://blog.csdn.net/oceanlucy/article/details/50033773 "安装界面太丑了,不堪入目!" "这界面应该属于20年代 ...

  7. 001. git基础

    目录 1. 持续集成教程 1.1 持续集成的基础概念 1.2 持续集成的一般流程 1.3 认识DevOps 1.3.1 DevOps是啥? 1.3.2 为什么需要DevOps呢? 1.3.3 DevO ...

  8. .Net Core 部署IIS

    我相信很多人看了其他的贴子,都没有成功部署,因为里面有很多暗坑.接下来博主就一步一步给大家讲明白,带领大家部署 先基本的发布 操作:右击web项目的<发布>按钮.选文件 配置发布属性    ...

  9. JavaSE 关键字和标识符

    目录 关键字 标识符 标识符命名规则 标识符命名规范 字面值 关键字 具有特殊含义的 命名时不可以与关键字重名 标识符 也就是名字,对类名,变量名称,方法名称,参数名称等修饰 标识符命名规则 以字母, ...

  10. Windows10 LTSC版,比Win7还干净

    在Windows操作系统的发展历程中,每一个版本都承载着微软对用户需求的深度理解和技术创新.其中,Windows 7以其稳定.高效和简洁的特点,赢得了众多用户的喜爱. 然而,随着技术的不断进步和用户需 ...