Storage device access method and device, storage medium and program product

By dividing business domains on the storage gateway and adjusting port reuse according to the load conditions, the complex problems of resource isolation and network configuration in heterogeneous storage devices are solved, and more fine-grained storage resource isolation and efficient operation and maintenance management are achieved.

CN120407467AActive Publication Date: 2025-08-01INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the management of heterogeneous storage devices in data centers, the network isolation method leads to waste of resources and the inability to achieve finer-grained storage resource isolation, and the network configuration is complex, affecting operation and maintenance efficiency.

Method used

By dividing the service domains on the storage gateway, the logical units of the storage device are allocated to different service domains, and under normal load, only the logical units within the same service domain are accessed, a finer-grained storage resource isolation is achieved, and port multiplexing between different service domains is automatically adjusted using port load conditions.

Benefits of technology

Improve the utilization rate and operation and maintenance efficiency of storage resources, ensure the performance of storage services, and avoid complex network configuration operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120407467A_ABST
    Figure CN120407467A_ABST
Patent Text Reader

Abstract

The invention provides a storage device access method and device, a storage medium and a program product, and can be applied to the technical field of computers. The storage device access method comprises the steps that a target service domain corresponding to a target logic unit is determined from multiple service domains of a storage gateway in response to a received access request for the target logic unit in a storage device from a host, and the logic units corresponding to the same service domain are used for the same service scene; and when it is determined that a target port set associated with the target service domain comprises a first port subset and a second port subset, determining a target port from the first port subset and the second port subset, so that the host accesses the target logic unit through the target port.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and more particularly to a method for accessing a storage device, a device, a storage medium, and a program product. Background Art

[0002] There are usually heterogeneous storage devices in a data center. Heterogeneous storage devices include, for example, storage devices from different manufacturers and different models. To facilitate the unified management of storage devices, heterogeneous storage devices are usually incorporated through a storage gateway, and storage services are provided through the storage gateway.

[0003] To avoid the mutual influence of storage devices of different models and different services, network isolation is usually achieved by dividing a virtual local area network (Virtual Local Area Network, abbreviated as VLAN) during network configuration. However, the above method may cause different network resources to be unable to be reused even when they are idle, resulting in waste of resources, and the above method can only achieve storage isolation between heterogeneous storage devices and it is difficult to achieve finer-grained storage resource isolation. Summary of the Invention

[0004] In view of the above problems, the present application provides a method for accessing a storage device, a device, a storage medium, and a program product.

[0005] According to a first aspect of the present application, there is provided a method for accessing a storage device, including: in response to receiving an access request from a host for a target logical unit in a storage device, determining a target service domain corresponding to the target logical unit from a plurality of service domains of a storage gateway, wherein logical units corresponding to the same service domain are used for the same service scenario; in a case where a target port set associated with the target service domain includes a first port subset and a second port subset, determining a target port from the first port subset and the second port subset, so that the host accesses the target logical unit via the target port, wherein the first port subset is only used for accessing logical units corresponding to the target service domain, and the second port subset is used for accessing logical units corresponding to a plurality of service domains.

[0006] A second aspect of the present application provides an electronic device, including: one or more processors; a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the above method.

[0007] A third aspect of the present application further provides a computer-readable storage medium, on which a computer program or instruction is stored, and the computer program or instruction, when executed by a processor, implements the steps of the above method.

[0008] The fourth aspect of the present application further provides a computer program product, including a computer program or instructions, and when the computer program or instructions are executed by a processor, the steps of the above method are implemented.

[0009] According to the embodiments of the present application, by dividing service domains on the storage gateway, allocating the backend port resources of the storage gateway to different service domains, and allocating logical units from different storage devices to different service domains, under normal load conditions, the storage gateway ports can only access logical units within the same service domain. Compared with the related isolation method based only on storage devices, the network between the storage gateway and the heterogeneous storage at the backend is fully connected, and isolation between different storage devices is no longer achieved through network configuration, realizing a finer-grained isolation of storage resources, avoiding complex operations for partitioning the storage network, and improving the operation and maintenance efficiency. And by dividing multiple service domains, the logical units corresponding to the same service domain are used for the same service scenario, realizing isolation between storage services. When the service pressure corresponding to a service domain is relatively high, the multiplexing of ports between different service domains can be automatically adjusted according to the port load conditions of the service domain, improving the utilization rate of ports and better ensuring service performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Through the following description of the embodiments of the present application with reference to the drawings, the above content and other objects, features, and advantages of the present application will become clearer. In the drawings:

[0011] Figure 1 A schematic diagram showing the management of storage devices in a related method is shown.

[0012] Figure 2 A diagram showing an application scenario of a storage device access method, device, storage medium, and program product according to an embodiment of the present application is shown.

[0013] Figure 3 A flowchart showing a storage device access method according to an embodiment of the present application is shown.

[0014] Figure 4 A schematic diagram showing a storage device access method according to an embodiment of the present application is shown.

[0015] Figure 5 A flowchart showing a storage device access method according to another embodiment of the present application is shown.

[0016] Figure 6 A flowchart showing a storage device access method according to still another embodiment of the present application is shown.

[0017] Figure 7 A flowchart showing the creation of a service domain according to an embodiment of the present application is shown.

[0018] Figure 8The structural block diagram of a storage device access apparatus according to an embodiment of the present application is shown.

[0019] Figure 9 The block diagram of an electronic device suitable for implementing a storage device access method according to an embodiment of the present application is shown. Detailed implementation manners

[0020] Hereinafter, embodiments of the present application will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are merely exemplary and are not intended to limit the scope of the present application. In the following detailed description, for the sake of explanation, many specific details are set forth in order to provide a thorough understanding of the embodiments of the present application. However, obviously, one or more embodiments can also be implemented without these specific details. In addition, in the following description, descriptions of well-known structures and technologies are omitted to avoid unnecessarily obscuring the concepts of the present application.

[0021] The terms used herein are merely for describing specific embodiments and are not intended to limit the present application. The terms "including", "comprising", etc. used herein indicate the presence of features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0022] All terms (including technical and scientific terms) used herein have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and should not be interpreted in an idealized or overly rigid manner.

[0023] In the case of using expressions such as "at least one of A, B, and C", generally, it should be interpreted according to the meaning commonly understood by those skilled in the art (for example, "a system having at least one of A, B, and C" should include but not be limited to a system having only A, only B, only C, having A and B, having A and C, having B and C, and / or having A, B, and C, etc.).

[0024] Figure 1 The schematic diagram of managing a storage device of a related method is shown.

[0025] As Figure 1 shown, in the related method, the devices involved in managing a storage device may include a host, switch 1 and switch 2, storage gateway 1 and storage gateway 2, storage device 1, storage device 2, storage device 3, and storage device 4. Among them, between the host and the storage gateway, and between the storage gateway and the storage device, they can be cross-connected through dual switches. For example, they can all be cross-connected through switch 1 and switch 2. Even if one of the switches fails (such as switch 1 losing power), the other switch can still maintain network connection and disconnection to ensure that the service is not interrupted.Figure 1 The solid black dots on the edges of the boxes shown can represent the physical connection points between devices, which are used to achieve physical connections between different devices. For example, the network interface of a host is connected to the ports of Switch 1 and Switch 2 via network cables, and Switch 1 and Switch 2 are connected to multiple storage devices via ports.

[0026] Related methods usually manage heterogeneous storage devices through a storage gateway and usually use methods such as dividing a Virtual Local Area Network (VLAN for short) for network isolation.

[0027] For the sake of convenience of description, taking the storage gateway including Storage Gateway 1 and Storage Gateway 2, the storage devices including Storage Device 1 and Storage Device 2, and Storage Device 1 and Storage Device 2 each including a P1 port and a P2 port as an example, Virtual Local Area Network 1 and Virtual Local Area Network 2 can be divided. Among them, Virtual Local Area Network 1 includes the P1 port of Storage Gateway 1, the P1 port of Storage Gateway 2, and the four ports of Storage Device 1, while Virtual Local Area Network 2 includes the P2 port of Storage Gateway 2, the P2 port of Storage Gateway 2, and the four ports of Storage Device 2. Although this method can achieve service isolation between different storage devices, however, due to the division of network isolation, different network resources cannot be reused even when they are in an idle state, resulting in waste of resources. And this network isolation method can only achieve isolation between different heterogeneous storage devices and cannot achieve finer-grained isolation between storage resources. For example, it cannot achieve finer-grained isolation between the Logical Unit Numbers (LUNs) mapped from heterogeneous storage to the storage gateway. Moreover, the network configuration for network isolation by dividing a virtual local area network is complex, requiring configuration for each port, with a large amount of work. If the configuration is incorrect, problems such as network disconnection may occur, and if there is a service adjustment, the network needs to be re-divided, and the adjustment process may affect the existing services.

[0028] In view of this, an embodiment of the present application provides a method for accessing a storage device, including: in response to receiving an access request from a host for a target logical unit in a storage device, determining a target service domain corresponding to the target logical unit from multiple service domains of the storage gateway, where logical units corresponding to the same service domain are used for the same service scenario; in the case where the determined target port set associated with the target service domain includes a first port subset and a second port subset, determining a target port from the first port subset and the second port subset so that the host accesses the target logical unit via the target port, where the first port subset is only used to access the logical units corresponding to the target service domain, and the second port subset is used to access multiple logical units corresponding to multiple service domains.

[0029] Figure 2 The application scenario diagram of the storage device access method, device, storage medium and program product according to the embodiments of the present application is shown.

[0030] As Figure 2 shown, the application scenario diagram of this embodiment includes storage gateway 1 and storage gateway 2, switches, storage device 1, storage device 2, storage device 3, and storage device 4.

[0031] For the storage gateway, multiple service domains can be created in storage gateway 1, such as service domain 1, service domain 2, service domain n. Correspondingly, multiple service domains can also be created in storage gateway 2, such as service domain 1, service domain 2, service domain n.

[0032] A service domain can be associated with a set of ports. For example, in storage gateway 1, the ports corresponding to storage gateway 1 can be divided into n sets of ports. Service domain 1 is associated with port set 1 corresponding to storage gateway 1, service domain 2 is associated with port set 2 corresponding to storage gateway 1, and service domain n is associated with port set n corresponding to storage gateway 1. Correspondingly, in storage gateway 2, the ports corresponding to storage gateway 2 can also be divided into n sets of ports. Service domain 1 is associated with port set 1 corresponding to storage gateway 2, service domain 2 is associated with port set 2 corresponding to storage gateway 2, and service domain n is associated with port set n corresponding to storage gateway 2.

[0033] For the storage device, a storage device can include one or more logical units, and each logical unit can store data independently or be recognized and accessed independently by the operating system or application program. For example, storage device 1 includes logical unit 1, logical unit 2, logical unit n. Correspondingly, storage devices 2 to 4 can also each include logical unit 1, logical unit 2, logical unit n.

[0034] One or more logical units can correspond to a service domain. For example, in storage device 1, logical unit 1 of storage device 1 can correspond to service domain 1, logical unit 2 can correspond to service domain 2, and logical unit n can correspond to service domain n. Correspondingly, logical unit 1 of storage device 2 can correspond to service domain 1, logical unit 2 can correspond to service domain 2, and logical unit n can correspond to service domain n. Logical unit 1 of storage device 3 can correspond to service domain 1, logical unit 2 can correspond to service domain 2, and logical unit n can correspond to service domain n. Logical unit 1 of storage device 4 can correspond to service domain 1, logical unit 2 can correspond to service domain 2, and logical unit n can correspond to service domain n.

[0035] For example, a host may request access to logical unit 1 in storage device 1. In response to receiving an access request from the host for a target logical unit (i.e., logical unit 1 in storage device 1) in storage device 1, a target service domain corresponding to the target logical unit is determined from multiple service domains of storage gateway 1, where logical units corresponding to the same service domain are used for the same service scenario; in the case where the determined target port set associated with the target service domain includes a first port subset and a second port subset, a target port is determined from the first port subset and the second port subset so that the host can access the target logical unit via the target port, where the first port subset is only used to access logical units corresponding to the target service domain, and the second port subset is used to access multiple logical units corresponding to multiple service domains.

[0036] It should be noted that Figure 2 the quantities of the storage gateway, switch, storage device, port, service domain, and logical unit in

[0037] are only for illustrative purposes and can be adjusted according to actual needs, which are not limited herein. Moreover, the corresponding relationship between the service domain and the logical unit and the corresponding relationship between the service domain and the port set are only for illustrative purposes and can be adjusted according to actual needs. Figures 3 to 7 The storage device access method according to the embodiments of the present application will be described in detail below.

[0038] Figure 3 shows a flowchart of the storage device access method according to the embodiments of the present application.

[0039] Figure 4 shows a schematic diagram of the storage device access method according to the embodiments of the present application.

[0040] As Figure 3 shown, the storage device access method of this embodiment includes operations S310 to S320.

[0041] In operation S310, in response to receiving an access request from the host for a target logical unit in the storage device, a target service domain corresponding to the target logical unit is determined from multiple service domains of the storage gateway, where logical units corresponding to the same service domain are used for the same service scenario.

[0042] As Figure 4As shown, multiple business domains can be created in the storage gateway according to actual business requirements. For example, business domain 1, business domain n, etc. can be created. A business domain can correspond to storage resources. Specifically, a business domain can correspond to one or more logical units. Among them, the logical units corresponding to a business domain can come from the same storage device or different storage devices. For example, they can come from storage devices of different manufacturers and different models. For example, business domain 1 can correspond to logical unit 1, logical unit n, etc. of storage device 1, or can also correspond to the logical units of storage device n, which will not be elaborated here. Among them, the storage resources can include at least one storage device, such as storage device 1, storage device n, etc.

[0043] The logical units corresponding to the same business domain are used for the same business scenario. For example, the logical units corresponding to business domain 1 are all used for the production business scenario, and the logical units corresponding to business domain 2 are all used for the test business scenario.

[0044] The target logical unit can include the logical unit to be accessed by the host in the storage gateway, and the target logical unit corresponds to the target business domain. For example, if the host requests to access logical unit 1 in storage device 1, and logical unit 1 corresponds to business domain 1, then the target logical unit can include logical unit 1 in storage device 1, and the target business domain can include business domain 1.

[0045] In operation S320, when it is determined that the target port set associated with the target business domain includes a first port subset and a second port subset, determine the target port from the first port subset and the second port subset so that the host can access the target logical unit via the target port. Among them, the first port subset is only used to access the logical units corresponding to the target business domain, and the second port subset is used to access the logical units corresponding to multiple business domains.

[0046] As Figure 4 shown, the port set associated with business domain 1 can include a first port subset, and the first port subset can include first port 1, ……, first port n, etc. The ports associated with different business domains do not overlap.

[0047] After creating the business domain, the available backend ports of the storage gateway can be added to the business domain to obtain the first port subset associated with the business domain. When the port load situation corresponding to the business domain meets the preset standard (such as the port load is within the normal range), the ports in the first port subset are only used to access the logical units corresponding to the same business domain. For example, when the port load situation of business domain 1 is within the normal range, the first port subset associated with business domain 1 can only be used to access the logical units corresponding to business domain 1.

[0048] As Figure 4As shown, the port set associated with service domain 1 may further include a second port subset, and the second port subset may include second port 1, …, second port m, etc.

[0049] When the port load corresponding to a service domain is too high, to ensure that the ports of this service domain can normally access the logical unit, ports of a service domain with a lower port load can be obtained to get the second port subset, so as to temporarily borrow the ports of the service domain with a lower port load to complete the access task. That is to say, the ports in the second port subset are ports that can be shared and reused among multiple service domains. For example, if the port service pressure of service domain 1 is too high while the port service pressure of service domain 2 is relatively low, the port set associated with service domain 2 can provide some ports to access the logical unit of service domain 1. Therefore, for service domain 1, the first port subset may include the ports originally associated with this service domain, and the second port subset may include the ports provided by service domain 2.

[0050] For example, determining the target port from the first port subset and the second port subset may include determining the port with the lowest load from the first port subset and the second port subset as the target port.

[0051] According to the embodiments of the present application, by partitioning service domains on the storage gateway, allocating the backend port resources of the storage gateway to different service domains, and allocating the logical units from different storage devices to different service domains, under normal load conditions, the storage gateway ports can only access the logical units within the same service domain. Compared with the related method of isolation only based on storage devices, the network between the storage gateway and the backend heterogeneous storage is fully connected, and isolation between different storage devices is no longer achieved through network configuration, realizing a finer-grained isolation of storage resources, avoiding complex operations for partitioning the storage network, and improving the operation and maintenance efficiency. And by partitioning multiple service domains, the logical units corresponding to the same service domain are used for the same service scenario, realizing isolation between storage services. When the service pressure corresponding to a service domain is relatively high, the multiplexing of ports between different service domains can be automatically adjusted according to the port load conditions of the service domain, improving the utilization rate of ports and better ensuring service performance.

[0052] According to the embodiments of the present application, determining the target port from the first port subset and the second port subset includes: determining the respective load values of the ports in the first port subset and the second port subset; and taking the ports with load values lower than the preset threshold as the target ports.

[0053] Figure 5 The flowchart of the storage device access method according to another embodiment of the present application is shown.

[0054] As Figure 5As shown, the storage device access method of this embodiment includes operations S510 to S540.

[0055] In operation S510, query the target service domain corresponding to the target logical unit. For example, when it is determined to access logical unit 1, it is queried that logical unit 1 corresponds to service domain 1.

[0056] Operation S520 may include operations S521 and S522.

[0057] In operation S521, read the first port subset associated with the target service domain.

[0058] In operation S522, read the second port subset associated with the target service domain.

[0059] Through operation S520, the target port set associated with the target service domain can be read.

[0060] In operation S530, determine the load value of each port. For example, the load value of each port in the first port subset and the second port subset can be determined respectively.

[0061] In operation S540, use the port with a load value lower than the preset threshold as the target port. For example, the port with the lowest load value can also be used as the target port, thereby realizing the path selection for reading and writing storage resources according to different service domains.

[0062] For example, when it is determined that the target port set associated with the target service domain only includes the first port subset, the load value of each port in the first port subset can be determined, and the port with a load value lower than the preset threshold is used as the target port.

[0063] By determining the target port according to the load conditions of each port in the first port subset and the second port subset, latency and congestion can be reduced, resource utilization can be optimized, and data transmission performance can be improved.

[0064] According to an embodiment of the present application, the storage device access method further includes: periodically determining the port load status corresponding to multiple service domains; when it is determined that the port load status corresponding to any one of the multiple service domains is overloaded, randomly obtain a second port subset from the preset port set, where the preset port set includes at least one port for accessing multiple logical units corresponding to multiple service domains; add the second port subset to the port set associated with any one of the service domains.

[0065] Figure 6 Shows a flowchart of a storage device access method according to another embodiment of the present application. As Figure 6 shown, the storage device access method of this embodiment includes operations S610 to S6140.

[0066] In operation S610, a task is triggered at regular intervals.

[0067] In operation S620, all business domains are traversed.

[0068] In operation S630, the set of ports associated with the business domain is read.

[0069] For example, the trigger period can be set according to actual application requirements to trigger at regular intervals a task for determining the port load status corresponding to multiple business domains. The trigger period can be, for example, at the minute level. All business domains can be traversed to determine the port load status of all business domains. For example, for the current business domain, all ports in this business domain can be obtained, including all configured default ports (i.e., the first port subset) and all shared and multiplexed ports (i.e., the second port subset).

[0070] In operation S640, the load metric value corresponding to the business domain is determined.

[0071] The average value of the load metric values of each port corresponding to the business domain can be determined to obtain the load metric value corresponding to the business domain. Based on the load metric value, the port load status corresponding to the business domain can be determined.

[0072] In operation S650, it is determined whether the load metric value corresponding to the business domain exceeds the first pressure threshold.

[0073] In the case where the load metric value corresponding to the business domain exceeds the first pressure threshold, it indicates that the port load status corresponding to this business domain is overloaded and the port service pressure of this business domain is too high. Therefore, more port multiplexing can be increased.

[0074] For example, the preset port set can include ports for accessing multiple logical units corresponding to multiple business domains, that is, ports that can be shared and multiplexed. In the case where the port load status corresponding to the business domain is overloaded, a certain number of ports can be randomly obtained from the preset port set to obtain the second port subset to relieve the load pressure of this business domain.

[0075] In operation S660, in the case where it is determined that the load metric value corresponding to the business domain exceeds the first pressure threshold, the required number of ports is calculated.

[0076] In operation S670, ports are obtained. For example, after calculating the number of ports in the second port subset, the corresponding number of ports can be obtained from the preset port set.

[0077] For example, it is possible to determine the load metric value of each of at least one backend port in the set of ports associated with any business domain, so as to determine the number of ports in the second subset of ports according to the load metric value, the number of at least one backend port, and a preset load reference value.

[0078] When it is determined that the port load status corresponding to a certain business domain is overloaded, for the set of ports corresponding to this business domain, it is possible to determine the load metric value of each backend port in the set of ports.

[0079] Taking the number of backend ports in the set of ports as N, and the load metric value (the load metric is, for example, the bandwidth utilization rate) of each backend port i as P i , and the preset normal performance value of each backend port i as M i , and taking the preset first pressure threshold as K1 as an example, the calculation method of the number of ports in the second subset of ports can be as shown in the following formula (1).

[0080] (1)

[0081] Where x is the number of ports, is the sum value of the load metric values of each backend port in the set of ports, is the upper limit of the pressure threshold that all ports can reach, and K1 can be greater than 1.

[0082] In operation S680, when it is determined that the load metric value corresponding to the business domain does not exceed the first pressure threshold, it is judged whether the load metric value is lower than the second pressure threshold.

[0083] In operation S690, when it is determined that the load metric value corresponding to the business domain is lower than the second pressure threshold, the number of ports that can be shared is calculated.

[0084] In operation S6100, ports are added.

[0085] For example, when it is determined that the port load status corresponding to any business domain is load idle, a part of the ports in the set of ports associated with any business domain can be added to the preset set of ports.

[0086] When the load metric value corresponding to the business domain is lower than the second pressure threshold, it indicates that the ports of this business domain are relatively idle and in a load idle state. Therefore, a part of the ports can be shared, for example, a part of the ports can be added to the preset set of ports for other business domains in an overloaded state to use.

[0087] Still taking the number of backend ports in the set of ports as N and the preset normal performance value of each backend port i as M iFor example, in the state where the load is idle, the load metric value of each backend port i (the load metric is, for example, the bandwidth utilization rate) can be Q, for example. i The preset second pressure threshold is, for example, K2, and the calculation method of the number of partial ports can be shown as the following formula (2).

[0088] (2)

[0089] Among them, the number of partial ports can be y. is the sum value of the load metric values of each backend port in the port set in the state where the load is idle. can be the low pressure threshold that all ports can reach.

[0090] In operation S6110, when it is determined that the load metric value corresponding to the service domain is not lower than the second pressure threshold, it is judged whether the load metric value is lower than the third pressure threshold.

[0091] In operation S6120, when it is determined that the load metric value corresponding to the service domain is lower than the third pressure threshold, the number of ports that can be released is calculated.

[0092] In operation S6130, release the ports.

[0093] For example, it can be determined that when the port load status corresponding to any service domain returns to the preset standard, the second port subset is migrated to the preset port set.

[0094] The third pressure threshold is, for example, K3. The load metric value corresponding to the service domain being lower than the third pressure threshold indicates that the pressure processing of this service domain is within the normal range. Therefore, if there were ports shared by other service domains reused before (that is, the port set associated with this service domain includes the second port subset), the second port subset can be released. For example, the second port subset can be released back to the preset port set. Among them, K1 is greater than 100%, both K2 and K3 are less than 100% and K2 is less than K3. The values of K1, K2, and K3 can be adjusted according to the actual situation and are not limited here.

[0095] For example, for service domain 1, there are currently 8 available ports, and the average bandwidth utilization rate value of each port is 90%. In actual situations, the performance of each port is different and needs to be summed up for calculation. The normal performance value of a single port is 60%, and the first pressure threshold is 1.3. Then the additional port resources required for service domain 1 are 8×(90% / (×1.3)-1). After rounding up the calculation result, it is 2 ports. Therefore, 2 ports need to be obtained from the preset port set.

[0096] For business domain 2, there are currently 8 available ports, and the bandwidth utilization rate value of each port on average is 20%. In actual situations, the performance of each port varies, and a summation calculation is required. The normal performance value of a single port is 60%, and the second pressure threshold is 0.5. Then the port resources available for sharing in business domain 2 are 8×(1 - 20% / (60×0.5)). After rounding down the calculation result, it is 2 ports. Therefore, business domain 2 can add 2 ports to the preset port set.

[0097] For business domain 3, there are currently 8 available ports, and 2 of them are ports reused from other business domains, that is, 2 ports are obtained from the preset port set. The bandwidth utilization rate value of each port on average is 40%. In actual situations, the performance of each port varies, and a summation calculation is required. The normal performance value of a single port is 60%, and the third normal pressure threshold is 0.8. Since the load index value corresponding to business domain 3 is lower than the third pressure threshold, the 2 reused ports can be released back to the preset port set.

[0098] By automatically adjusting the reuse of ports in different business domains according to the port load status corresponding to the business domain, the port traffic balance between different business domains is achieved, the utilization rate of idle ports is improved, and the service performance is better guaranteed.

[0099] In operation S6140, it is determined whether it is the last business domain. If it is determined that it is not the last business domain, continue traversing. If it is determined that it is the last business domain, end the traversal.

[0100] By traversing each business domain and monitoring and calculating the performance indicators of its port resources, the business pressure levels of each business domain can be dynamically identified. Thus, the port usage between different business domains can be dynamically adjusted, the cross-business-domain reuse of port resources is achieved, the utilization rate of idle ports is improved, and the storage service performance is guaranteed.

[0101] According to the embodiments of the present application, periodically determining the port load conditions corresponding to multiple business domains includes: periodically traversing the load status of ports in the port sets respectively associated with multiple business domains to obtain the port load statuses respectively corresponding to multiple business domains.

[0102] During the periodic traversal process, the load conditions of each port in the port set associated with each business domain can be determined, and based on the load conditions of each port, the port load status corresponding to this business domain can be determined. For example, when periodically traversing each business domain, for business domain 1, business domain 1 is associated with port set 1. The load conditions of each port in port set 1 can be determined. When it is determined that the port load pressures in port set 1 are all relatively high, it can be determined that the load pressure of port set 1 is relatively large. Therefore, the port load status corresponding to business domain 1 can be determined as overloaded.

[0103] According to an embodiment of the present application, the metric value of a port for at least one load evaluation metric can be determined; and the load status of the port can be determined according to the metric value.

[0104] The metrics for evaluating the load performance of a port can be determined to obtain the load evaluation metrics, and the load evaluation metric values of each port in the port set can be calculated, that is, the metric value of the port for at least one load evaluation metric can be determined. The load status of the port can be determined according to the metric value. For example, when the metric value is greater than a preset first threshold, it is determined that the load pressure of the port is large and it is in an overloaded state; when the metric value is less than a preset second threshold, it is determined that the load of the port is at a normal level; when the metric value is less than a preset third threshold, it is determined that the load of the port is low and it is in a load idle state, where the third threshold is less than the second threshold.

[0105] According to an embodiment of the present application, the load evaluation metrics include at least one of the following: bandwidth utilization rate, average delay, and queue depth.

[0106] The load status of a port can be evaluated only through a single load evaluation metric, or multiple load evaluation metrics can be used in combination to evaluate the load status of the port. For example, the load status of the port can be evaluated only by using the bandwidth utilization rate, or the three metrics of bandwidth utilization rate, average delay, and queue depth can be used in combination to evaluate the load status of the port. When multiple load evaluation metrics are used in combination to evaluate the load status of the port, weight values can be determined in advance for different load evaluation metrics, and the metric values of different load evaluation metrics can be weighted and summed based on the weight values to obtain the metric value for determining the load status of the port, so as to accurately evaluate the port load situation.

[0107] Figure 7 The flowchart of creating a service domain according to an embodiment of the present application is shown. As Figure 7 shown, the method of this embodiment includes operations S710 to S790.

[0108] In operation S710, a service domain is created by the storage gateway. For example, a corresponding service domain can be created according to the actual needs of the user.

[0109] In operation S720, the storage gateway adds backend ports to the service domain. For example, the available backend ports of the storage gateway can be added to different service domains. The backend ports added to different service domains do not overlap.

[0110] In operation S730, the storage device can add a storage gateway, for example, adding the storage gateway as a host.

[0111] In operation S740, the storage device may create a volume, and one volume may correspond to one or more logical units on the storage device.

[0112] In operation S750, the storage gateway discovers the storage device. For example, it can be directly discovered through a high-speed data transmission channel, or the storage device can be discovered based on the target IP of the storage device.

[0113] In operation S760, the storage gateway may specify the service domain corresponding to the storage device. This step may be an optional step, or this step may not be executed, and instead, the service domain corresponding to the volume may be directly specified later.

[0114] In operation S770, the storage device may map the volume to the storage gateway so that the storage gateway can identify, manage the storage resources corresponding to the storage gateway.

[0115] In operation S780, the storage gateway scans the volume mapped by the storage device, so that the storage gateway can identify and obtain the volume mapped by the storage gateway.

[0116] In operation S790, the storage gateway specifies the service domain corresponding to the volume. In the case where the service domain corresponding to the storage device has been specified, this step may be an optional step. For example, this step may not be executed, and instead, the service domain corresponding to the storage device may be directly used as the service domain corresponding to the volume. In the case where the service domain corresponding to the storage device has not been specified, this step is a mandatory step, and the service domain corresponding to the volume needs to be specified.

[0117] According to an embodiment of the present application, the storage device access method may include determining the service scenario corresponding to each of at least one logical unit in the storage device; determining the service domain for the at least one logical unit according to the service scenario.

[0118] For example, for one or more logical units in a storage device, the service scenario corresponding to each logical unit may be determined respectively, and the service domain corresponding to each logical unit may be determined according to the service scenario corresponding to each logical unit. For example, logical unit 1 corresponds to the production service scenario, so logical unit 1 may correspond to the production service domain, and logical unit 2 corresponds to the backup service scenario, so logical unit 2 may correspond to the backup service domain. By determining the service scenario corresponding to each of at least one logical unit in the storage device and determining the service domain for the at least one logical unit according to the service scenario, the service domain corresponding to the logical unit can be determined reasonably and accurately, and finer-grained isolation between storage resources is achieved.

[0119] According to an embodiment of the present application, the storage device access method may also include determining the service domain corresponding to the storage device according to the service scenario corresponding to the storage device.

[0120] The business scenario corresponding to the storage device can be determined, and the storage device can be mapped to the corresponding business domain. For example, when it is determined that the storage device corresponds to the production business scenario, the storage device can be mapped to the production business domain; when it is determined that the storage device corresponds to the backup business scenario, the storage device can be mapped to the backup business domain. All logical units corresponding to the storage device can also be divided into the business domain corresponding to the storage device. For example, when it is determined that the storage device corresponds to the production business domain, all logical units of the storage device can be mapped to the production business domain. By determining the business domain corresponding to the storage device according to the business scenario corresponding to the storage device, the corresponding relationship between the logical unit and the business domain can be efficiently determined.

[0121] According to an embodiment of the present application, logical units corresponding to the same business domain come from multiple storage devices, and the manufacturers of the multiple storage devices may be the same or different, and the models of the multiple storage devices may be the same or different.

[0122] For example, business domain 1 may include logical units 1 to 4, where logical units 1 to 2 come from storage device 1, and logical units 3 to 4 come from storage device 2. Storage device 1 and storage device 2 are of different models and from different manufacturers.

[0123] For example, different logical units from the same storage device can also use different backend ports and communication links by specifying different business domains, thereby achieving finer-grained isolation between storage resources between LUNs mapped from heterogeneous storage to the storage gateway.

[0124] Based on the above storage device access method, the present application further provides a storage device access device. The following will be combined with Figure 8 to describe this device in detail.

[0125] Figure 8 shows a structural block diagram of a storage device access device according to an embodiment of the present application.

[0126] As Figure 8 shown, the storage device access device 800 of this embodiment includes a first determination module 810 and a second determination module 820.

[0127] The first determination module 810 is configured to, in response to receiving an access request from a host for a target logical unit in a storage device, determine a target business domain corresponding to the target logical unit from multiple business domains of the storage gateway, where logical units corresponding to the same business domain are used for the same business scenario. In an embodiment, the first determination module 810 may be configured to perform the operation S310 described above, which will not be elaborated here.

[0128] The second determination module 820 is configured to determine a target port from the first port subset and the second port subset when it is determined that the target port set associated with the target service domain includes the first port subset and the second port subset, so that the host can access the target logical unit via the target port. Among them, the first port subset is only used to access the logical unit corresponding to the target service domain, and the second port subset is used to access multiple logical units corresponding to multiple service domains. In an embodiment, the second determination module 820 may be configured to perform the operation S320 described above, which will not be elaborated here.

[0129] Optionally, the second determination module includes a first determination sub-module, and the first determination sub-module is configured to determine the respective load values of the ports in the first port subset and the target second port subset; and use the ports with load values lower than the preset threshold as the target ports.

[0130] Optionally, the storage device access device 800 further includes a third determination module, a random acquisition module, and an addition module.

[0131] The third determination module is configured to periodically determine the port load status corresponding to multiple service domains; the random acquisition module is configured to randomly acquire a second port subset from a preset port set when it is determined that the port load status corresponding to any one of the multiple service domains is overloaded, where the preset port set includes at least one port for accessing multiple logical units corresponding to multiple service domains; the addition module is configured to add the second port subset to the port set associated with any one of the service domains.

[0132] Optionally, the storage device access device 800 further includes a fourth determination module, and the fourth determination module is configured to determine the respective load metric values of at least one backend port in the port set associated with any one of the service domains, so as to determine the number of ports in the second port subset according to the load metric values, the number of at least one backend port, and a preset load reference value.

[0133] Optionally, the storage device access device 800 further includes a migration module, and the migration module is configured to migrate the second port subset to the preset port set when it is determined that the port load status corresponding to any one of the service domains returns to the preset standard.

[0134] Optionally, the storage device access device 800 further includes an addition module, and the addition module is configured to add some ports in the port set associated with any one of the service domains to the preset port set when it is determined that the port load status corresponding to any one of the service domains is load idle.

[0135] Optionally, the third determination module includes a traversal sub-module, and the traversal sub-module is configured to periodically traverse the load status of the ports in the port sets respectively associated with multiple service domains to obtain the port load statuses respectively corresponding to multiple service domains.

[0136] Optionally, the storage device access device 800 further includes a fifth determination module and a sixth determination module.

[0137] The fifth determination module is used to determine the metric values of the port for at least one load evaluation metric; the sixth determination module is used to determine the load status of the port according to the metric values.

[0138] Optionally, the storage device access device 800 further includes a seventh determination module and an eighth determination module.

[0139] The seventh determination module is used to determine the service scenarios corresponding to at least one logical unit in the storage device; the eighth determination module is used to determine the service domains for at least one logical unit according to the service scenarios.

[0140] Optionally, the storage device access device 800 further includes a ninth determination module, and the ninth determination module is used to determine the service domain corresponding to the storage device according to the service scenario corresponding to the storage device.

[0141] According to an embodiment of the present application, any plurality of modules among the first determination module 810 and the second determination module 820 may be combined and implemented in one module, or any one of them may be split into multiple modules. Or, at least part of the functions of one or more of these modules may be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present application, at least one of the first determination module 810 and the second determination module 820 may be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on chip, a system on substrate, a system on package, an application specific integrated circuit (ASIC), or any other reasonable way of integrating or packaging circuits, etc., implemented by hardware or firmware, or implemented in any one of the three implementation manners of software, hardware, and firmware, or in any suitable combination of several of them. Or, at least one of the first determination module 810 and the second determination module 820 may be at least partially implemented as a computer program module, and when the computer program module is run, it can execute the corresponding functions.

[0142] Figure 9 Shows a block diagram of an electronic device suitable for implementing the storage device access method according to an embodiment of the present application.

[0143] As Figure 9As shown, an electronic device 900 according to an embodiment of the present application includes a processor 901, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 902 or a program loaded from a storage section 908 into a random access memory (RAM) 903. The processor 901 can include, for example, a general microprocessor (such as a CPU), an instruction set processor, and / or a related chipset, and / or a dedicated microprocessor (such as an application-specific integrated circuit (ASIC)), etc. The processor 901 can also include on-board memory for caching purposes. The processor 901 can include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present application.

[0144] In the RAM 903, various programs and data required for the operation of the electronic device 900 are stored. The processor 901, the ROM 902, and the RAM 903 are connected to each other via a bus 904. The processor 901 performs various operations of the method flow according to an embodiment of the present application by executing the program in the ROM 902 and / or the RAM 903. It should be noted that the program can also be stored in one or more memories other than the ROM 902 and the RAM 903. The processor 901 can also perform various operations of the method flow according to an embodiment of the present application by executing the program stored in one or more memories.

[0145] According to an embodiment of the present application, the electronic device 900 can also include an input / output (I / O) interface 905, and the input / output (I / O) interface 905 is also connected to the bus 904. The electronic device 900 can also include one or more of the following components connected to the input / output (I / O) interface 905: an input section 906 including a keyboard, a mouse, etc.; an output section 907 including, for example, a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 908 including a hard disk, etc.; and a communication section 909 including a network interface card such as a LAN card, a modem, etc. The communication section 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to the input / output (I / O) interface 905 as needed. A removable medium 911, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 910 as needed so that a computer program read from it can be installed into the storage section 908 as needed.

[0146] The present application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or may exist alone without being assembled into the device / apparatus / system. The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed, the methods according to the embodiments of the present application are implemented.

[0147] According to an embodiment of the present application, the computer-readable storage medium may be a non-volatile computer-readable storage medium, and may include, for example, but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. In the present application, the computer-readable storage medium may be any tangible medium that contains or stores a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device. For example, according to an embodiment of the present application, the computer-readable storage medium may include the above-described ROM 902 and / or RAM 903 and / or one or more memories other than ROM 902 and RAM 903.

[0148] An embodiment of the present application also includes a computer program product, which includes a computer program that contains program code for executing the method shown in the flowchart. When the computer program product runs in a computer system, the program code is used to cause the computer system to implement the method provided by the embodiments of the present application.

[0149] When the computer program is executed by the processor 901, the above functions defined in the system / apparatus of the embodiments of the present application are executed. According to an embodiment of the present application, the above-described systems, apparatuses, modules, units, etc. may be implemented by computer program modules.

[0150] In one embodiment, the computer program may rely on tangible storage media such as optical storage devices and magnetic storage devices. In another embodiment, the computer program may also be transmitted and distributed in the form of a signal on a network medium, and be downloaded and installed through the communication part 909, and / or be installed from the removable medium 911. The program code included in the computer program may be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.

[0151] In such an embodiment, the computer program can be downloaded and installed from a network through the communication part 909, and / or installed from the removable medium 911. When the computer program is executed by the processor 901, the above functions defined in the system of the embodiments of the present application are performed. According to the embodiments of the present application, the above-described systems, devices, apparatuses, modules, units, etc. can be implemented by computer program modules.

[0152] According to the embodiments of the present application, the program code for executing the computer program provided by the embodiments of the present application can be written in any combination of one or more programming languages. Specifically, these computing programs can be implemented using high-level procedures and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, such as Java, C++, Python, the "C" language, or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, by connecting through an Internet service provider via the Internet).

[0153] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagram can represent a module, a program segment, or a part of the code, and the above module, program segment, or part of the code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram or flowchart, and the combination of blocks in the block diagram or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0154] Those skilled in the art can understand that the features described in the various embodiments of the present application can be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in the present application. In particular, without departing from the spirit and teachings of the present application, the features described in the various embodiments of the present application can be combined and / or combined in various ways. All such combinations and / or combinations fall within the scope of the present application.

[0155] The embodiments of the present application have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of the present application. Although the embodiments have been described separately above, this does not mean that the measures in each embodiment cannot be used advantageously in combination. Without departing from the scope of the present application, those skilled in the art can make various substitutions and modifications, and all such substitutions and modifications should fall within the scope of the present application.

Claims

1. A method for accessing a storage device, characterized in that, The method includes: In response to receiving an access request from a host for a target logical unit in a storage device, determining a target service domain corresponding to the target logical unit from multiple service domains of a storage gateway, where logical units corresponding to the same service domain are used for the same service scenario; When it is determined that the target port set associated with the target service domain includes a first port subset and a second port subset, determining a target port from the first port subset and the second port subset so that the host accesses the target logical unit via the target port; Wherein, the first port subset is only used to access logical units corresponding to the target service domain, and the second port subset is used to access multiple logical units corresponding to multiple service domains.

2. The method according to claim 1, characterized in that The determining a target port from the first port subset and the second port subset includes: Determining the respective load values of the ports in the first port subset and the second port subset; Taking the ports with load values lower than a preset threshold as the target ports.

3. The method according to claim 1, characterized in that, The method further includes: Periodically determining the port load status corresponding to the multiple service domains; When it is determined that the port load status corresponding to any one of the multiple service domains is overloaded, randomly obtaining the second port subset from a preset port set, where the preset port set includes at least one port for accessing multiple logical units corresponding to multiple service domains; Adding the second port subset to the port set associated with any one of the service domains.

4. The method according to claim 3, characterized in that The method further includes: Determining the respective load metric values of at least one backend port in the port set associated with any one of the service domains, so as to determine the number of ports in the second port subset according to the load metric values, the number of the at least one backend port, and a preset load reference value.

5. The method according to claim 3, characterized in that The method further includes: When it is determined that the port load status corresponding to any one of the service domains resumes to a preset standard, migrating the second port subset to the preset port set.

6. The method according to claim 3, characterized in that, The method further includes: When it is determined that the port load status corresponding to any one of the service domains is load idle, adding some ports in the port set associated with any one of the service domains to the preset port set.

7. The method according to claim 3, characterized in that The periodically determining the port load status corresponding to the multiple service domains includes: Periodically traversing the load status of the ports in the port sets respectively associated with the multiple service domains to obtain the port load statuses respectively corresponding to the multiple service domains.

8. The method according to claim 7, characterized in that, The method further includes: Determining the metric values of the ports for at least one load evaluation metric; Determining the load status of the ports according to the metric values.

9. The method according to claim 8, characterized in that The load evaluation metric includes at least one of the following: bandwidth utilization rate, average delay, queue depth.

10. The method according to claim 1, characterized in that The method further includes: Determining the service scenarios respectively corresponding to at least one logical unit in the storage device; Determining the service domains for the at least one logical unit according to the service scenarios.

11. The method according to claim 1, characterized in that The method further includes: Determining the service domain corresponding to the storage device according to the service scenario corresponding to the storage device.

12. The method according to claim 1, characterized in that The logic units corresponding to the same business domain come from multiple storage devices, and the manufacturers of the multiple storage devices are the same or different, and the models of the multiple storage devices are the same or different.

13. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instruction is executed by a processor, it implements the steps of the method according to any one of claims 1 to 12.

14. An electronic device, comprising: One or more processors; A memory for storing one or more computer programs, Characterized in that the one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 12.

15. A computer-readable storage medium having a computer program or instructions stored thereon, characterized in that, When the computer program or instruction is executed by a processor, it implements the steps of the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Method and system for controlling access to logical unit of a storage device shared by computers

    CN101056237A

  • Method for accessing logic unit in storage device and device

    CN101448023A

  • Method and apparatus for controlling access to logical units

    CN1902578A

  • Target port set selection for a connection path based on comparison of respective loads

    US10733131B1

  • Using host connectivity states to avoid queuing I / O requests

    US11803453B1