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

Data access method, network card and server Download PDF

Info

Publication number
WO2020259418A1
WO2020259418A1 PCT/CN2020/097238 CN2020097238W WO2020259418A1 WO 2020259418 A1 WO2020259418 A1 WO 2020259418A1 CN 2020097238 W CN2020097238 W CN 2020097238W WO 2020259418 A1 WO2020259418 A1 WO 2020259418A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
multiple local
local disks
virtual disk
network card
Prior art date
Application number
PCT/CN2020/097238
Other languages
French (fr)
Chinese (zh)
Inventor
冯宇波
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020259418A1 publication Critical patent/WO2020259418A1/en

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]

Definitions

  • This application relates to the field of storage technology, in particular to a data access method, network card and server.
  • the server cluster realizes the local disk sharing of each node (a node in the server cluster is a server) through the network-based non-volatile storage standard (non-volatile memory express over Fabrics, NOF).
  • Each node can communicate through a switch, and any node can read and write the local disk of other nodes.
  • node 1 can access the local disk of node 2 through the switch.
  • node 1 needs to establish connections with multiple local disks of node 2, and set a one-to-one virtual disk corresponding to the local disk of node 2 in node 1.
  • Node 1 accesses the virtual disk, The local disk corresponding to the virtual disk in node 2 can be accessed.
  • This application provides a data access method, network card, and server to solve the problem that when a node that provides a shared disk provides a disk for other nodes in a server cluster, it takes too long to establish a connection, and the access node accesses other nodes through EC/RAID When the shared disk is provided, the processor load of the access node is too large.
  • this application provides a data access method applied to a network card of a server, and the method includes:
  • the network card obtains the pending access request from the server.
  • the access request is used to access the virtual disk generated by the server.
  • the virtual disk corresponds to multiple local disks in the server.
  • the network card accesses multiple local disks according to the configuration information and access requests of multiple local disks. Local disks.
  • a virtual disk in the server corresponds to multiple local disks of the server
  • the topology structure of the local disk and the virtual disk can be effectively simplified.
  • the network card in the server executes the access request.
  • access to multiple local disks corresponding to the virtual disk can ensure the efficiency of data reading and writing.
  • multiple local disks form a RAID or EC group.
  • the network card accesses multiple local disks, it can determine the read and write of multiple local disks based on the configuration information of the multiple local disks forming the RAID or EC group.
  • Reading and writing data to multiple local disks can improve data access efficiency.
  • the network card can also obtain the configuration information of multiple local disks from the server after executing the access request.
  • the network card can read the configuration information of multiple local disks from the memory of the server.
  • subsequent data reading and writing can be realized by multiple local disks, which can improve data access efficiency.
  • the type of access request is different, and the way the network card executes the access request is different.
  • the access request is a data read request
  • the data read request is used to request to read data from the virtual disk.
  • the network card accesses multiple local disks to perform an access request, it can read data from multiple local disks according to the configuration information, and send the read data to the sender of the data read request, that is, connect to the server through the network card Other servers.
  • the network card can simultaneously read data from multiple local disks and execute access requests, which can effectively ensure the efficiency of data reading and writing.
  • the type of access request is different, and the way the network card executes the access request is different.
  • the access request is a data write request, and the data write request is used to write data to the virtual disk.
  • the network card accesses multiple local disks to perform an access request, it writes the data in the data write request to the multiple local disks according to the configuration information.
  • the network card can write data to multiple local disks at the same time, which can realize efficient data reading and writing.
  • this application provides a data access method applied to a first server, the first server and the second server are connected through a network card, the method includes: the first server generates a virtual disk, and the virtual disk corresponds to a plurality of Local disk and set the virtual disk to be accessible by the second server; the first server can receive the connection request from the second server, and transmit the virtual disk information to the second server, so that the second server can access the virtual disk according to the virtual disk information .
  • the first server can notify the second server by sending virtual disk information, so that the second server can access multiple local disks of the first server by accessing the virtual disk, so that the virtual disk It can be associated with multiple local disks instead of a one-to-one correspondence, which can simplify the topology of virtual disks and local disks.
  • the first server may configure multiple local disks as a RAID or EC group. Ensure that data can be read and written to multiple local disks at the same time in the follow-up, improving the efficiency of data reading and writing.
  • the first server and the second server communicate through the NOF protocol to realize local disk sharing.
  • the first server When the first server generates virtual disks, it can generate NVMe subsystems for multiple local disks; it can also generate a virtual NVMe subsystem and generate a virtual disk identifier, write the virtual disk identifier into the virtual NVMe subsystem; and create a virtual The relationship between the NVMe subsystem and multiple NVMe subsystems.
  • the first server can establish the association relationship between the virtual NVMe subsystem and the NVMe subsystems of multiple local disks, so that the virtual disk can be associated with multiple local disks instead of a one-to-one correspondence. Simplify the topology of virtual disks and local disks.
  • this application provides a network card, which is located in a server, and the network card has the functions implemented by the network card in the first aspect and any one of the possible designs of the first aspect.
  • the function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the structure of the device includes a transmission unit and a processing unit, and these units can perform the corresponding functions in the above-mentioned method example of the first aspect. For details, please refer to the detailed description in the method example, which will not be repeated here.
  • this application provides a first server, and the first server and the second server are connected through a network card.
  • the first server has the functions implemented by the first server in any possible design of the second aspect and the second aspect.
  • the function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the structure of the device includes a creation unit and a transmission unit, and these units can perform the corresponding functions in the above-mentioned method example of the second aspect. For details, refer to the detailed description in the method example, which will not be repeated here.
  • this application also provides a network card.
  • the structure of the network card includes a processor and a memory, and the processor is configured to support the network card to perform corresponding functions in the first aspect and any one of the possible design methods of the first aspect.
  • the memory is coupled with the processor, and it stores the necessary program instructions and data of the network card.
  • the structure of the network card also includes a communication interface for communicating with other devices.
  • the present application also provides a first server.
  • the structure of the first server includes a processor and a memory, and the processor is configured to support the first server to perform a corresponding function in the second aspect and any one of the possible design methods of the second aspect.
  • the memory is coupled with the processor, and it stores the necessary program instructions and data of the first server.
  • the structure of the first server also includes a communication interface for communicating with other devices.
  • the present application also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium, which when run on a computer, causes the computer to execute the methods of the foregoing aspects.
  • the present application also provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the methods of the above aspects.
  • the present application also provides a computer chip, which is connected to a memory, and the chip is used to read and execute a software program stored in the memory, and execute the methods of the foregoing aspects.
  • Figure 1 is a schematic diagram of a server cluster architecture
  • FIG. 2 is a schematic diagram of a system architecture provided by this application.
  • FIG. 3 is a schematic diagram of an association relationship between a virtual NVMe subsystem and an NVMe subsystem provided by this application;
  • FIG. 4 is a schematic diagram of a method for mapping multiple local disks to one virtual disk provided by this application;
  • FIG. 5 is a schematic diagram of a method for reading and writing data provided by this application.
  • Fig. 6 is a schematic structural diagram of a server provided by this application.
  • FIG. 7 is a schematic structural diagram of a network card provided by this application.
  • FIG. 1 it is a schematic structural diagram of a server cluster.
  • the server cluster includes multiple nodes.
  • two nodes node 100 and node 200 are taken as an example, and the nodes are connected through a switch 10. .
  • each node in the server cluster is basically the same, and the node 100 is taken as an example for description below.
  • the node 100 includes a processor 110, a network card 120, a local disk 130, a virtual disk 140, and a memory 150.
  • it may also include a communication interface for communicating with other devices; each virtual disk 140 is associated with a local disk 230 in the node 200, and the process of associating the virtual disk 140 with the local disk 230 in the node 200 will be described in A detailed description is given 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.
  • SSD solid-state drive
  • NVMe non-volatile memory express
  • the memory 150 is used to store computer program instructions, and the processor 110 can call the computer program instructions stored in the memory 150 to implement main computing functions of the node 100.
  • 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).
  • NVMe subsystem NVMe subsystem
  • the node 200 records the NVMe subsystem information of the local disk 230 that needs to be provided to the node 100 to access in the NVMe subsystem with discovery service.
  • the node 100 needs to connect to the local disk 230 of the node 200, it first sends a discovery command to the node 200. After receiving the discovery command, the node 200 sends the NVMe subsystem information recorded in the NVMe subsystem with the discovery service to the node 100.
  • the node 100 can establish connections with the NVMe subsystem indicated by the information of the NVMe subsystem with the discovery service one by one according to the information of the NVMe subsystem.
  • connection cammand When establishing a connection with one of the NVMe subsystems, the node 100 sends a connection command (connection cammand) to the node 200.
  • the connection command carries the NVMe qualified name (NVMe qualified name, host NQN) of the host, the NQN of the NVMe subsystem, the host identifier, and related parameters of the submission queue (submission quene) and completion queue (completion quene).
  • the host NQN and host identifier are used to identify the node 100.
  • the NQN of the NVMe subsystem is used to identify the NVMe subsystem to establish a connection this time.
  • the node 200 After the node 200 receives the connection command, it establishes the submission queue and the completion queue used when the node 100 communicates with the NVMe subsystem. After the submission queue and the completion queue are established, it returns related information about successful connection. Information to node 100.
  • the node 100 establishes the virtual disk 140 and creates the NVMe subsystem of the virtual disk 140, and records the information of the NVMe subsystem of the local disk 230 in the node 200 in the NVMe subsystem of the virtual disk 140; the node 100 accesses the virtual disk 140 can access a local disk 230 of the node 200.
  • the node 100 and each local disk 230 must establish a connection according to the method described above. In this way, it takes a relatively long time to establish a connection, and the topology of the node 100 that needs to be maintained It is also more complicated.
  • the node 100 will perform RAID or EC on a virtual disk group composed of multiple virtual disks, which will increase the load of the node 100.
  • RAID refers to a disk array composed of multiple independent disks, which allows multiple local disks of the disk array to be read and written at the same time;
  • RAID configuration configures a data read and write strategy for the disk array to improve data reliability and input/output (I/O) performance.
  • EC configuration is an extension of RAID configuration. To a certain extent, EC configuration can be regarded as the general formula of RAID configuration, which means that any RAID configuration can be converted to a specific EC configuration.
  • a server cluster includes two nodes (node 300 and node 400) as an example , The architecture of the server cluster to which the embodiment of the present application is applied is described, and the nodes are connected through the switch 10.
  • the structure of the node 300 and the node 400 is similar to that of the node 100 and the node 200 in FIG. 1, except that one virtual disk 340 in the node 300 can be associated with multiple local disks 430 in the node 400, and one virtual disk in the node 400
  • the disk 440 may be associated with multiple local disks 330 in the node 300.
  • the memory 350 is used to store computer program instructions.
  • the processor 310 calls the computer program instructions stored in the memory 350 to perform some operations.
  • the processor 310 can call the computer program instructions stored in the memory 350 to execute the local disks and virtual disks provided in the embodiments of this application. Method of association. For example, the operations performed by the node 300 in the embodiment shown in FIG. 4 in the embodiment of the present application can be performed.
  • the memory 450 is used to store computer program instructions, and the processor 410 calls the computer program instructions stored in the memory 450 to perform some operations, for example, it can execute the execution of the node 400 in the embodiment shown in FIG. 4 in the embodiment of the present application. operating.
  • the network card 320 may have an Ethernet card (rdma network interface controller, RNIC) with a remote direct memory access (RDMA) engine.
  • RNIC network interface controller
  • RDMA remote direct memory access
  • the network card 420 includes a processor 4201 and a memory 4202.
  • the processor 4201 may call the computer execution instructions stored in the memory 4202, so that the network card can execute the data access method provided in the embodiment of the present application (as shown in FIG. 5).
  • the network card 420 may also include a communication interface. When the processor 4201 is communicating with other devices, data transmission may be performed through the communication interface.
  • the processor 4201 is configured to call 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 in the embodiment of the present application, see the embodiment shown in FIG. 5 for details.
  • the processor 4201 may be a central processing unit (central processing unit, CPU) or the like.
  • the memory 4202 is used to store computer program instructions.
  • the memory 4202 can be a volatile memory, such as a random access memory; the memory 4202 can also be a non-volatile memory, such as a read-only memory, flash memory, or other storable computer program instructions. Medium.
  • the network card 420 includes a programmable logic chip, and program instructions are burned in the programmable logic chip, and the programmable logic chip can execute the program burned therein. Execute the data access method provided in the embodiment of this application.
  • FIG. 3 is a schematic diagram of mapping multiple local disks 430 in the node 400 to a virtual disk 340 in the node 300
  • FIG. 4 shows the mapping of multiple local disks 430 in the node 400 as nodes
  • Step 401 The node 400 establishes an NVMe subsystem for each local disk 430, such as NVMe subsystem 01, VVMe subsystem 02, and NVMe subsystem 03 in FIG. 3.
  • Step 402 The node 400 establishes the virtual NVMe subsystem 001.
  • the node 400 When establishing the virtual NVMe subsystem, the node 400 also generates a virtual disk identifier, such as dev/NVMe001, and writes the virtual disk identifier in the virtual NVMe subsystem.
  • a virtual disk identifier such as dev/NVMe001
  • Step 403 The node 400 selects multiple NVMe subsystems of the local disk 430 that can be provided to the node 300 to access, and associates the NVMe subsystems of the multiple local disks 430 with the virtual network subsystem 001, and records the association relationship.
  • the node 400 When the node 400 associates the virtual NVMe subsystem 001 with the NVMe subsystems of the multiple local disks 430, the node 400 adds the information of the NVMe subsystems of the multiple 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 the NQN of the NVMe, or other information used to indicate the NVMe subsystem, which is not limited in the embodiment of the present application.
  • the manner in which the node 400 selects the NVMe subsystem of the multiple local disks 430 is not limited in the embodiment of the present application.
  • the node 400 may be selected randomly or according to a preset rule.
  • one or more local disk groups may be pre-configured in the node 400, and each local disk group includes multiple local disks 430, and the node 400 may select a local disk group from the multiple local disk groups; after that, Associate the NVMe subsystems of the multiple local disks 430 in the local disk group with the virtual NVMe subsystem 001.
  • the node 400 may also perform RAID/EC configuration on the multiple local disks 430 associated with the virtual NVMe subsystem 001, and allocate the role of each local disk 430 in RAID/EC, for example, the local disk 430 is used to implement the original data Storage, or storage of verification data.
  • the association relationship and the RAID/EC configuration of the multiple local disks 430 can be stored locally, such as in the memory 450
  • the network card 420 can read the association relationship and the RAID/EC configuration of the multiple local disks 430 from the memory 450, and perform processing on the multiple local disks 430 according to the association relationship and the RAID/EC configuration of the multiple local disks 430 Data reading and writing, and the data access method executed by the network card 420 will be described in detail in the embodiment shown in FIG. 5 below.
  • Step 404 The node 300 sends a discovery command to the node 400.
  • Step 405 After receiving the discovery command sent by the node 300, the node 400 sends the identifier of the virtual NVMe subsystem 001 to the node 300. In this way, 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, and the discovery command is used to query the NVMe subsystem of the local disk 430 in the node 400 that the node 300 is allowed to access.
  • the node 400 constructs the virtual NVMe subsystem 001, when receiving the discovery command, the related information of the virtual NVMe subsystem 001 is sent to the node 300, and the virtual NVMe subsystem 001
  • the related information of the subsystem 001 includes the identification of the virtual NVMe subsystem 001 and the identification of the 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 to request the establishment of 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 host identifier, and related parameters of the submission queue and the completion queue.
  • the host NQN and host identifier are used to identify the node 300.
  • the identifier of the virtual NVMe subsystem 001 is used to identify the virtual NVMe subsystem 001 to which the connection is established this time.
  • the identifier of the virtual NVMe subsystem 001 may be the NVMe NQN of the virtual NVMe subsystem 001.
  • Step 407 After receiving the connection command, the node 400 establishes the submission queue and the completion queue used when the node 300 communicates with the virtual NVMe subsystem 001, and returns after the submission queue and completion queue are established.
  • the information related to the successful connection is given to the node 300.
  • the node 300 establishes a virtual disk 340, and creates an NVMe subsystem of the virtual disk 340, records the information of the virtual NVMe subsystem in the node 400 in the NVMe subsystem of the virtual disk 340; establishes a connection between the virtual disk 340 and the virtual NVMe subsystem
  • the association relationship, and further, the multiple local disks 430 of the node 400 are mapped to one virtual disk 340 of the node 300.
  • the node 300 can access multiple local disks 430 of the node 400 by accessing the virtual disk 340.
  • FIG. 5 it is 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 this application.
  • the method includes:
  • Step 501 The node 300 generates an access request for accessing the virtual disk 340, and sends the access request to the node 400.
  • the node 300 since the association relationship between the virtual disk 340 and the virtual NVMe subsystem is recorded, the node 300 will convert the access request for accessing the virtual disk 140 into the access request for accessing the virtual NVMe subsystem. request.
  • Step 502 The network card 420 obtains an access request from the node 400.
  • the sending queue and the completion queue are generated in the node 300, and the receiving queue and the submission queue are generated in the node 400.
  • the sending queue and the receiving queue correspond one-to-one, and the submission queue and the completion queue correspond one-to-one.
  • the node 300 After the node 300 generates the access request, it puts the access request in the sending queue of the node 300 and waits to be sent to the node 400. After the access request is sent to the node 400, the node 400 places the access request in the receiving queue, and the network card 420 obtains the access request from the receiving queue.
  • Step 503 The network card 420 accesses the multiple local disks 430 according to the association relationship between the virtual NVMe subsystem 001 and the NVMe subsystem of the multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 to execute the access request .
  • the network card 420 can also obtain multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 corresponding to the NVMe subsystem 001, and access multiple local disks according to the RAID/EC configuration of the local disk 430 430.
  • the network card 420 has a remote direct memory access (RDMA) function.
  • the network card 420 can read the access request from the memory 450 and execute step 503.
  • the access request is a data write request
  • the network card 400 acquires the data write request, acquires the data in the data write, and writes the data in the write request to the node 400 in the local disk 430.
  • the network card 400 writes the data in the write request to the multiple local disks 430 corresponding to the NVMe subsystem 001 according to the RAID/EC configuration of the multiple local disks 430 and the multiple local disks 430 corresponding to the NVMe subsystem 001.
  • the network card 420 reads the data read request from the memory 450, according to the NVMe sub
  • the multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 corresponding to the system 001 read data from the multiple local disks 430 corresponding to the NVMe subsystem 001.
  • the load of the node 400 can be effectively reduced.
  • the embodiment of the present application also provides a first server, the first server (such as the node 400 in the embodiment of this application) and the second server (such as the node 300 in the embodiment of this application) ) Connected through a network card, the first server can be used to execute the method executed by the node 400 in the method embodiment shown in FIG. 4, and related features can be found in the above method embodiment, which will not be repeated here, as shown in FIG.
  • the server includes a creation unit 601 and a transmission unit 602:
  • the creation unit 601 is configured to generate virtual disks, the virtual disks correspond to multiple local disks in the first server, and the virtual disks are set to be accessible by the second server; for example, the creation unit 601 can execute the embodiment shown in FIG. 4
  • the creation unit 601 can execute the embodiment shown in FIG. 4
  • the transmission unit 602 is configured to receive a connection request from the second server, and transmit the virtual disk information to the second server, so that the second server can access the virtual disk according to the virtual disk information.
  • the transmission unit 602 can execute the embodiment shown in FIG. 4
  • the node 400 performs sending and receiving operations, such as receiving a discovery command, a connection command, and sending an identification of the virtual NVMe subsystem 001.
  • sending and receiving operations such as receiving a discovery command, a connection command, and sending an identification of the virtual NVMe subsystem 001.
  • the creation unit 601 may configure multiple local disks as a RAID group or an EC group.
  • the first server and the second server communicate through the NOF protocol.
  • the creation unit may first generate NVMe subsystems for multiple local disks; generate a virtual NVMe subsystem and generate a virtual disk.
  • Disk identification write the virtual disk identification into the virtual NVMe subsystem; associate the virtual NVMe subsystem with multiple NVMe subsystems.
  • the embodiment of the application also provides a network card, which is used to execute the method executed by the network card 420 in the above method embodiment.
  • the network card includes a transmission unit 701 and a processing unit 702:
  • the transmission unit 701 is used to obtain a pending access request from the server, 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 can perform the steps in the embodiment shown in FIG. 5
  • the transmission unit 701 can perform the steps in the embodiment shown in FIG. 5
  • the processing unit 702 is configured to access multiple local disks according to the configuration information and access requests of the multiple local disks.
  • the processing unit 702 may perform the operation of executing the access request in step 503 in the embodiment shown in FIG. 5, for details, please refer to the foregoing content, which will be repeated here.
  • the configuration information of multiple local disks is the configuration information of multiple local disks forming a RAID or EC group.
  • the processing unit 702 may also obtain configuration information of multiple local disks.
  • the type of access request is different, and the access operation performed by the processing unit is different.
  • the following two cases are introduced separately:
  • the access request is a data read request, and the data read request is used to request to read data from the virtual disk;
  • the processing unit When the processing unit accesses multiple local disks, it can read data from the multiple local disks according to the configuration information, and send the read data to another server connected to the server through a network card.
  • the server sends to the server.
  • the access request is a data write request, and the data write request is used to write data to the virtual disk;
  • the processing unit When the processing unit accesses multiple local disks, it writes the data in the data write request to the multiple local disks according to the configuration information.
  • the division of units in the embodiments of the present application is illustrative, and is only a logical function division, and there may be other division methods 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 may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the foregoing embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination.
  • the above-mentioned embodiments may be implemented in the form of a computer program product in whole or in part.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more sets of available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
  • the semiconductor medium may be a solid state drive (SSD).
  • the embodiment of the present application also provides a server for executing the method executed by the node 400 in the above method embodiment.
  • a server for executing the method executed by the node 400 in the above method embodiment.
  • the structure of the server refer to the structure of the node 400 in FIG. 2.
  • the functions/implementation processes of the transmission unit and the creation unit in FIG. 6 can be implemented by the processor 410 in FIG. 2 calling instructions stored in the memory 450.
  • the function/implementation process 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 function/implementation process of the transmission unit in FIG. 6 may be the communication in the server. Interface to achieve.
  • the embodiment of the present application also provides a network card for executing the method performed by the network card 420 in the above method embodiment.
  • a network card for executing the method performed by the network card 420 in the above method embodiment.
  • the structure of the network card refer to the structure of the network card 420 in FIG. 2.
  • the functions/implementation processes 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.
  • the function/implementation process of the processing unit in FIG. 7 may be implemented by the processor 4201 in FIG. 2 calling computer program instructions stored in the memory 4202
  • the function/implementation process of the transmission unit in FIG. 6 may be implemented by the network card 420. Communication interface.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.

Abstract

A data access method, a network card and a server, which are used to solve the problems in a server cluster in which the time for establishing a connection is too long when a node that provides a shared disk provides the disk to other nodes for use, and in which the processor burden on an access node is too large when the access node uses EC/RAID to access a shared disk provided by another node. In the present solution, the network card acquires from the server an access request to be processed, the access request being used to access a virtual disk generated by the server, and the virtual disk corresponding to a plurality of local disks in the server; and the network card accesses the plurality of local disks according to configuration information of the plurality of local disks and the access request. Since one virtual disk corresponds to a plurality of local disks, the topology of the local disks and the virtual disk may be effectively simplified. When the virtual disk is accessed, the network card in the server executes the access request, and the plurality of local disks corresponding to the virtual disk may be simultaneously accessed, effectively improving the efficiency of data reading and writing.

Description

一种数据访问方法、网卡及服务器Data access method, network card and server 技术领域Technical field
本申请涉及存储技术领域,尤其涉及一种数据访问方法、网卡及服务器。This application relates to the field of storage technology, in particular to a data access method, network card and server.
背景技术Background technique
服务器集群通过基于网络的非易失性存储标准(non-volatile memory express over Fabrics,NOF)实现各个节点(服务器集群中一个节点为一个服务器)的本地磁盘共享。各节点间可以通过交换机通信,其中任一节点可以对其他节点的本地磁盘进行读写,例如,节点1可以通过交换机访问节点2的本地磁盘。为了能够访问节点2的本地磁盘,节点1需要与节点2的多个本地磁盘分别建立连接,并在节点1中设置与节点2的本地磁盘一一对应的虚拟磁盘,节点1通过访问虚拟磁盘,可以访问节点2中与所述虚拟磁盘对应的本地磁盘。The server cluster realizes the local disk sharing of each node (a node in the server cluster is a server) through the network-based non-volatile storage standard (non-volatile memory express over Fabrics, NOF). Each node can communicate through a switch, and any node can read and write the local disk of other nodes. For example, node 1 can access the local disk of node 2 through the switch. In order to be able to access the local disk of node 2, node 1 needs to establish connections with multiple local disks of node 2, and set a one-to-one virtual disk corresponding to the local disk of node 2 in node 1. Node 1 accesses the virtual disk, The local disk corresponding to the virtual disk in node 2 can be accessed.
当服务器集群的规模较大,存在较多节点时,由于每个节点都要与其他节点的本地磁盘建立连接关系,使得连接建立的时间比较长,且网络连接的拓扑结构比较复杂;另外,当访问节点通过独立磁盘冗余阵列(redundant arrays of independent drives,RAID)/纠错码(erasure code,EC)访问其他节点的本地磁盘时,会增加访问节点的处理器的负担。When the scale of the server cluster is large and there are many nodes, since each node has to establish a connection relationship with the local disks of other nodes, the connection establishment time is relatively long, and the network connection topology is more complicated; in addition, when When an access node accesses the local disks of other nodes through redundant arrays of independent drives (RAID)/erasure code (EC), it will increase the burden on the processor of the access node.
发明内容Summary of the invention
本申请提供一种数据访问方法、网卡及服务器,用以解决服务器集群中,提供共享磁盘的节点提供磁盘给其他节点使用时,建立连接的时间过长,而访问节点通过EC/RAID访问其他节点提供的共享磁盘时,访问节点的处理器负担太大的问题。This application provides a data access method, network card, and server to solve the problem that when a node that provides a shared disk provides a disk for other nodes in a server cluster, it takes too long to establish a connection, and the access node accesses other nodes through EC/RAID When the shared disk is provided, the processor load of the access node is too large.
第一方面,本申请提供了一种数据访问方法,应用于服务器的网卡,方法包括:In the first aspect, this application provides a data access method applied to a network card of a server, and the method includes:
网卡从服务器中获取待处理的访问请求,访问请求用于访问服务器生成的虚拟磁盘,虚拟磁盘对应该服务器中的多个本地磁盘;之后,网卡根据多个本地磁盘的配置信息及访问请求访问多个本地磁盘。The network card obtains the pending access request from the server. The access request is used to access the virtual disk generated by the server. The virtual disk corresponds to multiple local disks in the server. After that, the network card accesses multiple local disks according to the configuration information and access requests of multiple local disks. Local disks.
通过上述方法,由于服务器中一个虚拟磁盘对应服务器的多个本地磁盘,可以有效简化本地磁盘与虚拟磁盘的拓扑结构,当需要对该虚拟磁盘进行访问,服务器中的网卡执行该访问请求时,可以同时对该虚拟磁盘对应的多个本地磁盘进行访问,可以保证数据读写效率,另外,由于对多个本地磁盘的访问操作由不再需要服务器中的处理器参与,而是由网卡实现,可以有效减少服务器的功耗。Through the above method, since a virtual disk in the server corresponds to multiple local disks of the server, the topology structure of the local disk and the virtual disk can be effectively simplified. When the virtual disk needs to be accessed, the network card in the server executes the access request. At the same time, access to multiple local disks corresponding to the virtual disk can ensure the efficiency of data reading and writing. In addition, because the access operations to multiple local disks no longer require the participation of the processor in the server, but are implemented by the network card, you can Effectively reduce the power consumption of the server.
在一种可能的设计中,多个本地磁盘构成RAID或EC组,网卡在访问多个本地磁盘时,可以依据多个本地磁盘构成RAID或EC组的配置信息,确定多个本地磁盘的读写策略。对多个本地磁盘实现数据读写,能够改善数据访问效率。In a possible design, multiple local disks form a RAID or EC group. When the network card accesses multiple local disks, it can determine the read and write of multiple local disks based on the configuration information of the multiple local disks forming the RAID or EC group. Strategy. Reading and writing data to multiple local disks can improve data access efficiency.
在一种可能的设计中,网卡可以在执行访问请求之后,还可以从服务器获取多个本地磁盘的配置信息,示例性的,网卡可以从服务器的内存中读取多个本地磁盘的配置信息,进而,后续可以多个本地磁盘实现数据读写,能够提高数据访问效率。In a possible design, the network card can also obtain the configuration information of multiple local disks from the server after executing the access request. Illustratively, the network card can read the configuration information of multiple local disks from the memory of the server. Furthermore, subsequent data reading and writing can be realized by multiple local disks, which can improve data access efficiency.
在一种可能的设计中,访问请求的类型不同,网卡执行访问请求的方式不同。示例性的,当访问请求为数据读取请求,数据读取请求用于请求从虚拟磁盘读取数据。网卡 在访问多个本地磁盘执行访问请求时,可以根据配置信息从多个本地磁盘中读取数据,并将所读取的数据发送数据读取请求的发送端,也即与该服务器通过网卡相连的其他服务器。In a possible design, the type of access request is different, and the way the network card executes the access request is different. Exemplarily, when the access request is a data read request, the data read request is used to request to read data from the virtual disk. When the network card accesses multiple local disks to perform an access request, it can read data from multiple local disks according to the configuration information, and send the read data to the sender of the data read request, that is, connect to the server through the network card Other servers.
通过上述方法,网卡可以同时对多个本地磁盘进行数据读取,执行访问请求,可以有效保证数据读写效率。Through the above method, the network card can simultaneously read data from multiple local disks and execute access requests, which can effectively ensure the efficiency of data reading and writing.
在一种可能的设计中,访问请求的类型不同,网卡执行访问请求的方式不同。示例性的,访问请求为数据写入请求,数据写入请求用于写入数据至虚拟磁盘。网卡在访问多个本地磁盘执行访问请求时,根据配置信息将数据写入请求中的数据写入多个本地磁盘中。In a possible design, the type of access request is different, and the way the network card executes the access request is different. Exemplarily, the access request is a data write request, and the data write request is used to write data to the virtual disk. When the network card accesses multiple local disks to perform an access request, it writes the data in the data write request to the multiple local disks according to the configuration information.
通过上述方法,网卡可以同时对多个本地磁盘进行数据写入,可以实现高效的数据读写。Through the above method, the network card can write data to multiple local disks at the same time, which can realize efficient data reading and writing.
第二方面,本申请提供了一种数据访问方法,应用于第一服务器,第一服务器与第二服务器通过网卡连接,方法包括:第一服务器生成虚拟磁盘,虚拟磁盘对应第一服务器中多个本地磁盘,并将虚拟磁盘设置为能够被第二服务器访问;第一服务器可以接收来自第二服务器的连接请求,将虚拟磁盘信息传输至第二服务器,使第二服务器根据虚拟磁盘信息访问虚拟磁盘。In the second aspect, this application provides a data access method applied to a first server, the first server and the second server are connected through a network card, the method includes: the first server generates a virtual disk, and the virtual disk corresponds to a plurality of Local disk and set the virtual disk to be accessible by the second server; the first server can receive the connection request from the second server, and transmit the virtual disk information to the second server, so that the second server can access the virtual disk according to the virtual disk information .
通过上述方法,第一服务器可以通过发送虚拟磁盘信息的方式,告知第二服务器,以使得第二服务器能够通过访问虚拟磁盘,实现对第一服务器的多个本地磁盘的访问,这样,使得虚拟磁盘可以与多个本地磁盘关联,不再是一对一的对应关系,能够简化虚拟磁盘与本地磁盘的拓扑结构。Through the above method, the first server can notify the second server by sending virtual disk information, so that the second server can access multiple local disks of the first server by accessing the virtual disk, so that the virtual disk It can be associated with multiple local disks instead of a one-to-one correspondence, which can simplify the topology of virtual disks and local disks.
在一种可能的设计中,第一服务器可以将多个本地磁盘配置为RAID或EC组。保证后续可以同时对多个本地磁盘进行数据读写,提高数据读写效率。In a possible design, the first server may configure multiple local disks as a RAID or EC group. Ensure that data can be read and written to multiple local disks at the same time in the follow-up, improving the efficiency of data reading and writing.
在一种可能的设计中,第一服务器与第二服务器之间通过NOF协议进行通信,来实现本地磁盘的共享。第一服务器在生成虚拟磁盘时,可以为多个本地磁盘生成NVMe子系统;还可以生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将虚拟磁盘标识写入虚拟NVMe子系统;并建立虚拟NVMe子系统与多个NVMe子系统的关联关系。In a possible design, the first server and the second server communicate through the NOF protocol to realize local disk sharing. When the first server generates virtual disks, it can generate NVMe subsystems for multiple local disks; it can also generate a virtual NVMe subsystem and generate a virtual disk identifier, write the virtual disk identifier into the virtual NVMe subsystem; and create a virtual The relationship between the NVMe subsystem and multiple NVMe subsystems.
通过上述方法,第一服务器可以通过建立虚拟NVMe子系统与多个本地磁盘的NVMe子系统的关联关系,使得虚拟磁盘可以与多个本地磁盘存在关联,不再是一对一的对应关系,能够简化虚拟磁盘与本地磁盘的拓扑结构。Through the above method, the first server can establish the association relationship between the virtual NVMe subsystem and the NVMe subsystems of multiple local disks, so that the virtual disk can be associated with multiple local disks instead of a one-to-one correspondence. Simplify the topology of virtual disks and local disks.
第三方面,本申请提供了一种网卡,网卡位于服务器中,网卡具有实现第一方面及第一方面任意一种可能的设计中网卡所实现的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,装置的结构中包括传输单元以及处理单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。In a third aspect, this application provides a network card, which is located in a server, and the network card has the functions implemented by the network card in the first aspect and any one of the possible designs of the first aspect. The function can be realized by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-mentioned functions. In a possible design, the structure of the device includes a transmission unit and a processing unit, and these units can perform the corresponding functions in the above-mentioned method example of the first aspect. For details, please refer to the detailed description in the method example, which will not be repeated here.
第四方面,本申请提供了一种第一服务器,第一服务器与第二服务器通过网卡连接。第一服务器具有实现第二方面及第二方面任意一种可能的设计中第一服务器所实现的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,装置的结构中包括创建单元以及传输单元,这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。In a fourth aspect, this application provides a first server, and the first server and the second server are connected through a network card. The first server has the functions implemented by the first server in any possible design of the second aspect and the second aspect. The function can be realized by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-mentioned functions. In a possible design, the structure of the device includes a creation unit and a transmission unit, and these units can perform the corresponding functions in the above-mentioned method example of the second aspect. For details, refer to the detailed description in the method example, which will not be repeated here.
第五方面,本申请还提供了一种网卡,有益效果可以参见第一方面及第一方面任意 一种可能的设计的描述此处不再赘述。网卡的结构中包括处理器和存储器,处理器被配置为支持网卡执行上述第一方面及第一方面任意一种可能的设计的方法中相应的功能。存储器与处理器耦合,其保存网卡必要的程序指令和数据。网卡的结构中还包括通信接口,用于与其他设备进行通信。In the fifth aspect, this application also provides a network card. For the beneficial effects, please refer to the description of the first aspect and any possible design of the first aspect, which will not be repeated here. The structure of the network card includes a processor and a memory, and the processor is configured to support the network card to perform corresponding functions in the first aspect and any one of the possible design methods of the first aspect. The memory is coupled with the processor, and it stores the necessary program instructions and data of the network card. The structure of the network card also includes a communication interface for communicating with other devices.
第六方面,本申请还提供了一种第一服务器,有益效果可以参见第一方面及第一方面任意一种可能的设计的描述此处不再赘述。第一服务器的结构中包括处理器和存储器,处理器被配置为支持第一服务器执行上述第二方面及第二方面任意一种可能的设计的方法中相应的功能。存储器与处理器耦合,其保存第一服务器必要的程序指令和数据。第一服务器的结构中还包括通信接口,用于与其他设备进行通信。In the sixth aspect, the present application also provides a first server. For beneficial effects, please refer to the description of the first aspect and any possible design of the first aspect and will not be repeated here. The structure of the first server includes a processor and a memory, and the processor is configured to support the first server to perform a corresponding function in the second aspect and any one of the possible design methods of the second aspect. The memory is coupled with the processor, and it stores the necessary program instructions and data of the first server. The structure of the first server also includes a communication interface for communicating with other devices.
第七方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。In a seventh aspect, the present application also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium, which when run on a computer, causes the computer to execute the methods of the foregoing aspects.
第八方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。In an eighth aspect, the present application also provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the methods of the above aspects.
第九方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述各方面的方法。In a ninth aspect, the present application also provides a computer chip, which is connected to a memory, and the chip is used to read and execute a software program stored in the memory, and execute the methods of the foregoing aspects.
附图说明Description of the drawings
图1为一种服务器集群的架构示意图;Figure 1 is a schematic diagram of a server cluster architecture;
图2为本申请提供的一种系统架构示意图;Figure 2 is a schematic diagram of a system architecture provided by this application;
图3为本申请提供的一种虚拟NVMe子系统与NVMe子系统之间的关联关系示意图;FIG. 3 is a schematic diagram of an association relationship between a virtual NVMe subsystem and an NVMe subsystem provided by this application;
图4为本申请提供的一种多个本地磁盘映射为一个虚拟磁盘的方法示意图;4 is a schematic diagram of a method for mapping multiple local disks to one virtual disk provided by this application;
图5为本申请提供的一种数据读写的方法示意图;FIG. 5 is a schematic diagram of a method for reading and writing data provided by this application;
图6为本申请提供的一种服务器的结构示意图;Fig. 6 is a schematic structural diagram of a server provided by this application;
图7为本申请提供的一种网卡的结构示意图。FIG. 7 is a schematic structural diagram of a network card provided by this application.
具体实施方式Detailed ways
如图1所示,为一种服务器集群的结构示意图,该服务器集群包括多个节点,图1中以包括两个节点(节点100、以及节点200)为例说明,节点之间通过交换机10连接。As shown in FIG. 1, it is a schematic structural diagram of a server cluster. The server cluster includes multiple nodes. In FIG. 1, two nodes (node 100 and node 200) are taken as an example, and the nodes are connected through a switch 10. .
服务器集群中的每个节点的结构基本相同,下面以节点100为例进行说明。节点100包括处理器110、网卡120、本地磁盘130、虚拟磁盘140、内存150。可选的,还可以包括通信接口,用于与其他设备通信;每个虚拟磁盘140与节点200中的一个本地磁盘230关联,关于虚拟磁盘140与节点200中的本地磁盘230的关联过程将在下文做详细描述。在本申请实施例中的本地磁盘是固态硬盘(solid-state drive,SSD),且与处理器110通过非易失性高速传输总线(non-volatile memory express,NVMe)协议通信。The structure of each node in the server cluster is basically the same, and the node 100 is taken as an example for description below. The node 100 includes a processor 110, a network card 120, a local disk 130, a virtual disk 140, and a memory 150. Optionally, it may also include a communication interface for communicating with other devices; each virtual disk 140 is associated with a local disk 230 in the node 200, and the process of associating the virtual disk 140 with the local disk 230 in the node 200 will be described in A detailed description is given 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.
内存150用于存储计算机程序指令,处理器110可调用内存150中存储的计算机程序指令,实现节点100的主要的计算功能。The memory 150 is used to store computer program instructions, and the processor 110 can call the computer program instructions stored in the memory 150 to implement main computing functions of the node 100.
下面以图1所示的服务器集群为例,介绍节点100与节点200中的本地磁盘建立连接,以及节点100在本地建立与节点200中的本地磁盘230关联的虚拟磁盘140的过程。Hereinafter, taking the server cluster shown in FIG. 1 as an example, the process of establishing a connection between the node 100 and the local disk in the node 200 and the node 100 locally establishing the virtual disk 140 associated with the local disk 230 in the node 200 is introduced.
首先根据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子系统建立连接。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 the NVMe subsystem information of the local disk 230 that needs to be provided to the node 100 to access in the NVMe subsystem with discovery service. When the node 100 needs to connect to the local disk 230 of the node 200, it first sends a discovery command to the node 200. After receiving the discovery command, the node 200 sends the NVMe subsystem information recorded in the NVMe subsystem with the discovery service to the node 100. The node 100 can establish connections with the NVMe subsystem indicated by the information of the NVMe subsystem with the discovery service one by one according to the information of the NVMe subsystem.
在与其中一个NVMe子系统建立连接时,所述节点100发送连接命令(connection cammand)至所述节点200。所述连接命令中携带主机的NVMe限定名称(NVMe qualified name,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。When establishing a connection with one of the NVMe subsystems, the node 100 sends a connection command (connection cammand) to the node 200. The connection command carries the NVMe qualified name (NVMe qualified name, host NQN) of the host, the NQN of the NVMe subsystem, the host identifier, and related parameters of the submission queue (submission quene) and completion queue (completion quene). The host NQN and host identifier are used to identify the node 100. The NQN of the NVMe subsystem is used to identify the NVMe subsystem to establish a connection this time. After the node 200 receives the connection command, it establishes the submission queue and the completion queue used when the node 100 communicates with the NVMe subsystem. After the submission queue and the completion queue are established, it returns related information about successful connection. Information to node 100. The node 100 establishes the virtual disk 140 and creates the NVMe subsystem of the virtual disk 140, and records the information of the NVMe subsystem of the local disk 230 in the node 200 in the NVMe subsystem of the virtual disk 140; the node 100 accesses the virtual disk 140 can access a local disk 230 of the node 200.
在节点200包括多个本地磁盘230时,所述节点100与每个本地磁盘230都要按照如上所述的方法建立连接,这样,建立连接需要耗费比较长的时间,而且节点100需要维护的拓扑也比较复杂。另外,为了数据的可靠性及读写效率,节点100会对多个虚拟磁盘构成的虚拟磁盘组RAID或EC,这样会增加节点100的负载。其中,RAID是指由多个独立的磁盘组成的磁盘阵列,允许同时对该磁盘阵列的多个本地磁盘进行读写;When the node 200 includes multiple local disks 230, the node 100 and each local disk 230 must establish a connection according to the method described above. In this way, it takes a relatively long time to establish a connection, and the topology of the node 100 that needs to be maintained It is also more complicated. In addition, for data reliability and read and write efficiency, the node 100 will perform RAID or EC on a virtual disk group composed of multiple virtual disks, which will increase the load of the node 100. Among them, RAID refers to a disk array composed of multiple independent disks, which allows multiple local disks of the disk array to be read and written at the same time;
RAID配置为该磁盘阵列配置数据读写策略,以提高数据可靠性和输入/输出(input/output,I/O)性能。EC配置是RAID配置扩展,一定程度上,EC配置可认为是RAID配置的通式,也就是说任何RAID配置都可以转换为特定的EC配置。RAID configuration configures a data read and write strategy for the disk array to improve data reliability and input/output (I/O) performance. EC configuration is an extension of RAID configuration. To a certain extent, EC configuration can be regarded as the general formula of RAID configuration, which means that any RAID configuration can be converted to a specific EC configuration.
为了解决上述问题,在本发明实施例中,可以将节点中的多个本地磁盘映射为一个虚拟磁盘,如图2所示,以服务器集群中包括两个节点(节点300以及节点400)为例,对本申请实施例所适用的服务器集群的架构进行说明,节点之间通过交换机10连接。节点300和节点400的结构与如图1中的节点100和节点200相似,区别在于,节点300中的一个虚拟磁盘340可以与节点400中的多个本地磁盘430关联,节点400中的一个虚拟磁盘440可以与节点300中的多个本地磁盘330关联。In order to solve the above problem, in the embodiment of the present invention, multiple local disks in a node can be mapped to a virtual disk. As shown in FIG. 2, a server cluster includes two nodes (node 300 and node 400) as an example , The architecture of the server cluster to which the embodiment of the present application is applied is described, and the nodes are connected through the switch 10. The structure of the node 300 and the node 400 is similar to that of the node 100 and the node 200 in FIG. 1, except that one virtual disk 340 in the node 300 can be associated with multiple local disks 430 in the node 400, and one virtual disk in the node 400 The disk 440 may be associated with multiple local disks 330 in the node 300.
内存350用于存储计算机程序指令,处理器310调用内存350中存储的计算机程序指令,执行一些操作,处理器310可以调用内存350存储的计算机程序指令执行本申请实施例提供的本地磁盘与虚拟磁盘的关联方法。如可以执行在本申请实施例中如图4所示的实施例中节点300执行的操作。同样的,内存450用于存储计算机程序指令,处理器410调用内存450中存储的计算机程序指令,执行一些操作,如可以执行本申请实施例中如图4所示的实施例中节点400执行的操作。The memory 350 is used to store computer program instructions. The processor 310 calls the computer program instructions stored in the memory 350 to perform some operations. The processor 310 can call the computer program instructions stored in the memory 350 to execute the local disks and virtual disks provided in the embodiments of this application. Method of association. For example, the operations performed by the node 300 in the embodiment shown in FIG. 4 in the embodiment of the present application can be performed. Similarly, the memory 450 is used to store computer program instructions, and the processor 410 calls the computer program instructions stored in the memory 450 to perform some operations, for example, it can execute the execution of the node 400 in the embodiment shown in FIG. 4 in the embodiment of the present application. operating.
本申请实施例中网卡320可以具有远程直接数据存取(remote direct memory access,RDMA)引擎的以太网卡(rdma network interface controller,RNIC),下面以网卡420为例,对节点中网卡的一种可能的结构进行说明,如图2所示,该网卡420包括处理器4201和存储器4202。处理器4201可以通过调用存储器4202中存储的计算机执行指令,使得网卡可以执行本申请实施例提供的数据访问方法(如图5所示)。可选的,网卡420中还可以包括通信接口,当处理器4201在与其他设备进行通信时,可以通过通信接口进 行数据传输。In the embodiment of the present application, the network card 320 may have an Ethernet card (rdma network interface controller, RNIC) with a remote direct memory access (RDMA) engine. The following takes the network card 420 as an example, one possibility for the network card in the node As shown in FIG. 2, the network card 420 includes a processor 4201 and a memory 4202. The processor 4201 may call the computer execution instructions stored in the memory 4202, so that the network card can execute the data access method provided in the embodiment of the present application (as shown in FIG. 5). Optionally, the network card 420 may also include a communication interface. When the processor 4201 is communicating with other devices, data transmission may be performed through the communication interface.
处理器4201用于调用存储器4202存储的计算机程序指令,实现对本地磁盘430的访问,如执行本申请实施例提供的数据访问方法,具体可参见如图5所示的实施例。处理器4201可以是中央处埋器(central processing unit,CPU)等。The processor 4201 is configured to call 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 in the embodiment of the present application, see the embodiment shown in FIG. 5 for details. The processor 4201 may be a central processing unit (central processing unit, CPU) or the like.
存储器4202用于存储计算机程序指令,存储器4202可以是易失性存储器,例如随机存取存储器;存储器4202也可以是非易失性存储器,例如只读存储器,闪存;还可以是其他可存储计算机程序指令的介质。The memory 4202 is used to store computer program instructions. The memory 4202 can be a volatile memory, such as a random access memory; the memory 4202 can also be a non-volatile memory, such as a read-only memory, flash memory, or other storable computer program instructions. Medium.
在本申请另一实施例中,所述网卡420包括可编程的逻辑芯片,程序指令烧录在所述可编程的逻辑芯片中,所述可编程的逻辑芯片执行烧录在其中的程序即可执行本申请实施例提供的数据访问方法。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 can execute the program burned therein. Execute the data access method provided in the embodiment of this application.
请同时参阅图3及图4,图3为将节点400中的多个本地磁盘430映射为节点300中的一个虚拟磁盘340的示意图,图4为节点400中的多个本地磁盘430映射为节点300中的一个虚拟磁盘340的方法的流程图。Please refer to FIGS. 3 and 4 at the same time. FIG. 3 is a schematic diagram of mapping multiple local disks 430 in the node 400 to a virtual disk 340 in the node 300, and FIG. 4 shows the mapping of multiple local disks 430 in the node 400 as nodes A flowchart of a method of virtual disk 340 in 300.
步骤401:节点400对每个本地磁盘430建立NVMe子系统,如图3中的NVMe子系统01、VVMe子系统02、及NVMe子系统03。Step 401: The node 400 establishes an NVMe subsystem for each local disk 430, such as NVMe subsystem 01, VVMe subsystem 02, and NVMe subsystem 03 in FIG. 3.
步骤402:节点400建立虚拟NVMe子系统001。Step 402: The node 400 establishes the virtual NVMe subsystem 001.
在建立虚拟NVMe子系统时,节点400还会生成一个虚拟磁盘标识,例如dev/NVMe001,并将该虚拟磁盘标识写在所述虚拟NVMe子系统中。When establishing the virtual NVMe subsystem, the node 400 also generates a virtual disk identifier, such as dev/NVMe001, and writes the virtual disk identifier in the virtual NVMe subsystem.
步骤403:节点400选择多个可以提供给节点300访问的本地磁盘430的NVMe子系统,并将多个本地磁盘430的NVMe子系统与虚拟网络子系统001关联,并记录关联关系。Step 403: The node 400 selects multiple NVMe subsystems of the local disk 430 that can be provided to the node 300 to access, and associates the NVMe subsystems of the multiple local disks 430 with the virtual network subsystem 001, and records the association relationship.
节点400在关联虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统时,将多个本地磁盘430的NVMe子系统的信息添加到虚拟NVMe子系统001的设备列表中。When the node 400 associates the virtual NVMe subsystem 001 with the NVMe subsystems of the multiple local disks 430, the node 400 adds the information of the NVMe subsystems of the multiple local disks 430 to the device list of the virtual NVMe subsystem 001.
本地磁盘430的NVMe子系统的信息可以是NVMe的NQN,也可以是其他用于指示NVMe子系统的信息,本申请实施例并不限定。The information of the NVMe subsystem of the local disk 430 may be the NQN of the NVMe, or other information used to indicate the NVMe subsystem, which is not limited in the embodiment of the present application.
节点400选择多个本地磁盘430的NVMe子系统的方式本申请实施例并不限定,节点400可以随机选择,也可以根据预设规则选择。The manner in which the node 400 selects the NVMe subsystem of the multiple local disks 430 is not limited in the embodiment of the present application. The node 400 may be selected randomly or according to a preset rule.
示例性的,节点400中可以预先配置一个或多个本地磁盘组,每个本地磁盘组中包括多个本地磁盘430,节点400可以从一个多个本地磁盘组中选择一个本地磁盘组;之后,将该本地磁盘组中的多个本地磁盘430的NVMe子系统与虚拟NVMe子系统001关联。Exemplarily, one or more local disk groups may be pre-configured in the node 400, and each local disk group includes multiple local disks 430, and the node 400 may select a local disk group from the multiple local disk groups; after that, Associate the NVMe subsystems of the multiple local disks 430 in the local disk group with the virtual NVMe subsystem 001.
节点400还可以对与所述虚拟NVMe子系统001关联的多个本地磁盘430进行RAID/EC配置,分配各个本地磁盘430在RAID/EC中充当的角色,如本地磁盘430用于实现原始数据的存储,或用于实现校验数据的存储。The node 400 may also perform RAID/EC configuration on the multiple local disks 430 associated with the virtual NVMe subsystem 001, and allocate the role of each local disk 430 in RAID/EC, for example, the local disk 430 is used to implement the original data Storage, or storage of verification data.
节点400在建立了虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统的关联关系之后,可以将该关联关系及多个本地磁盘430的RAID/EC配置存储在本地,如存储在内存450中,网卡420可以从内存450中读取该关联关系,以及多个本地磁盘430的RAID/EC配置,根据所述关联关系及多个本地磁盘430的RAID/EC配置对多个本地磁盘430进行数据读写,网卡420执行的数据访问方法将在下文如图5所示的实施例做详细描述。After the node 400 establishes the association relationship between the virtual NVMe subsystem 001 and the NVMe subsystem of the multiple local disks 430, the association relationship and the RAID/EC configuration of the multiple local disks 430 can be stored locally, such as in the memory 450 The network card 420 can read the association relationship and the RAID/EC configuration of the multiple local disks 430 from the memory 450, and perform processing on the multiple local disks 430 according to the association relationship and the RAID/EC configuration of the multiple local disks 430 Data reading and writing, and the data access method executed by the network card 420 will be described in detail in the embodiment shown in FIG. 5 below.
步骤404:节点300向节点400发送发现命令。Step 404: The node 300 sends a discovery command to the node 400.
步骤405:节点400在接收到节点300发送的发现命令后,将虚拟NVMe子系统001的标识发送给节点300。这样,节点400针对虚拟NVMe子系统创建的虚拟磁盘允许被节点300访问。Step 405: After receiving the discovery command sent by the node 300, the node 400 sends the identifier of the virtual NVMe subsystem 001 to the node 300. In this way, the virtual disk created by the node 400 for the virtual NVMe subsystem is allowed to be accessed by the node 300.
节点300可以先向节点400发送发现命令,该发现命令用于查询节点400中允许节点300访问的本地磁盘430的NVMe子系统。在本发明实施例中,由于节点400构建了虚拟NVMe子系统001,则在接收到所述发现命令时,将所述虚拟NVMe子系统001的相关信息发送给所述节点300,所述虚拟NVMe子系统001的相关信息包括所述虚拟NVMe子系统001的标识及对应的虚拟磁盘的标识。The node 300 may first send a discovery command to the node 400, and the discovery command 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 the embodiment of the present invention, since the node 400 constructs the virtual NVMe subsystem 001, when receiving the discovery command, the related information of the virtual NVMe subsystem 001 is sent to the node 300, and the virtual NVMe subsystem 001 The related information of the subsystem 001 includes the identification of the virtual NVMe subsystem 001 and the identification of the corresponding virtual disk.
步骤406:节点300接收到节点400反馈的虚拟NVMe子系统001的标识后,可以向节点400发送连接命令,请求与该虚拟NVMe子系统建立连接。所述连接命令中携带主机的NVMe NQN,虚拟NVMe子系统001的标识、主机标识,及提交队列和完成队列的相关参数。所述主机NQN及主机标识用于标识所述节点300。所述虚拟NVMe子系统001的标识用于标识本次建立连接的虚拟NVMe子系统001,例如,所述虚拟NVMe子系统001的标识可以为虚拟NVMe子系统001的NVMe NQN。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 to request the establishment of 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 host identifier, and related parameters of the submission queue and the completion queue. The host NQN and host identifier are used to identify the node 300. The identifier of the virtual NVMe subsystem 001 is used to identify the virtual NVMe subsystem 001 to which the connection is established this time. For example, the identifier of the virtual NVMe subsystem 001 may be the NVMe NQN of the virtual NVMe subsystem 001.
步骤407:节点400在接收到所述连接命令后,建立所述节点300与所述虚拟NVMe子系统001通信时所使用的提交队列及完成队列,在建立好提交队列及完成队列后,即返回连接成功的相关信息给节点300。节点300建立虚拟磁盘340,并创建该虚拟磁盘340的NVMe子系统,将节点400中虚拟NVMe子系统的信息记录在虚拟磁盘340的NVMe子系统中;建立了虚拟磁盘340与虚拟NVMe子系统的关联关系,进而,节点400的多个本地磁盘430映射为节点300的一个虚拟磁盘340。节点300可以通过访问所述虚拟磁盘340即可访问到所述节点400的多个本地磁盘430。Step 407: After receiving the connection command, the node 400 establishes the submission queue and the completion queue used when the node 300 communicates with the virtual NVMe subsystem 001, and returns after the submission queue and completion queue are established. The information related to the successful connection is given to the node 300. The node 300 establishes a virtual disk 340, and creates an NVMe subsystem of the virtual disk 340, records the information of the virtual NVMe subsystem in the node 400 in the NVMe subsystem of the virtual disk 340; establishes a connection between the virtual disk 340 and the virtual NVMe subsystem The association relationship, and further, the multiple local disks 430 of the node 400 are mapped to one virtual disk 340 of the node 300. The node 300 can access multiple local disks 430 of the node 400 by accessing the virtual disk 340.
如图5所示,为本申请实施例提供的通过访问虚拟磁盘340访问节点400中的多个本地磁盘430的方法的流程图。该方法包括:As shown in FIG. 5, it is 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 this application. The method includes:
步骤501:节点300产生访问所述虚拟磁盘340的访问请求,并发送所述访问请求至节点400。Step 501: The node 300 generates an access request for accessing the virtual disk 340, and sends the access request to the node 400.
在所述节点300中由于记录所述虚拟磁盘340与所述虚拟NVMe子系统的关联关系,则所述节点300会将访问所述虚拟磁盘140的访问请求转换为访问所述虚拟NVMe子系统的请求。In the node 300, since the association relationship between the virtual disk 340 and the virtual NVMe subsystem is recorded, the node 300 will convert the access request for accessing the virtual disk 140 into the access request for accessing the virtual NVMe subsystem. request.
步骤502:网卡420从节点400获取访问请求。Step 502: The network card 420 obtains an access request from the node 400.
具体地,在虚拟磁盘340与虚拟NVMe子系统建立连接后,即在节点300中生成发送队列及完成队列,在节点400中生成接收队列及提交队列。其中发送队列和接收队列一一对应,提交队列与完成队列一一对应。节点300产生访问请求后,即把访问请求放在节点300的发送队列中,并等待被发送至节点400。在所述访问请求被发送至节点400后,节点400将所述访问请求放在所述接收队列中,网卡420从所述接收队列中获取所述访问请求。Specifically, after the virtual disk 340 establishes a connection with the virtual NVMe subsystem, the sending queue and the completion queue are generated in the node 300, and the receiving queue and the submission queue are generated in the node 400. The sending queue and the receiving queue correspond one-to-one, and the submission queue and the completion queue correspond one-to-one. After the node 300 generates the access request, it puts the access request in the sending queue of the node 300 and waits to be sent to the node 400. After the access request is sent to the node 400, the node 400 places the access request in the receiving queue, and the network card 420 obtains the access request from the receiving queue.
步骤503:网卡420根据虚拟NVMe子系统001和多个本地磁盘430的NVMe子系统的关联关系及多个本地磁盘430的RAID/EC配置访问所述多个本地磁盘430,以执行所述访问请求。Step 503: The network card 420 accesses the multiple local disks 430 according to the association relationship between the virtual NVMe subsystem 001 and the NVMe subsystem of the multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 to execute the access request .
网卡420除获取所述访问请求外,还可以获取NVMe子系统001对应的多个本地磁 盘430及多个本地磁盘430的RAID/EC配置,根据本地磁盘430的RAID/EC配置访问多个本地磁盘430。In addition to obtaining the access request, the network card 420 can also obtain multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 corresponding to the NVMe subsystem 001, and access multiple local disks according to the RAID/EC configuration of the local disk 430 430.
本发明实施例中,网卡420中具有远程直接数据存取(Remote Direct Memory Access,RDMA)的功能,网卡420可以从内存450中读取所述访问请求,并执行步骤503。当所述访问请求为数据写入请求时,在步骤503中,所述网卡400获取所述数据写入写请求,并获取所述数据写入中的数据,将写请求中的数据写入节点400的本地磁盘430中。网卡400根据所述NVMe子系统001对应的多个本地磁盘430及多个本地磁盘430的RAID/EC配置,将写请求中的数据写入所述NVMe子系统001对应多个本地磁盘430中。In the embodiment of the present invention, the network card 420 has a remote direct memory access (RDMA) function. The network card 420 can 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 the data in the data write, and writes the data in the write request to the node 400 in the local disk 430. The network card 400 writes the data in the write request to the multiple local disks 430 corresponding to the NVMe subsystem 001 according to the RAID/EC configuration of the multiple local disks 430 and the multiple local disks 430 corresponding to the NVMe subsystem 001.
当所述访问请求为数据读取请求时,在步骤503中,所述节点400在接收到数据读取请求时,所述网卡420从内存450读取该数据读取请求,根据所述NVMe子系统001对应的多个本地磁盘430及多个本地磁盘430的RAID/EC配置,从所述NVMe子系统001对应的多个本地磁盘430中读取数据。When the access request is a data read request, in step 503, when the node 400 receives the data read request, the network card 420 reads the data read request from the memory 450, according to the NVMe sub The multiple local disks 430 and the RAID/EC configuration of the multiple local disks 430 corresponding to the system 001 read data from the multiple local disks 430 corresponding to the NVMe subsystem 001.
由于步骤503中可以由网卡420执行访问请求,能够有效降低节点400的负载。Since the network card 420 can execute the access request in step 503, the load of the node 400 can be effectively reduced.
基于与方法实施例同一发明构思,本申请实施例还提供了一种第一服务器,第一服务器(如本申请实施例中的节点400)与第二服务器(如本申请实施例中的节点300)通过网卡连接,该第一服务器可用于执行如图4所示的方法实施例中节点400执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图6所示,该服务器包括创建单元601以及传输单元602:Based on the same inventive concept as the method embodiment, the embodiment of the present application also provides a first server, the first server (such as the node 400 in the embodiment of this application) and the second server (such as the node 300 in the embodiment of this application) ) Connected through a network card, the first server can be used to execute the method executed by the node 400 in the method embodiment shown in FIG. 4, and related features can be found in the above method embodiment, which will not be repeated here, as shown in FIG. The server includes a creation unit 601 and a transmission unit 602:
创建单元601,用于生成虚拟磁盘,虚拟磁盘对应第一服务器中多个本地磁盘,并将虚拟磁盘设置为能够被第二服务器访问;如创建单元601可以执行如图4所示的实施例中步骤401~403中节点400执行的方法,具体可参见前述内容,此处在赘述。The creation unit 601 is configured to generate virtual disks, the virtual disks correspond to multiple local disks in the first server, and the virtual disks are set to be accessible by the second server; for example, the creation unit 601 can execute the embodiment shown in FIG. 4 For details of the method executed by the node 400 in steps 401 to 403, refer to the foregoing content, which is repeated here.
传输单元602,用于接收第二服务器的连接请求,将虚拟磁盘信息传输至第二服务器,使第二服务器根据虚拟磁盘信息访问虚拟磁盘,如传输单元602可以执行如图4所示的实施例中步骤405~407中节点400执行发送以及接收操作,如接收发现命令、连接命令、以及发送虚拟NVMe子系统001的标识的操作,具体可参见前述内容,此处在赘述。The transmission unit 602 is configured to receive a connection request from the second server, and transmit the virtual disk information to the second server, so that the second server can access the virtual disk according to the virtual disk information. For example, the transmission unit 602 can execute the embodiment shown in FIG. 4 In steps 405 to 407, the node 400 performs sending and receiving operations, such as receiving a discovery command, a connection command, and sending an identification of the virtual NVMe subsystem 001. For details, please refer to the foregoing content, which will be repeated here.
可选的,创建单元601可以配置多个本地磁盘为RAID组或者EC组。Optionally, the creation unit 601 may configure multiple local disks as a RAID group or an EC group.
可选的,第一服务器与第二服务器之间通过NOF协议进行通信,创建单元在创建虚拟磁盘时,可以先为多个本地磁盘生成NVMe子系统;生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将虚拟磁盘标识写入虚拟NVMe子系统;将虚拟NVMe子系统与多个NVMe子系统关联。Optionally, the first server and the second server communicate through the NOF protocol. When creating a virtual disk, the creation unit may first generate NVMe subsystems for multiple local disks; generate a virtual NVMe subsystem and generate a virtual disk. Disk identification, write the virtual disk identification into the virtual NVMe subsystem; associate the virtual NVMe subsystem with multiple NVMe subsystems.
基于与方法实施例同一发明构思,本申请实施例还提供了一种网卡,该网卡用于执行上述方法实施例中网卡420执行的方法,相关特征可参见上述方法实施例,此处不再赘述,如图7所示,该网卡包括传输单元701以及处理单元702:Based on the same inventive concept as the method embodiment, the embodiment of the application also provides a network card, which is used to execute the method executed by the network card 420 in the above method embodiment. For related features, please refer to the above method embodiment, and will not be repeated here. As shown in FIG. 7, the network card includes a transmission unit 701 and a processing unit 702:
传输单元701,用于从服务器中获取待处理的访问请求,访问请求用于访问虚拟磁盘,虚拟磁盘对应服务器中的多个本地磁盘;传输单元701可以执行如图5所示的实施例中步骤502中的获取访问请求的操作,具体可参见前述内容,此处在赘述。The transmission unit 701 is used to obtain a pending access request from the server, 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 can perform the steps in the embodiment shown in FIG. 5 For the operation of obtaining the access request in 502, refer to the foregoing content for details, which will be repeated here.
处理单元702,用于根据多个本地磁盘的配置信息及访问请求访问多个本地磁盘。处理单元702可以执行如图5所示的实施例中步骤503中的执行访问请求的操作,具体可参见前述内容,此处在赘述。The processing unit 702 is configured to access multiple local disks according to the configuration information and access requests of the multiple local disks. The processing unit 702 may perform the operation of executing the access request in step 503 in the embodiment shown in FIG. 5, for details, please refer to the foregoing content, which will be repeated here.
可选的,多个本地磁盘的配置信息为多个本地磁盘构成RAID或纠错码EC组的配置 信息。Optionally, the configuration information of multiple local disks is the configuration information of multiple local disks forming a RAID or EC group.
可选的,处理单元702还可以获取多个本地磁盘的配置信息。Optionally, the processing unit 702 may also obtain configuration information of multiple local disks.
可选的,访问请求的类型不同,处理单元执行的访问操作不同,下面分两种情况分别进行介绍:Optionally, the type of access request is different, and the access operation performed by the processing unit is different. The following two cases are introduced separately:
第一、访问请求为数据读取请求,数据读取请求用于请求从虚拟磁盘读取数据;First, the access request is a data read request, and the data read request is used to request to read data from the virtual disk;
处理单元在访问多个本地磁盘时,可以根据配置信息从多个本地磁盘中读取数据,并将所读取的数据发送至与服务器通过网卡相连的另一个服务器,数据读取请求由另一个服务器发送至服务器。When the processing unit accesses multiple local disks, it can read data from the multiple local disks according to the configuration information, and send the read data to another server connected to the server through a network card. The server sends to the server.
第二、访问请求为数据写入请求,数据写入请求用于写入数据至虚拟磁盘;Second, the access request is a data write request, and the data write request is used to write data to the virtual disk;
处理单元在访问多个本地磁盘时,根据配置信息将数据写入请求中的数据写入多个本地磁盘中。When the processing unit accesses multiple local disks, it writes the data in the data write request to the multiple local disks according to the configuration information.
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。It should be noted that the division of units in the embodiments of the present application is illustrative, and is only a logical function division, and there may be other division methods 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 may be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。The foregoing embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented by software, the above-mentioned embodiments may be implemented in the form of a computer program product in whole or in part. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on the computer, the processes or functions according to the embodiments of the present invention are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center. Transmission to another website site, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more sets of available media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium. The semiconductor medium may be a solid state drive (SSD).
基于与方法实施例同一发明构思,本申请实施例还提供了一种服务器,用于执行上述方法实施例中节点400执行的方法,服务器的结构可以参见图2中节点400的结构。Based on the same inventive concept as the method embodiment, the embodiment of the present application also provides a server for executing the method executed by the node 400 in the above method embodiment. For the structure of the server, refer to the structure of the node 400 in FIG. 2.
图6中的传输单元以及创建单元的功能/实现过程均可以通过图2中的处理器410调用存储器450中存储的指令来实现。或者,图6中的创建单元的功能/实现过程可以通过图2中的处理器410调用存储器450中存储的计算机程序指令来实现,图6中的传输单元的功能/实现过程可以服务器中的通信接口来实现。The functions/implementation processes of the transmission unit and the creation unit in FIG. 6 can be implemented by the processor 410 in FIG. 2 calling instructions stored in the memory 450. Alternatively, the function/implementation process 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 function/implementation process of the transmission unit in FIG. 6 may be the communication in the server. Interface to achieve.
基于与方法实施例同一发明构思,本申请实施例还提供了一种网卡,用于执行上述方法实施例中网卡420执行的方法,网卡的结构可以参见图2中网卡420的结构。Based on the same inventive concept as the method embodiment, the embodiment of the present application also provides a network card for executing the method performed by the network card 420 in the above method embodiment. For the structure of the network card, refer to the structure of the network card 420 in FIG. 2.
图7中的传输单元以及处理单元的功能/实现过程均可以通过图2中的处理器4201调用存储器4202中存储的指令来实现。或者,图7中的处理单元的功能/实现过程可以通过图2中的处理器4201调用存储器4202中存储的计算机程序指令来实现,图6中的传输单元的功能/实现过程可以通过网卡420中的通信接口来实现。The functions/implementation processes 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 function/implementation process of the processing unit in FIG. 7 may be implemented by the processor 4201 in FIG. 2 calling computer program instructions stored in the memory 4202, and the function/implementation process of the transmission unit in FIG. 6 may be implemented by the network card 420. Communication interface.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, device, and method may be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
以上所述,仅为本发明的具体实施方式。熟悉本技术领域的技术人员根据本发明提供的具体实施方式,可想到变化或替换,都应涵盖在本发明的保护范围之内。The above are only specific embodiments of the present invention. Those skilled in the art can think of changes or substitutions according to the specific implementation manners provided by the present invention, which should all fall within the protection scope of the present invention.

Claims (18)

  1. 一种数据访问方法,其特征在于,应用于服务器的网卡,所述方法包括:A data access method, characterized in that it is applied to a network card of a server, and the method includes:
    从所述服务器中获取待处理的访问请求,所述访问请求用于访问虚拟磁盘,所述虚拟磁盘对应所述服务器中的多个本地磁盘;及Acquiring a pending access request from the server, the access request being used to access a virtual disk, the virtual disk corresponding to multiple local disks in the server; and
    根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘。Accessing the multiple local disks according to the configuration information of the multiple local disks and the access request.
  2. 如权利要求1所述的方法,其特征在于,所述的配置信息为所述多个本地磁盘构成独立冗余磁盘阵列RAID或纠错码EC组的配置信息。The method according to claim 1, wherein the configuration information is configuration information of a redundant independent disk array (RAID) or an error correction code EC group formed by the multiple local disks.
  3. 如权利要求1或2所述的方法,其特征在于,所述方法还包括:The method according to claim 1 or 2, wherein the method further comprises:
    从所述服务器中获取所述多个本地磁盘的配置信息。Obtain the configuration information of the multiple local disks from the server.
  4. 如权利要求1至3任意一项所述的方法,其特征在于,该方法还包括:The method according to any one of claims 1 to 3, wherein the method further comprises:
    所述访问请求为数据读取请求,所述数据读取请求用于请求从所述虚拟磁盘读取数据;The access request is a data read request, and the data read request is used to request to read data from the virtual disk;
    所述根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘,包括:The accessing the multiple local disks according to the configuration information of the multiple local disks and the access request includes:
    根据所述配置信息从所述多个本地磁盘中读取数据,并将所读取的数据发送至与所述服务器通过网卡相连的另一个服务器,所述数据读取请求由所述另一个服务器发送至所述服务器。Read data from the multiple local disks according to the configuration information, and send the read data to another server connected to the server through a network card, and the data read request is made by the other server Send to the server.
  5. 如权利要求1至3任意一项所述的方法,其特征在于,该方法还包括:The method according to any one of claims 1 to 3, wherein the method further comprises:
    所述访问请求为数据写入请求,所述数据写入请求用于写入数据至所述虚拟磁盘;The access request is a data write request, and the data write request is used to write data to the virtual disk;
    所述根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘,包括:The accessing the multiple local disks according to the configuration information of the multiple local disks and the access request includes:
    根据所述配置信息将所述数据写入请求中的数据写入所述多个本地磁盘中。Writing the data in the data write request to the multiple local disks according to the configuration information.
  6. 一种数据访问方法,应用于第一服务器,所述第一服务器与第二服务器通过网卡连接,其特征在于,所述方法包括:A data access method, applied to a first server, the first server and the second server are connected through a network card, characterized in that the method includes:
    生成虚拟磁盘,所述虚拟磁盘对应所述第一服务器中多个本地磁盘,并将所述虚拟磁盘设置为能够被所述第二服务器访问;Generating a virtual disk, the virtual disk corresponding to multiple local disks in the first server, and setting the virtual disk to be accessible by the second server;
    接收所述第二服务器的连接请求,将所述虚拟磁盘信息传输至所述第二服务器,使所述第二服务器根据所述虚拟磁盘信息访问所述虚拟磁盘。Receiving a connection request from the second server, and transmitting the virtual disk information to the second server, so that the second server accesses the virtual disk according to the virtual disk information.
  7. 如权利要求6所述的方法,其特征在于,配置所述多个本地磁盘为RAID组或者EC组。The method of claim 6, wherein the multiple local disks are configured as a RAID group or an EC group.
  8. 如权利要求6或7所述的方法,其特征在于,所述第一服务器与第二服务器之间通过基于网络的非易失性存储标准NOF协议进行通信,所述生成虚拟磁盘,包括:The method according to claim 6 or 7, wherein the first server and the second server communicate through a network-based non-volatile storage standard NOF protocol, and the generating a virtual disk includes:
    为所述多个本地磁盘生成非易失性存储标准NVMe子系统;Generating a non-volatile storage standard NVMe subsystem for the multiple local disks;
    生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将所述虚拟磁盘标识写入所述虚拟NVMe子系统;Generate a virtual NVMe subsystem, generate a virtual disk identifier, and write the virtual disk identifier into the virtual NVMe subsystem;
    将所述虚拟NVMe子系统与所述多个NVMe子系统关联。Associating the virtual NVMe subsystem with the multiple NVMe subsystems.
  9. 一种网卡,其特征在于,该网卡位于服务器中,所述网卡包括传输单元以及处理单元:A network card, characterized in that the network card is located in a server, and the network card includes a transmission unit and a processing unit:
    所述传输单元,用于从所述服务器中获取待处理的访问请求,所述访问请求用于访问虚拟磁盘,所述虚拟磁盘对应所述服务器中的多个本地磁盘;The transmission unit is configured to obtain a pending access request from the server, the access request is used to access a virtual disk, and the virtual disk corresponds to multiple local disks in the server;
    所述处理单元,用于根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘。The processing unit is configured to access the multiple local disks according to the configuration information of the multiple local disks and the access request.
  10. 如权利要求9所述的网卡,其特征在于,所述的配置信息为所述多个本地磁盘构成独立冗余磁盘阵列RAID或纠错码EC组的配置信息。The network card according to claim 9, wherein the configuration information is the configuration information of the redundant array of independent disks (RAID) or error correction code EC group formed by the multiple local disks.
  11. 如权利要求9或10所述的网卡,其特征在于,所述处理单元,还用于:The network card according to claim 9 or 10, wherein the processing unit is further configured to:
    从所述服务器中获取所述多个本地磁盘的配置信息。Obtain the configuration information of the multiple local disks from the server.
  12. 如权利要求9至11任意一项所述的网卡,其特征在于,所述访问请求为数据读取请求,所述数据读取请求用于请求从所述虚拟磁盘读取数据;The network card according to any one of claims 9 to 11, wherein the access request is a data read request, and the data read request is used to request to read data from the virtual disk;
    所述处理单元在根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘,具体用于:The processing unit is specifically configured to access the multiple local disks according to the configuration information of the multiple local disks and the access request:
    根据所述配置信息从所述多个本地磁盘中读取数据,并将所读取的数据发送至与所述服务器通过网卡相连的另一个服务器,所述数据读取请求由所述另一个服务器发送至所述服务器。Read data from the multiple local disks according to the configuration information, and send the read data to another server connected to the server through a network card, and the data read request is made by the other server Send to the server.
  13. 如权利要求9至11任意一项所述的网卡,其特征在于,所述访问请求为数据写入请求,所述数据写入请求用于写入数据至所述虚拟磁盘;The network card according to any one of claims 9 to 11, wherein the access request is a data write request, and the data write request is used to write data to the virtual disk;
    所述处理单元在根据所述多个本地磁盘的配置信息及所述访问请求访问所述多个本地磁盘,具体用于:The processing unit is specifically configured to access the multiple local disks according to the configuration information of the multiple local disks and the access request:
    根据所述配置信息将所述数据写入请求中的数据写入所述多个本地磁盘中。Writing the data in the data write request to the multiple local disks according to the configuration information.
  14. 一种第一服务器,所述第一服务器与第二服务器通过网卡连接,其特征在于,所述第一服务器包括创建单元和传输单元;A first server, wherein the first server and the second server are connected through a network card, wherein the first server includes a creation unit and a transmission unit;
    所述创建单元,用于生成虚拟磁盘,所述虚拟磁盘对应所述第一服务器中多个本地磁盘,并将所述虚拟磁盘设置为能够被所述第二服务器访问;The creating unit is configured to generate a virtual disk, the virtual disk corresponding to multiple local disks in the first server, and setting the virtual disk to be accessible by the second server;
    所述接收单元,用于接收所述第二服务器的连接请求,将所述虚拟磁盘信息传输至所述第二服务器,使所述第二服务器根据所述虚拟磁盘信息访问所述虚拟磁盘。The receiving unit is configured to 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.
  15. 如权利要求14所述的第一服务器,其特征在于,配置所述多个本地磁盘为RAID组或者EC组。The first server of claim 14, wherein the multiple local disks are configured as a RAID group or an EC group.
  16. 如权利要求14或15所述的第一服务器,其特征在于,所述第一服务器与第二服务器之间通过基于网络的非易失性存储标准NOF协议进行通信,所述创建单元,具体用于:The first server according to claim 14 or 15, wherein the first server and the second server communicate through a network-based non-volatile storage standard NOF protocol, and the creation unit specifically uses in:
    为所述多个本地磁盘生成NVMe子系统;Generating an NVMe subsystem for the multiple local disks;
    生成一个虚拟NVMe子系统,并生成一个虚拟磁盘标识,将所述虚拟磁盘标识写入所述虚拟NVMe子系统;Generate a virtual NVMe subsystem, generate a virtual disk identifier, and write the virtual disk identifier into the virtual NVMe subsystem;
    将所述虚拟NVMe子系统与所述多个NVMe子系统关联。Associating the virtual NVMe subsystem with the multiple NVMe subsystems.
  17. 一种网卡,其特征在于,包括存储器和处理器;所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求1~5任一所述的方法。A network card, characterized by comprising a memory and a processor; the memory stores program instructions, and the processor runs the program instructions to execute the method according to any one of claims 1 to 5.
  18. 一种服务器,其特征在于,包括存储器和处理器;所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求6~8任一所述的方法。A server, characterized by comprising a memory and a processor; the memory stores program instructions, and the processor runs the program instructions to execute the method according to any one of claims 6-8.
PCT/CN2020/097238 2019-06-24 2020-06-19 Data access method, network card and server WO2020259418A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2020259418A1 true WO2020259418A1 (en) 2020-12-30

Family

ID=73849879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/097238 WO2020259418A1 (en) 2019-06-24 2020-06-19 Data access method, network card and server

Country Status (2)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507464A (en) * 2021-07-06 2021-10-15 深圳市吉芯微半导体有限公司 Data access method, device, equipment and storage medium based on virtual equipment
CN114064135A (en) * 2021-11-12 2022-02-18 北京字节跳动网络技术有限公司 Method and device for starting server system, electronic equipment and storage medium
CN114285676A (en) * 2021-11-24 2022-04-05 中科驭数(北京)科技有限公司 Intelligent network card, network storage method and medium for intelligent network card
CN116540952A (en) * 2023-07-06 2023-08-04 苏州浪潮智能科技有限公司 Disk access method and device, storage medium and electronic equipment
CN117251118A (en) * 2023-11-16 2023-12-19 上海创景信息科技有限公司 Virtual NVMe simulation and integration supporting method and system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN117591450B (en) * 2024-01-17 2024-03-22 苏州元脑智能科技有限公司 Data processing system, method, equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082745A1 (en) * 2006-10-03 2008-04-03 Hitachi, Ltd. Storage system for virtualizing control memory
CN102084330A (en) * 2008-04-06 2011-06-01 弗森-艾奥公司 Apparatus, system, and method for efficient mapping of virtual and physical addresses
CN105827669A (en) * 2015-01-04 2016-08-03 中国移动通信集团江苏有限公司 Virtual storage method, virtual storage equipment and virtual storage system for terminals
US20180026940A1 (en) * 2016-07-25 2018-01-25 ColorTokens, Inc. Updating address mapping for local and network resources
CN108829340A (en) * 2018-05-03 2018-11-16 广州金山安全管理系统技术有限公司 storage processing method, device, storage medium and processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035862B (en) * 2009-09-30 2013-11-06 国际商业机器公司 Configuration node fault transfer method and system in SVC cluster
US9830234B2 (en) * 2013-08-26 2017-11-28 Vmware, Inc. Distributed transaction log
EP2983339B1 (en) * 2014-05-22 2017-08-23 Huawei Technologies Co. Ltd. Node interconnection apparatus and server system
CN105068836A (en) * 2015-08-06 2015-11-18 北京百度网讯科技有限公司 SAS (serial attached SCSI) network based remotely-shareable start-up system
CN107203480B (en) * 2016-03-17 2020-11-17 华为技术有限公司 Data prefetching method and device
US10803086B2 (en) * 2017-07-26 2020-10-13 Vmware, Inc. Reducing data amplification when resynchronizing components of an object replicated across different sites

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082745A1 (en) * 2006-10-03 2008-04-03 Hitachi, Ltd. Storage system for virtualizing control memory
CN102084330A (en) * 2008-04-06 2011-06-01 弗森-艾奥公司 Apparatus, system, and method for efficient mapping of virtual and physical addresses
CN105827669A (en) * 2015-01-04 2016-08-03 中国移动通信集团江苏有限公司 Virtual storage method, virtual storage equipment and virtual storage system for terminals
US20180026940A1 (en) * 2016-07-25 2018-01-25 ColorTokens, Inc. Updating address mapping for local and network resources
CN108829340A (en) * 2018-05-03 2018-11-16 广州金山安全管理系统技术有限公司 storage processing method, device, storage medium and processor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507464A (en) * 2021-07-06 2021-10-15 深圳市吉芯微半导体有限公司 Data access method, device, equipment and storage medium based on virtual equipment
CN113507464B (en) * 2021-07-06 2023-10-13 深圳市吉芯微半导体有限公司 Data access method, device, equipment and storage medium based on virtual equipment
CN114064135A (en) * 2021-11-12 2022-02-18 北京字节跳动网络技术有限公司 Method and device for starting server system, electronic equipment and storage medium
CN114064135B (en) * 2021-11-12 2024-01-30 抖音视界有限公司 Method and device for starting server system, electronic equipment and storage medium
CN114285676A (en) * 2021-11-24 2022-04-05 中科驭数(北京)科技有限公司 Intelligent network card, network storage method and medium for intelligent network card
CN114285676B (en) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 Intelligent network card, network storage method and medium of intelligent network card
CN116540952A (en) * 2023-07-06 2023-08-04 苏州浪潮智能科技有限公司 Disk access method and device, storage medium and electronic equipment
CN116540952B (en) * 2023-07-06 2024-01-09 苏州浪潮智能科技有限公司 Disk access method and device, storage medium and electronic equipment
CN117251118A (en) * 2023-11-16 2023-12-19 上海创景信息科技有限公司 Virtual NVMe simulation and integration supporting method and system
CN117251118B (en) * 2023-11-16 2024-02-13 上海创景信息科技有限公司 Virtual NVMe simulation and integration supporting method and system

Also Published As

Publication number Publication date
CN115344197A (en) 2022-11-15
CN112130748B (en) 2022-07-19
CN112130748A (en) 2020-12-25

Similar Documents

Publication Publication Date Title
WO2020259418A1 (en) Data access method, network card and server
US9678918B2 (en) Data processing system and data processing method
CN109445905B (en) Virtual machine data communication method and system and virtual machine configuration method and device
JP2019153304A (en) Acceleration module based on fpga for ssd, system, and method for operating the same
CN108701004A (en) A kind of system of data processing, method and corresponding intrument
US20140195634A1 (en) System and Method for Multiservice Input/Output
US20200201578A1 (en) Method and Apparatus for Transmitting Data Processing Request
WO2023098031A1 (en) Data access method and computing device
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
CN111654519B (en) Method and device for transmitting data processing requests
US20130117767A1 (en) Sas expander for communication between drivers
WO2017088342A1 (en) Service cutover method, storage control device and storage device
WO2021063160A1 (en) Solid state disk access method and storage device
US11606429B2 (en) Direct response to IO request in storage system having an intermediary target apparatus
US20160299856A1 (en) Memory appliance couplings and operations
WO2016101856A1 (en) Data access method and apparatus
WO2020134530A1 (en) Path aggregation method and access method, communication device, and storage medium
WO2023186143A1 (en) Data processing method, host, and related device
WO2018099241A1 (en) Disk array controller, and data processing method and device thereof
WO2023143618A1 (en) Method for reading data or method for writing data, and system related thereto
WO2023051248A1 (en) Data access system and method, and related device
WO2023030256A1 (en) I/o request processing method and apparatus, system, device, and storage medium
US11747999B1 (en) Automated non-disruptive migration of hosts to an authenticated storage array connection
WO2017020572A1 (en) Interrupt processing method, ioapic and computer system
WO2023273483A1 (en) Data processing system and method, and switch

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20831422

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20831422

Country of ref document: EP

Kind code of ref document: A1