Isomerism method of logic unit, electronic equipment, storage medium and product

By establishing a mapping relationship between heterogeneous logical units and access paths between storage systems, the RoCEV2 protocol is used to achieve compatibility and data transmission stability of heterogeneous storage systems, the problems of poor compatibility between heterogeneous storage systems and easy interruption of data migration are solved, and the utilization rate of storage resources is improved.

CN120491907AActive Publication Date: 2025-08-15INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202510971061.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-15
Publication Date
2025-08-15
Estimated Expiration
2045-07-15

AI Technical Summary

Technical Problem

In the prior art, heterogeneous storage systems have poor compatibility and data migration is prone to interruption, resulting in low storage resource utilization.

Method used

By sending discovery instructions to the second storage system, obtaining subsystem information, and creating storage device objects and port objects in the first storage system, establishing a target mapping relationship between heterogeneous logical units, logical units, and access paths, and using the RoCEV2 protocol to perform heterogeneity between storage systems to realize heterogeneity of logical units.

Benefits of technology

Improves the compatibility of the storage system, avoids the risk of interruption of data migration, improves throughput, and ensures the continuity of data migration through multi-port parallel transmission and path switching, improves the overall storage resource utilization rate, and reduces costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120491907A_ABST
    Figure CN120491907A_ABST
Patent Text Reader

Abstract

The invention discloses a logic unit isomerism method, electronic equipment, a storage medium and a product, and relates to the technical field of storage, the method comprises the following steps: sending a discovery instruction to a second storage system to obtain subsystem information; creating a storage device object corresponding to the subsystem in the first storage system according to the subsystem identifier, and creating a port object corresponding to the subsystem in the first storage system according to the network port address; creating a heterogeneous logic unit corresponding to each storage device object in the first storage system according to the command space of the logic unit under each subsystem; determining an access path between the storage device object and each subsystem according to the corresponding relationship among the subsystems, the storage device object and the port object; and establishing a target mapping relationship among the heterogeneous logic units, the logic units and the access paths. According to the embodiment of the invention, the problem of low utilization rate of storage resources caused by poor compatibility between heterogeneous storage systems and easy interruption of data migration is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of storage technology, and in particular to a heterogeneous method for logic units, electronic equipment, storage medium, and products. Background Art

[0002] With the acceleration of enterprise digital transformation and the explosive growth of data, single-architecture storage systems are no longer able to meet the diverse needs of complex business scenarios, leading to the trend toward heterogeneous storage systems. Mapping the logical unit (Virtual Disk, VDISK) of one storage system to a heterogeneous logical unit (Managed Disk, MDISK) of another storage system is a key technology for achieving heterogeneous storage resources.

[0003] Heterogeneous storage systems typically utilize Fibre Channel (FC) networks and the Small Computer System Interface (SCSI) protocol over FC links to migrate data from an old storage system to a new one, taking over the old system's data or virtualizing the old system's logical units into a new one. This heterogeneous approach suffers from poor compatibility between heterogeneous storage systems and is prone to data migration interruptions, resulting in low storage resource utilization. Summary of the Invention

[0004] The present application provides a heterogeneous method for logical units, an electronic device, a storage medium and a product, so as to at least solve the problem in the related art that heterogeneous storage systems have poor compatibility and data migration is easily interrupted, thereby resulting in low storage resource utilization.

[0005] The present application provides a heterogeneous method for logical units, which is applied to a first storage system, the method comprising: sending a discovery instruction to a second storage system, the discovery instruction being used to instruct a controller in the second storage system to discover subsystems in the second storage system; receiving subsystem information returned by the controller, the subsystem information comprising a subsystem identifier of at least one subsystem discovered in the second storage system and at least one network port address provided by each subsystem; creating a storage device object corresponding to each subsystem in the first storage system based on the subsystem identifier, and creating at least one port object corresponding to each subsystem in the first storage system based on the at least one network port address; obtaining a command space of the logical unit under each subsystem, and creating a heterogeneous logical unit corresponding to each storage device object in the first storage system based on the command space; determining an access path between the storage device object and each subsystem based on a correspondence between the subsystem, the storage device object, and the port object; and establishing a target mapping relationship between heterogeneous logical units, the logical units, and the access path, the target mapping relationship being used to determine a data transmission path between the heterogeneous logical units and the logical units.

[0006] The present application also provides a heterogeneous device of a logical unit, which includes: a transceiver module for sending a discovery instruction to a second storage system, the discovery instruction is used to instruct a controller in the second storage system to discover a subsystem in the second storage system; and receiving subsystem information returned by the controller, the subsystem information including a subsystem identifier of at least one subsystem discovered in the second storage system and at least one network port address provided by each subsystem.

[0007] The processing module is configured to create, in the first storage system, a storage device object corresponding to each subsystem based on a subsystem identifier, and to create, in the first storage system, at least one port object corresponding to each subsystem based on at least one network port address; obtain a command space for a logical unit under each subsystem, and, based on the command space, create a heterogeneous logical unit corresponding to each storage device object in the first storage system; determine an access path between the storage device object and each subsystem based on a correspondence between the subsystem, the storage device object, and the port object; and establish a target mapping relationship among the heterogeneous logical units, the logical units, and the access paths, wherein the target mapping relationship is used to determine a data transmission path between the heterogeneous logical units and the logical units.

[0008] The present application also provides an electronic device, comprising: a memory for storing a computer program; and a processor for implementing the steps of any of the above-mentioned heterogeneous methods of logic units when executing the computer program.

[0009] The present application also provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of any of the above-mentioned heterogeneous methods of logic units are implemented.

[0010] The present application also provides a computer program product, including a computer program, which implements the steps of any of the above-mentioned heterogeneous methods of logic units when the computer program is executed by a processor.

[0011] Through this application, since the controller of the second storage system can be triggered to automatically scan the subsystems through discovery instructions, subsystem information can be obtained without manual intervention, so that storage systems of different manufacturers and different architectures can be uniformly identified in the first storage system, thereby improving the compatibility of the storage system. In addition, the mapping of command space and heterogeneous logical units enables upper-level applications (such as databases) to access storage resources across storage systems through a unified interface, avoiding the risk of data migration interruption due to physical device changes; and since multiple port objects are created according to the subsystem port address, combined with the access path determination mechanism, data can be transmitted in parallel through multiple ports, improving throughput, and when a port or link fails, it can switch to other available access paths to ensure the continuity of data migration. Through the mapping of logical units and heterogeneous logical units, the storage resources of the second storage system can be flexibly allocated, improving the overall storage resource utilization and reducing costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0013] Figure 1 A topological diagram of a heterogeneous system of logic units provided in an embodiment of the present application; Figure 2 A schematic diagram of another heterogeneous system of logic units provided in an embodiment of the present application; Figure 3 A flowchart of a heterogeneous method for logic units provided in an embodiment of the present application; Figure 4 A flowchart of another logic unit heterogeneity method provided in an embodiment of the present application; Figure 5 A schematic diagram of creating a first management queue is provided for an embodiment of the present application; Figure 6 A schematic diagram of a class read process provided in an embodiment of the present application; Figure 7A schematic diagram of the class writing process provided in an embodiment of the present application; Figure 8 A structural block diagram of a heterogeneous device of a logic unit provided in an embodiment of the present application; Figure 9 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0014] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0015] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0016] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0017] The embodiments of the present application are applied to scenarios where storage systems are heterogeneous.

[0018] In related technologies, the heterogeneous storage system structure based on the SCSI protocol of the FC link has problems such as poor compatibility between heterogeneous storage systems, easy interruption of data movement, limited transmission distance, and high cost, which in turn leads to low storage resource utilization.

[0019] In order to solve the above technical problems, an embodiment of the present application provides a heterogeneous method for logical units. The method is based on the Remote Direct Memory Access (RDMA over Converged Ethernet version 2, RoCEV2) protocol of Ethernet, obtains subsystem information of the second storage system, and creates storage device objects, port objects, and heterogeneous logical units in the first storage system based on the subsystem information, and maintains the mapping relationship between storage device objects and subsystems, logical units and heterogeneous logical units, and port objects and connection information to achieve heterogeneity of logical units, solve the problems of poor compatibility, limited transmission distance, and high cost between heterogeneous storage systems, and improve low storage resource utilization.

[0020] Below is Figure 1 The method provided in the embodiment of the present application is described by taking the heterogeneous system of the logic unit shown as an example. Figure 1 It is only a schematic diagram and does not constitute a limitation on the applicable scenarios of the technical solution provided in this application.

[0021] like Figure 1 As shown, Figure 1 A topological diagram of a heterogeneous system of logic units provided in an embodiment of the present application. Figure 1 In the example, the heterogeneous system 100 of the logical unit may include a first storage system 101 , a second storage system 102 , and an Ethernet switch 103 .

[0022] The first storage system 101 or the second storage system 102 can be any storage device with computing and communication capabilities. For example, the first storage system 101 or the second storage system 102 can be a solid-state drive, a mechanical hard drive, or the like.

[0023] The first storage system 101 or the second storage system 102 includes a multi-layered architecture, which includes a command layer, an object management layer, a Non-Volatile Memory Express over Fabrics (NVMF) layer (also called a protocol layer), a driver, and a system layer.

[0024] Ethernet switch 103 can be a network device based on Ethernet technology. It is used to connect multiple devices (such as computers, servers, cameras, storage devices, etc.) within a local area network (LAN) to achieve efficient data forwarding and communication. The first storage system 101 and the second storage system are connected via the Ethernet switch and exchange commands and transmit data based on the RoCEv2 protocol.

[0025] It can be understood that the embodiment of the present application is based on the RoCEV2 protocol to implement a heterogeneous mode between storage systems. Since the RoCEV2 protocol runs on a standard Ethernet architecture, follows standard protocols, and is compatible with mainstream server and switch hardware, it does not require dedicated FC network equipment, thereby reducing the hardware barriers of heterogeneous environments. In addition, compared with the storage heterogeneous mode based on the FC network, which requires a separate deployment of the FC network and the high cost of the required cables, the storage heterogeneous mode based on the RoCEV2 protocol utilizes the existing Ethernet infrastructure to save costs. In addition, the data transmission distance of the storage heterogeneous mode based on the FC network is limited, while the storage heterogeneous mode based on the RoCEV2 protocol can support long-distance data transmission through optical fiber or copper cable.

[0026] Figure 1The heterogeneous system 100 of logic units shown is for example only and is not intended to limit the technical solutions of this application. Those skilled in the art should understand that in a specific implementation, the heterogeneous system 100 of logic units may also include other devices without limitation.

[0027] Optional, such as Figure 2 As shown, Figure 2 A schematic diagram of another heterogeneous system of logic units provided in an embodiment of the present application; Figure 2 In this example, the first storage system acts as the initiator and includes multiple heterogeneous logical units. The second storage system acts as the target and includes multiple subsystems. Each subsystem corresponds to a logical unit, and each logical unit is created based on a storage pool.

[0028] The embodiment of the present application provides a method for detecting a server power supply, which is applied to the first storage system 101. Figure 3 As shown, Figure 3 A flow chart of a heterogeneous method for a logic unit provided in an embodiment of the present application is provided. The heterogeneous method for a logic unit includes the following steps: S301: Send a discovery instruction to the second storage system.

[0029] The discovery instruction is used to instruct the controller in the second storage system to discover the subsystem in the second storage system. The discovery instruction may be a get log page instruction.

[0030] Illustratively, the NVMF layer of the first storage system sends a get log page instruction to the second storage system.

[0031] S302: Receive subsystem information returned by the controller.

[0032] The subsystem information includes a subsystem identifier of at least one subsystem found in the second storage system and at least one network port address provided by each subsystem.

[0033] Each subsystem has a subsystem ID. A subsystem ID is also called a subsystem NQN. A network port address is also called a port ID. The logical unit corresponding to each subsystem is a VDISK.

[0034] In one example, the controller receives a discovery instruction, obtains subsystem information based on the discovery instruction, and returns the subsystem information to the first storage system. The NVMF layer of the first storage system receives the subsystem information returned by the controller.

[0035] S303: Create a storage device object corresponding to each subsystem in the first storage system according to the subsystem identifier, and create at least one port object corresponding to each subsystem in the first storage system according to the at least one network port address.

[0036] Storage device objects are also called Device objects, heterogeneous logical units are also called MDISKs, and port objects are also called PORT objects.

[0037] It can be understood that the object management layer of the first storage system maps and creates a local Device object based on the subsystem identifier in the subsystem information of the second storage system; and maps and creates a local MDISK based on the namespace in the subsystem information of the second storage system. Figure 2 At least one port object corresponding to each local subsystem is mapped to the identifiers of port1 and port2 in the first storage system to serve as the port identifier of the first storage system.

[0038] S304: Obtain the command space of the logical unit under each subsystem, and create a heterogeneous logical unit corresponding to each storage device object in the first storage system according to the command space.

[0039] Namespace is also called Namespace.

[0040] S305 : Determine an access path between the storage device object and each subsystem according to the correspondence between the subsystem, the storage device object, and the port object.

[0041] The access path is that the storage device object accesses the subsystem via the port object.

[0042] Exemplarily, the object management layer of the first storage system establishes a correspondence between the subsystem, storage device objects, and port objects based on a first correspondence between the subsystem and the storage device object, and a second correspondence between the subsystem and at least one port object; and determines an access path between the storage device object and the subsystem based on the correspondence between the subsystem, storage device objects, and port objects.

[0043] Optionally, after determining the access path between the storage device object and each subsystem, the first storage system creates a connection object corresponding to each access path according to the subsystem identifier of at least one subsystem and at least one network port address provided by each subsystem.

[0044] Among them, the connection object (LOGIN object) is used to continuously access the handle of each access path.

[0045] S306: Establish target mapping relationships among heterogeneous logical units, logical units, and access paths.

[0046] The target mapping relationship is used to determine the data transmission path between heterogeneous logical units and logical units.

[0047] It is understandable that the storage device object can determine the access path for accessing the subsystem based on the port object, and further determine the access path for the heterogeneous logical unit to access the logical unit.

[0048] For example, when the MDISK of the first storage system accesses the VDISK (for example, the MDISK of the first storage system sends a data transfer request to the VDISK), the NVMF layer can first determine the device object where the MDISK is located based on the namespace corresponding to the MDISK, query at least one corresponding port object based on the device object, and then determine at least one available port. The MDISK can then send the data transfer request to the VDISK based on any of the at least one available port.

[0049] In one example, there are multiple access paths between a first logical unit and a first heterogeneous logical unit; among the multiple access paths, the bandwidth occupancy rate of each access path is determined; the access path with the smallest bandwidth occupancy rate is used as the target access path, and the first logical unit and the first heterogeneous logical unit exchange data based on the access path.

[0050] As can be understood, selecting the access path with the lowest bandwidth utilization as the target access path can reduce the output transmission delay between the first logical unit and the first heterogeneous logical unit, thereby improving throughput. When exchanging data between the first logical unit and the first heterogeneous logical unit, if a high-occupancy path is selected, resource contention may occur with other components using the same path. Selecting a low-occupancy path, however, can reduce this contention and ensure stable and smooth data exchange.

[0051] based on Figure 3 The method shown can send a discovery instruction to the second storage system; receive subsystem information returned by the controller; create a storage device object corresponding to each subsystem in the first storage system based on the subsystem identifier, create a heterogeneous logical unit corresponding to each storage device object in the first storage system based on the command space, and create at least one port object corresponding to each subsystem in the first storage system based on at least one network port address; determine the access path between the storage device object and each subsystem based on the correspondence between the subsystem, the storage device object and the port object; and establish a target mapping relationship between the heterogeneous logical units, the logical units and the access paths.

[0052] Since the controller of the second storage system can be triggered to automatically scan the subsystems through discovery instructions, subsystem information can be obtained without manual intervention, allowing storage systems from different manufacturers and with different architectures to be uniformly identified in the first storage system, improving the compatibility of the storage system. In addition, the mapping of command spaces to heterogeneous logical units enables upper-level applications (such as databases) to access storage resources across storage systems through a unified interface, avoiding the risk of data migration interruptions due to physical device changes. Furthermore, since multiple port objects are created based on the subsystem port addresses and combined with the access path determination mechanism, data can be transmitted in parallel through multiple ports, improving throughput. In the event of a port or link failure, it can switch to other available access paths to ensure the continuity of data migration. By mapping logical units to heterogeneous logical units, the storage resources of the second storage system can be flexibly allocated, improving overall storage resource utilization and reducing costs.

[0053] In an optional example, based on the above embodiment, as described above, a discovery instruction is sent to the second storage system, as follows: Figure 4 As shown, Figure 4 A flow chart of another logic unit heterogeneity method provided in an embodiment of the present application includes: S401: Determine whether the controller has a subsystem discovery function.

[0054] The controller has a subsystem discovery function, which means that the controller can discover at least one subsystem included in the second storage system.

[0055] In some optional implementations, the NVMF layer of the first storage system sends a controller query command to the second storage system; receives controller information returned by the second storage system; detects whether the controller information includes a preset identifier; if the controller information includes the preset identifier, determines that the controller has a subsystem discovery function.

[0056] The controller query command is the identify controller instruction.

[0057] The preset flag is used to indicate that the controller has subsystem discovery capability.

[0058] In one example, before the NVMF layer of the first storage system sends a controller query command to the second storage system, it can also send a version query command and a capability query command to the second storage system based on the first management queue; if the preset firmware version information is consistent with the actual firmware version information and the version support information of the second storage system supports the Ethernet-based remote direct memory access protocol, a controller enable instruction is sent to the second storage system.

[0059] The controller enable control command is used to switch the controller of the second storage system from a standby state to a working state.

[0060] The version query command is used to query the actual firmware version information of the second storage system.

[0061] The capability query command is used to query the version support information of the second storage system to see whether it supports the Remote Direct Memory Access Protocol over Ethernet (RoCEV2 protocol).

[0062] The first management queue is used for command interaction between the first storage system and the second storage system.

[0063] It can be understood that data interaction or transmission is performed between the first storage system and the second storage system based on the RoCEV2 protocol.

[0064] S402: If the controller has a subsystem discovery function, a discovery instruction is sent to the controller through the first management queue.

[0065] In some optional embodiments, if the controller has a subsystem discovery function, the driver and system layer of the first storage system convert the discovery instructions into data packets in a preset protocol format; and send the data packets in the preset protocol format to the second storage system through the first management queue and the Ethernet switch.

[0066] Among them, the preset protocol format is the Remote Direct Memory Access Protocol based on Ethernet (RoCEV2 protocol).

[0067] Optionally, before the NVMF layer of the first storage system sends a discovery instruction to the second storage system, after determining that the first storage system has permission to access the second storage system, it sends a first creation request to the second storage system; receives a first confirmation instruction and a first read instruction returned by the second storage system; sends a first response instruction to the first read instruction to the second storage system; and receives a second confirmation instruction sent by the second storage system.

[0068] The second confirmation instruction is used to indicate that the creation of the first management queue is completed.

[0069] The first creation request is used to request the second storage system to create a first management queue.

[0070] The first confirmation instruction is used to indicate that the first creation request is received successfully.

[0071] The first read instruction is used to request to read queue information of the first management queue from the first storage system.

[0072] The first response instruction is used to instruct the second storage system to read queue information from the first storage system and create a first management queue based on the queue information.

[0073] For example, Figure 5 As shown, Figure 5 A schematic diagram of creating a first management queue is provided for an embodiment of the present application; Figure 5 In this process, the NVMF layer of the first storage system initiates connection requests layer by layer. After receiving connection responses, it then initiates specific NVMF instruction packets (for example, a first create request), which are passed layer by layer to the NVMF layer of the second storage system. The driver and system layers of the second storage system return an ACK (such as a first acknowledgement instruction). After receiving the first create request, the NVMF layer of the second storage system needs to read the DATA data (such as queue information) sent in the connection request. Therefore, the NVMF layer of the second storage system sends a first read instruction (RDMA_read request) to the first storage system. The first storage system responds to the read request and sends a first response instruction to the first read instruction to the second storage system. Because RDMA technology is used, no CPU is required. After the second storage system reads the queue information from the first storage system and successfully creates the first management queue, it sends a second acknowledgement instruction to the first storage system. Upon receiving the acknowledgement instruction, the first storage system sends an acknowledgement instruction to indicate receipt of the creation request. At this point, the first management queue is successfully created.

[0074] It is understandable that in addition to the first management queue, an input and output queue (I / O queue) can also be created. The creation process is the same as that of the first management queue and will not be repeated here.

[0075] In some optional embodiments, after determining that the first storage system has permission to access the second storage system, and before sending the first creation request to the second storage system, the first storage system may also obtain a connection request for establishing a connection with the second storage system; verify whether the address information, protocol set type information, identification information, and address type information all meet preset requirements; if the address information, protocol set type information, identification information, and address type information meet the preset requirements, it is determined that the first storage system has permission to access the second storage system.

[0076] The connection request is used to request access to the second storage system and includes address information, protocol set type information, identification information, address type information, and preset firmware version information of the second storage system.

[0077] The protocol set type information may be a UDP protocol set type or a TCP protocol set type.

[0078] The identification information may be nvmf discovery nqn.

[0079] The address type information can be an IPv4 type or an IPv6 type.

[0080] Furthermore, after the first storage system and the second storage system are heterogeneous, the first storage system includes a first heterogeneous logical unit; the second storage system includes a first logical unit corresponding to the first heterogeneous logical unit, and the first heterogeneous logical unit and the first logical unit can perform data transmission, as shown below: Scenario 1: The first heterogeneous logical unit reads data from the first logical unit, also known as a read-like process, such as Figure 6 As shown, Figure 6 A schematic diagram of the class read process provided in an embodiment of the present application.

[0081] When the first heterogeneous logical unit reads data from the first logical unit, the first heterogeneous logical unit sends a data read request to the first logical unit; receives a third confirmation instruction and a first write instruction from the first logical unit; when the first heterogeneous logical unit receives the first amount of data, the first heterogeneous logical unit sends a fourth confirmation instruction to the first logical unit; and receives a fifth confirmation instruction sent by the first logical unit.

[0082] The data read request is used to request to move a first amount of data from the first logical unit to the first heterogeneous logical unit.

[0083] The third confirmation instruction is used to indicate that the data read request is received successfully.

[0084] The first write instruction is used to move a first amount of data to a first heterogeneous logical unit.

[0085] The fourth confirmation instruction is used to indicate that reception of the first amount of data is complete.

[0086] The fifth confirmation instruction is used to indicate that the data read request is completed.

[0087] As can be understood, when the NVMF layer of the first storage system reads data from the first logical unit, it sends a data read request, which is then passed layer by layer to the NVMF layer of the second storage system. The NVMF layer of the second storage system then sends a third confirmation instruction and a first write instruction (RDMA_write). When the first heterogeneous logical unit receives the first amount of data, it sends a fourth confirmation instruction to the first logical unit. The NVMF layer of the second storage system then sends a fifth confirmation instruction. Upon receiving the fifth confirmation instruction from the first logical unit, the NVMF layer of the second storage system deems the current data read request complete and then sends a confirmation instruction.

[0088] Scenario 2: The first heterogeneous logical unit reads data from the first logical unit, also known as a write-like process, such as Figure 7 As shown, Figure 7 A schematic diagram of the class writing process provided in an embodiment of the present application.

[0089] When the first heterogeneous logical unit writes data to the first logical unit, the first heterogeneous logical unit sends a data write request to the first logical unit; receives a sixth confirmation instruction and a second read instruction from the first logical unit; sends a second response instruction to the second read instruction to the first logical unit; and receives a seventh confirmation instruction sent by the first logical unit when the first logical unit receives the second amount of data.

[0090] The data write request is used to request to move a second amount of data from the first heterogeneous logical unit to the first logical unit.

[0091] The sixth confirmation instruction is used to indicate that the data write request is received successfully.

[0092] The second read instruction is used to instruct to move a second amount of data to the first logical unit.

[0093] The second response instruction is used to write a second amount of data into the first logical unit.

[0094] The seventh confirmation instruction is used to indicate that the data write request is completed.

[0095] As can be understood, when writing data to the first logical unit, the NVMF layer of the first storage system sends a data write request to the first logical unit, which is then passed layer by layer to the NVMF layer of the second storage system. The NVMF layer of the second storage system then sends a sixth confirmation instruction and a second read instruction. Upon receiving the second amount of data, the first logical unit sends a write completion instruction. Upon receiving this instruction, the first logical unit considers the current write request complete and sends a seventh confirmation instruction. The NVMF layer of the first storage system (the first heterogeneous logical unit) then receives the seventh confirmation instruction sent by the first logical unit.

[0096] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0097] The embodiment of the present application also provides a heterogeneous device of a logic unit, such as Figure 8 As shown, Figure 8 This is a block diagram of a heterogeneous device of a logic unit provided in an embodiment of the present application; the heterogeneous device of the logic unit includes: The transceiver module 801 is configured to send a discovery instruction to the second storage system, the discovery instruction being used to instruct a controller in the second storage system to discover subsystems in the second storage system; and receive subsystem information returned by the controller, the subsystem information including a subsystem identifier of at least one subsystem discovered in the second storage system and at least one network port address provided by each subsystem. Processing module 802 is used to create a storage device object corresponding to each subsystem in the first storage system based on the subsystem identifier, and to create at least one port object corresponding to each subsystem in the first storage system based on at least one network port address; obtain the command space of the logical unit under each subsystem, and create a heterogeneous logical unit corresponding to each storage device object in the first storage system based on the command space; determine the access path between the storage device object and each subsystem based on the correspondence between the subsystem, the storage device object, and the port object; and establish a target mapping relationship between the heterogeneous logical unit, the logical unit, and the access path, where the target mapping relationship is used to determine the data transmission path between the heterogeneous logical unit and the logical unit.

[0098] In some optional embodiments, the transceiver module 801 is specifically used to determine whether the controller has a subsystem discovery function; if the controller has a subsystem discovery function, a discovery instruction is sent to the controller through the first management queue, and the first management queue is used for instruction interaction between the first storage system and the second storage system.

[0099] In some optional embodiments, the transceiver module 801 is further specifically used to convert the discovery instruction into a data packet in a preset protocol format if the controller has a subsystem discovery function, and the preset protocol format is a remote direct memory access protocol based on Ethernet; and send the data packet in the preset protocol format to the second storage system through the first management queue and the Ethernet switch.

[0100] In some optional embodiments, the transceiver module 801 is further used to send a first creation request to the second storage system after determining that the first storage system has permission to access the second storage system, the first creation request being used to request the second storage system to create a first management queue; receive a first confirmation instruction and a first read instruction returned by the second storage system, the first confirmation instruction being used to indicate that the first creation request has been received, and the first read instruction being used to request to read queue information of the first management queue from the first storage system; send a first response instruction to the first read instruction to the second storage system, the first response instruction being used to instruct the second storage system to read queue information from the first storage system and create a first management queue based on the queue information; receive a second confirmation instruction sent by the second storage system, the second confirmation instruction being used to indicate that the creation of the first management queue is complete.

[0101] In some optional embodiments, after determining that the first storage system has permission to access the second storage system, before sending the first creation request to the second storage system, the processing module 802 is further used to obtain a connection request for establishing a connection with the second storage system, the connection request is used to request access to the second storage system, and the connection request includes the address information, protocol set type information, identification information and address type information of the second storage system; verify whether the address information, protocol set type information, identification information and address type information all meet the preset requirements; if the address information, protocol set type information, identification information and address type information meet the preset requirements, it is determined that the first storage system has permission to access the second storage system.

[0102] In some optional embodiments, the transceiver module 801 is further specifically used to send a controller query command to the second storage system; receive controller information returned by the second storage system; detect whether the controller information includes a preset identifier; if the controller information includes a preset identifier, determine that the controller has a subsystem discovery function.

[0103] In some optional embodiments, the connection request also includes preset firmware version information of the second storage system; before sending the controller query command to the second storage system, the transceiver module 801 is further specifically used to send a version query command and a capability query command to the second storage system based on the first management queue, the version query command is used to query the actual firmware version information of the second storage system, and the capability query command is used to query whether the version support information of the second storage system supports the Ethernet-based remote direct memory access protocol; if the preset firmware version information is consistent with the actual firmware version information and the version support information of the second storage system supports the Ethernet-based remote direct memory access protocol, a controller enable instruction is sent to the second storage system, and the controller enable control command is used to switch the controller of the second storage system from standby state to working state.

[0104] In some optional embodiments, the first storage system includes a first heterogeneous logical unit; the second storage system includes a first logical unit corresponding to the first heterogeneous logical unit; the transceiver module 801 is further configured to, when the first heterogeneous logical unit reads data from the first logical unit, send a data read request to the first logical unit, where the data read request is used to request the transfer of a first amount of data from the first logical unit to the first heterogeneous logical unit; receive a third confirmation instruction and a first write instruction from the first logical unit, where the third confirmation instruction is used to indicate completion of receipt of the data read request, and the first write instruction is used to transfer the first amount of data to the first heterogeneous logical unit; when the first heterogeneous logical unit receives the first amount of data, send a fourth confirmation instruction to the first logical unit, where the fourth confirmation instruction is used to indicate completion of receipt of the first amount of data; and receive a fifth confirmation instruction sent by the first logical unit, where the fifth confirmation instruction is used to indicate completion of execution of the data read request.

[0105] In some optional embodiments, the transceiver module 801 is further used to send a data write request to the first logical unit when the first heterogeneous logical unit writes data in the first logical unit, where the data write request is used to request to move a second amount of data from the first heterogeneous logical unit to the first logical unit; receive a sixth confirmation instruction and a second read instruction from the first logical unit, where the sixth confirmation instruction is used to indicate that the data write request has been received, and the second read instruction is used to indicate that the second amount of data is moved to the first logical unit; send a second response instruction to the second read instruction to the first logical unit, where the second response instruction is used to write the second amount of data into the first logical unit; and receive a seventh confirmation instruction sent by the first logical unit when the first logical unit receives the second amount of data, where the seventh confirmation instruction is used to indicate that the data write request has been executed.

[0106] In some optional embodiments, there are multiple access paths between the first logical unit and the first heterogeneous logical unit; the processing module 802 is further used to determine the bandwidth occupancy of each access path among the multiple access paths; use the access path with the smallest bandwidth occupancy as the target access path, and enable the first logical unit and the first heterogeneous logical unit to exchange data based on the access paths.

[0107] In some optional embodiments, the processing module 802 is further specifically used to establish a correspondence between the subsystem, the storage device object, and the port object based on a first correspondence between the subsystem and the storage device object, and a second correspondence between the subsystem and at least one port object; and determine an access path between the storage device object and the subsystem based on the correspondence between the subsystem, the storage device object, and the port object, where the access path is for the storage device object to access the subsystem via the port object.

[0108] In some optional embodiments, after determining the access path between the storage device object and each subsystem, the processing module 802 is further specifically used to create a connection object corresponding to each access path based on the subsystem identifier of at least one subsystem and at least one network port address provided by each subsystem, and the connection object is used to continuously access the handle of each access path.

[0109] For the description of the features in the embodiments corresponding to the heterogeneous device of the logic unit, please refer to the relevant description of the embodiments corresponding to the heterogeneous method of the logic unit, which will not be repeated here.

[0110] The embodiment of the present application also provides an electronic device, such as Figure 9 As shown, Figure 9The hardware structure diagram of an electronic device provided in an embodiment of the present application is shown. The electronic device includes a processor 10 and a memory 20, wherein the memory 20 stores a computer program, and the processor 10 is configured to run the computer program to perform the steps of any of the above-mentioned heterogeneous method embodiments of the logic unit.

[0111] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above-mentioned heterogeneous method embodiments of the logic unit when running.

[0112] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.

[0113] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any of the above-mentioned heterogeneous method embodiments of the logic unit are implemented.

[0114] An embodiment of the present application also provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in any of the above-mentioned heterogeneous method embodiments of the logic unit are implemented.

[0115] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0116] The above is a detailed introduction to the heterogeneous method, electronic device, storage medium and product of a logic unit provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core ideas of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.

Claims

1. A heterogeneous method for logic units, characterized in that: Applied to a first storage system, the method includes: Sending a discovery instruction to the second storage system, wherein the discovery instruction is used to instruct a controller in the second storage system to discover a subsystem in the second storage system; receiving subsystem information returned by the controller, the subsystem information including a subsystem identifier of at least one subsystem found in the second storage system and at least one network port address provided by each subsystem; Creating, in the first storage system, a storage device object corresponding to each of the subsystems according to the subsystem identifier, and creating, in the first storage system, at least one port object corresponding to each of the subsystems according to at least one of the network port addresses; Obtaining a command space of a logical unit under each of the subsystems, and creating a heterogeneous logical unit corresponding to each of the storage device objects in the first storage system according to the command space; determining an access path between the storage device object and each of the subsystems according to a correspondence between the subsystems, the storage device objects, and the port objects; A target mapping relationship is established between the heterogeneous logical unit, the logical unit, and the access path, where the target mapping relationship is used to determine a data transmission path between the heterogeneous logical unit and the logical unit.

2. The method according to claim 1, characterized in that The sending a discovery instruction to the second storage system includes: Determining whether the controller has a subsystem discovery function; If the controller has the subsystem discovery function, the discovery instruction is sent to the controller through a first management queue, where the first management queue is used for instruction exchange between the first storage system and the second storage system.

3. The method according to claim 2, characterized in that If the controller has a subsystem discovery function, sending the discovery instruction to the controller through the first management queue includes: If the controller has the subsystem discovery function, converting the discovery instruction into a data packet in a preset protocol format, the preset protocol format is a remote direct memory access protocol based on Ethernet; The data packet in the preset protocol format is sent to the second storage system through the first management queue and the Ethernet switch.

4. The method according to claim 3, characterized in that Before sending the discovery instruction to the second storage system, the method further includes: After determining that the first storage system has permission to access the second storage system, sending a first creation request to the second storage system, where the first creation request is used to request the second storage system to create the first management queue; receiving a first confirmation instruction and a first read instruction returned by the second storage system, wherein the first confirmation instruction is used to indicate that the first creation request has been received, and the first read instruction is used to request to read queue information of the first management queue from the first storage system; Sending a first response instruction to the first read instruction to the second storage system, where the first response instruction is used to instruct the second storage system to read the queue information from the first storage system and create the first management queue based on the queue information; A second confirmation instruction sent by the second storage system is received, where the second confirmation instruction is used to indicate that creation of the first management queue is complete.

5. The method according to claim 4, characterized in that After determining that the first storage system has permission to access the second storage system and before sending the first creation request to the second storage system, the method further includes: Obtaining a connection request for establishing a connection with the second storage system, the connection request being used to request access to the second storage system, the connection request including address information, protocol set type information, identification information, and address type information of the second storage system; Verifying whether the address information, the protocol set type information, the identification information, and the address type information all meet preset requirements; If the address information, the protocol set type information, the identification information, and the address type information meet the preset requirements, it is determined that the first storage system has permission to access the second storage system.

6. The method according to claim 5, characterized in that The determining whether the controller has a subsystem discovery function includes: Sending a controller query command to the second storage system; receiving controller information returned by the second storage system; detecting whether the controller information includes a preset identifier; If the controller information includes the preset identifier, it is determined that the controller has the subsystem discovery function.

7. The method according to claim 6, characterized in that The connection request further includes preset firmware version information of the second storage system; Before sending the controller query command to the second storage system, the method further includes: Based on the first management queue, send a version query command and a capability query command to the second storage system, wherein the version query command is used to query the actual firmware version information of the second storage system, and the capability query command is used to query the version support information of the second storage system to see whether it supports the Ethernet-based remote direct memory access protocol; If the preset firmware version information is consistent with the actual firmware version information and the version support information of the second storage system supports the Ethernet-based remote direct memory access protocol, a controller enable instruction is sent to the second storage system, and the controller enable control command is used to switch the controller of the second storage system from standby state to working state.

8. The method according to any one of claims 1 to 7, characterized in that The first storage system includes a first heterogeneous logical unit; the second storage system includes a first logical unit corresponding to the first heterogeneous logical unit; and the method further includes: When the first heterogeneous logical unit reads data from the first logical unit, sending a data read request to the first logical unit, wherein the data read request is used to request to move a first amount of data from the first logical unit to the first heterogeneous logical unit; receiving a third confirmation instruction and a first write instruction from the first logical unit, wherein the third confirmation instruction is used to indicate that the data read request has been received, and the first write instruction is used to move the first amount of data to the first heterogeneous logical unit; When the first heterogeneous logic unit receives the first amount of data, sending a fourth confirmation instruction to the first logic unit, where the fourth confirmation instruction is used to indicate that reception of the first amount of data is complete; A fifth confirmation instruction sent by the first logic unit is received, where the fifth confirmation instruction is used to indicate that the data read request is completed.

9. The method according to claim 8, characterized in that The method further comprises: When the first heterogeneous logical unit writes data in the first logical unit, sending a data write request to the first logical unit, wherein the data write request is used to request to move a second amount of data from the first heterogeneous logical unit to the first logical unit; receiving a sixth confirmation instruction and a second read instruction from the first logical unit, wherein the sixth confirmation instruction is used to indicate that the data write request has been received, and the second read instruction is used to instruct to move the second amount of data to the first logical unit; sending a second response instruction to the second read instruction to the first logical unit, where the second response instruction is used to write the second amount of data into the first logical unit; When the first logic unit receives the second amount of data, a seventh confirmation instruction sent by the first logic unit is received, where the seventh confirmation instruction is used to indicate that the data write request is completed.

10. The method according to claim 9, characterized in that There are multiple access paths between the first logic unit and the first heterogeneous logic unit; the method further includes: Determining a bandwidth occupancy rate of each access path among the plurality of access paths; An access path with the smallest bandwidth occupancy rate is used as a target access path, and the first logical unit and the first heterogeneous logical unit are enabled to perform data exchange based on the access path.

11. The method according to claim 10, characterized in that The determining, based on the correspondence between the subsystem, the storage device object, and the port object, an access path between the storage device object and each of the subsystems includes: Establishing a correspondence between the subsystem, the storage device object, and the port object according to a first correspondence between the subsystem and the storage device object, and a second correspondence between the subsystem and at least one of the port objects; An access path between the storage device object and the subsystem is determined according to the correspondence between the subsystem, the storage device object, and the port object, where the access path is for the storage device object to access the subsystem via the port object.

12. The method according to claim 10, characterized in that After determining the access path between the storage device object and each of the subsystems, the method further includes: A connection object corresponding to each access path is created according to the subsystem identifier of at least one of the subsystems and at least one of the network port addresses provided by each of the subsystems. The connection object is used to continuously access the handle of each of the access paths.

13. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the heterogeneous method of the logic unit according to any one of claims 1 to 12 when executing the computer program.

14. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, the steps of the heterogeneous method of the logic unit according to any one of claims 1 to 12 are implemented.

15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the heterogeneous method of the logic unit according to any one of claims 1 to 12 are implemented.

Citation Information

Patent Citations

  • Multiprocessor system with independent direct access to bulk solid state memory resources

    CN106462510A

  • Maintaining storage namespace identifiers for real-time virtualized execution environment migration

    CN115039077A

  • Data migration method and device, equipment and storage medium

    CN117270792A

  • Joint simulation method, system and equipment for two types of heterogeneous systems and medium

    CN118965799A

  • Heterogeneous acceleration system, method and device, computing equipment and storage medium

    CN119537304A