CN113407244A - 一种级联板、ssd远程共享访问的系统和方法 - Google Patents
一种级联板、ssd远程共享访问的系统和方法 Download PDFInfo
- Publication number
- CN113407244A CN113407244A CN202110542659.XA CN202110542659A CN113407244A CN 113407244 A CN113407244 A CN 113407244A CN 202110542659 A CN202110542659 A CN 202110542659A CN 113407244 A CN113407244 A CN 113407244A
- Authority
- CN
- China
- Prior art keywords
- access
- ssd
- rdma
- processing device
- access processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种级联板、SSD远程共享访问的系统和方法,属于通信领域。所述级联板一端连接RDMA网络,另一端连接SSD,所述级联板包括访问处理装置和与所述访问处理装置耦接的CPU,其中:所述CPU,用于完成对所述访问处理装置和所述SSD的初始化;所述访问处理装置,用于在接收到来自RDMA网络的访问命令时,实现对所述SSD的RDMA访问。本发明用于对SSD进行远程共享访问。
Description
技术领域
本发明涉及通信领域,特别涉及一种级联板、SSD远程共享访问的系统和方法。
背景技术
固态硬盘(Solid State Drive,SSD)是用固态电子存储芯片阵列而制成的硬盘。SSD因具有读写速度快、功耗低、轻便等优点,现在已受到越来越多人的欢迎。
当前,随着SSD容量和性能的不断提升,人们越来越关注把单个或一组SSD共享给通过网络相连的其他各种不同设备使用,以充分利用SSD所具有的多种特性。
相关技术在实现对SSD的远端共享访问的过程中,远端设备对SSD的访问会经过处理器(CPU)来处理。即处理器接收来自远程直接内层访问(Remote Direct Memory Access,RDMA)网络的SSD访问命令,并将该命令转发给对应的SSD。但是,这种访问方式会引入软件处理的时间,导致访问时延增加。
发明内容
本发明实施例提供一种级联板、SSD远程共享访问的系统和方法,以减小对SSD的远程共享访问的时延。
第一方面,提供一种级联板,所述级联板一端连接RDMA网络,另一端连接SSD,所述级联板包括访问处理装置和与所述访问处理装置耦接的CPU,其中:
所述CPU,用于完成对所述访问处理装置和所述SSD的初始化;
所述访问处理装置,用于在接收到来自RDMA网络的访问命令时,实现对所述SSD的RDMA访问。
其中,所述访问处理装置为用于处理远程共享访问的装置,而所述CPU不再处理远程共享访问,只是用于对所述访问处理装置和所述SSD的初始化。如此,可以避免因CPU实现对SSD的远程共享访问而引入的软件处理时间,因而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
结合第一方面,在第一种可能的实现方式中,所述访问处理装置包括:RDMA接口以及存储器,其中:
所述RDMA接口用于连接到RDMA网络;
所述存储器用于保存访问队列。
本发明实施例中,由访问处理装置完成对SSD的RDMA,所述访问处理装置中可设置存储器,以保存访问队列。访问处理装置中相应设有RDMA接口以便于与RDMA网络相连。
结合第一方面,在第二种可能的实现方式中,所述级联板还包括PCIe(PeripheralComponent Interface Express,周边组件接口高速)交换芯片,所述PCIe交换芯片分别与所述CPU和所述访问处理装置相连,并连接所述SSD。
在本发明实施例中,在不存在PCIe交换芯片时,CPU会与SSD直接连接,采用这种连接方式,CPU所连接的SSD的数目是受限的,不会很多。这样,在存在众多SSD时,CPU直接SSD的方式则无法满足需求。本发明实施例通过引入PCIe交换芯片,一方面可以使级联板通过PCIe交换芯片103连接更多地SSD,另一方面可以更好地起到连接访问处理装置102和CPU101的作用,在访问处理装置102和CPU 101之间充当转接器,并实现数据的高效转发传输。
结合第一方面的第二种实现方式,在第三种可能的实现方式中,所述访问处理装置包括:PCIe接口、RDMA接口以及存储器;
所述PCIe接口用于连接到所述PCIe交换芯片;
所述RDMA接口用于连接到RDMA网络;
所述存储器用于保存访问队列。
在级联板中存在PCIe交换芯片的情况下,适应性地,访问处理装置中除了可设置RDMA接口和存储器外,还可设有PCIe接口,以与PCIe交换芯片连接。
结合第一方面的上面任一种实现方式,在第四种可能的实现方式中,所述访问处理装置为现场可编程门阵列(Field Programmable Gate Array,FPGA)或特定用途集成电路(Application Specific Integrated Circuit,ASIC)。FPGA和ASIC因其较快的处理速度,特别适合于作为访问处理装置。
结合第一方面的第四种实现方式,在第五种可能的实现方式中,所述CPU、所述访问处理装置和所述PCIe交换芯片集成在一起。在本发明实施例中,CPU、访问处理装置和PCIe交互芯片可集成在一起,例如集成在一个芯片上。如此,可以节省级联板的空间。
第二方面,提供一种SSD远程共享访问的系统,所述系统包括至少一个SSD、至少一个控制器以及上面第一方面所述的任一种级联板;其中:
所述控制器通过RDMA网络与所述级联板相连,并通过所述RDMA网络向所述访问处理装置发送访问命令。
所述控制器可以存储控制器。
本发明实施例提供的SSD远程共享访问的系统,由CPU来完成对访问处理装置和SSD的初始化,并由访问处理装置来完成对SSD的RDMA,由此能够将初始化过程和访问过程分成两个相互独立的过程,通过引入访问处理装置(例如FPGA或ASIC)这一硬件来完成对SSD的RDMA访问,可以避免因CPU实现对SSD的RDMA访问而引入的软件处理时间,进而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
结合第二方面,在一种可能的实现方式中,所述系统还包括RDMA交换机,所述RDMA交换机用于连接所述控制器和所述级联板。
在级联板的数目较多时,本发明实施例提供的SSD共享访问的系统中还可包括多个RDMA交换机,通过所述RDMA交换机来实现对多个级联板的连接。当然,在本发明的范围内,在级联板数目较少时,也可以只用一个RDMA交换机来连接。
第三方面,提供一种SSD远程共享访问的方法,所述方法包括:
CPU对访问处理装置和SSD进行初始化;
访问处理装置在接收到来自RDMA网络的访问命令时,实现对所述SSD的RDMA访问。
本发明实施例中的硬盘访问的方法,由CPU来完成对访问处理装置和SSD的初始化,并由访问处理装置来完成对SSD的RDMA,由此能够将初始化过程和访问过程分成两个相互独立的过程,通过引入访问处理装置(例如FPGA或ASIC)这一硬件来完成对SSD的RDMA访问,可以避免因CPU实现对SSD的RDMA访问而引入的软件处理时间,进而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
结合第三方面,在第一种可能的实现方式中,所述CPU对访问处理装置进行初始化包括:
所述CPU根据访问队列的配置信息,在所述访问处理装置上分配用于存储所述访问队列的存储空间,并初始化所述访问队列;
所述CPU将中断接收端指定为所述访问处理装置。
在本发明实施例中,由CPU来完成对访问处理装置的初始化,在初始化过程中,会将中断接收端指定为访问处理装置,这样一来,后续SSD在执行完远程共享访问命令后会向访问处理装置而非CPU反馈中断。访问处理装置根据SSD反馈的终端即可获知SSD已执行完命令。
结合第三方面或第三方面的第一种实现方式,在第二种可能的实现方式中,所述访问处理装置在接收到访问命令时,实现对所述SSD的RDMA访问包括:
所述访问处理装置在接收到访问命令时,提示所述访问命令对应的SSD进行访问作业;
所述访问处理装置在接收到来自所述SSD的中断后,通过RDMA网络返回数据或状态信息。
在CPU完成对访问处理装置的初始化之后,后续访问处理装置在接收到对SSD的访问命令时,即可按照新的作业流程来处理。
结合第三方面的任一种实现方式,在第三种可能的实现方式中,所述访问处理装置为FPGA或ASIC。FPGA和ASIC因其较快的处理速度,特别适合于作为访问处理装置。
可选地,所述CPU和所述访问处理装置之间存在PCIe交互芯片,所述CPU和所述访问处理装置之间的交互可通过PCIe交互芯片来传递。
在本发明实施例中,CPU、访问处理装置和PCIe交互芯片可集成在一起,例如集成在一个芯片上。如此,可以节省级联板的空间。
本发明实施例中的级联板、SSD远程共享访问的系统和方法,由CPU来完成对访问处理装置和SSD的初始化,并由访问处理装置来完成对SSD的RDMA,由此能够将初始化过程和访问过程分成两个相互独立的过程,通过引入访问处理装置(例如FPGA或ASIC)这一硬件来完成对SSD的RDMA访问,可以避免因CPU实现对SSD的RDMA访问而引入的软件处理时间,进而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实现对SSD远程共享访问的系统的基本框架图;
图2是本发明实施例提供的另一种实现对SSD远程共享访问的系统的基本框架图;
图3是本发明实施例提供的访问处理装置的内部结构图;
图4是本发明实施例提供的另一种实现对SSD远程共享访问的系统的基本框架图;
图5是本发明实施例提供的硬盘访问的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种实现对SSD远程共享访问的系统的基本框架图。
参照图1,本发明实施例提供的对SSD远程共享访问的系统可包括级联板10、与级联板相连的硬盘104、以及通过网络110与级联板相连的控制器106。其中,控制器106可以为一个单独设立的装置,也可以为在网络上连接的网络设备中的控制器。所述控制器106用于接收RDMA访问请求,并控制级联板10的操作;所述RDMA访问请求可以来自于网络上的任一网络设备。与级联板相连的硬盘104可以为诸如PCIe(Peripheral Component InterfaceExpress,周边组件接口高速)SSD的固态硬盘,所述PCIe SSD可以为NVMe SSD和非NVMeSSD,其中NVMe(NVM express,NVM高速)为因特尔(Intel)公司定义的一种SSD访问协议。当所述PCIe SSD为非NVMe的SSD时,所述非NVMe SSD的访问协议是开放的。网络110可以为RDMA网络。在本发明实施例中,存储控制器106可以与级联板10处于同一局域网内,当然存储控制器106也可以和级联板10处于不同的局域网内。
所述级联板10可包括访问处理装置102和与所述访问处理装置102耦接的处理器(CPU)101。所述级联板中的访问处理装置102可连接网络110,所述处理器101可连接硬盘104。所述访问处理装置102可以为FPGA或ASIC等。其中:
所述CPU 101,用于在上电时完成对所述访问处理装置和所述SSD的初始化。
所述访问处理装置102,用于存在接收到来自RDMA网络110的访问命令时,实现对所述SSD104的RDMA访问。
其中,可由所述存储控制器106通过所述网络110向所述访问处理装置102发送访问命令。
本发明实施例中的级联板,由CPU来完成对访问处理装置和SSD的初始化,并由访问处理装置来完成对SSD的RDMA,由此能够将初始化过程和访问过程分成两个相互独立的过程,通过引入访问处理装置(例如FPGA或ASIC)这一硬件来完成对SSD的RDMA访问,可以避免因CPU实现对SSD的RDMA访问而引入的软件处理时间,进而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
图2是本发明实施例提供的另一种实现对SSD远程共享访问的系统的基本框架图。在下文描述中,以图2所示系统中的访问处理装置102为FPGA或ASIC,硬盘104为NVMe SSD,网络110为RDMA网络为例进行说明。
在图1所示实施例的基础上,图2所示系统中的级联板10中引入了PCIe交换芯片103。即,所述级联板10除了包括CPU 101和FPGA或ASIC 102外,还可包括PCIe交换芯片103。所述PCIe交换芯片103分别与所述CPU 101和所述访问处理装置102相连,并连接所述SSD104。
在图2所示系统中还可包括RDMA网络连接装置105,所述RDMA网络连接装置位于RDMA网络110中,充当RDMA网络的接口,以连接所述存储控制器106和所述FPGA或ASIC 102。
在本发明实施例中,所述RDMA网络连接装置105可以为FPGA或ASIC,也可以为普通的支持RDMA网络的网络芯片。
NVMe SSD 104为标准的PCIe接口的SSD。NVMe SSD 104和FPGA/ASIC102通过PCIe交换芯片103连接到处理器101,处理器101作为NVMe SSD104和FPGA/ASIC102的主机(host),完成NVMe SSD104和FPGA/ASIC102的初始化配置和管理,但处理器101不参与具体的硬盘访问业务。
在本实施例中,在级联板10中引入PCIe交换芯片103,这样一来,一方面可以使级联板通过PCIe交换芯片103连接更多地SSD(因为图1所示方式CPU连接的SSD数目往往受限),另一方面可以更好地起到连接访问处理装置102和CPU 101的作用,在访问处理装置102和CPU 101之间充当转接器,并实现数据的高效转发传输。
在本发明实施例中,FPGA/ASIC 102可以是定制的网络芯片,其特性在于该网络芯片内部集成了一定的存储空间(例如,随机存取存储器(Random Access Memory,RAM))并允许创建和管理NVMe访问队列。
图3是本发明实施例提供的访问处理装置的内部结构图。参见图3,图3所示访问处理装置为FPGA或ASIC。FPGA或ASIC 102可包括:PCIe接口102-1、RDMA接102-2口以及存储器102-3。其中:
所述PCIe接口102-1用于连接到所述PCIe交换芯片103;
所述RDMA接口102-2用于连接到外接网络110,例如RDMA网络;
所述存储器102-3用于保存访问队列。
其中,存储器102-3可以是随机存取存储器(Random Access Memory,RAM),允许CPU 101在此存储空间创建NVMe访问队列,同时在存储控制器106对完成队列(completionqueue,CQ)/提交队列(submission queue,SQ)进行操作后,触发对应的NVMe SSD的门铃控制器(doorbell)。
在此需要说明的是,在图1所示情形下,即不存在PCIe交换芯片103时,访问处理装置102可只包括:RDMA接口102-2和存储器102-3,而不包括PCIe接口102-1。
本实施例提供的对SSD远程共享访问的系统能够适用于级联板连接多个SSD的情形,能够减小对SSD的远程共享访问的时延,使得存储控制器可以实现对多个SSD的高效访问。
图4是本发明实施例提供的另一种实现对SSD远程共享访问的系统的基本框架图。
参见图4,本实施例中的对SSD远程共享访问的系统中包含多个存储控制器106,它们通过多个例如两个RDMA交换机107连接到一台或多台NVMe SSD盘框100上,所示盘框100为一个双控盘框,包含两个盘框管理单元10,所述盘框管理单元10可以为级联板。每个盘框管理单元10包含管理处理器(CPU)101、PCIe交换芯片103以及FPGA/ASIC 102,两个盘框管理单元109连接到一定数量的双端口标准NVMe SSD 104上。
需要指出的是,图4所示的系统仅为示例。图4中所示的存储控制器的数目、交换机的数目、盘框管理单元10的数目、NVMe SSD 104的数目都是非限制性的,在本发明的范围内,各个装置可以采用任何其他数目来实施本发明。例如,在本发明实施例中,盘框100也可以是单控设备,即只包含一个盘框管理单元(即级联板)10;又例如,NVMe SSD可以是单端口标准NVMe SSD。
在上面各个对SSD远程共享访问的系统的实施例中,均可以由CPU来完成对所述访问处理装置和所述SSD的初始化,而由访问处理装置在接收到来自RDMA网络的访问命令时,实现对所述SSD的RDMA访问,如此,能够以极少的时延实现对NVMe SSD的远程直接访问。
本发明实施例还提供一种硬盘访问的方法。下面结合图5对本发明实施例提供的硬盘访问的方法进行阐述。参照图5,本发明实施例提供的硬盘访问的方法可包括:
51、CPU对访问处理装置和SSD进行初始化;
52、访问处理装置在接收到来自RDMA网络的访问命令时,实现对所述SSD的RDMA访问。
其中,所述访问处理装置可以为FPGA或ASIC。
可选地,在一个实施例中,步骤51中所述CPU对访问处理装置进行初始化可包括:
所述CPU根据访问队列的配置信息,在所述访问处理装置上分配用于存储所述访问队列的存储空间,并初始化所述访问队列;
所述CPU将中断接收端指定为所述访问处理装置。
可选地,在另一个实施例中,步骤52中所述访问处理装置在接收到访问命令时,实现对所述SSD的RDMA访问可包括:
所述访问处理装置在接收到访问命令时,提示所述访问命令对应的SSD进行访问作业;
所述访问处理装置在接收到来自所述SSD的中断后,通过RDMA网络返回数据或状态信息。
本发明实施例中的硬盘访问的方法,由CPU来完成对访问处理装置和SSD的初始化,并由访问处理装置来完成对SSD的RDMA,由此能够将初始化过程和访问过程分成两个相互独立的过程,通过引入访问处理装置(例如FPGA或ASIC)这一硬件来完成对SSD的RDMA访问,可以避免因CPU实现对SSD的RDMA访问而引入的软件处理时间,进而能够减小对SSD的远程共享访问的时延,实现对SSD远端共享访问的同时不增加访问时间。
为了便于进一步理解本发明的具体实现过程。下面对初始化和访问过程进行进一步阐释。
具体地,在级联板10上电后,由CPU 101进行初始化的过程可以如下:
1)级联板10上电启动;
2)CPU 101进行PCIe外设初始化,例如完成对一些相关寄存器的初始化;
3)CPU 101初始化访问处理装置102,并建立访问处理装置102与存储控制器106的通信;
4)CPU 101执行对SSD 104的设备初始化;
5)CPU 101根据预先制定的策略从本地获取队列配置信息或从存储控制器106获得队列配置信息,在访问处理装置102上分配存储空间(例如RAM)并初始化NVMe访问队列,并根据NVMe协议要求获取各个访问队列对应的门铃地址和中断号,并将各个访问队列对应的门铃地址和中断号,按照NVMe的规则写入访问处理装置102以及SSD 104上对应的地址空间。
6)CPU 101配置PCIe交换芯片103,将中断接收端指定为访问处理装置102;
7)所述CPU 101向存储控制器106发送访问队列的头指针和尾指针。
其中,所示CPU 101在5)中初始化NVMe访问队列时,可获得访问队列的头指针和尾指针。进而,在7)中可向存储控制器106发送所述访问队列的头指针和尾指针。
需要说明的是,以上初始化过程是以级联板10包括PCIe交换芯片为例来进行说明的。当级联板10不包括PCIe交换芯片时的初始化过程与上面类似,只需移除与PCIe交换芯片103有关的初始化内容即可,在此不再赘述。
以图4所示系统为例,按照上面所述初始化的流程进行初始化以后,盘框108可通过网络将已经初始化完成的NVMe队列及其头尾指针发给所连接的所有存储控制器106。多个存储控制器106之间可通过协商获得盘框108中部分或全部的资源,避免访问冲突导致数据一致性的风险。
这样,在CPU 101经过上述过程完成对初始化之后,后续盘框108中的级联板10在接收到来自网络110(例如RDMA网络)的硬盘访问请求时,会将该硬盘访问请求交由访问处理装置102来处理,由访问处理装置102来实现对所述SSD 104的RDMA访问。
下面以典型的读写访问流程为例来进行说明。对SSD进行远程读写访问操作的流程可如下:
存储控制器106选择所需的访问队列,找到访问队列的头地址和尾地址;
存储控制器106向访问处理装置102中存储器102-3上的SQ队列中写入读写命令;
访问处理装置102根据访问队列与门铃号的对应关系敲对应硬盘门铃;
所述硬盘(例如,PCIe SSD)104获取存储器102-3上存储的SQ队列中的命令并执行;
所述硬盘104在执行完命令后,将执行的结果写入CQ队列并向访问控制装置102发起中断;
访问控制装置102接收到所述中断后,向存储控制器106返回数据或状态信息;
存储控制器106接收该数据或状态信息后,维护所述访问队列的尾指针,并更新所述访问队列的头指针;
读写操作结束。
由上可知,本发明实施例提供的SSD远程共享访问的方法、级联板和SSD远程共享访问的系统,可由访问处理装置102(例如,FPGA/ASIC)实现对NVMe SSD104的直接访问,将标准PCIe接口的NVMe SSD 104通过RDMA网络共享给多个存储控制器106,实现对NVMe SSD104远端共享访问的同时不增加读写访问时间。
需要说明的是:上述实施例提供的SSD远程共享访问的装置(例如级联板10)与SSD远程共享访问的方法实施例属于同一构思,因而,它们之间相应的部分可以相互参照,对于重复的内容,这里不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种级联板,其特征在于,所述级联板分别与固态硬盘SSD和控制器相连,所述级联板包括访问处理装置和与所述访问处理装置连接的处理器,其中,
所述处理器,用于完成所述访问处理装置和所述SSD的初始化;
所述访问处理装置,用于接收所述控制器的访问命令;以及,根据所述访问命令实现对所述SSD的访问。
2.根据权利要求1所述的级联板,其特征在于,所述级联板和所述控制器通过直接内存访问RDMA实现通信。
3.根据权利要求1或2所述的级联板,其特征在于,
所述访问处理装置,还用于通知所述SSD执行所述访问命令的操作;以及,在接收到来自所述SSD的中断后,通过RDMA网络返回数据或状态信息。
4.根据权利要求1至3中任一所述的级联板,其特征在于,所述级联板包括周边组件接口高速PCIe交换芯片,所述PCIe交换芯片分别与所述CPU和所述访问处理装置相连,并连接所述SSD。
5.根据权利要求4所述的级联板,其特征在于,所述访问处理装置包括:PCIe接口、RDMA接口以及存储器;
所述PCIe接口用于连接到所述PCIe交换芯片;
所述RDMA接口用于连接到RDMA网络;
所述存储器用于保存访问队列。
6.根据权利要求1至3中任一所述的级联板,其特征在于,所述访问处理装置包括:RDMA接口以及存储器,其中:
所述RDMA接口用于连接到RDMA网络;
所述存储器用于保存访问队列。
7.根据权利要求1至6中任一所述的级联板,其特征在于,所述访问处理装置为现场可编程门阵列FPGA或特定用途集成电路ASIC。
8.一种固态硬盘SSD远程访问的系统,其特征在于,所述系统包括至少一个SSD、至少一个控制器以及根据权利要求1-7中任一所述的级联板,其中:
第一控制器通过RDMA网络与所述级联板相连,并通过所述RDMA网络向所述访问处理装置发送访问命令,所述第一控制器为所述至少一个控制器中任意一个。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括RDMA交换机,所述RDMA交换机用于连接所述至少一个控制器和所述级联板。
10.根据权利要求8所述的系统,其特征在于,所述至少一个SSD设置在至少一个SSD盘框中,所述至少一个SSD盘框的每个SSD盘框中包括一个所述级联板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110542659.XA CN113407244A (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610115698.0A CN107145459B (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
CN202110542659.XA CN113407244A (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610115698.0A Division CN107145459B (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113407244A true CN113407244A (zh) | 2021-09-17 |
Family
ID=59743473
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110542659.XA Pending CN113407244A (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
CN201610115698.0A Active CN107145459B (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610115698.0A Active CN107145459B (zh) | 2016-03-01 | 2016-03-01 | 一种级联板、ssd远程共享访问的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10901638B2 (zh) |
CN (2) | CN113407244A (zh) |
WO (1) | WO2017148292A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341131B (zh) | 2017-06-29 | 2021-02-09 | 上海兆芯集成电路有限公司 | 具有近端数据处理引擎的芯片组 |
CN107688375A (zh) * | 2017-09-12 | 2018-02-13 | 郑州云海信息技术有限公司 | 一种支持双控制器和无源设计的NVMe硬盘背板及其设计方法 |
CN109271096B (zh) * | 2017-12-28 | 2021-03-23 | 新华三技术有限公司 | Nvme存储扩展系统 |
CN108509155B (zh) * | 2018-03-31 | 2021-07-13 | 深圳忆联信息系统有限公司 | 一种远程访问磁盘的方法和装置 |
CN108768669A (zh) * | 2018-08-14 | 2018-11-06 | 杭州创谐信息技术股份有限公司 | 基于asic可信远程内存交换卡及其数据交换方法 |
CN108664264A (zh) * | 2018-08-16 | 2018-10-16 | 成都爱斯顿科技有限公司 | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 |
CN110895517B (zh) * | 2018-09-13 | 2023-10-31 | 阿里巴巴集团控股有限公司 | 基于fpga的传输数据的方法、设备及系统 |
CN112732166A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 访问固态硬盘的方法及装置 |
CN113903369A (zh) * | 2020-06-22 | 2022-01-07 | 华为技术有限公司 | 一种存储设备 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
CN101212490A (zh) * | 2006-12-30 | 2008-07-02 | 财团法人工业技术研究院 | 储存装置控制器 |
CN102955753B (zh) * | 2011-08-30 | 2016-08-03 | 安凯(广州)微电子技术有限公司 | 一种迟滞型数据流控制电路 |
KR101515359B1 (ko) | 2011-09-30 | 2015-04-29 | 인텔 코포레이션 | 시스템 코-프로세서에 대한 직접 i/o 액세스 |
JP2014063497A (ja) | 2012-09-21 | 2014-04-10 | Plx Technology Inc | 論理装置の機能を有するpciエクスプレススイッチ |
KR101988287B1 (ko) | 2012-11-26 | 2019-06-12 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법 |
US9256384B2 (en) * | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
US9483431B2 (en) * | 2013-04-17 | 2016-11-01 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) |
US9986028B2 (en) | 2013-07-08 | 2018-05-29 | Intel Corporation | Techniques to replicate data between storage servers |
US8949486B1 (en) * | 2013-07-17 | 2015-02-03 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
US10353631B2 (en) * | 2013-07-23 | 2019-07-16 | Intel Corporation | Techniques for moving data between a network input/output device and a storage device |
US9513869B2 (en) * | 2013-09-18 | 2016-12-06 | HGST Netherlands B.V. | Doorbell-less endpoint-initiated protocol for storage devices |
US9778859B2 (en) * | 2013-09-18 | 2017-10-03 | Western Digital Technologies, Inc. | Doorless protocol having multiple queue read requests in flight |
US9887008B2 (en) * | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9548890B2 (en) * | 2014-03-17 | 2017-01-17 | Cisco Technology, Inc. | Flexible remote direct memory access resource configuration in a network environment |
US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
US9304690B2 (en) * | 2014-05-07 | 2016-04-05 | HGST Netherlands B.V. | System and method for peer-to-peer PCIe storage transfers |
CN104202194B (zh) * | 2014-09-10 | 2018-05-29 | 华为技术有限公司 | PCIe拓扑的配置方法和装置 |
US9934177B2 (en) * | 2014-11-04 | 2018-04-03 | Cavium, Inc. | Methods and systems for accessing storage using a network interface card |
US10838852B2 (en) * | 2015-04-17 | 2020-11-17 | Samsung Electronics Co., Ltd. | System and method to extend NVME queues to user space |
KR102430187B1 (ko) * | 2015-07-08 | 2022-08-05 | 삼성전자주식회사 | RDMA NVMe 디바이스의 구현 방법 |
KR102403489B1 (ko) * | 2015-07-10 | 2022-05-27 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
CN105224502A (zh) * | 2015-09-28 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于gpu的深度学习方法及系统 |
CN106648440B (zh) * | 2015-10-28 | 2020-07-24 | 华为技术有限公司 | 操作存储设备的控制方法和存储设备 |
CN106775434B (zh) * | 2015-11-19 | 2019-11-29 | 华为技术有限公司 | 一种NVMe网络化存储的实现方法、终端、服务器及系统 |
US10423568B2 (en) * | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
CN111858256B (zh) | 2015-12-25 | 2024-05-28 | 北京忆芯科技有限公司 | 命令队列监控电路、数据交换方法及其设备 |
CN107209644B (zh) * | 2015-12-28 | 2020-04-28 | 华为技术有限公司 | 一种数据处理方法以及NVMe存储器 |
US10379745B2 (en) * | 2016-04-22 | 2019-08-13 | Samsung Electronics Co., Ltd. | Simultaneous kernel mode and user mode access to a device using the NVMe interface |
EP3279810B1 (en) * | 2016-06-14 | 2019-09-04 | Huawei Technologies Co., Ltd. | Data access method and related apparatus and system |
US10235064B1 (en) * | 2016-12-27 | 2019-03-19 | EMC IP Holding Company LLC | Optimized data replication using special NVME protocol and running in a friendly zone of storage array |
US10776012B2 (en) * | 2017-05-19 | 2020-09-15 | Exten Technologies, Inc. | Lock-free datapath design for efficient parallel processing storage array implementation |
US10572161B2 (en) * | 2017-11-15 | 2020-02-25 | Samsung Electronics Co., Ltd. | Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices |
US10572185B2 (en) * | 2018-06-01 | 2020-02-25 | Western Digital Technologies, Inc. | Non-volatile storage system with command replay |
-
2016
- 2016-03-01 CN CN202110542659.XA patent/CN113407244A/zh active Pending
- 2016-03-01 CN CN201610115698.0A patent/CN107145459B/zh active Active
-
2017
- 2017-02-20 WO PCT/CN2017/074148 patent/WO2017148292A1/zh active Application Filing
-
2018
- 2018-08-31 US US16/118,850 patent/US10901638B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180373454A1 (en) | 2018-12-27 |
CN107145459B (zh) | 2021-05-18 |
US10901638B2 (en) | 2021-01-26 |
WO2017148292A1 (zh) | 2017-09-08 |
CN107145459A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145459B (zh) | 一种级联板、ssd远程共享访问的系统和方法 | |
US10095645B2 (en) | Presenting multiple endpoints from an enhanced PCI express endpoint device | |
US9998558B2 (en) | Method to implement RDMA NVME device | |
EP3457288B1 (en) | Computer system and storage access device | |
US11704059B2 (en) | Remote direct attached multiple storage function storage device | |
WO2017185996A1 (zh) | 在非易失性存储系统中建立连接的方法和装置 | |
TW201933080A (zh) | 資料儲存裝置及橋接裝置 | |
US9860189B2 (en) | Systems and methods to enable network communications for management controllers | |
EP3660686B1 (en) | Method and device for transmitting data processing request | |
EP3563534B1 (en) | Transferring packets between virtual machines via a direct memory access device | |
US20220222016A1 (en) | Method for accessing solid state disk and storage device | |
US11243714B2 (en) | Efficient data movement method for in storage computation | |
US11449456B2 (en) | System and method for scheduling sharable PCIe endpoint devices | |
WO2022017475A1 (zh) | 一种数据访问方法及相关设备 | |
US11011876B2 (en) | System and method for remote management of network interface peripherals | |
US20160134567A1 (en) | Universal network interface controller | |
US10564898B2 (en) | System and method for storage device management | |
US9331935B2 (en) | Network device selection | |
CN117033275B (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN116909484A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
US10075398B2 (en) | Systems and methods for enabling a host system to use a network interface of a management controller | |
US11294832B2 (en) | Systems and methods for queuing device management configuration requests | |
WO2019238132A1 (zh) | 一种数据管理方法及装置 | |
US11507441B2 (en) | Asymmetric fulfillment of remote procedure calls by multi-core systems | |
US20190155774A1 (en) | Data transmission apparatus and data transmission method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |