掌桥专利:专业的专利平台
掌桥专利
首页

一种基于DPU的NVMe系统及其启动方法

文献发布时间:2024-04-18 19:44:28


一种基于DPU的NVMe系统及其启动方法

技术领域

本发明属于大数据以及云计算技术领域,特别涉及一种基于DPU的NVMe系统及其启动方法。

背景技术

近年来,随着大数据以及云计算的广泛运用,包括机器学习等场景对于存储、网络等功能的性能要求越来越苛刻。随之而来的问题就是存储功能的容量、I/O(Input/Output,输入/输出)设备性能的要求也随之增长。传统的存算结合基础架构已经无法满足当前的应用场景的需求,所以就有了超融合的概念。超融合架构(Hyper-ConvergedInfrastructure,HCI)通过存算分离的方式,将计算节点和存储节点分离,便于存储节点的单独维护、扩容,也能减少故障恢复的时间。

但是,在现有的方案中,存算分离的裸金属服务器(Bare Metal Server,BMS)启动依赖于iSCSI(Internet Small Computer System Interface,Internet 小型计算机系统接口)协议,而iSCSI协议存在许多缺点,例如:

1、网络引导延迟较高;

2、iSCSI设备通常需要特定的版本和配置兼容;

3、会消耗主机大量的CPU处理器性能。

因此,本领域迫切需要提供一种使用户无需感知底层实现,即达到与本地物理NVMe(Non-Volatile Memory Express,非易失性快速存储器)硬盘同样体验的裸金属服务器的技术方案。

发明内容

本发明提供了一种基于DPU的NVMe系统及其启动方法,用以解决背景技术中存在的至少一个技术问题。

在本发明的较佳实施方式中,本申请实施例提供了一种基于DPU的NVMe系统,包括一NVMe设备其特征在于,所述NVMe设备包括:

一储存单元;

一NVMe控制器,连接所述储存单元,以及用以连接NVMe系统提供的一预定接口,并基于所述预定接口驱动所述储存单元以NVMe规范工作;

一协议转换模块,连接所述储存单元及所述NVMe控制器,用以将NVMe系统基于所述预定接口的协议的NVMe请求转换为NVMe/TCP报文,并向远端虚拟磁盘系统发送;以及接收并根据自远端虚拟磁盘系统发送的NVMe/TCP报文操作所述储存单元;

一网络控制器,所述协议转换模块通过所述网络控制器连接所述远端虚拟磁盘系统。

进一步的,所述远端虚拟磁盘系统为云盘。

进一步的,所述预定接口包括PCIe接口。

进一步的,所述网络控制器包括以太网控制器。

进一步的,所述网络控制器包括一启动前执行环境储存模块,用以储存启动前执行环境,所述启动前执行环境包括第一NVMe驱动程序。

进一步的,所述启动前执行环境储存模块包括只读储存器。

进一步的,所述储存单元中设置有启动分区,所述启动分区中保存有操作系统内核,所述操作系统内核中设置有第二NVMe驱动程序。

进一步的,所述储存单元包括闪存、磁盘或者一个完整的储存阵列系统。

在本发明的较佳实施方式中,本申请实施例提供了一种基于DPU的NVMe启动方法,所述启动方法包括:

步骤S1,启动NVMe系统的基础输入输出系统;

步骤S2,加载网络控制器的启动前执行环境,并判断NVMe控制器是否初始化完毕,如NVMe控制器完成初始化则执行步骤S3,否则等待;

步骤S3,执行启动前执行环境中的第一NVMe驱动程序以通过所述NVMe控制器启动储存单元;

步骤S4,加载储存单元启动分区中的操作系统内核至所述NVMe系统的内存中;

步骤S5,卸载启动前执行环境中的第一NVMe驱动程序;

步骤S6,退出所述基础输入输出系统的引导。

进一步的,所述启动方法还包括:

卸载启动前执行环境中的第一NVMe驱动程序后,通过操作系统内核中的第二NVMe驱动程序驱动所述NVMe控制器。

本发明能够带来以下有益效果:

1、本发明提供的NVMe设备提供通用的NVMe类型的PCIe接口,可以完美的实现NVMe协议栈,提供高速可靠的使用体验,网络存储协议采用NVMF协议,可以大幅降低网络延迟,且性能优于iSCSI;

2、本发明提供的NVMe设备完全不用占用主机的CPU性能来处理网络协议栈;本发明提供的NVMe启动盘解决了兼容性的问题,可以支持当前已有的支持NVMe协议栈的大多数设备;

3、本发明提供的NVMe系统实现裸金属云盘启动,用户无需感知底层实现,达到与本地物理NVMe硬盘同样的体验,降低运维人员的负担。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。

图1示出了本发明实施例的NVMe系统应用场景示意图;

图2示出了本发明实施例的NVMe系统的启动方法流程示意图。

具体实施方式

以下对本发明的各个方面进行进一步详述。

除非另有定义或说明,本文中所使用的所有专业与科学用语与本领域技术熟练人员所熟悉的意义相同。此外任何与所记载内容相似或均等的方法及材料皆可应用于本发明方法中。

以下对术语进行说明。

除非另有明确的规定和限定,本发明中所述的“或”,包含了“和”的关系。所述“和”相当于布尔逻辑运算符“AND”,所述“或”相当于布尔逻辑运算符“OR”,而“AND”是“OR”的子集。

可以理解到,尽管术语“第一”、“第二”等等可以在此用来说明不同的元件,但是这些元件不应被这些术语限制。这些术语仅仅用来将一个元件与另一个元件区分开。因此,第一元件可以被称为第二元件,而不背离本发明构思的教导。

本发明中,术语“含有”、“包含”或“包括”表示各种成分可一起应用于本发明的混合物或组合物中。因此,术语“主要由 ...组成”包含在术语“含有”、“包含”或“包括”中。

除非另有明确的规定和限定,本发明的术语“相连”、“连通”、“连接”应作广义理解,例如,可以是固定连接,也可以是通过中介媒介间相连,可以是两个元件内部的连通或者两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

例如,如果一个元件(或部件)被称为在另一个元件上、与另一个元件耦合或者与另一个元件连接,那么所述一个元件可以直接地在所述另一个元件上形成、与之耦合或者与之连接,或者在它们之间可以有一个或多个介于中间的元件。相反,如果在此使用表述“直接在......上”、“直接与......耦合”和“直接与......连接”,那么表示没有介于中间的元件。用来说明元件之间的关系的其他词语应该被类似地解释,例如“在......之间”和“直接在......之间”、“附着”和“直接附着”、“相邻”和“直接相邻”等等。

另外需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向。使用的词语“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。可以理解到,在此,这些术语用来描述如在附图中所示的一个元件、层或区域相对于另一个元件、层或区域的关系。除了在附图中描述的取向之外,这些术语应该也包含装置的其他取向。

本发明的其它方面由于本文的公开内容,对本领域的技术人员而言是显而易见的。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。例如,在附图中的元件的厚度可以为了清楚性起见而被夸张。

本发明提供了一种基于DPU的NVMe系统及其启动方法,能够实现裸金属云盘启动,用户无需感知底层实现,达到与本地物理NVMe硬盘同样的体验,降低运维人员的负担。

实施例 1

本发明实施例提供了一种基于DPU的NVMe系统,NVMe系统包括一NVMe设备,如图1所示,NVMe设备包括:

一储存单元;

一NVMe控制器,连接储存单元,以及用以连接NVMe系统提供的一预定接口,并基于预定接口驱动储存单元以NVMe规范工作;

一协议转换模块,连接储存单元及NVMe控制器,用以将NVMe系统基于预定接口的协议的NVMe请求转换为NVMe/TCP报文,并向远端虚拟磁盘系统发送;以及接收并根据自远端虚拟磁盘系统接收到的NVMe/TCP报文操作储存单元;

一网络控制器,协议转换模块通过网络控制器连接远端虚拟磁盘系统。

本发明提供了一种标准NVMe设备,并在该设备上完成NVMe over PCIe到NVMeover TCP的协议转换,提供给用户通用的存储接口,无需单独适配。通过在本发明中实现NVMe启动的功能,将主机的NVMe over PCIe的请求转成NVMe over TCP的报文,再通过网络协议栈发送给远端虚拟磁盘系统。

优选的,远端虚拟磁盘系统可以是云盘。

具体的,预定接口包括PCIe接口。

本发明提出的NVMe设备可以基于DPU处理器实现的。通过DPU处理器模拟NVMe控制器,实现NVMe控制器的功能。NVMe设备与主机(Host)通过PCIe接口连接。

进一步的,网络控制器包括以太网控制器。如图1所示,NVMe设备设置有以太网接口,NVMe设备和云盘可通过以太网连接。

进一步的,网络控制器包括一启动前执行环境储存模块,用以储存启动前执行环境,启动前执行环境包括第一NVMe驱动程序。

在NVMe系统引导启动过程中,需要执行启动前执行环境中的第一NVMe驱动程序以通过NVMe控制器启动储存单元。

具体的,启动前执行环境储存模块包括只读储存器。例如,只读储存器可采用PXErom芯片。

本发明将PXE rom芯片与NVMe控制器的适配,二者结合实现存算分离的NVMe启动盘的支持,且支持一些不支持NVMe设备作为启动盘的设备。

具体的,储存单元可以包括闪存、磁盘或者一个完整的储存阵列系统。

进一步的,储存单元中设置有启动分区,启动分区中保存有操作系统内核,操作系统内核中设置有第二NVMe驱动程序。

在NVMe系统引导启动过程中,卸载启动前执行环境中的第一NVMe驱动程序后,通过操作系统内核中的第二NVMe驱动程序驱动NVMe控制器。

需要说明的是,DPU是指中央处理器分散处理单元(Data Processing Unit),是一种数据处理器。

NVMe(NVM Express)是指非易失性内存主机控制器接口规范,是一个逻辑设备接口规范。

PXE rom芯片是一种BOOT ROM只读型存储芯片,PXE(Preboot ExecuteEnvironment)是指预启动执行环境,是一种网络启动技术。

示例性的,如图1所示,NVMe设备可以基于DPU处理器实现。NVMe设备(DPU)分为用户空间(User Space)和内核空间(Kernel Space)。NVMe设备的用户空间包括NVMe控制器(NVMe Simulation)和协议转换模块(Initiator),其中,存储单元未于图中示出;NVMe设备的内核空间集成了以太网控制器,其中以太网控制器中包括PXE rom芯片。

NVMe控制器通过PCIe接口协议与主机(Host)实现连接交互;协议转换模块通过NVMF网络存储协议与云盘实现连接交互,并通过调用NVMe系统内核完成对云盘服务器的数据访问、处理等操作。

需要说明的是,NVMF全称NVMe over Fabrics(也称为NVMe-oF),它是一个相对较新的协议规范,旨在使用NVMe通过网络结构将主机连接到存储。NVMe over Fabrics协议定义了使用各种通用的传输层协议来实现NVMe功能的方式。

优选的,如图1所示,本发明的实施例中,NVMe设备的用户空间还包括SPDK模块,SPDK是一套存储开发套件,专门为专用设备(NVMe)设计。全称The Storage PerformanceDevelopment Kit。SPDK提供了一系列的高性能、可扩展、用户态下面的工具和库。本发明实施例提供的协议转换模块也可通过调用SPDK模块中的工具和库来实现和/或扩展其功能。

如图1所示,在主机(Host)端,同样分为用户空间(User Space)和内核空间(Kernel Space)。主机的内核空间包括储存单元,储存单元的启动分区中存储有操作系统内核。主机设置有PCIe接口,主机通过PCIe总线与NVMe设备连接。

作为一种优选的实施方式,主机(Host)启动时首先进入引导bios阶段(启动基础输入输出系统),bios调用以太网控制器的PXE rom芯片,读取PXE rom芯片中的第一NVMe驱动程序。通过第一NVMe驱动程序来初始化DPU中的NVMe控制器,并驱动NVMe控制器工作,从而启动储存单元。读取储存单元中启动分区中储存的操作系统内核,并将操作系统加载到主机的内存中。随后卸载PXE rom芯片中的第一NVMe驱动程序,并退出bios。由内存中的操作系统内核引导主机,并由操作系统内核中的第二NVMe驱动重新初始化NVMe控制器,重新驱动NVMe控制器操作储存单元。

在完成主机启动后,NVMe设备在主机中作为标准的NVME设备工作在NVMe overPCIe协议下。同时NVMe设备为云盘服务器提供一个协议转换模块。一个或多个云盘服务器可通过网络协议和协议转换模块建立通信连接,例如,采用NVMF网络存储协议,通过以太网建立通信连接。

本发明提供的NVMe设备提供通用的NVMe类型的PCIe接口,可以完美的实现NVMe协议栈,提供高速可靠的使用体验,网络存储协议采用NVMF协议,可以大幅降低网络延迟,且性能优于iSCSI。且完全不用占用主机的CPU性能来处理网络协议栈。本发明提供的NVMe系统解决了兼容性的问题,可以支持当前已有的支持NVMe协议栈的大多数设备。

同时,本发明提供的NVMe系统实现裸金属云盘启动,用户无需感知底层实现,达到与本地物理NVMe硬盘同样的体验,降低运维人员的负担。

实施例 2

在上述一种基于DPU的NVMe系统的基础上,本发明实施例还提供了一种基于DPU的NVMe启动方法,启动方法包括:

步骤S1,启动系统的基础输入输出系统;

步骤S2,加载网络控制器的启动前执行环境,并判断NVMe控制器是否初始化完毕,如NVMe控制器完成初始化则执行步骤S3,否则等待;

步骤S3,执行启动前执行环境中的第一NVMe驱动程序以通过NVMe控制器启动储存单元;

步骤S4,加载储存单元启动分区中的操作系统内核至系统的内存中;

步骤S5,卸载启动前执行环境中的第一NVMe驱动程序;

步骤S6,退出基础输入输出系统的引导。

本发明提出的NVMe设备可以基于DPU处理器实现的。通过DPU处理器模拟NVMe控制器,实现NVMe控制器的功能。

具体的,网络控制器包括一启动前执行环境储存模块,用以储存启动前执行环境,启动前执行环境包括第一NVMe驱动程序。

具体的,启动前执行环境储存模块包括只读储存器。例如,只读储存器可采用PXErom芯片。

本发明将PXE rom芯片与NVMe控制器的适配,二者结合实现存算分离的NVMe启动盘的支持,且支持一些不支持NVMe设备作为启动盘的设备。

示例性的,如图2所示,主机(Host)启动时首先进入引导bios阶段(启动基础输入输出系统),bios调用以太网控制器的PXE rom芯片,读取PXE rom芯片中的第一NVMe驱动程序。通过第一NVMe驱动程序来初始化DPU中的NVMe控制器,并驱动NVMe控制器工作,从而启动储存单元。读取储存单元的启动分区中储存的操作系统内核,并将操作系统加载到主机的内存中。随后卸载PXE rom芯片中的第一NVMe驱动程序,并退出引导bios阶段。

具体的,储存单元中设置有启动分区,启动分区中保存有操作系统内核,操作系统内核中设置有第二NVMe驱动程序。

进一步的,启动方法还包括:

卸载启动前执行环境中的第一NVMe驱动程序后,通过执行操作系统内核中的第二NVMe驱动程序驱动NVMe控制器。

示例性的,操作系统内核中设有第二NVMe驱动程序,在卸载启动前执行环境中的第一NVMe驱动程序后,由内存中的操作系统内核引导主机,并由操作系统内核中的第二NVMe驱动重新初始化NVMe控制器,重新驱动NVMe控制器操作储存单元。

在完成主机启动后,NVMe设备在主机中作为标准的NVMe设备工作在NVMe overPCIe协议下。同时NVMe设备为云盘服务器提供一个协议转换模块。一个或多个云盘服务器可通过网络协议和协议转换模块建立通信连接,例如,采用NVMF网络存储协议,通过以太网建立通信连接。

在NVMe设备和云盘服务器建立通信连接后,主机可通过PCIe总线接口直接访问控制NVMe设备,从而实现对云盘服务器的访问。本发明相比于现有的超融合方案,对主机提供的是NVMe设备,可以提供完整的NVMe设备带来的高吞吐、低延迟的体验,同时降低了客户使用的技术难度,统一提供NVMe设备给主机侧,可以让用户在不用更改当前环境配置的前提下,按照传统方案直接无感知部署。

本发明提供的NVMe设备提供通用的NVMe类型的PCIe接口,可以完美的实现NVMe协议栈,提供高速可靠的使用体验,网络存储协议采用NVMF协议,可以大幅降低网络延迟,且性能优于iSCSI。且完全不用占用主机的CPU性能来处理网络协议栈。本发明提供的NVMe启动盘解决了兼容性的问题,可以支持当前已有的支持NVMe协议栈的大多数设备。

同时,本发明提供的NVMe系统实现裸金属云盘启动,用户无需感知底层实现,达到与本地物理NVMe硬盘同样的体验,降低运维人员的负担。

基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

在本发明提及的所有文献都在本申请中引用作为参考,就如同每一篇文献被单独引用作为参考那样。此外应理解,在阅读了本发明的上述内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

相关技术
  • 一种基于嵌入式Linux系统的带安全认证的多启动系统及方法
  • 一种基于教育操作系统的程序快速启动的方法及电子设备
  • 一种基于教育系统的加速应用启动的方法及电子设备
  • 一种基于Hypervisor的QNX操作系统启动方法及装置
  • 一种基于可信UEFI固件引导虚拟机启动的方法及系统
  • 一种服务器NVME硬盘的启动方法、系统及相关设备
  • 一种基于DPU的水声信号处理系统和方法
技术分类

06120116302771