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

By dividing business domains and automatically adjusting port multiplexing on the storage gateway, the problems of resource waste and isolation complexity in heterogeneous storage devices are solved, achieving more efficient storage resource management and performance assurance.

CN120407467BActive Publication Date: 2025-09-16INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

The existing technology for managing heterogeneous storage devices in data centers suffers from resource waste and inability to achieve finer-grained storage resource isolation. In addition, the network configuration is complex, which affects operation and maintenance efficiency.

Method used

By dividing the business domains on the storage gateway, the logical units of the storage device are allocated to different business domains. Under normal load conditions, only the logical units within the same business domain are accessed, achieving a fully connected network connection and automatically adjusting port multiplexing between different business domains based on the port load conditions.

Benefits of technology

It achieves finer-grained storage resource isolation, improves port utilization and operation and maintenance efficiency, and ensures the performance of storage services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120407467B_ABST
    Figure CN120407467B_ABST
Patent Text Reader

Abstract

The present application provides a storage device access method, device, storage medium, and program product, which can be applied in the field of computer technology. The storage device access method includes: in response to receiving an access request for a target logical unit in a storage device from a host, determining a target business domain corresponding to the target logical unit from multiple business domains of a storage gateway, wherein logical units corresponding to the same business domain are used in the same business scenario; and when it is determined that a target port set associated with the target business 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 can access the target logical unit via 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 specifically to a storage device access method, device, storage medium, and program product. Background Art

[0002] Data centers often have heterogeneous storage devices, such as those from different manufacturers and models. To facilitate unified storage device management, storage gateways are typically used to manage these heterogeneous storage devices and provide storage services.

[0003] To prevent storage devices of different models and services from interfering with each other, network isolation is often achieved by creating virtual local area networks (VLANs). However, this approach prevents different network resources from being reused even when they are idle, resulting in wasted resources. Furthermore, this approach only isolates heterogeneous storage devices and is difficult to achieve at a more granular level. Summary of the Invention

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

[0005] According to a first aspect of the present application, a storage device access method is provided, comprising: in response to receiving an access request for a target logical unit in a storage device from a host, determining a target business domain corresponding to the target logical unit from multiple business domains of a storage gateway, wherein logical units corresponding to the same business domain are used for the same business scenario; and in a case where it is determined that a target port set associated with the target business 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 used only for accessing the logical unit corresponding to the target business domain, and the second port subset is used for accessing multiple logical units corresponding to multiple business domains.

[0006] The second aspect of the present application provides an electronic device, comprising: 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] The third aspect of the present application further provides a computer-readable storage medium having a computer program or instructions stored thereon, which implements the steps of the above method when the computer program or instructions are executed by a processor.

[0008] The fourth aspect of the present application further provides a computer program product, comprising a computer program or instructions, which implement the steps of the above method when executed by a processor.

[0009] According to an embodiment of the present application, by dividing the business domains on the storage gateway, the back-end port resources of the storage gateway are allocated to different business domains, and the logical units from different storage devices are allocated to different business domains. Under normal load conditions, the storage gateway port can only access the logical units within the same business domain. Compared with the related isolation method based only on storage devices, the network between the storage gateway and the back-end heterogeneous storage is fully connected, and isolation between different storage devices is no longer performed through network configuration, achieving finer-grained isolation of storage resources, avoiding the complex operation of dividing the storage network, and improving operation and maintenance efficiency. In addition, by dividing multiple business domains, the logical units corresponding to the same business domain are used in the same business scenario, achieving isolation between storage businesses. When the business pressure corresponding to the business domain is large, the reuse of ports between different business domains can be automatically adjusted according to the port load situation of the business domain, thereby improving port utilization and better guaranteeing business performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The above contents and other objects, features and advantages of the present application will become more apparent through the following description of the embodiments of the present application with reference to the accompanying drawings, in which:

[0011] Figure 1 A schematic diagram of a management storage device showing a related method.

[0012] Figure 2 An application scenario diagram 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 of a storage device access method according to an embodiment of the present application is shown.

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

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

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

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

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

[0019] Figure 9 A 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 DESCRIPTION

[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 exemplary only and are not intended to limit the scope of the present application. In the detailed description below, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of the embodiments of the present application. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessarily confusing the concepts of the present application.

[0021] The terms used herein are only for describing specific embodiments and are not intended to limit the present application. The terms "comprise," "include," 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 used herein (including technical and scientific terms) 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] When expressions such as "at least one of A, B, and C, etc." are used, they should generally be interpreted in accordance with 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 is not limited to a system having A alone, B alone, C alone, A and B, A and C, B and C, and / or A, B, C, etc.).

[0024] Figure 1 A schematic diagram of a management storage device showing a related method.

[0025] like Figure 1 As shown, in the relevant method, the devices involved in managing storage devices may include a host, switches 1 and 2, storage gateways 1 and 2, storage devices 1, 2, 3, and 4. The host and storage gateways, and the storage gateways and storage devices, can be cross-connected via dual switches. For example, both can be cross-connected via switches 1 and 2. Even if one switch fails (e.g., switch 1 loses power), the other switch can still maintain network connectivity, ensuring uninterrupted services. Figure 1 The black solid dots on the edges of the boxes shown can represent physical connection points between devices, which are used to implement physical connections between different devices. For example, the host's network port is connected to the ports of switch 1 and switch 2 through a network cable, and switch 1 and switch 2 are connected to multiple storage devices through their ports.

[0026] Related methods usually manage heterogeneous storage devices through storage gateways, and usually use methods such as dividing virtual local area networks (VLANs) to isolate networks.

[0027] For ease of description, let's take the example of a storage gateway comprising storage gateway 1 and storage gateway 2, storage devices comprising storage device 1 and storage device 2, and storage device 1 and storage device 2 each comprising a P1 port and a P2 port. Virtual Local Area Network (VLAN) 1 and Virtual Local Area Network (VLAN) 2 can be divided, where VLAN 1 comprises the P1 port of storage gateway 1, the P1 port of storage gateway 2, and the four ports of storage device 1, while VLAN 2 comprises the P2 port of storage gateway 2, the P2 port of storage gateway 2, and the four ports of storage device 2. While this approach can achieve service isolation between different storage devices, due to the network isolation, different network resources cannot be reused even if they are idle, resulting in resource waste. Furthermore, this network isolation approach only achieves isolation between different heterogeneous storage devices and cannot achieve finer-grained isolation between storage resources, such as isolation between logical unit numbers (LUNs) mapped from heterogeneous storage to storage gateways. In addition, the network configuration for network isolation by dividing virtual LANs is complex and requires configuration of each port, which is a lot of work. If the configuration is wrong, it will lead to network problems such as network disconnection. If there are business adjustments, the network needs to be readjusted and divided, and the adjustment process may have an impact on existing business.

[0028] In view of this, an embodiment of the present application provides a storage device access method, comprising: in response to receiving an access request for a target logical unit in a storage device from a host, determining a target business domain corresponding to the target logical unit from multiple business domains of a storage gateway, wherein the logical units corresponding to the same business domain are used for the same business scenario; in a case where it is determined that a target port set associated with the target business 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 the logical unit corresponding to the target business domain, and the second port subset is used to access multiple logical units corresponding to multiple business domains.

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

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

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

[0032] A business domain can be associated with a port set. For example, in storage gateway 1, the ports corresponding to storage gateway 1 can be divided into n port sets: business domain 1 is associated with port set 1 corresponding to storage gateway 1, business domain 2 is associated with port set 2 corresponding to storage gateway 1, and business 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 port sets: business domain 1 is associated with port set 1 corresponding to storage gateway 2, business domain 2 is associated with port set 2 corresponding to storage gateway 2, and business domain n is associated with port set n corresponding to storage gateway 2.

[0033] A storage device may include one or more logical units, each of which can independently store data or be independently identified and accessed by an operating system or application. For example, storage device 1 includes logical unit 1, logical unit 2, and logical unit n. Similarly, storage devices 2 through 4 may also each include logical unit 1, logical unit 2, and logical unit n.

[0034] One or more logical units can correspond to a business domain. For example, in storage device 1, logical unit 1 of storage device 1 can correspond to business domain 1, logical unit 2 can correspond to business domain 2, and logical unit n can correspond to business domain n. Similarly, logical unit 1 of storage device 2 can correspond to business domain 1, logical unit 2 can correspond to business domain 2, and logical unit n can correspond to business domain n. Logical unit 1 of storage device 3 can correspond to business domain 1, logical unit 2 can correspond to business domain 2, and logical unit n can correspond to business domain n. Logical unit 1 of storage device 4 can correspond to business domain 1, logical unit 2 can correspond to business domain 2, and logical unit n can correspond to business 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 in storage device 1 (i.e., logical unit 1 in storage device 1), a target business domain corresponding to the target logical unit is determined from multiple business domains of storage gateway 1, where logical units corresponding to the same business domain are used in the same business scenario. When it is determined that a target port set associated with the target business 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. The first port subset is used only to access the logical unit corresponding to the target business domain, and the second port subset is used to access multiple logical units corresponding to multiple business domains.

[0036] It should be noted that Figure 2 The number of storage gateways, switches, storage devices, ports, service domains, and logical units is for illustrative purposes only and can be adjusted according to actual needs. No limitation is imposed here. The correspondence between service domains and logical units and the correspondence between service domains and port sets are for illustrative purposes only and can be adjusted according to actual needs.

[0037] The following will be passed Figures 3 to 7 The storage device access method according to the embodiment of the present application is described in detail.

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

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

[0040] like Figure 3 As 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 for a target logical unit in a storage device from a host, a target business domain corresponding to the target logical unit is determined from multiple business domains of a storage gateway, wherein logical units corresponding to the same business domain are used for the same business scenario.

[0042] like Figure 4As shown, multiple business domains can be created in the storage gateway based on actual business needs, such as business domain 1, business domain n, etc. A business domain can correspond to a storage resource. Specifically, a business domain can correspond to one or more logical units. The logical units corresponding to a business domain can come from the same storage device or from different storage devices, such as storage devices from 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 to the logical unit of storage device n. The details will not be repeated here. Storage resources can include at least one storage device, such as storage device 1, storage device n, etc.

[0043] Logical units corresponding to the same business domain are used in the same business scenario. For example, logical units corresponding to business domain 1 are all used in production business scenarios, and logical units corresponding to business domain 2 are all used in testing business scenarios.

[0044] The target logical unit may include the logical unit that the host in the storage gateway wants to access, and the target logical unit corresponds to the target business domain. For example, if the host requests access to logical unit 1 in storage device 1, and logical unit 1 corresponds to business domain 1, the target logical unit may include logical unit 1 in storage device 1, and the target business domain may 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, a target port is determined 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 used only to access the logical unit corresponding to the target business domain, and the second port subset is used to access multiple logical units corresponding to multiple business domains.

[0046] like Figure 4 As shown, the port set associated with service domain 1 may include a first port subset, which may include a first port 1, ..., a first port n, etc. Ports associated with different service domains do not overlap.

[0047] After creating a business domain, the available back-end ports of the storage gateway can be added to the business domain to obtain a first port subset associated with the business domain. When the port load 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 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] like Figure 4As shown, the port set associated with the service domain 1 may further include a second port subset, and the second port subset may include a second port 1, ..., a second port m, and so on.

[0049] When the port load corresponding to a business domain is too high, to ensure that the port in that business domain can normally access the logical unit, the port in the business domain with a lower port load can be obtained to obtain a second port subset, so that the port in the business domain with a lower port load can be temporarily borrowed to complete the access task. In other words, the ports in the second port subset are ports that can be shared and reused among multiple business domains. For example, the port pressure of Business Domain 1 is too high, while the port pressure of Business Domain 2 is lower. Therefore, the port set associated with Business Domain 2 can provide some ports for accessing the logical unit of Business Domain 1. Therefore, for Business Domain 1, the first port subset can include the ports originally associated with that business domain, and the second port subset can include the ports provided by Business Domain 2.

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

[0051] According to an embodiment of the present application, by dividing the business domains on the storage gateway, the back-end port resources of the storage gateway are allocated to different business domains, and the logical units from different storage devices are allocated to different business domains. Under normal load conditions, the storage gateway port can only access the logical units within the same business domain. Compared with the related isolation method based only on storage devices, the network between the storage gateway and the back-end heterogeneous storage is fully connected, and isolation between different storage devices is no longer performed through network configuration, achieving finer-grained isolation of storage resources, avoiding the complex operation of dividing the storage network, and improving operation and maintenance efficiency. In addition, by dividing multiple business domains, the logical units corresponding to the same business domain are used in the same business scenario, achieving isolation between storage businesses. When the business pressure corresponding to the business domain is large, the reuse of ports between different business domains can be automatically adjusted according to the port load situation of the business domain, thereby improving port utilization and better guaranteeing business performance.

[0052] According to an embodiment of the present application, determining the target port from the first port subset and the second port subset includes: determining the load value of each port in the first port subset and the second port subset; and selecting the port with a load value lower than a preset threshold as the target port.

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

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

[0055] In operation S510 , a target service domain corresponding to a target logical unit is queried. For example, when it is determined that logical unit 1 is to be accessed, it is found that logical unit 1 corresponds to service domain 1 .

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

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

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

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

[0060] In operation S530, the load value of each port is determined. 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, the port with a load value lower than a preset threshold is used as the target port. For example, the port with the lowest load value can be used as the target port, thereby realizing 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 includes only the first port subset, the load value of each port in the first port subset is determined, and ports with load values ​​lower than a preset threshold are used as target ports.

[0063] By determining the target port according to the load condition of each port in the first port subset and the second port subset, delay 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 also includes: periodically determining the port load status corresponding to multiple business domains; when it is determined that the port load status corresponding to any one of the multiple business domains is overloaded, randomly obtaining a second port subset from a preset port set, wherein the preset port set includes at least one port for accessing multiple logical units corresponding to the multiple business domains; and adding the second port subset to the port set associated with any one of the business domains.

[0065] Figure 6 FIG. 1 shows a flow chart of a storage device access method according to another embodiment of the present application. Figure 6 As shown, the storage device access method of this embodiment includes operations S610 to S6140.

[0066] In operation S610 , a task is triggered at a fixed time.

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

[0068] In operation S630 , a port set associated with the service domain is read.

[0069] For example, a trigger period can be set based on actual application requirements to periodically trigger the task of determining the port load status corresponding to multiple service domains. The trigger period can be, for example, minute-level. All service domains can be traversed to determine the port load status of all service domains. For example, for the current service domain, all ports in the service 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, a load index value corresponding to the service domain is determined.

[0071] The average value of the load index values ​​of the ports corresponding to the service domain may be determined to obtain the load index value corresponding to the service domain, and the load status of the port corresponding to the service domain may be determined based on the load index value.

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

[0073] When the load index value corresponding to the service domain exceeds the first pressure threshold, it indicates that the port load state corresponding to the service domain is overloaded and the port service pressure of the service domain is too large, so more port multiplexing can be added.

[0074] For example, the preset port set may include ports for accessing multiple logical units corresponding to multiple service domains, i.e., ports that can be shared and reused. If the ports corresponding to a service domain are overloaded, a certain number of ports can be randomly selected from the preset port set to form a second port subset to reduce the load on the service domain.

[0075] In operation S660 , if it is determined that the load index value corresponding to the service domain exceeds the first pressure threshold, the required number of ports is calculated.

[0076] In operation S670 , ports are acquired. For example, after the number of ports in the second port subset is calculated, a corresponding number of ports may be acquired from a preset port set.

[0077] For example, the load index value of at least one backend port in the port set associated with any service domain can be determined, so as to determine the number of ports in the second port subset according to the load index value, the number of at least one backend port and the preset load reference value.

[0078] When it is determined that the port load status corresponding to a certain service domain is overloaded, for the port set corresponding to the service domain, the load index value of each backend port in the port set may be determined.

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

[0080] (1)

[0081] Where x is the number of ports, is the sum of the load index values ​​of each backend port in the port set. The upper limit of the pressure threshold that can be reached by all ports. K1 can be greater than 1.

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

[0083] In operation S690 , if it is determined that the load index value corresponding to the service domain is lower than the second pressure threshold, the number of sharable ports is calculated.

[0084] In operation S6100, a port is added.

[0085] For example, when it is determined that the port load status corresponding to any service domain is idle, some ports in the port set associated with any service domain are added to the preset port set.

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

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

[0088] (2)

[0089] Among them, the number of some ports can be y, is the sum of the load index values ​​of each backend port in the port set when the load is idle. This is the lower pressure threshold that can be achieved on all ports.

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

[0091] In operation S6120, if it is determined that the load index value corresponding to the service domain is lower than the third pressure threshold, the number of releasable ports is calculated.

[0092] In operation S6130, the port is released.

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

[0094] The third pressure threshold is, for example, K3. A load index value corresponding to the business domain is lower than the third pressure threshold, indicating that the pressure handling range of the business domain is normal. Therefore, if ports shared by other business domains have been reused before (that is, the port set associated with the business 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, where K1 is greater than 100%, K2 and K3 are both less than 100%, and K2 is less than K3. The values ​​of K1, K2, and K3 can be adjusted according to actual conditions and are not limited here.

[0095] For example, for service domain 1, there are currently eight available ports, and the average bandwidth utilization per port is 90%. In practice, the performance of each port varies, requiring a summation. The normal performance of a single port is 60%, and the first stress threshold is 1.3. Therefore, the additional port resources required for service domain 1 are 8 × (90% / (60 × 1.3) - 1). Rounding up this result yields two ports, so two ports must be obtained from the preset port set.

[0096] For service domain 2, there are currently eight available ports, with an average bandwidth utilization of 20% per port. In practice, port performance varies, requiring a summation calculation. The normal performance of a single port is 60%, and the second stress threshold is 0.5. Therefore, the port resources available for sharing in service domain 2 are 8 × (1 - 20% / (60 × 0.5)). Rounding this result down to two ports, service domain 2 can add two ports to the preset port set.

[0097] For service domain 3, there are currently eight available ports, two of which are reused from other service domains. This means that two ports are taken from the preset port set. The average bandwidth utilization per port is 40%. In practice, individual port performance varies, requiring a summation calculation. The normal performance of a single port is 60%, and the third normal pressure threshold is 0.8. Since the load index corresponding to service domain 3 is below the third pressure threshold, the two 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, port traffic balance between different business domains is achieved, the utilization rate of idle ports is improved, and business performance is better guaranteed.

[0099] In operation S6140 , it is determined whether it is the last business domain. If it is determined not to be the last business domain, the traversal is continued. If it is determined to be the last business domain, the traversal is terminated.

[0100] By traversing each business domain and monitoring and calculating the performance indicators of its port resources, the business pressure of each business domain can be dynamically identified, so that the port usage between different business domains can be dynamically adjusted, realizing the cross-business domain reuse of port resources, improving the utilization rate of idle ports, and ensuring storage business performance.

[0101] According to an embodiment of the present application, periodically determining the port load conditions corresponding to multiple service domains includes: periodically traversing the load conditions of ports in the port sets associated with each of the multiple service domains to obtain the port load conditions corresponding to the multiple service domains respectively.

[0102] During the periodic traversal process, the load status of each port in the port set associated with each business domain can be determined, and based on the load status of each port, the load status of the port corresponding to the business domain can be determined. For example, during the periodic traversal of each business domain, for business domain 1, which is associated with port set 1, the load status of each port in port set 1 can be determined. If it is determined that the load pressure of the ports in port set 1 is high, it can be determined that the load pressure of port set 1 is high, and therefore the load status of the ports corresponding to business domain 1 can be determined to be overloaded.

[0103] According to an embodiment of the present application, an index value of a port for at least one load evaluation index may be determined; and a load state of the port may be determined based on the index value.

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

[0105] According to an embodiment of the present application, the load assessment indicator includes at least one of the following: bandwidth utilization, average delay, and queue depth.

[0106] The port load status can be assessed using a single load assessment metric, or a combination of multiple load assessment metrics. For example, bandwidth utilization alone can be used to assess the port load status, or bandwidth utilization, average latency, and queue depth can be used to assess the port load status. When multiple load assessment metrics are used to assess the port load status, weights can be pre-determined for each load assessment metric. Based on the weights, the weighted sum of the metrics is calculated to obtain the metric value used to determine the port load status, thereby accurately assessing the port load condition.

[0107] Figure 7 FIG. 1 shows a flow chart of creating a business domain according to an embodiment of the present application. Figure 7 As shown, the method of this embodiment includes operations S710 to S790.

[0108] In operation S710, the storage gateway creates a service domain. For example, a corresponding service domain may be created based on actual user needs.

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

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

[0111] In operation S740 , the storage device may create a volume. A 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, directly discovering the storage device through a high-speed data transmission channel, or discovering the storage device according to the target IP address of the storage device.

[0113] In operation S760, the storage gateway may specify a service domain corresponding to the storage device. This step may be optional, or may not be performed, and 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 and manage storage resources corresponding to the storage gateway.

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

[0116] In operation S790, the storage gateway specifies the business domain corresponding to the volume. If the business domain corresponding to the storage device has already been specified, this step may be optional. For example, this step may not be performed, and the business domain corresponding to the storage device may be directly used as the business domain corresponding to the volume. If the business domain corresponding to the storage device has not been specified, this step is mandatory and the business domain corresponding to the volume must be specified.

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

[0118] For example, for one or more logical units in a storage device, the business scenario corresponding to each logical unit can be determined separately, and the business domain corresponding to each logical unit can be determined based on the business scenario corresponding to each logical unit. For example, logical unit 1 corresponds to the production business scenario, so logical unit 1 can correspond to the production business domain, and logical unit 2 corresponds to the backup business scenario, so logical unit 2 can correspond to the backup business domain. By determining the business scenario corresponding to at least one logical unit in the storage device and determining the business domain for at least one logical unit based on the business scenario, the business domain corresponding to the logical unit can be reasonably and accurately determined, achieving more fine-grained isolation between storage resources.

[0119] According to an embodiment of the present application, the storage device access method may also include determining a business domain corresponding to the storage device based on a business 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, if it is determined that the storage device corresponds to the production business scenario, the storage device can be mapped to the production business domain. If 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, if 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 based on the business scenario corresponding to the storage device, the correspondence between the logical units and the business domain can be efficiently determined.

[0121] According to an embodiment of the present application, the logical units corresponding to the same service domain come from multiple storage devices, 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.

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

[0123] For example, different logical units from the same storage device can also use different back-end 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 also provides a storage device access device. Figure 8 The device is described in detail.

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

[0126] like Figure 8 As shown, the storage device access apparatus 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 in the same business scenario. In one embodiment, the first determination module 810 can be configured to perform operation S310 described above, which will not be further described here.

[0128] The second determination module 820 is configured to, upon determining that the target port set associated with the target service domain includes the first port subset and the second port subset, determine a 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, wherein the first port subset is used only 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 one embodiment, the second determination module 820 can be configured to perform operation S320 described above, which will not be further described herein.

[0129] Optionally, the second determining module includes a first determining submodule, which is used to determine the load value of each port in the first port subset and the target second port subset; and select the port with a load value lower than a preset threshold as the target port.

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

[0131] The third determination module is used to periodically determine the port load status corresponding to multiple business domains; the random acquisition module is used to randomly obtain a second port subset from a preset port set when it is determined that the port load status corresponding to any business domain among the multiple business domains is overloaded, wherein the preset port set includes at least one port for accessing multiple logical units corresponding to the multiple business domains; the adding module is used to add the second port subset to the port set associated with any business domain.

[0132] Optionally, the storage device access device 800 also includes a fourth determination module, which is used to determine the load index value of each of at least one back-end ports in a port set associated with any business domain, so as to determine the number of ports in the second port subset based on the load index value, the number of at least one back-end port and a preset load reference value.

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

[0134] Optionally, the storage device access apparatus 800 further includes an adding module configured to add some ports in the port set associated with any service domain to the preset port set when determining that the port load status corresponding to any service domain is idle.

[0135] Optionally, the third determining module includes a traversal submodule, which is used to periodically traverse the load states of ports in the port sets associated with the multiple service domains to obtain the port load states corresponding to the multiple service domains.

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

[0137] The fifth determining module is used to determine an index value of the port for at least one load evaluation index; and the sixth determining module is used to determine a load state of the port according to the index value.

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

[0139] The seventh determination module is used to determine the business scenario corresponding to each of at least one logical unit in the storage device; the eighth determination module is used to determine the business domain for at least one logical unit according to the business scenario.

[0140] Optionally, the storage device access apparatus 800 further includes a ninth determination module, which is configured to determine a business domain corresponding to the storage device according to a business scenario corresponding to the storage device.

[0141] According to embodiments of the present application, any multiple modules in the first determination module 810 and the second determination module 820 may be combined into a single module, or any one of them may be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules may be combined with at least part of the functionality of other modules and implemented in a single module. According to embodiments 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 a chip, a system on a substrate, a system on a package, an application-specific integrated circuit (ASIC), or may be implemented in hardware or firmware through any other reasonable means of circuit integration or packaging, or may be implemented in any one of the three implementation methods of software, hardware, and firmware, or any appropriate combination of any of these. Alternatively, 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 that, when executed, performs the corresponding functionality.

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

[0143] like 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 based on programs stored in a read-only memory (ROM) 902 or programs loaded from a storage unit 908 into a random access memory (RAM) 903. The processor 901 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or related chipsets and / or a dedicated microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 901 may also include onboard memory for caching purposes. The processor 901 may include a single processing unit or multiple processing units for performing different actions of the method flow according to the embodiment of the present application.

[0144] Various programs and data required for the operation of the electronic device 900 are stored in the RAM 903. 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 the embodiment of the present application by executing the programs in the ROM 902 and / or the RAM 903. It should be noted that the programs may also be stored in one or more memories other than the ROM 902 and the RAM 903. The processor 901 may also perform various operations of the method flow according to the embodiment of the present application by executing the programs stored in one or more memories.

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

[0146] This 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 independently and not be incorporated into the device / apparatus / system. The computer-readable storage medium carries one or more programs, and when the one or more programs are executed, the method according to the embodiments of this application is implemented.

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

[0148] The embodiments of the present application also include a computer program product, which includes a computer program containing program code for executing the method shown in the flowchart. When the computer program product is run in a computer system, the program code is used to enable the computer system to implement the method provided in the embodiments of the present application.

[0149] The computer program executes the above functions defined in the system / device of the embodiment of the present application when the processor 901 executes the computer program. According to the embodiment of the present application, the system, device, module, unit, etc. described above can be implemented by a computer program module.

[0150] In one embodiment, the computer program may be stored on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may be transmitted and distributed in the form of a signal on a network medium, downloaded and installed via the communication portion 909, and / or installed from a removable medium 911. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to wireless, wired, or any suitable combination thereof.

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

[0152] According to an embodiment of the present application, the program code for executing the computer program provided by the embodiment of the present application can be written in any combination of one or more programming languages. Specifically, these computer programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C" 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, using an Internet service provider to connect via the Internet).

[0153] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the above-mentioned module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flowchart, and the combination of the boxes in the block diagram or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0154] Those skilled in the art will appreciate that the features described in the various embodiments of this application may be combined and / or coupled in various ways, even if such combinations or couplings are not explicitly described in this application. In particular, the features described in the various embodiments of this application may be combined and / or coupled in various ways without departing from the spirit and teachings of this application. All such combinations and / or couplings fall within the scope of this 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 each embodiment has been described separately above, this does not mean that the measures in each embodiment cannot be advantageously used in combination. Without departing from the scope of the present application, those skilled in the art may make various substitutions and modifications, and these substitutions and modifications should all fall within the scope of the present application.

Claims

1. A method for accessing a storage device, characterized in that: The method comprises: In response to receiving an access request for a target logical unit in a storage device from a host, determining a target business domain corresponding to the target logical unit from a plurality of business domains of a storage gateway, wherein logical units corresponding to the same business domain are used for the same business scenario; In a case where 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; The first port subset is used only 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 the multiple service domains; Periodically determining port load states corresponding to the plurality of service domains; When it is determined that the port load state corresponding to any one of the multiple service domains is overloaded, randomly obtaining the second port subset from a preset port set, wherein the preset port set includes at least one port for accessing multiple logical units corresponding to the multiple service domains; adding the second port subset to the port set associated with any one of the service domains; When it is determined that the port load state corresponding to any service domain is idle, some ports in the port set associated with the any service domain are added to the preset port set.

2. The method according to claim 1, characterized in that Determining a target port from the first subset of ports and the second subset of ports includes: determining a load value of each of the ports in the first port subset and the second port subset; The port whose load value is lower than a preset threshold is used as the target port.

3. The method according to claim 1, characterized in that The method further comprises: Determine a load index value of each of at least one backend ports 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 based on the load index value, the number of the at least one backend port and a preset load reference value.

4. The method according to claim 1, wherein The method further comprises: When it is determined that the port load state corresponding to any one of the service domains is restored to a preset standard, the second port subset is migrated to the preset port set.

5. The method according to claim 1, characterized in that The method further comprises: In a case where it is determined that the port load state corresponding to any one of the service domains is load-idle, some ports in the port set associated with any one of the service domains are added to the preset port set.

6. The method according to claim 1, characterized in that The periodically determining the port load conditions corresponding to the multiple service domains includes: The load states of the ports in the port set associated with each of the multiple service domains are periodically traversed to obtain the port load states corresponding to the multiple service domains.

7. The method according to claim 6, characterized in that The method further comprises: Determining an indicator value of the port for at least one load assessment indicator; The load status of the port is determined according to the indicator value.

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

9. The method according to claim 1, characterized in that The method further comprises: Determining a business scenario corresponding to each of at least one logical unit in the storage device; A business domain for the at least one logical unit is determined according to the business scenario.

10. The method according to claim 1, characterized in that The method further comprises: According to the business scenario corresponding to the storage device, a business domain corresponding to the storage device is determined.

11. The method according to claim 1, wherein The logical units corresponding to the same service domain come from a plurality of storage devices, the manufacturers of the plurality of storage devices are the same or different, and the models of the plurality of storage devices are the same or different.

12. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instructions are executed by a processor, the steps of the method according to any one of claims 1 to 11 are implemented.

13. An electronic device comprising: one or more processors; a memory for storing one or more computer programs, It is 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 11.

14. A computer-readable storage medium having a computer program or instruction stored thereon, characterized in that: When the computer program or instruction is executed by a processor, the steps of the method according to any one of claims 1 to 11 are implemented.

Citation Information

Patent Citations

  • 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