CN115344197A - 一种数据访问方法、网卡及服务器 - Google Patents

一种数据访问方法、网卡及服务器 Download PDF

Info

Publication number
CN115344197A
CN115344197A CN202210781204.8A CN202210781204A CN115344197A CN 115344197 A CN115344197 A CN 115344197A CN 202210781204 A CN202210781204 A CN 202210781204A CN 115344197 A CN115344197 A CN 115344197A
Authority
CN
China
Prior art keywords
server
hard disks
local hard
network card
virtual storage
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
Application number
CN202210781204.8A
Other languages
English (en)
Inventor
冯宇波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210781204.8A priority Critical patent/CN115344197A/zh
Publication of CN115344197A publication Critical patent/CN115344197A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据访问方法、网卡及服务器,用以解决服务器集群中,提供共享磁盘的节点提供磁盘给其他节点使用时,建立连接时间过长,访问节点通过EC/RAID访问其他节点提供的共享磁盘时,访问节点的处理器负担太大的问题。在本申请中,网卡从服务器中获取待处理的访问请求,访问请求用于访问服务器生成的虚拟磁盘,虚拟磁盘对应该服务器中的多个本地磁盘;网卡根据多个本地磁盘的配置信息及访问请求访问多个本地磁盘。由于一个虚拟磁盘对应多个本地磁盘,可以有效简化本地磁盘与虚拟磁盘的拓扑结构,当对该虚拟磁盘进行访问时,服务器中的网卡执行该访问请求,可以同时对该虚拟磁盘对应的多个本地磁盘进行访问,有效提高数据读写效率。

Description

一种数据访问方法、网卡及服务器
技术领域
本申请涉及存储技术领域,尤其涉及一种数据访问方法、网卡及服务器。
背景技术
服务器集群通过基于网络的非易失性存储标准(non-volatile memory expressover Fabrics,NOF)实现各个节点(服务器集群中一个节点为一个服务器)的本地磁盘共享。各节点间可以通过交换机通信,其中任一节点可以对其他节点的本地磁盘进行读写,例如,节点1可以通过交换机访问节点2的本地磁盘。为了能够访问节点2的本地磁盘,节点1需要与节点2的多个本地磁盘分别建立连接,并在节点1中设置与节点2的本地磁盘一一对应的虚拟磁盘,节点1通过访问虚拟磁盘,可以访问节点2中与所述虚拟磁盘对应的本地磁盘。
当服务器集群的规模较大,存在较多节点时,由于每个节点都要与其他节点的本地磁盘建立连接关系,使得连接建立的时间比较长,且网络连接的拓扑结构比较复杂;另外,当访问节点通过独立磁盘冗余阵列(redundant arrays of independent drives,RAID)/纠错码(erasure code,EC)访问其他节点的本地磁盘时,会增加访问节点的处理器的负担。
发明内容
本申请提供一种数据访问方法、网卡及服务器,用以解决服务器集群中,提供共享磁盘的节点提供磁盘给其他节点使用时,建立连接的时间过长,而访问节点通过EC/RAID访问其他节点提供的共享磁盘时,访问节点的处理器负担太大的问题。
第一方面,本申请提供了一种数据访问方法,应用于服务器的网卡,方法包括:
网卡从服务器中获取待处理的访问请求,访问请求用于访问服务器生成的虚拟磁盘,虚拟磁盘对应该服务器中的多个本地磁盘;之后,网卡根据多个本地磁盘的配置信息及访问请求访问多个本地磁盘。
通过上述方法,由于服务器中一个虚拟磁盘对应服务器的多个本地磁盘,可以有效简化本地磁盘与虚拟磁盘的拓扑结构,当需要对该虚拟磁盘进行访问,服务器中的网卡执行该访问请求时,可以同时对该虚拟磁盘对应的多个本地磁盘进行访问,可以保证数据读写效率,另外,由于对多个本地磁盘的访问操作由不再需要服务器中的处理器参与,而是由网卡实现,可以有效减少服务器的功耗。
在一种可能的设计中,多个本地磁盘构成RAID或EC组,网卡在访问多个本地磁盘时,可以依据多个本地磁盘构成RAID或EC组的配置信息,确定多个本地磁盘的读写策略。对多个本地磁盘实现数据读写,能够改善数据访问效率。
在一种可能的设计中,网卡可以在执行访问请求之后,还可以从服务器获取多个本地磁盘的配置信息,示例性的,网卡可以从服务器的内存中读取多个本地磁盘的配置信息,进而,后续可以多个本地磁盘实现数据读写,能够提高数据访问效率。
在一种可能的设计中,访问请求的类型不同,网卡执行访问请求的方式不同。示例性的,当访问请求为数据读取请求,数据读取请求用于请求从虚拟磁盘读取数据。网卡在访问多个本地磁盘执行访问请求时,可以根据配置信息从多个本地磁盘中读取数据,并将所读取的数据发送数据读取请求的发送端,也即与该服务器通过网卡相连的其他服务器。
通过上述方法,网卡可以同时对多个本地磁盘进行数据读取,执行访问请求,可以有效保证数据读写效率。
在一种可能的设计中,访问请求的类型不同,网卡执行访问请求的方式不同。示例性的,访问请求为数据写入请求,数据写入请求用于写入数据至虚拟磁盘。网卡在访问多个本地磁盘执行访问请求时,根据配置信息将数据写入请求中的数据写入多个本地磁盘中。
通过上述方法,网卡可以同时对多个本地磁盘进行数据写入,可以实现高效的数据读写。
第二方面,本申请提供了一种数据访问方法,应用于第一服务器,第一服务器与第二服务器通过网卡连接,方法包括:第一服务器生成虚拟磁盘,虚拟磁盘对应第一服务器中多个本地磁盘,并将虚拟磁盘设置为能够被第二服务器访问;第一服务器可以接收来自第二服务器的连接请求,将虚拟磁盘信息传输至第二服务器,使第二服务器根据虚拟磁盘信息访问虚拟磁盘。
通过上述方法,第一服务器可以通过发送虚拟磁盘信息的方式,告知第二服务器,以使得第二服务器能够通过访问虚拟磁盘,实现对第一服务器的多个本地磁盘的访问,这样,使得虚拟磁盘可以与多个本地磁盘关联,不再是一对一的对应关系,能够简化虚拟磁盘与本地磁盘的拓扑结构。
在一种可能的设计中,第一服务器可以将多个本地磁盘配置为RAID或EC组。保证后续可以同时对多个本地磁盘进行数据读写,提高数据读写效率。
在一种可能的设计中,第一服务器与第二服务器之间通过NOF协议进行通信,来实现本地磁盘的共享。第一服务器在生成虚拟磁盘时,可以为多个本地磁盘生成NVMe子系统;还可以生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将虚拟磁盘标识写入虚拟NVMe子系统;并建立虚拟NVMe子系统与多个NVMe子系统的关联关系。
通过上述方法,第一服务器可以通过建立虚拟NVMe子系统与多个本地磁盘的NVMe子系统的关联关系,使得虚拟磁盘可以与多个本地磁盘存在关联,不再是一对一的对应关系,能够简化虚拟磁盘与本地磁盘的拓扑结构。
第三方面,本申请提供了一种网卡,网卡位于服务器中,网卡具有实现第一方面及第一方面任意一种可能的设计中网卡所实现的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,装置的结构中包括传输单元以及处理单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请提供了一种第一服务器,第一服务器与第二服务器通过网卡连接。第一服务器具有实现第二方面及第二方面任意一种可能的设计中第一服务器所实现的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,装置的结构中包括创建单元以及传输单元,这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第五方面,本申请还提供了一种网卡,有益效果可以参见第一方面及第一方面任意一种可能的设计的描述此处不再赘述。网卡的结构中包括处理器和存储器,处理器被配置为支持网卡执行上述第一方面及第一方面任意一种可能的设计的方法中相应的功能。存储器与处理器耦合,其保存网卡必要的程序指令和数据。网卡的结构中还包括通信接口,用于与其他设备进行通信。
第六方面,本申请还提供了一种第一服务器,有益效果可以参见第一方面及第一方面任意一种可能的设计的描述此处不再赘述。第一服务器的结构中包括处理器和存储器,处理器被配置为支持第一服务器执行上述第二方面及第二方面任意一种可能的设计的方法中相应的功能。存储器与处理器耦合,其保存第一服务器必要的程序指令和数据。第一服务器的结构中还包括通信接口,用于与其他设备进行通信。
第七方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第八方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第九方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述各方面的方法。
附图说明
图1为一种服务器集群的架构示意图;
图2为本申请提供的一种系统架构示意图;
图3为本申请提供的一种虚拟NVMe子系统与NVMe子系统之间的关联关系示意图;
图4为本申请提供的一种多个本地磁盘映射为一个虚拟磁盘的方法示意图;
图5为本申请提供的一种数据读写的方法示意图;
图6为本申请提供的一种服务器的结构示意图;
图7为本申请提供的一种网卡的结构示意图。
具体实施方式
如图1所示,为一种服务器集群的结构示意图,该服务器集群包括多个节点,图1中以包括两个节点(节点100、以及节点200)为例说明,节点之间通过交换机10连接。
服务器集群中的每个节点的结构基本相同,下面以节点100为例进行说明。节点100包括处理器110、网卡120、本地磁盘130、虚拟磁盘140、内存150。可选的,还可以包括通信接口,用于与其他设备通信;每个虚拟磁盘140与节点200中的一个本地磁盘230关联,关于虚拟磁盘140与节点200中的本地磁盘230的关联过程将在下文做详细描述。在本申请实施例中的本地磁盘是固态硬盘(solid-state drive,SSD),且与处理器110通过非易失性高速传输总线(non-volatile memory express,NVMe)协议通信。
内存150用于存储计算机程序指令,处理器110可调用内存150中存储的计算机程序指令,实现节点100的主要的计算功能。
下面以图1所示的服务器集群为例,介绍节点100与节点200中的本地磁盘建立连接,以及节点100在本地建立与节点200中的本地磁盘230关联的虚拟磁盘140的过程。
首先根据NVMe协议,节点200为节点200中的每个本地磁盘230建立NVMe子系统(NVMe subsystem),并另外生成一个具有发现服务(discovery service)的NVMe子系统。节点200将需要提供给节点100访问的本地磁盘230的NVMe子系统的信息记录在所述具有发现服务的NVMe子系统中。当节点100需要连接所述节点200的本地磁盘230时,首先发送一个发现命令(discovery command)至所述节点200。所述节点200接收到所述发现命令后,将所述具有发现服务的NVMe子系统中记录的NVMe子系统的信息发送至所述节点100。所述节点100即可根据所述NVMe子系统的信息逐一与所述具有发现服务的NVMe子系统的信息所指示的NVMe子系统建立连接。
在与其中一个NVMe子系统建立连接时,所述节点100发送连接命令(connectioncammand)至所述节点200。所述连接命令中携带主机的NVMe限定名称(NVMe qualifiedname,host NQN)、NVMe子系统的NQN、主机标识,及提交队列(submission quene)和完成队列(completion quene)的相关参数。所述主机NQN及主机标识用于标识所述节点100。所述NVMe子系统的NQN用于标识本次建立连接的NVMe子系统。节点200在接收到所述连接命令后,即建立所述节点100与所述NVMe子系统通信时所使用的提交队列及完成队列,在建立好提交队列及完成队列后,即返回连接成功的相关信息给节点100。节点100建立虚拟磁盘140,并创建该虚拟磁盘140的NVMe子系统,将节点200中本地磁盘230的NVMe子系统的信息记录在虚拟磁盘140的NVMe子系统中;节点100通过访问所述虚拟磁盘140即可访问到所述节点200的一个本地磁盘230。
在节点200包括多个本地磁盘230时,所述节点100与每个本地磁盘230都要按照如上所述的方法建立连接,这样,建立连接需要耗费比较长的时间,而且节点100需要维护的拓扑也比较复杂。另外,为了数据的可靠性及读写效率,节点100会对多个虚拟磁盘构成的虚拟磁盘组RAID或EC,这样会增加节点100的负载。其中,RAID是指由多个独立的磁盘组成的磁盘阵列,允许同时对该磁盘阵列的多个本地磁盘进行读写;RAID配置为该磁盘阵列配置数据读写策略,以提高数据可靠性和输入/输出(input/output,I/O)性能。EC配置是RAID配置扩展,一定程度上,EC配置可认为是RAID配置的通式,也就是说任何RAID配置都可以转换为特定的EC配置。
为了解决上述问题,在本发明实施例中,可以将节点中的多个本地磁盘映射为一个虚拟磁盘,如图2所示,以服务器集群中包括两个节点(节点300以及节点400)为例,对本申请实施例所适用的服务器集群的架构进行说明,节点之间通过交换机10连接。节点300和节点400的结构与如图1中的节点100和节点200相似,区别在于,节点300中的一个虚拟磁盘340可以与节点400中的多个本地磁盘430关联,节点400中的一个虚拟磁盘440可以与节点300中的多个本地磁盘330关联。
内存350用于存储计算机程序指令,处理器310调用内存350中存储的计算机程序指令,执行一些操作,处理器310可以调用内存350存储的计算机程序指令执行本申请实施例提供的本地磁盘与虚拟磁盘的关联方法。如可以执行在本申请实施例中如图4所示的实施例中节点300执行的操作。同样的,内存450用于存储计算机程序指令,处理器410调用内存450中存储的计算机程序指令,执行一些操作,如可以执行本申请实施例中如图4所示的实施例中节点400执行的操作。
本申请实施例中网卡320可以具有远程直接数据存取(remote direct memoryaccess,RDMA)引擎的以太网卡(rdma network interface controller,RNIC),下面以网卡420为例,对节点中网卡的一种可能的结构进行说明,如图2所示,该网卡420包括处理器4201和存储器4202。处理器4201可以通过调用存储器4202中存储的计算机执行指令,使得网卡可以执行本申请实施例提供的数据访问方法(如图5所示)。可选的,网卡420中还可以包括通信接口,当处理器4201在与其他设备进行通信时,可以通过通信接口进行数据传输。
处理器4201用于调用存储器4202存储的计算机程序指令,实现对本地磁盘430的访问,如执行本申请实施例提供的数据访问方法,具体可参见如图5所示的实施例。处理器4201可以是中央处埋器(central processing unit,CPU)等。
存储器4202用于存储计算机程序指令,存储器4202可以是易失性存储器,例如随机存取存储器;存储器4202也可以是非易失性存储器,例如只读存储器,闪存;还可以是其他可存储计算机程序指令的介质。
在本申请另一实施例中,所述网卡420包括可编程的逻辑芯片,程序指令烧录在所述可编程的逻辑芯片中,所述可编程的逻辑芯片执行烧录在其中的程序即可执行本申请实施例提供的数据访问方法。
请同时参阅图3及图4,图3为将节点400中的多个本地磁盘430映射为节点300中的一个虚拟磁盘340的示意图,图4为节点400中的多个本地磁盘430映射为节点300中的一个虚拟磁盘340的方法的流程图。
步骤401:节点400对每个本地磁盘430建立NVMe子系统,如图3中的NVMe子系统01、VVMe子系统02、及NVMe子系统03。
步骤402:节点400建立虚拟NVMe子系统001。
在建立虚拟NVMe子系统时,节点400还会生成一个虚拟磁盘标识,例如dev/NVMe001,并将该虚拟磁盘标识写在所述虚拟NVMe子系统中。
步骤403:节点400选择多个可以提供给节点300访问的本地磁盘430的NVMe子系统,并将多个本地磁盘430的NVMe子系统与虚拟网络子系统001关联,并记录关联关系。
节点400在关联虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统时,将多个本地磁盘430的NVMe子系统的信息添加到虚拟NVMe子系统001的设备列表中。
本地磁盘430的NVMe子系统的信息可以是NVMe的NQN,也可以是其他用于指示NVMe子系统的信息,本申请实施例并不限定。
节点400选择多个本地磁盘430的NVMe子系统的方式本申请实施例并不限定,节点400可以随机选择,也可以根据预设规则选择。
示例性的,节点400中可以预先配置一个或多个本地磁盘组,每个本地磁盘组中包括多个本地磁盘430,节点400可以从一个多个本地磁盘组中选择一个本地磁盘组;之后,将该本地磁盘组中的多个本地磁盘430的NVMe子系统与虚拟NVMe子系统001关联。
节点400还可以对与所述虚拟NVMe子系统001关联的多个本地磁盘430进行RAID/EC配置,分配各个本地磁盘430在RAID/EC中充当的角色,如本地磁盘430用于实现原始数据的存储,或用于实现校验数据的存储。
节点400在建立了虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统的关联关系之后,可以将该关联关系及多个本地磁盘430的RAID/EC配置存储在本地,如存储在内存450中,网卡420可以从内存450中读取该关联关系,以及多个本地磁盘430的RAID/EC配置,根据所述关联关系及多个本地磁盘430的RAID/EC配置对多个本地磁盘430进行数据读写,网卡420执行的数据访问方法将在下文如图5所示的实施例做详细描述。
步骤404:节点300向节点400发送发现命令。
步骤405:节点400在接收到节点300发送的发现命令后,将虚拟NVMe子系统001的标识发送给节点300。这样,节点400针对虚拟NVMe子系统创建的虚拟磁盘允许被节点300访问。
节点300可以先向节点400发送发现命令,该发现命令用于查询节点400中允许节点300访问的本地磁盘430的NVMe子系统。在本发明实施例中,由于节点400构建了虚拟NVMe子系统001,则在接收到所述发现命令时,将所述虚拟NVMe子系统001的相关信息发送给所述节点300,所述虚拟NVMe子系统001的相关信息包括所述虚拟NVMe子系统001的标识及对应的虚拟磁盘的标识。
步骤406:节点300接收到节点400反馈的虚拟NVMe子系统001的标识后,可以向节点400发送连接命令,请求与该虚拟NVMe子系统建立连接。所述连接命令中携带主机的NVMeNQN,虚拟NVMe子系统001的标识、主机标识,及提交队列和完成队列的相关参数。所述主机NQN及主机标识用于标识所述节点300。所述虚拟NVMe子系统001的标识用于标识本次建立连接的虚拟NVMe子系统001,例如,所述虚拟NVMe子系统001的标识可以为虚拟NVMe子系统001的NVMe NQN。
步骤407:节点400在接收到所述连接命令后,建立所述节点300与所述虚拟NVMe子系统001通信时所使用的提交队列及完成队列,在建立好提交队列及完成队列后,即返回连接成功的相关信息给节点300。节点300建立虚拟磁盘340,并创建该虚拟磁盘340的NVMe子系统,将节点400中虚拟NVMe子系统的信息记录在虚拟磁盘340的NVMe子系统中;建立了虚拟磁盘340与虚拟NVMe子系统的关联关系,进而,节点400的多个本地磁盘430映射为节点300的一个虚拟磁盘340。节点300可以通过访问所述虚拟磁盘340即可访问到所述节点400的多个本地磁盘430。
如图5所示,为本申请实施例提供的通过访问虚拟磁盘340访问节点400中的多个本地磁盘430的方法的流程图。该方法包括:
步骤501:节点300产生访问所述虚拟磁盘340的访问请求,并发送所述访问请求至节点400。
在所述节点300中由于记录所述虚拟磁盘340与所述虚拟NVMe子系统的关联关系,则所述节点300会将访问所述虚拟磁盘140的访问请求转换为访问所述虚拟NVMe子系统的请求。
步骤502:网卡420从节点400获取访问请求。
具体地,在虚拟磁盘340与虚拟NVMe子系统建立连接后,即在节点300中生成发送队列及完成队列,在节点400中生成接收队列及提交队列。其中发送队列和接收队列一一对应,提交队列与完成队列一一对应。节点300产生访问请求后,即把访问请求放在节点300的发送队列中,并等待被发送至节点400。在所述访问请求被发送至节点400后,节点400将所述访问请求放在所述接收队列中,网卡420从所述接收队列中获取所述访问请求。
步骤503:网卡420根据虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统的关联关系及多个本地磁盘430的RAID/EC配置访问所述多个本地磁盘430,以执行所述访问请求。
网卡420除获取所述访问请求外,还可以获取NVMe子系统001对应的多个本地磁盘430及多个本地磁盘430的RAID/EC配置,根据本地磁盘430的RAID/EC配置访问多个本地磁盘430。
本发明实施例中,网卡420中具有远程直接数据存取(Remote Direct MemoryAccess,RDMA)的功能,网卡420可以从内存450中读取所述访问请求,并执行步骤503。当所述访问请求为数据写入请求时,在步骤503中,所述网卡400获取所述数据写入写请求,并获取所述数据写入中的数据,将写请求中的数据写入节点400的本地磁盘430中。网卡400根据所述NVMe子系统001对应的多个本地磁盘430及多个本地磁盘430的RAID/EC配置,将写请求中的数据写入所述NVMe子系统001对应多个本地磁盘430中。
当所述访问请求为数据读取请求时,在步骤503中,所述节点400在接收到数据读取请求时,所述网卡420从内存450读取该数据读取请求,根据所述NVMe子系统001对应的多个本地磁盘430及多个本地磁盘430的RAID/EC配置,从所述NVMe子系统001对应的多个本地磁盘430中读取数据。
由于步骤503中可以由网卡420执行访问请求,能够有效降低节点400的负载。
基于与方法实施例同一发明构思,本申请实施例还提供了一种第一服务器,第一服务器(如本申请实施例中的节点400)与第二服务器(如本申请实施例中的节点300)通过网卡连接,该第一服务器可用于执行如图4所示的方法实施例中节点400执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图6所示,该服务器包括创建单元601以及传输单元602:
创建单元601,用于生成虚拟磁盘,虚拟磁盘对应第一服务器中多个本地磁盘,并将虚拟磁盘设置为能够被第二服务器访问;如创建单元601可以执行如图4所示的实施例中步骤401~403中节点400执行的方法,具体可参见前述内容,此处在赘述。
传输单元602,用于接收第二服务器的连接请求,将虚拟磁盘信息传输至第二服务器,使第二服务器根据虚拟磁盘信息访问虚拟磁盘,如传输单元602可以执行如图4所示的实施例中步骤405~407中节点400执行发送以及接收操作,如接收发现命令、连接命令、以及发送虚拟NVMe子系统001的标识的操作,具体可参见前述内容,此处在赘述。
可选的,创建单元601可以配置多个本地磁盘为RAID组或者EC组。
可选的,第一服务器与第二服务器之间通过NOF协议进行通信,创建单元在创建虚拟磁盘时,可以先为多个本地磁盘生成NVMe子系统;生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将虚拟磁盘标识写入虚拟NVMe子系统;将虚拟NVMe子系统与多个NVMe子系统关联。
基于与方法实施例同一发明构思,本申请实施例还提供了一种网卡,该网卡用于执行上述方法实施例中网卡420执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图7所示,该网卡包括传输单元701以及处理单元702:
传输单元701,用于从服务器中获取待处理的访问请求,访问请求用于访问虚拟磁盘,虚拟磁盘对应服务器中的多个本地磁盘;传输单元701可以执行如图5所示的实施例中步骤502中的获取访问请求的操作,具体可参见前述内容,此处在赘述。
处理单元702,用于根据多个本地磁盘的配置信息及访问请求访问多个本地磁盘。处理单元702可以执行如图5所示的实施例中步骤503中的执行访问请求的操作,具体可参见前述内容,此处在赘述。
可选的,多个本地磁盘的配置信息为多个本地磁盘构成RAID或纠错码EC组的配置信息。
可选的,处理单元702还可以获取多个本地磁盘的配置信息。
可选的,访问请求的类型不同,处理单元执行的访问操作不同,下面分两种情况分别进行介绍:
第一、访问请求为数据读取请求,数据读取请求用于请求从虚拟磁盘读取数据;
处理单元在访问多个本地磁盘时,可以根据配置信息从多个本地磁盘中读取数据,并将所读取的数据发送至与服务器通过网卡相连的另一个服务器,数据读取请求由另一个服务器发送至服务器。
第二、访问请求为数据写入请求,数据写入请求用于写入数据至虚拟磁盘;
处理单元在访问多个本地磁盘时,根据配置信息将数据写入请求中的数据写入多个本地磁盘中。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
基于与方法实施例同一发明构思,本申请实施例还提供了一种服务器,用于执行上述方法实施例中节点400执行的方法,服务器的结构可以参见图2中节点400的结构。
图6中的传输单元以及创建单元的功能/实现过程均可以通过图2中的处理器410调用存储器450中存储的指令来实现。或者,图6中的创建单元的功能/实现过程可以通过图2中的处理器410调用存储器450中存储的计算机程序指令来实现,图6中的传输单元的功能/实现过程可以服务器中的通信接口来实现。
基于与方法实施例同一发明构思,本申请实施例还提供了一种网卡,用于执行上述方法实施例中网卡420执行的方法,网卡的结构可以参见图2中网卡420的结构。
图7中的传输单元以及处理单元的功能/实现过程均可以通过图2中的处理器4201调用存储器4202中存储的指令来实现。或者,图7中的处理单元的功能/实现过程可以通过图2中的处理器4201调用存储器4202中存储的计算机程序指令来实现,图6中的传输单元的功能/实现过程可以通过网卡420中的通信接口来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式。熟悉本技术领域的技术人员根据本发明提供的具体实施方式,可想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (20)

1.一种数据访问方法,其特征在于,应用于服务器的网卡,所述方法包括:
获取来自其他服务器的待处理的访问请求,所述访问请求用于访问所述其他服务器上的虚拟存储空间,所述虚拟存储空间对应所述服务器中的多个本地硬盘;
确定所述虚拟存储空间所对应的多个本地硬盘;及
根据所述访问请求访问所述多个本地硬盘。
2.如权利要求1所述的方法,其特征在于,所述服务器与所述其他服务器通过基于网络的非易失性存储标准NOF协议进行通信。
3.如权利要求1或2所述的方法,其特征在于,所述多个本地硬盘为NVMe硬盘。
4.如权利要求1至3任意一项所述的方法,其特征在于,所述根据所述访问请求访问所述多个本地硬盘包括:
根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,所述配置信息为所述多个本地硬盘构成独立冗余磁盘阵列RAID或纠错码EC组的配置信息。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
从所述服务器中获取所述多个本地硬盘的配置信息。
6.如权利要求4或5所述的方法,其特征在于,该方法还包括:
所述访问请求为数据读取请求,所述数据读取请求用于请求从所述虚拟存储空间读取数据;
所述根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,包括:
根据所述配置信息从所述多个本地硬盘中读取数据,并将所读取的数据发送至与所述服务器通过网卡相连的另一个服务器,所述数据读取请求由所述另一个服务器发送至所述服务器。
7.如权利要求4或5所述的方法,其特征在于,该方法还包括:
所述访问请求为数据写入请求,所述数据写入请求用于写入数据至所述虚拟存储空间;
所述根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,包括:
根据所述配置信息将所述数据写入请求中的数据写入所述多个本地硬盘中。
8.一种数据访问方法,应用于服务器,所述服务器包括处理器及网卡,所述网卡连接所述服务器至远端服务器,其特征在于,所述方法包括:
所述处理器生成虚拟存储空间,所述虚拟存储空间对应所述第一服务器中多个本地硬盘,并将所述虚拟存储空间设置为能够被所述远端服务器访问;
所述处理器接收所述远端服务器的连接请求,将所述虚拟存储空间信息传输至所述远端服务器,使所述远端服务器根据所述虚拟存储空间信息访问所述虚拟存储空间;
所述网卡获取来自所述远端服务器的待处理的访问请求,所述访问请求用于访问所述远端服务器上的虚拟存储空间,所述虚拟存储空间对应所述服务器中的多个本地硬盘;
所述网卡确定所述虚拟存储空间所对应的多个本地硬盘,并根据所述访问请求访问所述多个本地硬盘。
9.如权利要求8所述的方法,其特征在于,所述处理器配置所述多个本地硬盘为RAID组或者EC组。
10.如权利要求8或9所述的方法,其特征在于,所述服务器与所述远端服务器之间通过基于网络的非易失性存储标准NOF协议进行通信。
11.如权利要求9所述的方法,其特征在于,所述生成虚拟存储空间,包括:
为所述多个本地硬盘生成非易失性存储标准NVMe子系统;
生成一个虚拟NVMe子系统,并生成一个虚拟存储空间标识,将所述虚拟存储空间标识写入所述虚拟NVMe子系统;
将所述虚拟NVMe子系统与所述多个NVMe子系统关联。
12.一种网卡,其特征在于,该网卡位于服务器中,所述网卡包括传输单元以及处理单元:
所述传输单元,用于获取来自其他服务器的待处理的访问请求,所述访问请求用于访问所述其他服务器上的虚拟存储空间,所述虚拟存储空间对应所述服务器中的多个本地硬盘。
用于从所述服务器中获取来自其他服务器的待处理的访问请求,所述访问请求用于访问所述其他服务器上配置的虚拟存储空间,所述虚拟存储空间对应所述服务器中的多个本地硬盘;
所述处理单元,用于确定所述虚拟存储空间所对应的多个本地硬盘;及根据所述访问请求访问所述多个本地硬盘。
13.如权利要求12所述的网卡,其特征在于,所述服务器与所述其他服务器通过基于网络的非易失性存储标准协议NOF进行通信。
14.如权利要求12或13所述的网卡,其特征在于,所述多个本地硬盘为NVMe硬盘。
15.如权利要求12至14任意一项所述的网卡,其特征在于,所述处理单元在根据所述访问请求访问所述多个本地硬盘包括时,用于根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,所述配置信息为所述多个本地硬盘构成独立冗余磁盘阵列RAID或纠错码EC组的配置信息。
16.如权利要求12至15任意一项所述的网卡,其特征在于,所述处理单元,还用于:
从所述服务器中获取所述多个本地硬盘的配置信息。
17.如权利要求15所述的网卡,其特征在于,所述访问请求为数据读取请求,所述数据读取请求用于请求从所述虚拟存储空间读取数据;
所述处理单元在根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,具体用于:
根据所述配置信息从所述多个本地硬盘中读取数据,并将所读取的数据发送至与所述服务器通过网卡相连的另一个服务器,所述数据读取请求由所述另一个服务器发送至所述服务器。
18.如权利要求15所述的网卡,其特征在于,所述访问请求为数据写入请求,所述数据写入请求用于写入数据至所述虚拟存储空间;
所述处理单元在根据所述多个本地硬盘的配置信息及所述访问请求访问所述多个本地硬盘,具体用于:
根据所述配置信息将所述数据写入请求中的数据写入所述多个本地硬盘中。
19.一种服务器,包括处理器和网卡,其特征在于,
所述处理器用于:
生成虚拟存储空间,并将所述虚拟存储空间设置为能够被远端服务器访问,所述虚拟存储空间对应所述服务器中的多个本地硬盘;
接收所述远端服务器的连接请求,将所述虚拟存储空间的信息传输至所述远端服务器。
所述网卡用于:
连接所述服务器与所述远端服务器;获取来自所述远端服务器的待处理的访问请求,所述访问请求用于访问所述远端服务器上的所述虚拟存储空间;
确定所述虚拟存储空间所对应的多个本地硬盘;及
根据所述访问请求访问所述多个本地硬盘。
20.如权利要求14所述的第一服务器,其特征在于,所述处理单元还用于配置所述多个本地硬盘为RAID组或者EC组。
CN202210781204.8A 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器 Pending CN115344197A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210781204.8A CN115344197A (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210781204.8A CN115344197A (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器
CN201910551502.6A CN112130748B (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910551502.6A Division CN112130748B (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器

Publications (1)

Publication Number Publication Date
CN115344197A true CN115344197A (zh) 2022-11-15

Family

ID=73849879

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910551502.6A Active CN112130748B (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器
CN202210781204.8A Pending CN115344197A (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910551502.6A Active CN112130748B (zh) 2019-06-24 2019-06-24 一种数据访问方法、网卡及服务器

Country Status (2)

Country Link
CN (2) CN112130748B (zh)
WO (1) WO2020259418A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116540952A (zh) * 2023-07-06 2023-08-04 苏州浪潮智能科技有限公司 磁盘访问方法及装置、存储介质、电子设备
CN117591450A (zh) * 2024-01-17 2024-02-23 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507464B (zh) * 2021-07-06 2023-10-13 深圳市吉芯微半导体有限公司 基于虚拟设备的数据访问方法、装置、设备及存储介质
CN114064135B (zh) * 2021-11-12 2024-01-30 抖音视界有限公司 服务器系统启动的方法、装置、电子设备及存储介质
CN114285676B (zh) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 智能网卡、智能网卡的网络存储方法和介质
CN115550377B (zh) * 2022-11-25 2023-03-07 苏州浪潮智能科技有限公司 一种nvmf存储集群节点互联方法、装置、设备及介质
CN115657975B (zh) * 2022-12-29 2023-03-31 浪潮电子信息产业股份有限公司 一种磁盘数据读写控制方法、相关组件及前端共享卡
CN117251118B (zh) * 2023-11-16 2024-02-13 上海创景信息科技有限公司 支持虚拟NVMe仿真与集成方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090657A (ja) * 2006-10-03 2008-04-17 Hitachi Ltd ストレージシステム及び制御方法
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
CN102035862B (zh) * 2009-09-30 2013-11-06 国际商业机器公司 Svc集群中配置节点的故障移交方法和系统
US9830234B2 (en) * 2013-08-26 2017-11-28 Vmware, Inc. Distributed transaction log
EP4083777A1 (en) * 2014-05-22 2022-11-02 Huawei Technologies Co., Ltd. Resource control node and method
CN105827669B (zh) * 2015-01-04 2019-06-11 中国移动通信集团江苏有限公司 一种终端虚拟存储的方法、设备和系统
CN105068836A (zh) * 2015-08-06 2015-11-18 北京百度网讯科技有限公司 一种基于sas网络的远程可共享的启动系统
CN107203480B (zh) * 2016-03-17 2020-11-17 华为技术有限公司 一种数据预取方法以及装置
US10673811B2 (en) * 2016-07-25 2020-06-02 ColorTokens, Inc. Updating address mapping for local and network resources
US10803086B2 (en) * 2017-07-26 2020-10-13 Vmware, Inc. Reducing data amplification when resynchronizing components of an object replicated across different sites
CN108829340B (zh) * 2018-05-03 2021-08-17 北京金山安全管理系统技术有限公司 存储处理方法、装置、存储介质及处理器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116540952A (zh) * 2023-07-06 2023-08-04 苏州浪潮智能科技有限公司 磁盘访问方法及装置、存储介质、电子设备
CN116540952B (zh) * 2023-07-06 2024-01-09 苏州浪潮智能科技有限公司 磁盘访问方法及装置、存储介质、电子设备
CN117591450A (zh) * 2024-01-17 2024-02-23 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质
CN117591450B (zh) * 2024-01-17 2024-03-22 苏州元脑智能科技有限公司 一种数据处理系统、方法、设备及介质

Also Published As

Publication number Publication date
WO2020259418A1 (zh) 2020-12-30
CN112130748B (zh) 2022-07-19
CN112130748A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN112130748B (zh) 一种数据访问方法、网卡及服务器
US9678918B2 (en) Data processing system and data processing method
WO2018137529A1 (zh) 一种数据传输的方法、装置、设备和系统
JP2019153304A (ja) Ssdに対するfpgaベースのアクセラレーションモジュール及びシステムとその動作方法
CN108701004A (zh) 一种数据处理的系统、方法及对应装置
US11544001B2 (en) Method and apparatus for transmitting data processing request
CN109445905B (zh) 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
KR20200078382A (ko) 개시자 모드를 갖는 솔리드-스테이트 드라이브
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
US20220222016A1 (en) Method for accessing solid state disk and storage device
CN104750428A (zh) 块储存存取和网关模块、储存系统和方法与内容递送装置
WO2016101856A1 (zh) 数据访问方法及装置
US20220107752A1 (en) Data access method and apparatus
WO2020134530A1 (zh) 路径聚合方法、访问方法及通信设备、存储介质
CN111064786A (zh) 账户标识管理方法及设备
US7574529B2 (en) Addressing logical subsystems in a data storage system
US9529549B2 (en) Data processing method for storing data and restoration information and data processing system
CN110166558B (zh) 一种多控存储集群的通信方法、装置及设备
US11747999B1 (en) Automated non-disruptive migration of hosts to an authenticated storage array connection
CN110221995B (zh) 一种集成智能网卡的数据管理方法及系统
CN117827115A (zh) 基于nas的存储系统及管理方法、装置、设备、介质
CN114063878A (zh) 一种配置修改方法、装置及相关设备
CN115729440A (zh) 处理i/o请求的方法、装置、系统、设备及存储介质
CN110493339A (zh) 一种分布式远程存储管理方法、系统和装置

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