CN112130748B - Data access method, network card and server - Google Patents

Data access method, network card and server Download PDF

Info

Publication number
CN112130748B
CN112130748B CN201910551502.6A CN201910551502A CN112130748B CN 112130748 B CN112130748 B CN 112130748B CN 201910551502 A CN201910551502 A CN 201910551502A CN 112130748 B CN112130748 B CN 112130748B
Authority
CN
China
Prior art keywords
server
local disks
data
virtual disk
virtual
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.)
Active
Application number
CN201910551502.6A
Other languages
Chinese (zh)
Other versions
CN112130748A (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/en
Priority to CN201910551502.6A priority patent/CN112130748B/en
Priority to PCT/CN2020/097238 priority patent/WO2020259418A1/en
Publication of CN112130748A publication Critical patent/CN112130748A/en
Application granted granted Critical
Publication of CN112130748B publication Critical patent/CN112130748B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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]

Abstract

A data access method, a network card and a server are used for solving the problems that when a node providing a shared disk in a server cluster provides the disk for other nodes for use, the connection establishment time is too long, and when an access node accesses the shared disk provided by other nodes through an EC/RAID, the processor burden of the access node is too large. In the application, a network card acquires an access request to be processed from a server, wherein the access request is used for accessing a virtual disk generated by the server, and the virtual disk corresponds to a plurality of local disks in the server; and the network card accesses the local disks according to the configuration information and the access request of the local disks. Because one virtual disk corresponds to a plurality of local disks, the topological structures of the local disks and the virtual disks can be effectively simplified, when the virtual disk is accessed, the network card in the server executes the access request, the plurality of local disks corresponding to the virtual disk can be accessed at the same time, and the data reading and writing efficiency is effectively improved.

Description

Data access method, network card and server
Technical Field
The present application relates to the field of storage technologies, and in particular, to a data access method, a network card, and a server.
Background
The server cluster realizes local disk sharing of each node (one node in the server cluster is a server) through non-volatile storage (NOF) standards based on a network. The nodes can communicate with each other through a switch, wherein any node can read and write the local disk of other nodes, for example, the node 1 can access the local disk of the node 2 through the switch. In order to access the local disk of the node 2, the node 1 needs to establish connections with a plurality of local disks of the node 2, and virtual disks corresponding to the local disks of the node 2 one by one are set in the node 1, and the node 1 can access the local disk corresponding to the virtual disk in the node 2 by accessing the virtual disk.
When the scale of the server cluster is large and more nodes exist, the connection establishment time is long and the topological structure of network connection is complex because each node needs to establish a connection relation with the local disks of other nodes; in addition, when an access node accesses a local disk of another node through a Redundant Array of Independent Disks (RAID)/error correction code (EC), a load on a processor of the access node increases.
Disclosure of Invention
The application provides a data access method, a network card and a server, which are used for solving the problems that in a server cluster, when a node providing a shared disk provides the disk for other nodes for use, the connection establishment time is too long, and when an access node accesses the shared disk provided by other nodes through an EC/RAID, the processor burden of the access node is too large.
In a first aspect, the present application provides a data access method, which is applied to a network card of a server, and the method includes:
the network card acquires an access request to be processed from the server, wherein the access request is used for accessing a virtual disk generated by the server, and the virtual disk corresponds to a plurality of local disks in the server; and then, the network card accesses the local disks according to the configuration information and the access request of the local disks.
By the method, because one virtual disk in the server corresponds to a plurality of local disks of the server, the topological structures of the local disks and the virtual disks can be effectively simplified, when the virtual disk needs to be accessed, and the network card in the server executes the access request, the local disks corresponding to the virtual disks can be accessed at the same time, so that the data reading and writing efficiency can be ensured.
In a possible design, a plurality of local disks form a RAID or EC group, and when the network card accesses the plurality of local disks, the read-write policy of the plurality of local disks may be determined according to configuration information of the plurality of local disks forming the RAID or EC group. Data reading and writing are achieved for a plurality of local disks, and data access efficiency can be improved.
In a possible design, the network card may further obtain configuration information of the plurality of local disks from the server after executing the access request, and for example, the network card may read the configuration information of the plurality of local disks from a memory of the server, and then may subsequently implement data reading and writing by the plurality of local disks, which may improve data access efficiency.
In one possible design, the type of access request is different and the manner in which the network card performs the access request is different. Illustratively, when the access request is a data read request, the data read request is for requesting to read data from the virtual disk. When the network card accesses the local disks to execute the access request, the network card can read data from the local disks according to the configuration information, and send the read data to a sending end of the data reading request, namely, other servers connected with the server through the network card.
By the method, the network card can simultaneously read data from a plurality of local disks, execute the access request and effectively ensure the data reading and writing efficiency.
In one possible design, the type of access request is different and the manner in which the network card performs the access request is different. Illustratively, the access request is a data write request, and the data write request is used for writing data to the virtual disk. And when the network card accesses the local disks to execute the access request, writing the data in the data writing request into the local disks according to the configuration information.
By the method, the network card can write data into a plurality of local disks at the same time, and high-efficiency data reading and writing can be realized.
In a second aspect, the present application provides a data access method, which is applied to a first server, where the first server is connected to a second server through a network card, and the method includes: the method comprises the steps that a first server generates a virtual disk, the virtual disk corresponds to a plurality of local disks in the first server, and the virtual disk is set to be capable of being accessed by a second server; the first server may receive a connection request from the second server, and transmit the virtual disk information to the second server, so that the second server accesses the virtual disk according to the virtual disk information.
By the method, the first server can inform the second server of the virtual disk information in a mode of sending the virtual disk information, so that the second server can access the virtual disks to access the local disks of the first server, the virtual disks can be associated with the local disks and are not in one-to-one correspondence, and the topological structures of the virtual disks and the local disks can be simplified.
In one possible design, the first server may configure the plurality of local disks as a RAID or EC group. The data reading and writing of a plurality of local disks can be simultaneously carried out subsequently, and the data reading and writing efficiency is improved.
In one possible design, the first server and the second server communicate through the NOF protocol to realize the sharing of the local disk. When the first server generates the virtual disk, the NVMe subsystem can be generated for a plurality of local disks; a virtual NVMe subsystem can be generated, a virtual disk identifier is generated, and the virtual disk identifier is written into the virtual NVMe subsystem; and establishing an incidence relation between the virtual NVMe subsystem and the NVMe subsystems.
By the method, the first server can enable the virtual disk to be associated with the plurality of local disks and not to be in one-to-one correspondence by establishing the association relationship between the virtual NVMe subsystem and the NVMe subsystems of the plurality of local disks, so that the topological structures of the virtual disk and the local disks can be simplified.
In a third aspect, the present application provides a network card, where the network card is located in a server, and the network card has a function implemented by the network card in any one of the first aspect and the possible design of the first aspect. The functions may be implemented by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the functions described above. In a possible design, the structure of the apparatus includes a transmission unit and a processing unit, and these units may perform corresponding functions in the method example of the first aspect, which is specifically referred to the detailed description in the method example, and are not described herein again.
In a fourth aspect, the present application provides a first server, where the first server is connected to a second server through a network card. The first server has the functionality of the first server in any of the possible designs of the second aspect and the second aspect. The functions may be implemented by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described functions. In a possible design, the structure of the apparatus includes a creating unit and a transmitting unit, and these units may perform corresponding functions in the method example of the second aspect, which is specifically referred to the detailed description in the method example and is not described herein again.
In a fifth aspect, the present application further provides a network card, and for beneficial effects, reference may be made to the description of the first aspect and any one of the possible designs of the first aspect, which is not described herein again. The network card structure includes a processor and a memory, and the processor is configured to support the network card to execute corresponding functions in any one of the possible design methods of the first aspect and the first aspect. The memory is coupled to the processor and holds the necessary program instructions and data for the network card. The structure of the network card also comprises a communication interface used for communicating with other devices.
In a sixth aspect, the present application further provides a first server, and for beneficial effects, reference may be made to the first aspect and descriptions of any one of possible designs of the first aspect, which are not described herein again. The first server is structurally provided with a processor and a memory, and the processor is configured to support the first server to execute corresponding functions in the method according to any one of the second aspect and the possible design of the second aspect. The memory is coupled to the processor and stores program instructions and data necessary for the first server. The first server further comprises a communication interface for communicating with other devices.
In a seventh aspect, the present application also provides a computer-readable storage medium having stored therein instructions, which, when executed on a computer, cause the computer to perform the method of the above-mentioned aspects.
In an eighth aspect, the present application also provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform the method of the above aspects.
In a ninth aspect, the present application further provides a computer chip, where the chip is connected to a memory, and the chip is used to read and execute a software program stored in the memory, and perform the methods in the above aspects.
Drawings
FIG. 1 is a schematic diagram of a server cluster architecture;
FIG. 2 is a diagram illustrating a system architecture provided herein;
fig. 3 is a schematic diagram of an association relationship between a virtual NVMe subsystem and an NVMe subsystem provided in the present application;
fig. 4 is a schematic diagram of a method for mapping multiple local disks into one virtual disk according to the present application;
FIG. 5 is a schematic diagram of a method for reading and writing data provided in the present application;
FIG. 6 is a schematic diagram of a server according to the present application;
fig. 7 is a schematic structural diagram of a network card provided in the present application.
Detailed Description
Fig. 1 is a schematic structural diagram of a server cluster, where the server cluster includes a plurality of nodes, and fig. 1 illustrates two nodes (node 100 and node 200) as an example, and the nodes are connected through a switch 10.
The structure of each node in the server cluster is basically the same, and the following description will take the node 100 as an example. The node 100 includes a processor 110, a network card 120, a local disk 130, a virtual disk 140, and a memory 150. Optionally, a communication interface may be further included for communicating with other devices; each virtual disk 140 is associated with a local disk 230 in the node 200, and the association of the virtual disk 140 with the local disk 230 in the node 200 is described in more detail below. The local disk in the embodiment of the present application is a solid-state drive (SSD), and communicates with the processor 110 through a non-volatile memory express (NVMe) protocol.
The memory 150 is used for storing computer program instructions, and the processor 110 can call the computer program instructions stored in the memory 150 to realize the main computing functions of the node 100.
Taking the server cluster shown in fig. 1 as an example, the following describes a process in which the node 100 establishes a connection with a local disk in the node 200, and the node 100 locally establishes a virtual disk 140 associated with a local disk 230 in the node 200.
First, according to the NVMe protocol, the node 200 establishes an NVMe subsystem (NVMe subsystem) for each local disk 230 in the node 200, and additionally generates an NVMe subsystem with a discovery service (discovery service). The node 200 records in the NVMe subsystem with discovery service the information of the NVMe subsystem that needs to be provided to the local disk 230 accessed by the node 100. When the node 100 needs to connect to the local disk 230 of the node 200, a discovery command (discovery command) is first sent to the node 200. After receiving the discovery command, the node 200 sends the information of the NVMe subsystem recorded in the NVMe subsystem with the discovery service to the node 100. The node 100 may establish a connection with the NVMe subsystems indicated by the information of the NVMe subsystems with the discovery service one by one according to the information of the NVMe subsystems.
When establishing a connection with one of the NVMe subsystems, the node 100 sends a connection command (connection command) to the node 200. The connection command carries an NVMe qualified name (host NQN) of the host, NQN of the NVMe subsystem, a host identifier, and related parameters of a submission queue and a completion queue. The host NQN and host identity are used to identify the node 100. NQN of the NVMe subsystem is used for identifying the NVMe subsystem establishing the connection at this time. After receiving the connection command, the node 200 establishes a submission queue and a completion queue used when the node 100 communicates with the NVMe subsystem, and after establishing the submission queue and the completion queue, returns the relevant information of successful connection to the node 100. The node 100 establishes the virtual disk 140, creates an NVMe subsystem of the virtual disk 140, and records information of the NVMe subsystem of the local disk 230 in the node 200 in the NVMe subsystem of the virtual disk 140; node 100 may access a local disk 230 of the node 200 by accessing the virtual disk 140.
When the node 200 includes a plurality of local disks 230, the node 100 and each local disk 230 are connected according to the method described above, which takes a relatively long time to establish the connection, and the topology that the node 100 needs to maintain is relatively complex. In addition, for the reliability and the read/write efficiency of data, the node 100 may include a virtual disk group RAID or EC formed by a plurality of virtual disks, which may increase the load on the node 100. The RAID refers to a disk array consisting of a plurality of independent disks, and allows a plurality of local disks of the disk array to be read and written simultaneously; RAID configuration configures data read and write strategies for the disk array to improve data reliability and input/output (I/O) performance. The EC configuration is an extension of the RAID configuration, and to some extent, the EC configuration can be considered a generic version of the RAID configuration, i.e., any RAID configuration can be converted to a specific EC configuration.
In order to solve the above problem, in the embodiment of the present invention, a plurality of local disks in a node may be mapped to be a virtual disk, as shown in fig. 2, taking two nodes (a node 300 and a node 400) included in a server cluster as an example, a framework of the server cluster applied to the embodiment of the present invention is described, and the nodes are connected through a switch 10. The structure of node 300 and node 400 is similar to node 100 and node 200 in fig. 1, except that one virtual disk 340 in node 300 may be associated with a plurality of local disks 430 in node 400 and one virtual disk 440 in node 400 may be associated with a plurality of local disks 330 in node 300.
The memory 350 is used for storing computer program instructions, the processor 310 calls the computer program instructions stored in the memory 350 to perform some operations, and the processor 310 may call the computer program instructions stored in the memory 350 to perform the method for associating the local disk with the virtual disk according to the embodiment of the present application. Such as may be performed by node 300 in the embodiment illustrated in fig. 4 in the present application. Similarly, the memory 450 is used for storing computer program instructions, and the processor 410 calls the computer program instructions stored in the memory 450 to perform some operations, such as the operations performed by the node 400 in the embodiment shown in fig. 4 in the embodiment of the present application.
In this embodiment, the network card 320 may have an ethernet network interface controller (RNIC) of a Remote Direct Memory Access (RDMA) engine, and a possible structure of the network card in a node is described below by taking the network card 420 as an example, as shown in fig. 2, where the network card 420 includes a processor 4201 and a memory 4202. Processor 4201 may invoke computer executable instructions stored in memory 4202 to enable the network card to perform the data access method provided by the embodiments of this application (as shown in fig. 5). Optionally, the network card 420 may further include a communication interface, and when the processor 4201 is communicating with another device, data transmission may be performed through the communication interface.
The processor 4201 is configured to call the computer program instructions stored in the memory 4202 to implement access to the local disk 430, for example, to execute the data access method provided by the embodiment of the present application, which may be specifically referred to as the embodiment shown in fig. 5. The processor 4201 may be a Central Processing Unit (CPU) or the like.
Memory 4202 is used to store computer program instructions, and memory 4202 may be a volatile memory, such as a random access memory; memory 4202 may also be non-volatile memory, such as read only memory, flash memory; but may be other media that can store computer program instructions.
In another embodiment of the present application, the network card 420 includes a programmable logic chip, and program instructions are burned in the programmable logic chip, and the programmable logic chip executes a program burned therein to execute the data access method provided in the embodiment of the present application.
Referring to fig. 3 and fig. 4, fig. 3 is a schematic diagram illustrating a plurality of local disks 430 in a node 400 mapped to a virtual disk 340 in a node 300, and fig. 4 is a flowchart illustrating a method for mapping a plurality of local disks 430 in a node 400 to a virtual disk 340 in a node 300.
Step 401: the node 400 establishes an NVMe subsystem, such as NVMe subsystem 01, VVMe subsystem 02, and NVMe subsystem 03 in fig. 3, for each local disk 430.
Step 402: node 400 establishes virtual NVMe subsystem 001.
When the virtual NVMe subsystem is established, the node 400 also generates a virtual disk identifier, for example, dev/NVMe001, and writes the virtual disk identifier in the virtual NVMe subsystem.
Step 403: the node 400 selects a plurality of NVMe subsystems of the local disk 430 that can be provided for the node 300 to access, associates the NVMe subsystems of the plurality of local disks 430 with the virtual network subsystem 001, and records the association relationship.
When associating the virtual NVMe subsystem 001 with the NVMe subsystems of the plurality of local disks 430, the node 400 adds the information of the NVMe subsystems of the plurality of local disks 430 to the device list of the virtual NVMe subsystem 001.
The information of the NVMe subsystem of the local disk 430 may be NQN of the NVMe, or may be other information for indicating the NVMe subsystem, and the embodiment of the present application is not limited.
The mode of selecting the NVMe subsystems of the plurality of local disks 430 by the node 400 is not limited in the embodiment of the present application, and the node 400 may be selected randomly or according to a preset rule.
For example, one or more local disk groups may be preconfigured in the node 400, each local disk group includes a plurality of local disks 430, and the node 400 may select one local disk group from the plurality of local disk groups; the NVMe subsystems of the plurality of local disks 430 in the local disk group are then associated with the virtual NVMe subsystem 001.
The node 400 may also perform RAID/EC configuration on a plurality of local disks 430 associated with the virtual NVMe subsystem 001, and allocate roles that each local disk 430 plays in RAID/EC, such as the local disks 430 are used for implementing storage of original data or for implementing storage of check data.
After the node 400 establishes the association relationship between the virtual NVMe subsystem 001 and the NVMe subsystems of the local disks 430, the association relationship and the RAID/EC configuration of the local disks 430 may be stored locally, for example, in the memory 450, the network card 420 may read the association relationship from the memory 450, and the RAID/EC configuration of the local disks 430, and perform data reading and writing on the local disks 430 according to the association relationship and the RAID/EC configuration of the local disks 430, where a data access method executed by the network card 420 will be described in detail below with reference to the embodiment shown in fig. 5.
Step 404: node 300 sends a discovery command to node 400.
Step 405: the node 400, upon receiving the discovery command sent by the node 300, sends the identification of the virtual NVMe subsystem 001 to the node 300. As such, the virtual disk created by the node 400 for the virtual NVMe subsystem is allowed to be accessed by the node 300.
The node 300 may first send a discovery command to the node 400, which is used to query the NVMe subsystem of the local disk 430 in the node 400 that the node 300 is allowed to access. In this embodiment of the present invention, since the node 400 constructs the virtual NVMe subsystem 001, when the discovery command is received, the relevant information of the virtual NVMe subsystem 001 is sent to the node 300, where the relevant information of the virtual NVMe subsystem 001 includes an identifier of the virtual NVMe subsystem 001 and an identifier of a corresponding virtual disk.
Step 406: after receiving the identifier of the virtual NVMe subsystem 001 fed back by the node 400, the node 300 may send a connection command to the node 400, requesting to establish a connection with the virtual NVMe subsystem. The connection command carries the NVMe NQN of the host, the identifier of the virtual NVMe subsystem 001, the identifier of the host, and relevant parameters of a submission queue and a completion queue. The host NQN and host identity are used to identify the node 300. The identifier of the virtual NVMe subsystem 001 is used to identify the virtual NVMe subsystem 001 that establishes the connection this time, for example, the identifier of the virtual NVMe subsystem 001 may be an NVMe NQN of the virtual NVMe subsystem 001.
Step 407: after receiving the connection command, the node 400 establishes a submission queue and a completion queue used when the node 300 communicates with the virtual NVMe subsystem 001, and after establishing the submission queue and the completion queue, returns the relevant information of successful connection to the node 300. The node 300 establishes the virtual disk 340, creates an NVMe subsystem of the virtual disk 340, and records information of the virtual NVMe subsystem in the node 400 in the NVMe subsystem of the virtual disk 340; the association relationship between the virtual disk 340 and the virtual NVMe subsystem is established, and further, the plurality of local disks 430 of the node 400 are mapped to one virtual disk 340 of the node 300. Node 300 may access the plurality of local disks 430 of node 400 by accessing the virtual disk 340.
As shown in fig. 5, a flowchart of a method for accessing multiple local disks 430 in a node 400 by accessing a virtual disk 340 according to an embodiment of the present application is provided. The method comprises the following steps:
step 501: node 300 generates an access request to access virtual disk 340 and sends the access request to node 400.
Since the association relationship between the virtual disk 340 and the virtual NVMe subsystem is recorded in the node 300, the node 300 converts an access request for accessing the virtual disk 140 into a request for accessing the virtual NVMe subsystem.
Step 502: network card 420 obtains the access request from node 400.
Specifically, after the virtual disk 340 is connected to the virtual NVMe subsystem, a sending queue and a completion queue are generated in the node 300, and a receiving queue and a submission queue are generated in the node 400. The sending queue and the receiving queue are in one-to-one correspondence, and the submitting queue and the completing queue are in one-to-one correspondence. After the node 300 generates the access request, the access request is placed in the transmission queue of the node 300 and waits to be transmitted to the node 400. After the access request is sent to the node 400, the node 400 puts the access request in the receive queue, and the network card 420 obtains the access request from the receive queue.
Step 503: the network card 420 accesses the plurality of local disks 430 according to the association relationship between the virtual NVMe subsystem 001 and the NVMe subsystems of the plurality of local disks 430 and the RAID/EC configuration of the plurality of local disks 430, so as to execute the access request.
The network card 420 may obtain, in addition to the access request, RAID/EC configurations of the plurality of local disks 430 and the plurality of local disks 430 corresponding to the NVMe subsystem 001, and access the plurality of local disks 430 according to the RAID/EC configurations of the local disks 430.
In the embodiment of the present invention, the network card 420 has a Remote Direct Memory Access (RDMA) function, and the network card 420 may read the Access request from the Memory 450 and execute step 503. When the access request is a data write request, in step 503, the network card 400 acquires the data write request, acquires data in the data write, and writes the data in the write request into the local disk 430 of the node 400. The network card 400 writes the data in the write request into the plurality of local disks 430 corresponding to the NVMe subsystem 001 according to the RAID/EC configuration of the plurality of local disks 430 and the plurality of local disks 430 corresponding to the NVMe subsystem 001.
When the access request is a data reading request, in step 503, when the node 400 receives the data reading request, the network card 420 reads the data reading request from the memory 450, and reads data from the plurality of local disks 430 corresponding to the NVMe subsystem 001 according to the RAID/EC configuration of the plurality of local disks 430 and the plurality of local disks 430 corresponding to the NVMe subsystem 001.
Since the network card 420 can execute the access request in step 503, the load of the node 400 can be effectively reduced.
Based on the same inventive concept as the method embodiment, an embodiment of the present application further provides a first server, where the first server (e.g., the node 400 in the embodiment of the present application) is connected to a second server (e.g., the node 300 in the embodiment of the present application) through a network card, and the first server may be configured to execute the method executed by the node 400 in the embodiment of the method shown in fig. 4, and related features may refer to the method embodiment described above, which are not described herein again, as shown in fig. 6, where the server includes a creating unit 601 and a transmitting unit 602:
a creating unit 601, configured to generate a virtual disk, where the virtual disk corresponds to multiple local disks in a first server, and the virtual disk is set to be accessible by a second server; for example, the creating unit 601 may execute the method executed by the node 400 in steps 401 to 403 in the embodiment shown in fig. 4, which may be specifically referred to the foregoing, and is described herein again.
A transmitting unit 602, configured to receive a connection request of a second server, transmit the virtual disk information to the second server, and enable the second server to access the virtual disk according to the virtual disk information, for example, the transmitting unit 602 may perform sending and receiving operations performed by the node 400 in steps 405 to 407 in the embodiment shown in fig. 4, for example, operations of receiving a discovery command, a connection command, and sending an identifier of the virtual NVMe subsystem 001 may specifically refer to the foregoing contents, which are described herein.
Alternatively, the creating unit 601 may configure a plurality of local disks as a RAID group or an EC group.
Optionally, the first server and the second server communicate with each other through an NOF protocol, and when the creating unit creates the virtual disk, the creating unit may first generate the NVMe subsystem for the plurality of local disks; generating a virtual NVMe subsystem, generating a virtual disk identifier, and writing the virtual disk identifier into the virtual NVMe subsystem; associating the virtual NVMe subsystem with a plurality of NVMe subsystems.
Based on the same inventive concept as the method embodiment, an embodiment of the present application further provides a network card, where the network card is used to execute the method executed by the network card 420 in the method embodiment, and related features may refer to the method embodiment, which is not described herein again, and as shown in fig. 7, the network card includes a transmission unit 701 and a processing unit 702:
a transmission unit 701, configured to obtain an access request to be processed from a server, where the access request is used to access a virtual disk, and the virtual disk corresponds to multiple local disks in the server; the transmission unit 701 may perform the operation of obtaining the access request in step 502 in the embodiment shown in fig. 5, which may specifically refer to the foregoing content, which is described herein in detail.
The processing unit 702 is configured to access the plurality of local disks according to the configuration information and the access request of the plurality of local disks. The processing unit 702 may perform the operation of performing the access request in step 503 in the embodiment shown in fig. 5, which may be referred to the foregoing specifically, and is described herein in detail.
Optionally, the configuration information of the multiple local disks is configuration information of a RAID or error correction code EC group formed by the multiple local disks.
Optionally, the processing unit 702 may also obtain configuration information of a plurality of local disks.
Optionally, the types of the access requests are different, and the access operations executed by the processing unit are different, which are described in the following two cases:
firstly, an access request is a data reading request, and the data reading request is used for requesting to read data from a virtual disk;
when the processing unit accesses the plurality of local disks, the processing unit can read data from the plurality of local disks according to the configuration information, send the read data to another server connected with the server through the network card, and send a data reading request to the server through the other server.
Secondly, the access request is a data writing request which is used for writing data into the virtual disk;
and when the processing unit accesses the plurality of local disks, writing the data in the data writing request into the plurality of local disks according to the configuration information.
It should be noted that the division of the unit in the embodiment of the present application is schematic, and is only a logic function division, and there may be another division manner in actual implementation. The functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in the form of hardware, or may also be implemented in the form of a software functional unit.
The above-described embodiments may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded or executed on a computer, cause the flow or functions according to embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, data center, etc., that contains one or more collections of available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. The semiconductor medium may be a Solid State Drive (SSD).
Based on the same inventive concept as the method embodiment, the embodiment of the present application further provides a server, configured to execute the method executed by the node 400 in the method embodiment, where the structure of the server may refer to the structure of the node 400 in fig. 2.
The functions/implementation of the transmission unit and the creation unit in fig. 6 may be implemented by the processor 410 in fig. 2 calling instructions stored in the memory 450. Alternatively, the functions/implementation procedures of the creation unit in fig. 6 may be implemented by the processor 410 in fig. 2 calling computer program instructions stored in the memory 450, and the functions/implementation procedures of the transmission unit in fig. 6 may be implemented by a communication interface in a server.
Based on the same inventive concept as the method embodiment, the embodiment of the present application further provides a network card, which is used for executing the method executed by the network card 420 in the method embodiment, and the structure of the network card may refer to the structure of the network card 420 in fig. 2.
The functions/implementation procedures of the transmission unit and the processing unit in fig. 7 can be implemented by the processor 4201 in fig. 2 calling instructions stored in the memory 4202. Alternatively, the functions/implementation procedures of the processing unit in fig. 7 may be implemented by the processor 4201 in fig. 2 calling the computer program instructions stored in the memory 4202, and the functions/implementation procedures of the transmission unit in fig. 6 may be implemented by the communication interface in the network card 420.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
The foregoing is only illustrative of the present invention. Those skilled in the art will appreciate that various modifications and substitutions can be made in the present invention based on the specific embodiments of the present invention, and the present invention is intended to cover the scope of the present invention.

Claims (18)

1. A data access method, applied to a network card of a server, the method comprising:
acquiring to-be-processed access requests from other servers from the server, wherein the access requests are used for accessing virtual disks configured on the other servers, and the virtual disks correspond to a plurality of local disks in the server; and
and accessing the local disks according to the configuration information of the local disks and the access request.
2. The method of claim 1, wherein the configuration information is configuration information of the plurality of local disks forming a Redundant Array of Independent Disks (RAID) or error correction code (EC) group.
3. The method of claim 1 or 2, further comprising:
and acquiring the configuration information of the plurality of local disks from the server.
4. The method of any of claims 1 or 2, further comprising:
the access request is a data reading request, and the data reading request is used for requesting to read data from the virtual disk;
the accessing the plurality of local disks according to the configuration information of the plurality of local disks and the access request includes:
and reading data from the local disks according to the configuration information, sending the read data to another server connected with the server through a network card, and sending the data reading request to the server by the other server.
5. The method of any of claims 1 or 2, further comprising:
the access request is a data writing request, and the data writing request is used for writing data into the virtual disk;
the accessing the plurality of local disks according to the configuration information of the plurality of local disks and the access request includes:
and writing the data in the data writing request into the plurality of local disks according to the configuration information.
6. A data access method is applied to a first server, wherein the first server is connected with a second server through a network card, and the method comprises the following steps:
generating a virtual disk, wherein the virtual disk corresponds to a plurality of local disks in the first server and is set to be capable of being accessed by the second server;
and receiving a connection request of the second server, transmitting the virtual disk information to the second server, and enabling the second server to access the virtual disk according to the virtual disk information.
7. The method of claim 6, wherein the plurality of local disks are configured as a RAID group or an EC group.
8. The method according to claim 6 or 7, wherein the first server and the second server communicate with each other through a network-based non-volatile storage standard (NOF) protocol, and the generating of the virtual disk comprises:
generating a nonvolatile storage standard NVMe subsystem for the plurality of local disks;
generating a virtual NVMe subsystem, generating a virtual disk identifier, and writing the virtual disk identifier into the virtual NVMe subsystem;
associating the virtual NVMe subsystem with the plurality of NVMe subsystems.
9. A network card is characterized in that the network card is located in a server, and the network card comprises a transmission unit and a processing unit:
the transmission unit is configured to obtain, from the server, to-be-processed access requests from other servers, where the access requests are used to access virtual disks configured on the other servers, and the virtual disks correspond to multiple local disks in the server;
and the processing unit is used for accessing the local disks according to the configuration information of the local disks and the access request.
10. The network card of claim 9, wherein the configuration information is configuration information of the plurality of local disks constituting a redundant array of independent disks RAID or error correction code EC group.
11. The network card of claim 9 or 10, wherein the processing unit is further configured to:
and acquiring the configuration information of the plurality of local disks from the server.
12. The network card according to any one of claims 9 or 10, wherein the access request is a data read request, and the data read request is used for requesting to read data from the virtual disk;
the processing unit is configured to access the plurality of local disks according to the configuration information of the plurality of local disks and the access request, and specifically configured to:
and reading data from the local disks according to the configuration information, sending the read data to another server connected with the server through a network card, and sending the data reading request to the server by the other server.
13. The network card according to any one of claims 9 or 10, wherein the access request is a data write request, and the data write request is used for writing data to the virtual disk;
the processing unit is configured to, when accessing the plurality of local disks according to the configuration information of the plurality of local disks and the access request, specifically:
and writing the data in the data writing request into the plurality of local disks according to the configuration information.
14. A first server is connected with a second server through a network card, and is characterized by comprising a creating unit and a transmission unit;
the creating unit is configured to generate a virtual disk, where the virtual disk corresponds to multiple local disks in the first server, and set the virtual disk to be accessible by the second server;
the transmission unit is configured to receive a connection request of the second server, transmit the virtual disk information to the second server, and enable the second server to access the virtual disk according to the virtual disk information.
15. The first server of claim 14, wherein the plurality of local disks are configured as a RAID group or an EC group.
16. The first server according to claim 14 or 15, wherein the first server communicates with the second server via a network-based non-volatile storage standard NOF protocol, and the creating unit is specifically configured to:
generating an NVMe subsystem for the plurality of local disks;
generating a virtual NVMe subsystem, generating a virtual disk identifier, and writing the virtual disk identifier into the virtual NVMe subsystem;
associating the virtual NVMe subsystem with the plurality of NVMe subsystems.
17. A network card is characterized by comprising a memory and a processor; the memory stores program instructions that are executed by the processor to perform the method of any of claims 1-5.
18. A server, comprising a memory and a processor; the memory stores program instructions that are executed by the processor to perform the method of any of claims 6-8.
CN201910551502.6A 2019-06-24 2019-06-24 Data access method, network card and server Active CN112130748B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210781204.8A CN115344197A (en) 2019-06-24 2019-06-24 Data access method, network card and server
CN201910551502.6A CN112130748B (en) 2019-06-24 2019-06-24 Data access method, network card and server
PCT/CN2020/097238 WO2020259418A1 (en) 2019-06-24 2020-06-19 Data access method, network card and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910551502.6A CN112130748B (en) 2019-06-24 2019-06-24 Data access method, network card and server

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210781204.8A Division CN115344197A (en) 2019-06-24 2019-06-24 Data access method, network card and server

Publications (2)

Publication Number Publication Date
CN112130748A CN112130748A (en) 2020-12-25
CN112130748B true CN112130748B (en) 2022-07-19

Family

ID=73849879

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910551502.6A Active CN112130748B (en) 2019-06-24 2019-06-24 Data access method, network card and server
CN202210781204.8A Pending CN115344197A (en) 2019-06-24 2019-06-24 Data access method, network card and server

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210781204.8A Pending CN115344197A (en) 2019-06-24 2019-06-24 Data access method, network card and server

Country Status (2)

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

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507464B (en) * 2021-07-06 2023-10-13 深圳市吉芯微半导体有限公司 Data access method, device, equipment and storage medium based on virtual equipment
CN114064135B (en) * 2021-11-12 2024-01-30 抖音视界有限公司 Method and device for starting server system, electronic equipment and storage medium
CN114285676B (en) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 Intelligent network card, network storage method and medium of intelligent network card
CN115550377B (en) * 2022-11-25 2023-03-07 苏州浪潮智能科技有限公司 NVMF (network video and frequency) storage cluster node interconnection method, device, equipment and medium
CN115657975B (en) * 2022-12-29 2023-03-31 浪潮电子信息产业股份有限公司 Disk data read-write control method, related components and front-end shared card
CN116540952B (en) * 2023-07-06 2024-01-09 苏州浪潮智能科技有限公司 Disk access method and device, storage medium and electronic equipment
CN117251118B (en) * 2023-11-16 2024-02-13 上海创景信息科技有限公司 Virtual NVMe simulation and integration supporting method and system
CN117591450B (en) * 2024-01-17 2024-03-22 苏州元脑智能科技有限公司 Data processing system, method, equipment and medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035862A (en) * 2009-09-30 2011-04-27 国际商业机器公司 Configuration node fault transfer method and system in SVC cluster
CN105068836A (en) * 2015-08-06 2015-11-18 北京百度网讯科技有限公司 SAS (serial attached SCSI) network based remotely-shareable start-up system
CN107203480A (en) * 2016-03-17 2017-09-26 华为技术有限公司 A kind of data prefetching method and device
CN109067833A (en) * 2014-05-22 2018-12-21 华为技术有限公司 A kind of node interconnection device, resource control node and server system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090657A (en) * 2006-10-03 2008-04-17 Hitachi Ltd Storage system and control method
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US9830234B2 (en) * 2013-08-26 2017-11-28 Vmware, Inc. Distributed transaction log
CN105827669B (en) * 2015-01-04 2019-06-11 中国移动通信集团江苏有限公司 A kind of method, apparatus and system of terminal virtual memory
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 (en) * 2018-05-03 2021-08-17 北京金山安全管理系统技术有限公司 Storage processing method, device, storage medium and processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035862A (en) * 2009-09-30 2011-04-27 国际商业机器公司 Configuration node fault transfer method and system in SVC cluster
CN109067833A (en) * 2014-05-22 2018-12-21 华为技术有限公司 A kind of node interconnection device, resource control node and server system
CN105068836A (en) * 2015-08-06 2015-11-18 北京百度网讯科技有限公司 SAS (serial attached SCSI) network based remotely-shareable start-up system
CN107203480A (en) * 2016-03-17 2017-09-26 华为技术有限公司 A kind of data prefetching method and device

Also Published As

Publication number Publication date
CN112130748A (en) 2020-12-25
WO2020259418A1 (en) 2020-12-30
CN115344197A (en) 2022-11-15

Similar Documents

Publication Publication Date Title
CN112130748B (en) Data access method, network card and server
US9678918B2 (en) Data processing system and data processing method
KR102427561B1 (en) A novel ssd architecture for fpga based acceleration
US11249937B1 (en) Storage adapter device for communicating with network storage
CN109445905B (en) Virtual machine data communication method and system and virtual machine configuration method and device
US10394723B2 (en) Data accessing method and PCIe storage device
JP2019091494A (en) Emulated endpoint configuration
CN108701004A (en) A kind of system of data processing, method and corresponding intrument
US10075524B1 (en) Storage bridge device for communicating with network storage
US8972615B2 (en) Communication with input/output system devices
US20140337493A1 (en) Client/server network environment setup method and system
KR20200078382A (en) Solid-state drive with initiator mode
US20220222016A1 (en) Method for accessing solid state disk and storage device
WO2019047843A1 (en) Method and device for transmitting data processing request
WO2016101856A1 (en) Data access method and apparatus
CN112817899B (en) PCIE-based data transmission method and device, storage medium and electronic equipment
WO2023186143A1 (en) Data processing method, host, and related device
CN113411363A (en) Uploading method of image file, related equipment and computer storage medium
US11747999B1 (en) Automated non-disruptive migration of hosts to an authenticated storage array connection
CN113703676B (en) Calling method, device, equipment and medium for double live volumes
CN110221995B (en) Data management method and system of integrated intelligent network card
JP6683160B2 (en) Storage system and communication method
WO2023273483A1 (en) Data processing system and method, and switch
CN115729440A (en) Method, device, system, equipment and storage medium for processing I/O request
CN104468677B (en) The double-deck iscsi target device system based on generic server and embedded server

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
GR01 Patent grant
GR01 Patent grant