An implementation method and device of in-band management middleware for docking multiple storages
By identifying and managing FC channels, the problem that in-band management middleware cannot connect to multiple storage clusters is solved, and the management of multiple storage clusters is realized, which improves the universality and deployment flexibility of the system.
Patent Information
- Application Number
- CN202211060369.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-30
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2042-08-30
AI Technical Summary
In the prior art, in-band management middleware cannot identify the correspondence between the FC channel and the storage cluster, resulting in a middleware that can only connect to one storage cluster, limiting the use scenarios of users in a multi-storage cluster environment.
By receiving management instructions, analyzing the target storage cluster information, obtaining the storage cluster identification, and identifying the corresponding FC channel based on the identification, realizing the sending of management instructions, and establishing the correspondence between the storage cluster and the FC channel.
It realizes an in-band management middleware that can connect to multiple storage clusters, improves the system's universality and flexibility, decouples the maintenance of cinder-driven and the maintenance of in-band management functions, and facilitates deployment.
Smart Images

Figure CN115454337B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technologies, and particularly to a method and device for implementing an in-band management middleware for docking multiple storages. Background Art
[0002] Currently, in a cloud computing scenario, an OpenStack (an open-source cloud computing management platform project) cloud platform will integrate storage resources and connect a storage system to the cloud platform for management. For the consideration of data security, some users need to deploy the OpenStack cloud platform on the external network and deploy the storage system on the internal network when deploying the environment, making it impossible for the OpenStack cloud platform to directly communicate with the storage through the TCP / IP network. The in-band management technology came into being. It enables the OpenStack cloud platform to send SCSI (Small Computer System Interface) commands to the storage device through the Cinder driver (a bridge for the OpenStack cloud platform to dock with the storage device) when there is no TCP / IP network, so as to realize the management of storage resources.
[0003] In order to make the in-band communication function more general, the in-band communication function in the cinder driver is extracted and encapsulated into a middleware, called the in-band management middleware. The in-band management middleware provides two main functions: providing Rest (Representational State Transfer) for upper-layer applications, converting Rest requests into storage CLI (Command Line Interface) management commands, encapsulating the CLI management commands in SCSI commands, and sending the management commands to the storage for execution in an in-band manner.
[0004] However, in the current technology, the in-band management middleware is deployed alone on a server. The in-band management middleware provides a set of Rest interfaces for the cinder driver to call. The in-band management middleware cannot identify the correspondence between the FC channel and the storage cluster, and one in-band management middleware can only dock with one set of storage clusters at the same time. This limits the usage scenarios of users, and they can only dock with one set of storage clusters. If there are several sets of storage clusters in a data center at the same time, they cannot be docked through one in-band management middleware, which brings inconvenience to users. Summary of the Invention
[0005] Based on this, this application provides a method, device, equipment and storage medium for implementing an in-band management middleware for docking multiple storages to solve the problems existing in the prior art.
[0006] In a first aspect, a method for implementing an in-band management middleware for docking multiple storages is provided, and the method includes:
[0007] Receiving a management instruction, where the management instruction includes target storage cluster information corresponding to the execution of the management instruction;
[0008] Parsing the management instruction, and obtaining an identifier of a target storage cluster based on the target storage cluster information;
[0009] Obtaining a target FC channel corresponding to the identifier of the target storage cluster based on the identifier of the target storage cluster, where the target FC channel is used to transmit an instruction to the target storage cluster;
[0010] Sending a management instruction to the target storage cluster based on the target FC channel.
[0011] According to an implementable manner in an embodiment of the present application, the sending a management instruction to the target storage cluster based on the target FC channel includes:
[0012] Generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction;
[0013] Sending the SCSI instruction to the target storage cluster through the target FC channel.
[0014] According to an implementable manner in an embodiment of the present application, the method further includes:
[0015] Obtaining an identifier of each FC channel and an identifier of a storage cluster corresponding to the FC channel;
[0016] Establishing a one-to-one correspondence between the FC channel and the storage cluster.
[0017] According to an implementable manner in an embodiment of the present application, the method further includes:
[0018] Obtaining an identifier of each storage cluster;
[0019] Converting the identifier of each storage cluster into storage cluster information;
[0020] Establishing a one-to-one correspondence between the identifier of the storage cluster and the storage cluster information.
[0021] According to an implementable manner in an embodiment of the present application, the management instruction is a Rest request sent by an upper-layer application.
[0022] According to an implementable manner in an embodiment of the present application, the generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction includes:
[0023] Convert the management instruction into a storage CLI management command based on the identifier of the target storage cluster, and generate a SCSI instruction based on the storage CLI management command.
[0024] According to an implementable manner in the embodiments of the present application, the sending the SCSI instruction to the target storage cluster through the target FC channel includes:
[0025] Traverse the FC channel volume list to identify the target FC channel, send the SCSI instruction to the target storage cluster, and record the name of the target FC channel.
[0026] In a second aspect, a device for implementing an in-band management middleware for docking multiple storages is provided. The device includes:
[0027] A receiving module: configured to receive a management instruction, where the management instruction includes target storage cluster information corresponding to the execution of the management instruction;
[0028] An analysis module: configured to analyze the management instruction and obtain the identifier of the target storage cluster based on the target storage cluster information;
[0029] A sending module: configured to obtain a target FC channel corresponding to the identifier of the target storage cluster based on the identifier of the target storage cluster, where the target FC channel is used to transmit an instruction to the target storage cluster; and send a management instruction to the target storage cluster based on the target FC channel.
[0030] In a third aspect, a computer device is provided, including:
[0031] At least one processor; and
[0032] A memory communicatively connected to the at least one processor; wherein,
[0033] The memory stores computer instructions executable by the at least one processor, and the computer instructions are executed by the at least one processor so that the at least one processor can execute the method involved in the first aspect above.
[0034] In a fourth aspect, a computer-readable storage medium is provided, on which computer instructions are stored, characterized in that the computer instructions are used to cause a computer to execute the method involved in the first aspect above.
[0035] According to the technical content provided by the embodiments of the present application, the present application receives a management instruction containing target storage cluster information, then obtains the identifier of the target storage cluster, identifies the corresponding target FC channel based on the identifier of the target storage cluster, and finally, based on the target FC channel, sends the management instruction to the corresponding target storage cluster. It can identify and manage the FC channel. Based on the correspondence between the storage cluster and the FC channel, after receiving the management instruction, it can identify the storage cluster to which the management instruction needs to be sent, and find the FC channel corresponding to the storage cluster according to the correspondence. Furthermore, it can be realized that an in-band management middleware can be docked with multiple sets of storage clusters. Brief Description of the Drawings
[0036] Figure 1 It is a schematic flow chart of a method for implementing an in-band management middleware for docking multiple storages in an embodiment;
[0037] Figure 2 It is a structural block diagram of a device for implementing an in-band management middleware for docking multiple storages in an embodiment;
[0038] Figure 3 It is a schematic structural diagram of a computer device in an embodiment. Detailed Embodiments
[0039] The following further details the present application in conjunction with the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0040] The embodiments of the present application provide a method for implementing an in-band management middleware for docking multiple storages, Figure 1This is a flowchart of a method for implementing an in-band management middleware for docking multiple storages provided by an embodiment of the present application. The in-band management middleware has the following advantages: First, universality: It provides a unified Rest interface externally. In theory, the upper-layer application can be any application. Not only can it be used by the OpenStack cloud platform in the future, but other virtualization platforms can also use it, such as VMWare. Second, decoupling: It separates the in-band management function from the function of the Cinder driver. This makes the maintenance of the Cinder driver and the maintenance of the in-band management function not affect each other. Third, convenient deployment: After making the in-band management into a middleware, the in-band management module can be deployed on any server, rather than being deployed along with the Cinder driver. However, in the current technology, the in-band management middleware is deployed separately on a server. The in-band management middleware provides a set of Rest interfaces externally for the Cinder driver to call. The in-band management host converts the Rest request into a storage CLI management command, encapsulates the CLI management command into a SCSI instruction, and sends it to the storage cluster through the FC channel. There may be multiple links between the storage cluster and the in-band management host, and each link is an FC channel. The in-band management host will select one FC channel from them to send the SCSI instruction when sending the SCSI instruction. In the current technology implementation, the in-band management middleware cannot identify the corresponding relationship between the FC channel and the storage cluster, so that an in-band management middleware can only dock one set of storage clusters at the same time. This limits the usage scenarios of users because in a data center, there are often several sets of storage clusters at the same time. The method for implementing an in-band management middleware for docking multiple storages provided by an embodiment of the present application can solve the above problems, realize the grouping of in-band channels and the selection of in-band channels. Thus, the in-band management middleware can dock multiple sets of storage clusters.
[0041] As Figure 1 shown, the method may include the following steps:
[0042] Step 101: Receive a management instruction, where the management instruction contains the target storage cluster information corresponding to the execution of the management instruction.
[0043] Specifically, the management instruction is sent by the upper-layer application. The in-band management middleware is used to provide a Rest interface for the upper-layer application, convert the Rest request into a storage CLI management command, encapsulate the CLI management command in a SCSI instruction, and send the management command to the storage for execution in an in-band manner. The in-band management middleware provides a unified Rest interface externally. In theory, the upper-layer application can be any application. Not only the OpenStack cloud platform can use it in the future, but other virtualization platforms can also use it, such as VMWare. The in-band management middleware receives the management instruction sent by the upper-layer application, such as a Rest request. The management instruction contains the target storage cluster information corresponding to the execution of the management instruction, such as clusterID. For example, a parameter clusterID is added to the Rest interface. This parameter is used to indicate which storage execution the upper-layer application hopes to send the management execution to. This parameter is a required item. If the upper-layer application does not pass this parameter when calling the Rest interface, the Rest request call fails.
[0044] Step 102: Parse the management instruction and obtain the identifier of the target storage cluster based on the target storage cluster information.
[0045] Specifically, after the in-band management middleware receives the management instruction sent by the upper-layer application, it parses the management instruction to obtain the target storage cluster information corresponding to the execution of the management instruction, and obtains the identifier of the target storage cluster, that is, the cluster ID, based on this target storage cluster information. For example, after the in-band management middleware receives a Rest request, it parses the clusterID parameter in the header to obtain the ID of the cluster, such as WWID.
[0046] Step 103: Obtain the target FC channel corresponding to the identifier of the target storage cluster, where the target FC channel is used to transmit instructions to the target storage cluster.
[0047] Specifically, based on the identifier of the target storage cluster, such as the cluster ID, obtain the target FC channel corresponding to the identifier of the target storage cluster. Among them, the FC channel (Fibre Channel, a mesh channel technology) is used to increase the transmission bandwidth of the hard disk protocol, focusing on the fast, efficient, and reliable transmission of data. The FC channel and the storage cluster correspond one-to-one through the identifier of the target storage cluster. The target FC channel is used to transmit instructions to the target storage cluster.
[0048] Step 104: Send the management instruction to the target storage cluster based on the target FC channel.
[0049] Specifically, the in-band management middleware sends the management instruction to the target storage cluster corresponding to the target FC channel based on the target FC channel. For example, it sends a SCSI instruction.
[0050] It can be seen that in the embodiment of the present application, by receiving a management instruction containing target storage cluster information, obtaining the identifier of the target storage cluster, identifying the corresponding target FC channel based on the identifier of the target storage cluster, and finally, based on the target FC channel, sending the management instruction to the corresponding target storage cluster. It is possible to identify and manage the FC channel. Based on the corresponding relationship between the storage cluster and the FC channel, after receiving the management instruction, the storage cluster to which the management instruction needs to be sent can be identified, and the FC channel corresponding to the storage cluster can be found according to the corresponding relationship. Furthermore, it is realized that an in-band management middleware can be docked with multiple sets of storage clusters.
[0051] In an embodiment of the present application, in step 104, sending the management instruction to the target storage cluster based on the target FC channel includes: step 1041: generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction; step 1042: sending the SCSI instruction to the target storage cluster through the target FC channel.
[0052] Specifically, the in-band management middleware is used to provide a Rest interface for the upper-layer application, convert the Rest request into a storage CLI management command, encapsulate the CLI management command in the SCSI instruction, and send the management command to the storage for execution in an in-band manner. In this embodiment, in step 104, sending the management instruction to the target storage cluster based on the target FC channel includes: generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction; sending the SCSI instruction to the target storage cluster through the target FC channel.
[0053] In an embodiment of the present application, before step 101, the method for implementing an in-band management middleware for docking multiple storages provided by the present application further includes: obtaining the identifier of each FC channel and the identifier of the storage cluster corresponding to the FC channel; establishing a one-to-one corresponding relationship between the FC channel and the storage cluster.
[0054] Specifically, for example, taking the clusterId of the storage as the key and the name of the storage cluster corresponding to the FC channel as the value, and recording it in the memory for subsequent selection of the FC channel. The format is as follows:
[0055]
[0056] In an embodiment of the present application, before step 101, the method for implementing an in-band management middleware for docking multiple storages provided by the present application further includes: obtaining the identifier of each storage cluster; converting the identifier of each storage cluster into storage cluster information; establishing a one-to-one corresponding relationship between the identifier of the storage cluster and the storage cluster information.
[0057] Specifically, for example, traverse each storage cluster to obtain the identifier corresponding to each storage cluster, such as the WWID, which can be obtained by executing the following command: / lib / udev / scsi_id -g –page=0x83 / dev / sdx (where sdx represents the sd device, i.e., the name of the storage cluster).
[0058] Convert the WWID of the storage cluster to the clusterId of the storage cluster, and the method is as follows:
[0059] ClusterId = hex(WWID) >> 58 & hex(3FFFFFFFFFF)
[0060] Thus, a one-to-one correspondence is established between the identifier of the storage cluster, i.e., the WWID, and the storage cluster information, i.e., the clusterId.
[0061] In an embodiment of the present application, the management instruction is a Rest request sent by the upper-layer application.
[0062] Specifically, the in-band management middleware is used to provide a Rest interface for the upper-layer application, convert the Rest request into a storage CLI management command, encapsulate the CLI management command in a SCSI instruction, and send the management command to the storage for execution in an in-band manner. In this embodiment, the management instruction in step 101 above is a Rest request sent by the upper-layer application.
[0063] In an embodiment of the present application, generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction in step 1041 includes: converting the management instruction into a storage CLI management command based on the identifier of the target storage cluster, and generating a SCSI instruction based on the storage CLI management command.
[0064] Specifically, the in-band management middleware is used to provide a Rest interface for the upper-layer application, convert the Rest request into a storage CLI management command, encapsulate the CLI management command in a SCSI instruction, and send the management command to the storage for execution in an in-band manner. In this embodiment, generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction in step 1041 includes: converting the management instruction into a storage CLI management command based on the identifier of the target storage cluster, and generating a SCSI instruction based on the storage CLI management command.
[0065] In an embodiment of the present application, sending a SCSI instruction to the target storage cluster through the target FC channel in step 1042 includes: traversing the FC channel volume list to identify the target FC channel, sending a SCSI instruction to the target storage cluster, and recording the name of the target FC channel.
[0066] Specifically, in the above step 1042, sending SCSI commands to the target storage cluster through the target FC channel includes: traversing the FC channel volume list to identify the target FC channel, sending SCSI commands to the target storage cluster, and recording the name of the target FC channel. For example, traverse the FC channel volume list, send SCSI commands from the first FC channel. If the sending is unsuccessful, use the second FC channel to send SCSI commands until the sending is successful. And record the name of the FC channel volume that is finally sent successfully.
[0067] Based on the above embodiments, in a specific implementation manner of the present application, the embodiment of the present application provides a method for implementing an in-band management middleware for docking multiple storages, including the following steps:
[0068] Step 1: Preparation
[0069] When the user uses in-band management, they need to create a host of inbandmanagement type in the storage through the storage management interface in advance and add the port information of the FC HBA card in the host.
[0070] Then discover devices on the host side, the method is as follows: log in to the server, scan through the command echo '---' > / sys / class / scsi_host / ${hostName} / device / scsi_host / ${hostName} / scan, and path devices can be found in the directory / dev / disk / by-path / . Suppose there are four physical links between the host and the storage, then the storage has four FC channels, and each channel is an sd device (i.e., a storage cluster) on the host side. For example: / dev / sdb, / dev / sdc, / dev / sdd, and / dev / sde. And the sizes of these sd devices are fixed at 512B.
[0071] Step 2: Grouping of FC channels
[0072] When the in-band management middleware starts, it will automatically scan all sd devices (storage devices) in the / dev directory and group the sd devices according to the following rules.
[0073] Step 2.1: Filter out sd devices whose sizes are not 512B.
[0074] Step 2.2: Traverse the remaining sd devices in 1.1, obtain the WWID corresponding to each storage device, which can be obtained by executing the following command: / lib / udev / scsi_id -g –page = 0x83 / dev / sdx (where sdx represents the name of the sd device)
[0075] Step 2.3: Convert the WWID of the device to the clusterId of the storage cluster as follows:
[0076] ClusterId = hex(WWID) >> 58 & hex(3FFFFFFFFFF)
[0077] Note: The conversion rules provided by different storage vendors are inconsistent.
[0078] Step 2.4: Use the stored clusterId as the key and the name of the sd device corresponding to the FC channel as the value, and record it in memory for use when selecting the FC channel later. The format is as follows:
[0079]
[0080] Step 3: Selection of FC channels
[0081] Step 3.1: Add a parameter clusterID to the Rest interface. This parameter is used to indicate which storage execution the upper-layer application hopes to send the management execution to. This parameter is required. If the upper-layer application does not pass this parameter when calling the Rest interface, the Rest request call fails.
[0082] Step 3.2: After the in-band management middleware receives the Rest request, parse the clusterID parameter in the header to obtain the ID of the cluster. Obtain the corresponding FC channel list according to the clusterID.
[0083] Step 3.3: Convert the Rest request into a storage CLI command and encapsulate it as a SCSI instruction.
[0084] Step 3.4: Traverse the FC channel volume list, send the SCSI instruction from the first FC channel. If the sending is unsuccessful, use the second FC channel to send the SCSI instruction until the sending is successful. And record the name of the FC channel volume that is finally sent successfully.
[0085] It can be seen that in the embodiment of the present application, the in-band management middleware can identify the managed FC channel, obtain the WWID corresponding to the FC channel through the SCSI instruction, and obtain the identifier of the storage cluster corresponding to the channel according to the WWID. According to the identifier of the cluster and the name of the FC channel, maintain the corresponding relationship between the storage cluster and the FC channel in memory. After receiving the management request sent by the upper-layer application, it can identify the storage cluster to which the management request needs to be sent, and find the FC channel corresponding to the storage cluster according to the grouping information. Send the management request to the storage device through the SCSI instruction. Finally, it is realized that one in-band management middleware can be docked with multiple sets of storage clusters.
[0086] According to an embodiment of the present application, the in-band management middleware provided by the present application can identify the management FC channels, group the FC channels, and record the corresponding relationship between the storage clusters and the FC channels in the memory. After receiving the management request sent by the upper-layer application, it can identify the storage cluster to which the management request needs to be sent, and find the FC channel corresponding to the storage cluster according to the grouping information. The management request is sent to the storage device through SCSI commands. Finally, an in-band management middleware can be docked with multiple sets of storage clusters.
[0087] It should be understood that although Figure 1 the steps in the flowchart are shown in sequence according to the indication of the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in the present application, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, Figure 1 at least a part of the steps in
[0088] Figure 2 is a schematic structural diagram of an implementation device of an in-band management middleware for docking multiple storages provided by an embodiment of the present application. As Figure 2 shown, the device may include: a receiving module 201, a receiving module 201, and a sending module 203. The main functions of each component module are as follows:
[0089] The receiving module 201: is used to receive a management instruction, and the management instruction includes target storage cluster information corresponding to the execution of the management instruction;
[0090] The receiving module 201: is used to parse the management instruction and obtain the identifier of the target storage cluster based on the target storage cluster information;
[0091] The sending module 203: is used to obtain a target FC channel corresponding to the identifier of the target storage cluster based on the identifier of the target storage cluster, where the target FC channel is used to transmit an instruction to the target storage cluster; based on the target FC channel, send the management instruction to the target storage cluster.
[0092] It can be seen that in the embodiment of the present application, by receiving a management instruction containing the information of the target storage cluster, obtaining the identifier of the target storage cluster, identifying the corresponding target FC channel based on the identifier of the target storage cluster, and finally, based on the target FC channel, sending the management instruction to the corresponding target storage cluster. It is possible to identify and manage the FC channel. Based on the corresponding relationship between the storage cluster and the FC channel, after receiving the management instruction, the storage cluster to which the management instruction needs to be sent can be identified, and the FC channel corresponding to the storage cluster can be found according to the corresponding relationship. Furthermore, it is realized that an in-band management middleware can be docked with multiple sets of storage clusters.
[0093] In an embodiment of the present application, sending a management instruction to a target storage cluster based on a target FC channel includes: generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction; sending the SCSI instruction to the target storage cluster through the target FC channel.
[0094] In an embodiment of the present application, an in-band management middleware implementation device for docking multiple storages provided by the embodiment of the present application further includes: a first acquisition module: used to acquire the identifier of each FC channel and the storage cluster corresponding to the FC channel; establish a one-to-one corresponding relationship between the FC channel and the storage cluster.
[0095] In an embodiment of the present application, an in-band management middleware implementation device for docking multiple storages provided by the embodiment of the present application further includes: a second acquisition module: used to acquire the identifier of each storage cluster; convert the identifier of each storage cluster into storage cluster information; establish a one-to-one corresponding relationship between the identifier of the storage cluster and the storage cluster information.
[0096] In an embodiment of the present application, the management instruction is a Rest request sent by an upper-layer application.
[0097] In an embodiment of the present application, generating a SCSI instruction based on the identifier of the target storage cluster and the management instruction includes: converting the management instruction into a storage CLI management command based on the identifier of the target storage cluster, and generating a SCSI instruction based on the storage CLI management command.
[0098] In an embodiment of the present application, sending a SCSI instruction to a target storage cluster through a target FC channel includes: traversing the FC channel volume list to identify the target FC channel, sending the SCSI instruction to the target storage cluster, and recording the name of the target FC channel.
[0099] It can be seen that in the embodiment of the present application, the in-band management middleware can identify the managed FC channel, obtain the WWID corresponding to the FC channel through the SCSI command, and obtain the identifier of the storage cluster corresponding to the channel according to the WWID. According to the identifier of the cluster and the name of the FC channel, the corresponding relationship between the storage cluster and the FC channel is maintained in the memory. After receiving the management request sent by the upper-layer application, it can identify the storage cluster to which the management request needs to be sent, and find the FC channel corresponding to the storage cluster according to the grouping information. The management request is sent to the storage device through the SCSI command. Finally, it is realized that one in-band management middleware can interface with multiple sets of storage clusters.
[0100] According to the embodiment of the present application, the in-band management middleware provided by the present application can identify the managed FC channel, group the FC channels, and record the corresponding relationship between the storage cluster and the FC channel in the memory. After receiving the management request sent by the upper-layer application, it can identify the storage cluster to which the management request needs to be sent, and find the FC channel corresponding to the storage cluster according to the grouping information. The management request is sent to the storage device through the SCSI command. Finally, it is realized that one in-band management middleware can interface with multiple sets of storage clusters.
[0101] For the same and similar parts among the above embodiments, reference can be made to each other. Each embodiment focuses on the differences from other embodiments. In particular, for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can refer to the partial description of the method embodiment.
[0102] It should be noted that the use of user data may be involved in the embodiments of the present application. In actual applications, within the scope permitted by the applicable laws and regulations of the country where it is located (such as when the user clearly consents, gives a practical notice to the user, and the user clearly authorizes, etc.), the user's specific personal data can be used in the solutions described in this article within the scope permitted by the applicable laws and regulations.
[0103] According to the embodiment of the present application, the present application also provides a computer device and a computer-readable storage medium. The present application also provides a computer device, including at least one processor and a memory communicatively connected to at least one processor; wherein, the memory stores computer instructions executable by at least one processor, and the computer instructions are executed by at least one processor so that at least one processor can execute the method for implementing the in-band management middleware for docking multiple storages described in any of the above embodiments.
[0104] As Figure 3As shown, it is a block diagram of a computer device according to an embodiment of the present application. The computer device is intended to represent various forms of digital computers or mobile devices. Among them, the digital computer may include a desktop computer, a portable computer, a workbench, a personal digital assistant, a server, a mainframe computer, and other suitable computers. The mobile device may include a tablet computer, a smart phone, a wearable device, etc.
[0105] As Figure 3 shown, the computer device 300 includes a computing unit 301, a ROM 302, a RAM 303, a bus 304, and an input / output (I / O) interface 305. The computing unit 301, the ROM 302, and the RAM 303 are connected to each other through the bus 304. The input / output (I / O) interface 305 is also connected to the bus 304.
[0106] The computing unit 301 can execute various processes in the method embodiments of the present application according to the computer instructions stored in the read-only memory (ROM) 302 or the computer instructions loaded from the storage unit 308 into the random access memory (RAM) 303. The computing unit 301 can be various general and / or special processing components with processing and computing capabilities. The computing unit 301 may include, but is not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. In some embodiments, the method provided by the embodiments of the present application can be implemented as a computer software program, which is tangibly included in a computer-readable storage medium, such as the storage unit 308.
[0107] The RAM 303 can also store various programs and data required for the operation of the device 300. Part or all of the computer programs can be loaded and / or installed onto the device 300 via the ROM 302 and / or the communication unit 309.
[0108] The input unit 306, the output unit 307, the storage unit 308, and the communication unit 309 in the computer device 300 can be connected to the I / O interface 305. Among them, the input unit 306 can be such as a keyboard, a mouse, a touch screen, a microphone, etc.; the output unit 307 can be such as a display, a speaker, an indicator light, etc. The device 300 can exchange information, data, etc. with other devices through the communication unit 309.
[0109] It should be noted that the device may also include other components necessary for normal operation. It may also only include the components necessary to implement the solution of the present application, and does not necessarily include all the components shown in the figure.
[0110] The various embodiments of the systems and techniques described herein can be implemented in digital electronic circuitry, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof.
[0111] The computer instructions for implementing the methods of the present application can be written in any combination of one or more programming languages. These computer instructions can be provided to the computing unit 301 such that when the computer instructions are executed by a computing unit 301 such as a processor, the steps involved in the method embodiments of the present application are executed.
[0112] The present application also provides a computer-readable storage medium having stored thereon computer instructions for causing a computer to execute the method for implementing the in-band management middleware for docking multiple storages described in any one of the above embodiments.
[0113] The computer-readable storage medium provided by the present application can be a tangible medium that can contain or store computer instructions for executing the steps involved in the method embodiments of the present application. The computer-readable storage medium can include, but is not limited to, storage media in the form of electronic, magnetic, optical, electromagnetic, etc.
[0114] The above specific embodiments do not constitute a limitation on the protection scope of the present application. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present application shall be included within the protection scope of the present application.
Claims
1. A method for implementing an in-band management middleware for docking multiple storages, characterized in that The method includes: Receiving an administrative instruction, where the administrative instruction includes target storage cluster information corresponding to the execution of the administrative instruction; Parsing the administrative instruction and obtaining an identifier of the target storage cluster based on the target storage cluster information; Obtaining a target FC channel corresponding to the identifier of the target storage cluster based on the identifier of the target storage cluster, where the target FC channel is used to transmit an instruction to the target storage cluster; Sending an administrative instruction to the target storage cluster based on the target FC channel.
2. The method for implementing an in-band management middleware for docking multiple storages according to claim 1, wherein The sending an administrative instruction to the target storage cluster based on the target FC channel includes: Generating a SCSI instruction based on the identifier of the target storage cluster and the administrative instruction; Sending the SCSI instruction to the target storage cluster through the target FC channel.
3. The in-band management middleware implementation method for docking multiple storages according to claim 1, characterized in that The method further includes: Obtaining each FC channel and an identifier of a storage cluster corresponding to the FC channel; Establishing a one-to-one correspondence between the FC channel and the storage cluster.
4. The method for implementing the in-band management middleware for docking multiple storages according to claim 1, wherein The method further includes: Obtaining an identifier of each storage cluster; Converting the identifier of each storage cluster into storage cluster information; Establishing a one-to-one correspondence between the identifier of the storage cluster and the storage cluster information.
5. The method for implementing an in-band management middleware for docking multiple storages according to claim 1, wherein The administrative instruction is a Rest request sent by an upper-layer application.
6. The method for implementing the in-band management middleware for docking multiple storages according to claim 1, wherein The generating a SCSI instruction based on the identifier of the target storage cluster and the administrative instruction includes: Converting the administrative instruction into a storage CLI management command based on the identifier of the target storage cluster, and generating a SCSI instruction based on the storage CLI management command.
7. The method for implementing an in-band management middleware for docking multiple storages according to claim 2, characterized in that, The sending the SCSI instruction to the target storage cluster through the target FC channel includes: Traversing the FC channel volume list to identify the target FC channel, sending the SCSI instruction to the target storage cluster, and recording the name of the target FC channel.
8. An in-band management middleware implementation device for docking multiple storages, characterized in that The apparatus includes: A receiving module: configured to receive an administrative instruction, where the administrative instruction includes target storage cluster information corresponding to the execution of the administrative instruction; A parsing module: configured to parse the administrative instruction and obtain an identifier of the target storage cluster based on the target storage cluster information; A sending module: configured to obtain a target FC channel corresponding to the identifier of the target storage cluster based on the identifier of the target storage cluster, where the target FC channel is used to transmit an instruction to the target storage cluster; and send an administrative instruction to the target storage cluster based on the target FC channel.
9. A computer device, including: At least one processor; And A memory communicatively connected to the at least one processor; where The memory stores computer instructions executable by the at least one processor, and the computer instructions are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1-7.
10. A computer-readable storage medium having computer instructions stored thereon, characterized in that, The computer instructions are used to cause a computer to execute the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Systems and methods for dynamic routing in a cluster
CN104380693A
Coordinated utilization of parallel paths to improve efficiency
US20180275884A1