Non-transitory machine-readable storage medium, management system and method for a management system comprising a hardware processor for managing port information of a storage system
The port information management system addresses the challenge of managing port information across multiple storage systems by aggregating and filtering data, ensuring accurate and efficient path selection for hosts, thereby enhancing performance and reducing resource consumption.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- HEWLETT PACKARD ENTERPRISE DEV LP
- Filing Date
- 2023-06-21
- Publication Date
- 2026-06-18
AI Technical Summary
In computer environments with multiple storage systems and hosts, managing port information across different storage systems is cumbersome, leading to incomplete or inaccurate path status information, which can result in suboptimal path selection by hosts when accessing storage volumes.
A port information management system aggregates and consolidates port information from multiple storage systems, providing filtered and relevant information to hosts and storage systems for optimal path selection, using a centralized management system to manage and update port information.
The system ensures accurate and efficient path selection by hosts, reducing resource consumption and improving performance by providing complete and up-to-date port information, even during data migrations or system additions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Area
[0001] The present disclosure relates to a non-transitory, machine-readable storage medium, a management system, and a method for a management system comprising a hardware processor for managing port information of a storage system. background
[0002] A computer environment can include storage systems for storing data and hosts that can access the storage systems over a network. In some cases, there may be multiple possible paths from a host to the data in a storage system.
[0003] DE 199 83 331 T5 describes a data management method for managing access to a plurality of logical volumes in a storage system by at least two devices connected to the storage system via a network, wherein the storage system comprises a plurality of storage devices subdivided into the plurality of logical volumes, and wherein the method comprises the steps of: receiving encryption information from one of the at least two devices on the storage system via the network; transmitting an expected access key between the storage system and the at least one of the at least two devices, wherein the expected access key is encrypted with the encryption information;Receiving a request from one of the at least two devices on the storage system via the network to access at least one of the plurality of logical volumes, wherein the request identifies the one of the at least two devices and the at least one of the plurality of logical volumes, and includes an expected access key;Determine on the storage system whether one of the at least two devices is authorized to access the at least one of the plurality of logical volumes, based on configuration data that identifies which of the at least two devices are authorized to access which of the plurality of logical volumes, wherein the determination step includes a step to verify that one of the at least two devices identified in the request is one of the at least two devices that issued the request, based, at least in part, on a comparison between the requested access key and the expected access key; and forward the request if one of the at least two devices is authorized to access the at least one of the plurality of logical volumes.
[0004] One purpose of disclosure is to be able to influence the performance when a host accesses data from a specific storage volume. Brief description
[0005] A solution to the above-mentioned problem is provided by the subject matter of the independent claims. Brief description of the drawings
[0006] Some embodiments of the present disclosure are described with reference to the following figures. Fig. is a block diagram of an arrangement with storage systems, hosts that can access the storage systems, and a port information management system, according to some examples. Fig. is a flowchart of a process carried out by a host, storage systems and a port information management system, according to some examples. Fig.is a block diagram of a storage medium that stores machine-readable instructions according to some examples. Fig. This is a block diagram of a management system, according to some examples. Fig. This is a flowchart of a process, based on some examples. Detailed description
[0007] A storage system can include a storage controller (or multiple storage controllers) that manages access (reading and writing) to the data stored in a collection of storage devices. As used here, a "controller" can refer to one or more hardware processing circuits, which may include any or a combination of a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuitry. Alternatively, a "controller" can refer to a combination of one or more hardware processing circuits and machine-readable instructions (software and / or firmware) that can be executed on the one or more hardware processing circuits.
[0008] A "collection" of items, as used here, can refer to a single item or to multiple items. Similarly, a "collection of storage devices" can refer to a single storage device or to multiple storage devices. In some examples, the collection of storage devices, managed by a storage controller, is part of the storage system.
[0009] A “storage system” can therefore comprise a set of storage controllers and a set of storage devices, as well as one or more connections between the set of storage controllers and the set of storage devices.
[0010] A “storage device” can refer to any device capable of storing data, such as a disk-based storage device (e.g., a hard drive, an optical drive, etc.), a solid-state drive (SSD), and so on.
[0011] A "host" can refer to an entity capable of interacting with a storage system. A host can refer to a computer or a program (including machine-readable instructions). For example, a host can refer to a server computer, a user computer, a smartphone, a gaming device, a vehicle, an Internet of Things (IoT) device, a program (such as an application program, an operating system (OS), firmware, etc.), or any other type of entity.
[0012] Data can be arranged as logical storage media in storage devices. A "storage volume" can refer to any unit of data that can be identified by an identifier. A storage volume can be stored in a single storage device or across multiple storage devices. In some examples, the identifier of a storage volume might be a logical unit number (LUN). In other examples, other types of identifiers for storage media might be used.
[0013] In a computer environment with multiple storage systems to which hosts are connected via a network, there can be multiple paths between a host and a specific data volume stored in a storage system.
[0014] A network can be a Storage Area Network (SAN), a Local Area Network (LAN), a Wide Area Network (WAN), a public network such as the Internet, or any other type of network, whether wired and / or wireless. A "path" can refer to a connection from the host to the given storage medium, where the connection includes a route through a network and a storage system (or more precisely, a port of a storage controller of the storage system) through which the host can make access requests (read and write requests) to the given storage medium.
[0015] A storage controller can contain ports through which hosts can make access requests to access data. A "port" can refer to an interface of the storage controller through which communication can take place. A port can be a physical port or a virtual port.
[0016] The various paths a host can use to access a particular storage volume can have different characteristics that can affect the performance of the host accessing data from that volume. In some examples, a path characteristic might include the path state. In other examples, a path state might be expressed as the access state of a port group, which comprises a single port or multiple ports of a storage system. An example of port group access state is discussed later.
[0017] In order for a host to select a path from multiple paths to a storage volume, the host first determines the available paths and their respective path statuses (e.g., the access status of port groups). In some cases, hosts can make path status requests to query the status of the respective paths (or more precisely, to obtain, for example, the access status of port groups). In one example, the status requests take the form of SCSI (Small Computer System Interface) commands, such as the SCSI command `REPORT TARGET PORT GROUPS`. In other examples, the path status requests can be made according to other protocols, which may include standardized protocols, open-source protocols, or proprietary protocols.
[0018] A first storage system may not have port information about a second storage system. For example, a data migration from the first to the second storage system might occur, in which data from the first storage system is moved or copied to the second. During the data migration, the first storage system may not have access to port information about the ports of the second storage system. Therefore, if a host makes a path status request to the first storage system, the first storage system may be unable to provide port information regarding the second storage system, and such port information regarding the second storage system can be relevant for determining the path status of paths to storage media held by both the first and second storage systems.When the host performs path selection to choose a path to a storage volume, the path selection may be based on incomplete port information on the host. This can cause the host to attempt to access the storage volume via a suboptimal path or a path that is not active.
[0019] In another example, a new storage system is connected to a host via new paths. The new storage system may have functionality (e.g., provided by a program) that synchronizes data between an initial storage system and the new storage system.
[0020] In such an example, if the first storage system receives a path state request from the host, the first storage system may not be able to provide port information regarding the second storage system in order to access one or more storage volumes containing the data to be synchronized.
[0021] In a computing environment with a large number of storage systems and hosts, sending individual path status requests from hosts to storage systems to obtain path status can be cumbersome and complex, leading to incomplete or inaccurate path status information. Furthermore, processing a large number of path status requests can be resource-intensive due to the increased consumption of communication and processing resources.
[0022] "Port information" can include any or a combination of the following elements: a collection of storage media accessible through each port of a storage controller, a collection of ports representing each storage medium (a port representing a storage medium refers to a port through which the storage medium is accessible), a collection of ports in each port group, and the access state of each port group. More generally, "port information" can encompass information about storage media, port groups, and the access states of port groups.
[0023] Please note that the term "port group" can refer to a group of ports (a port group can include one port or multiple ports), or the term "port group" can refer to a single port.
[0024] In accordance with some implementations of this disclosure, a port information management system is used to collect port information relating to multiple paths to storage volumes that can be used by hosts to access the storage volumes. The management system is able to aggregate the port information for the various paths. Subsets of the aggregated port information can be provided by the management system for use by hosts when selecting a path.
[0025] Fig. Figure 1 is a block diagram of an exemplary computer environment 100, comprising memory controllers 102-1, 102-2, 102-3, ..., 102-M (with M ≥ 1). The memory controllers 102-1 to 102-M are connected via a network 104 to various hosts 106-1, 106-2, ..., 106-N (N ≥ 1).
[0026] The memory controllers 102-1 to 102-M are coupled via connecting lines 108 to the respective memory device collections 110-1, 110-2, ..., 110-T (T ≥ 1). A memory device collection can comprise a single memory device or multiple memory devices. Note that M can be the same as or different from T. A memory system can comprise one or more memory controllers and one or more memory device collections.
[0027] The connections 108 can include Serial Attached SCSI (SAS) connections, Ethernet connections, InfiniBand connections, Nonvolatile Memory Express (NVMe) connections, NVMe-over-Fabric (NVMe-oF) connections, and so on.
[0028] In some examples, a "storage system" can comprise one or more storage controllers, one or more storage device collections, and one or more connections between the storage controller(s) and the storage device collection(s). Each of the storage controllers 102-1 to 102-M can access data stored in one of the storage device collections 110-1 to 110-T via the connection lines 108. Alternatively, the connections 108 can be configured so that the storage controllers 102-1 to 102-M can access data for only a single storage system 130-1 to 130-U.
[0029] Fig.Figure 1 shows a memory system 130-1 comprising memory controllers 102-1 and 102-2 and memory device collection 110-1 (as well as the connections 108 between memory controllers 102-1 and 102-2 and memory device collection 110-1), a memory system 130-2 comprising memory controller 102-3 and memory device collection 110-2 (as well as the connections between memory controller 102-3 and memory device collection 110-2), and a memory system 130-U (U ≥ 1) comprising memory controller 102-M and memory device collection 110-T (as well as the connections 108 between memory controller 102-M and memory device collection 110-T). Note that each of the memory systems 130-1 to 130-U can comprise more than one memory device collection.
[0030] Each 102-i memory controller (i = 1 to M) can include a number of ports. For example, the 102-1 memory controller includes ports 112-11 to 112-1P (P ≥ 1), the 102-2 memory controller includes ports 112-21 to 112-2Q (Q ≥ 1), the 102-3 memory controller includes ports 112-31 to 112-3R (R ≥ 1), and the 102-M memory controller includes ports 112-M1 to 112-MS (S ≥ 1). In the example of Fig. The connections of the memory controllers 102-1 and 102-2 are considered connections of the memory system 130-1, the connections of the memory controller 102-3 are considered connections of the memory system 130-2, and the connections of the memory controller 102-3 are considered connections of the memory system 130-U.
[0031] In examples where a storage system 130-j (j = 1 to U) comprises multiple ports, the ports of the storage system 130-j can be divided into one or more port groups. A port group is associated with a corresponding access state. If a port group comprises multiple ports (from one or more storage controllers of a storage system), the multiple ports in the port group can share a common access state. More generally, the ports of a storage system comprising one or more storage controllers can be divided into port groups.
[0032] Examples of access states for a port group can be any one or a combination of the following: actively optimized, actively unoptimized, standby, unavailable, offline, in transition, dependent on the logical block, etc. In some examples, the access states can be grouped into an active access state group, which includes active access states (e.g., actively optimized, actively unoptimized, etc.), and an inactive access state group, which includes inactive access states (e.g., standby, unavailable, offline, etc.). The transition state is a special case of inactive, moving between states and becoming either active or inactive.
[0033] A port group with an access state that is part of the active access state group is a port group that a host can use to access a specific storage volume group (including a single storage volume or multiple storage volumes). A port group with an access state that is part of the inactive access state group is a port group that should not be used to access a specific storage volume group.
[0034] A port group in a standby state is a port group that is not active and cannot access a storage volume, but is able to transition to an access state in the active access state group if another port group does not become active.
[0035] An active optimized port group (which has an active optimized status) is an active port group that is the optimal port group for accessing a specific storage volume group. An optimal port group is a port group (of multiple active port groups, if any) that can be used to access the data of a specific storage volume group with lower latency or with a metric that indicates better performance and / or lower costs. Note that there can be multiple optimal port groups for accessing the data of a specific storage volume group.
[0036] An active non-optimized port group (which has an active non-optimized state) is a port group that is not an optimal port group for accessing a particular storage volume group; for example, the active non-optimized port group has higher latency or a metric that indicates worse performance and / or higher costs compared to the corresponding active optimized port group for accessing the particular storage volume group.
[0037] An unavailable port group is a port group that can process commands (e.g., SCSI commands) but is unable to access a storage volume. An offline port group is a port group that is currently disabled (unable to process commands such as SCSI commands). A port group in transition is a port group that is moving between different states, such as an offline port that has been turned on but has not yet completed the turn-on process. A logical block dependent port group is a port group for which a host can obtain different port states depending on which addresses are requested.
[0038] In one example, a storage volume V1 can be presented from each of the storage systems 130-1 and 130-2, so that a host can access the storage volume V1 via multiple possible paths to the multiple storage systems 130-1 and 130-2.
[0039] The computer environment 100 further includes a port information management system 114, which serves to collect port information relating to multiple paths to storage media located in the storage device collections 110-1 to 110-M. The port information management system 114 can be implemented using one or more computers. The port information management system 114 can be separate from the hosts 106-1 to 106-N and the storage controllers 102-1 to 102-M. For example, the port information management system 114 can be implemented with network devices (e.g., switches, routers, etc.) that are part of the network 104, and / or it can be implemented with other devices. Alternatively, the port information management system 114 can be implemented in one or more hosts 106-1 to 106-N and / or in one or more storage controllers 102-1 to 102-M.
[0040] The system for managing connection information 114 includes a memory 118 in which a connection information table 116 and zone information 120 (see below) are stored.
[0041] Fig. is a flowchart of a process initiated by a host 106 (where this is one of the hosts 106-1 to 106-N in Fig. can act), the port information management system 114 and the storage systems 200-1 and 200-2 are used. Although in Fig. While only one host and two storage systems are shown, it should be noted that similar techniques can be applied in an arrangement that includes additional hosts and / or additional storage systems. The 200-1 or 200-2 storage systems can replace any of the 130-1 through 130-U storage systems. Fig. include.
[0042] Storage system 200-1 sends (at 202) initial port information to port information management system 114, and storage system 200-2 sends (at 204) secondary port information to port information management system 114. As mentioned earlier, the port information can contain any or a combination of the following elements: a collection of storage media accessible through each port of a storage system, a collection of ports representing each storage medium, a collection of ports in each port group, and an access status of each port group.
[0043] In some examples, a storage system, when it registers or otherwise connects to the Port Information Management System 114, can send port information to the Port Information Management System 114. In other examples, the Port Information Management System 114 can query each storage system to obtain its respective port information.
[0044] In some examples, a storage system can send port information to a management interface, which can be implemented by various entities. In one example, the management interface can be part of, or provided by, the Port Information Management System 114. In other examples, the management interface can be implemented by an intermediary system between the storage controllers 102-1 through 102-M and the Port Information Management System 114.
[0045] In some examples, the management interface may take the form of an application programming interface (API) containing various routines that can be called by an entity (e.g., a storage controller, the Port Information Management System 114, etc.) to perform management-related tasks, including reporting port information from a storage system. In other examples, other types of management interfaces may be used, such as data structures (e.g., databases, information repositories, etc.) that can be accessed by the Storage Controllers 102-1 through 102-M and the Port Information Management System 114.
[0046] Port Information Management System 114 receives the first and second port information sent by the first and second storage systems 200-1 and 200-2, respectively. Port Information Management System 114 can obtain this information in several ways. For example, it can receive the information from storage systems 200-1 and 200-2 via the management interface. Alternatively, storage systems 200-1 and 200-2 can write the first and second port information to specific data structures stored in a shared memory. Port Information Management System 114 can then query these data structures to retrieve the first and second port information.
[0047] The port information management system 114 updates (at 206), based on the first and second port information, the merged port information in a port information data structure, such as the port information table 116 ( Fig. ) or another type of data structure. If port information table 116 does not yet exist, the update performed at 206 by the port information management system 114 includes the creation of port information table 116. If port information table 116 already exists, the update includes modifying port information table 116 by adding entries to port information table 116 and / or replacing information in entries of port information table 116.
[0048] The merged port information can contain port information from multiple storage systems (or more generally, from multiple ports of one or more storage systems). The port information table 116 can be stored in memory 118 of the port information management system 114. Memory 118 can contain any or a combination of the following: dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, etc.
[0049] The merged port information of the port information table 116 contains information about ports, storage volume groups and access states of port groups that are part of the computer environment 100.
[0050] An example of connection information table 116 is shown in Table 1 below. TABLE 1 Port group Storage volume group Storage volume State access Connection 1 VOLGRP-1 A, B, C Actively optimized Connection 1 VOLGRP-2 D, E, F Actively not optimized Connection 2 VOLGRP-3 G readiness Port 4, Port 5 VOLGRP-4 H, I, J Actively optimized Port 3 VOLGRP-1 A, B, C readiness
[0051] The example port information table in Table 1 can contain the following attributes in the respective columns of the port information table: a port group attribute that indicates a port group of a storage system, a storage volume group identification attribute that identifies a storage volume group, a storage volume identification attribute that identifies the storage volume(s) in the respective storage volume group identified by the storage volume group attribute, and an access status attribute that specifies the access status for the respective port group indicated by the port group attribute.
[0052] In other examples, a port information table may have a different arrangement of attributes and / or contain additional or alternative attributes and / or some attributes may be omitted. In still other examples, the port information table may comprise a collection of multiple tables at multiple levels, with a first-level table containing a subset of the port information that is consulted first, followed by the consultation of a second-level table.
[0053] In other examples, different hosts can be assigned to different port information tables so that not every host receives the same response to a path status query. Other examples use different selection mechanisms to determine which host should respond to a path status query.
[0054] The first row of the port information table in Table 1 shows a first port group containing only port 1, which can be used to access a storage media group VOLGRP-1. According to the first row of the port information table in Table 1, the storage media group VOLGRP-1 has storage media A, B, and C, and the access state of the first port group for accessing the storage media group VOLGRP-1 is actively optimized.
[0055] The fifth row of the port information table in Table 1 shows another port group (a second port group containing only port 3) that can be used to access the storage media group VOLGRP-1 if the first port group becomes unavailable. According to the fifth row of the port information table in Table 1, the access state of the second port group for accessing the storage media group VOLGRP-1 is the ready state.
[0056] The second row of the port information table in Table 1 indicates that the first port group (containing only port 1) can be used to access another storage media group, VOLGRP-2. According to the second row of the port information table in Table 1, the storage media group VOLGRP-2 contains storage media D, E, and F, and the access status of the first port group for accessing the storage media group VOLGRP-2 is active but not optimized.
[0057] The third row of the port information table in Table 1 indicates that a third port group (containing only port 2) can be used to access a storage media group VOLGRP-3. According to the third row of the port information table in Table 1, the storage media group VOLGRP-3 has a storage medium G, and the access state of the third port group for accessing the storage media group VOLGRP-3 is standby.
[0058] The fourth row of the port information table in Table 1 indicates that a fourth port group (comprising ports 4 and 5) can be used to access a storage volume group VOLGRP-4. According to the fourth row of the port information table in Table 1, the storage media group VOLGRP-4 has storage media H, I, and J, and the access state of the fourth port group for accessing the storage media group VOLGRP-4 is actively optimized.
[0059] In some examples, the merged port information in Table 1's port information table may contain port information for ports across multiple storage systems. The ports of different storage systems may have unique identifiers (for example, Port-1 and Port-2 in the example port information table). In other words, ports in different storage systems do not share a common port identifier. In other examples, a port information table may include an additional column that identifies a storage system, allowing port identifiers to be shared across multiple storage systems. In such examples, the combination of a storage system identifier and a port identifier would uniquely identify a port within that storage system.
[0060] A storage volume can be shared and accessible from multiple storage systems that have port groups with the same or different access states. In the example port information table above (Table 1), the storage volume group VOLGRP-3, containing storage volume G, is accessible via a port group with a standby access state. Furthermore, the storage volume group VOLGRP-3, containing storage volume G, can be accessed from a port group with an active optimized state in a different storage system.
[0061] As in Fig.As further described, storage system 200-1 can make a request (at 208) to port information management system 114 to obtain port information for storage system 200-2. In one example, storage system 200-1 can make such a request during a data migration from storage system 200-1 to storage system 200-2. The request can be issued by storage system 200-1 either (1) in response to the data migration itself or (2) in response to another event (such as a host requesting port information from storage system 200-1, as in Exercise 212) during the data migration. In other examples, the request can be issued by storage system 200-1 in response to any other event.
[0062] In response to the request from storage system 200-1, the port information management system 114 (at 210) sends port information for the ports of storage system 200-2, along with information about hosts (e.g., host identifiers) that fall into the same zone as storage system 200-2. In some examples, multiple zones can be defined in the computing environment 100, with each zone containing a collection of storage systems and hosts. Hosts that are part of a particular zone can access the storage systems in that zone, but not the storage systems in a different zone.
[0063] In some examples, the port information sent (at 210) from the port information management system 114 to the storage system 200-1 is a subset of the port information table 116, which contains information about ports of the storage system 200-2. The port information management system 114 has access to the zoning information 120 ( Fig.The zoning information correlates hosts (host ports) with storage volume groups and identifies the zones to which specific hosts and storage systems belong. For example, the zoning information 120 can be stored in memory 118 of the port information management system 114, or it can be stored elsewhere. The port information management system 114 can use the zoning information 120 to determine which hosts have (and / or do not have) access to which storage volume groups.
[0064] Port Information Management System 114 can use zoning information 120 to determine which host(s) are in the same zone as storage system 200-2, for which storage system 200-1 requested port information. The information sent by Port Information Management System 114 to storage system 200-1 about hosts in the same zone as storage system 200-2 is based on zoning information 120.
[0065] In other examples, no zones are defined, and each host can access any storage system in the computer environment 100.
[0066] As previously mentioned, hosts can use port information to select a path for accessing a storage volume. For example, if there are multiple possible paths for accessing a particular storage volume group, where the first possible path contains a storage system port that is actively optimized, the second possible path contains a storage system port that is not actively optimized, and the third possible path contains a storage system port that is ready, a host can select the first possible path to access a storage volume in that storage volume group.
[0067] In some examples, host 106 (at 212) can send a query for port information to storage system 200-1. Note that host 106 can send a query for port information to any storage system that is in the same zone as host 106.
[0068] In response to the request from host 106, storage system 200-1 filters the port information available to it to identify a subset of the port information relevant to host 106. The port information available to storage system 200-1 may include the port information of storage system 200-2's ports, which was sent to storage system 200-1 by port information management system 114.
[0069] In one example, storage system 200-1 can use zone information (similar to 120, but accessible to storage system 200-1) to identify storage volume group(s) that host 106 can access, and can generate filtered port information from ports of the storage system(s) that store storage volumes of the identified storage volume group(s).
[0070] In some examples, the request is received from a host port of host 106, and the filtered port information relates to ports relevant to that host port (e.g., port information from storage systems that are part of the host port's zone). Storage system 200-1 sends (at port 214) the filtered port information to host 106.
[0071] In other examples, host 106 can query the management interface (at 216) connected to the port information management system 114 for port information, instead of or in addition to querying a storage system for port information. The query transmitted by host 106 to the management interface is sent to the port information management system 114.
[0072] In response to the request from host 106, the port information management system 114 filters the aggregated information from the port information table 116 to identify a subset of the aggregated information relevant to host 106. For example, the port information management system 114 can use the zoning information 120 to identify storage volume group(s) that host 106 can access and can generate filtered port information from ports of the storage system(s) that store storage volumes of the identified storage volume group(s).
[0073] In some examples, the request is received from a host port on host 106, and the filtered port information relates to ports relevant to that host port (e.g., port information from storage systems that are part of the host port's zone). The port information management system 114 sends (at port 218) the filtered port information to host 106.
[0074] Based on the port information that Host 106 receives from Storage System 200-1 or Port Information Management System 114, or both, Host 106 (at port 220) can perform path selection to choose one path from several candidate paths for accessing a storage volume. For example, the storage volume might be accessible via ports of multiple storage systems. Host 106 can use the access states of the ports of the multiple storage systems to determine which path to use for accessing the storage volume.
[0075] By using techniques or mechanisms as described in some examples of this disclosure, the port information of multiple storage systems can be consolidated in the Port Information Management System 114 for use in responding to port information requests from storage systems and / or hosts. In this way, the Port Information Management System 114 is able to provide port information from another storage system that a particular storage system might not be able to obtain on its own. Furthermore, in examples where zoning is implemented, the Port Information Management System 114 can use zoning information to generate filtered port information relevant to host port information requests.
[0076] Fig.is a block diagram of a non-transient machine-readable or computer-readable storage medium 300 that stores machine-readable instructions which, when executed, are executed by a management system (e.g., the Port Information Management System 114 of Fig. ) cause various tasks to be carried out.
[0077] The machine-readable instructions include first port information receive instructions 302 to receive first port information from ports in the first storage system. The machine-readable instructions include second port information receive instructions 304 to receive second port information from ports in the second storage system. In some examples, the management system can receive the first and second port information in response to requests from the management system to the first and second storage systems, respectively. In other examples, the first and second storage systems can send the first and second port information to the management system based on a specific activity of the respective storage system, such as registration with the management system performed by the respective storage system.
[0078] The machine-readable instructions contain instructions for merging port information 306 to combine the first port information from the first memory system and the second port information from the second memory system into merged port information. The merged port information can, for example, be part of the port information table 116 of Fig. be.
[0079] The machine-readable instructions contain instructions for requesting port information (308) to receive a request from the first storage system for port information about ports in the second storage system. In some examples, the request from the first storage system for port information about the ports in the second storage system occurs during data migration from the first storage system to the second storage system.
[0080] The machine-readable instructions contain instructions for sending port information 310 to the first storage system to send the second port information for use in path selection from hosts to the first and second storage systems.
[0081] In some examples, the information about the first or second port includes information about a logical group of storage media that a corresponding port of the first or second storage system can access. In some examples, the first or second port information also includes identifiers of storage media that are part of the logical group of storage media.
[0082] In some examples, the first or second port information includes the access status of a respective port group within the first or second storage system. The access status of each port group indicates a state related to whether that port group has accessed one or more storage volumes stored by the first or second storage system.
[0083] In some examples, the access status of the respective port group indicates whether the port group is active or inactive for accessing one or more storage volumes (e.g., whether the access status is part of the aforementioned active access status group or the inactive access status group). In some examples, if the access status of the respective port group is part of the active access status group, it indicates whether the port group is an optimized or non-optimized port group for accessing the one or more storage volumes.
[0084] In some examples, the management system can query a management interface for each of the first and second connection information, with the first storage system reporting the first connection information to the management interface and the second storage system reporting the second connection information to the management interface.
[0085] Fig. This is a block diagram of a Management System 400. An example of Management System 400 is the Port Information Management System 114. Fig. .
[0086] The 400 management system includes one 402 hardware processor (or multiple hardware processors). A hardware processor can be a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuitry.
[0087] The 400 management system includes a 404 storage medium on which machine-readable instructions are stored that can be executed on the 402 hardware processor to perform various tasks. Machine-readable instructions executable on a hardware processor can refer to instructions that can be executed on a single hardware processor or on multiple hardware processors.
[0088] The machine-readable instructions include first port information receive instructions 406 to receive first port information from ports in the first memory system. The machine-readable instructions include second port information receive instructions 408 to receive second port information from ports in a second memory system.
[0089] The machine-readable instructions contain instructions for merge connection information 410 to merge the first connection information from the first memory system and the second connection information from the second memory system into merged connection information.
[0090] The machine-readable instructions contain instructions for receiving port information (412) to receive a request from a host for port information about ports in storage systems. The query from the host could be, for example, the query made at port 216 in... Fig. is being sent.
[0091] The machine-readable instructions include instructions 414 for filtering port information. These instructions filter the aggregated port information in response to the query and generate filtered port information for the host. The filtering can be based on zone information, for example.
[0092] The machine-readable instructions include instruction 416 to send port information to the host, in order to send the filtered port information for use in path selection by the host when accessing storage volumes.
[0093] Fig. This is a flowchart of a 500 process, as shown in some examples. The 500 process involves receiving (at 502) relevant port information from ports in the corresponding storage systems of the multiple storage systems within the management system.
[0094] Process 500 involves the management system merging (at 504) the respective port information from the numerous storage systems into consolidated port information. This consolidated port information includes details about storage volume groups and the access states of port groups.
[0095] The 500 process involves the management system receiving (at 506) a query for port information from ports in storage systems from a host or storage system.
[0096] The 500 process involves the management system sending (at 508) requested port information, retrieved from the aggregated port information, in response to the query, for use in path selection by the host when accessing storage volumes.
[0097] A storage medium (300 in Fig. in Fig.The storage medium can include any or a combination of the following: a semiconductor storage device such as dynamic or static random-access memory (DRAM or SRAM), erasable and programmable read-only memory (EPROM), electrically erasable and programmable read-only memory (EEPROM), and flash memory; a magnetic disk such as a hard disk, floppy disk, and removable disk; another magnetic medium, including tape; an optical medium such as a compact disc (CD) or digital video disc (DVD); or some other type of storage device. It should be noted that the instructions described above can be provided on a single computer- or machine-readable storage medium or, alternatively, on multiple computer- or machine-readable storage media distributed throughout a large system, possibly with multiple nodes.Such a computer-readable or machine-readable storage medium or media are considered part of an article (or manufactured item). An article or manufactured item may refer to any single manufactured component or to multiple components. The storage medium or media may be located either in the machine on which the machine-readable instructions are executed or at a remote location from which machine-readable instructions can be downloaded for execution over a network.
Claims
[1] Non-transitory, machine-readable storage medium containing instructions which, when executed, cause a management system to: A management interface to query first port information from ports in a first storage system and second port information from ports in a second storage system; to receive the first port information from ports in the first storage system from the first storage system, wherein the first storage system is to report the first port information to the management interface; to receive the second port information from ports in the second storage system from the second storage system, wherein the second storage system is to report the second port information to the management interface; to combine the first port information from the first storage system and the second port information from the second storage system into combined port information; and to receive a request from the first storage system for port information from ports in the second storage system; and to send the second port information to the first storage system for use in path selection from hosts to the first and second storage systems, where the request from the first storage system for port information of ports in the second storage system occurs during a data migration from the first storage system to the second storage system. [2] Non-transitory, machine-readable storage medium according to claim 1, wherein the instructions during execution cause the management system to send the second port information to the first storage system by sending the combined port information to the first storage system. [3] Non-transitory, machine-readable storage medium according to claim 1, wherein the first port information comprises information about a logical group of storage volumes that a corresponding port of the first storage system can access. [4] Non-transitory, machine-readable storage medium according to claim 3, wherein the first port information further comprises identifiers of storage volumes that are part of the logical group of storage volumes. [5] Non-transitory, machine-readable storage medium according to claim 1, wherein the first port information comprises an access state of a respective port group of the ports in the first storage system, wherein the access state of the respective port group indicates a state relating to an access by the respective port group to access one or more storage volumes stored by the first storage system. [6] Non-transitory, machine-readable storage medium according to claim 5, wherein the access state of the respective port group indicates whether the respective port group is active or inactive for accessing the one or more storage volumes. [7] Non-transitory, machine-readable storage medium according to claim 5, wherein the access state of the respective port group indicates whether the respective port group is an optimized port group or a non-optimized port group for accessing the one or more storage volumes. [8] Non-transitory, machine-readable storage medium according to claim 1, wherein receiving the first port information comprises receiving port group information from the first storage system. [9] Non-transitory, machine-readable storage medium according to claim 1, wherein the request for port information from the first storage system is a response to a request from a host. [10] Non-transitory, machine-readable storage medium according to claim 1, wherein the instructions, upon execution, cause the management system to: to receive a query for port information from a host; and in response to the query: to filter the merged port information to obtain a subset of the merged port information that relates to ports relevant to the host, and to pass the subset of the merged port information to the host. [11] Non-transitory, machine-readable storage medium according to claim 10, wherein the filtering of the merged port information is based on zone information that correlates hosts with respective storage volumes. [12] Non-transitory, machine-readable storage medium according to claim 10, wherein the query is received from a host port of the host and the subset of merged port information relates to ports that are relevant to the host port. [13] Administrative system which includes the following: a hardware processor; and a non-transitory storage medium that stores instructions that can be executed on the hardware processor to: To query first port information from ports in a first storage system and second port information from ports in a second storage system; to receive the first port information from ports in the first storage system from the first storage system; to receive the second port information from the ports in the second storage system; to combine the first port information from the first storage system and the second port information from the second storage system into combined port information; and to receive a request from the first storage system for port information from ports in the second storage system; and to send the second port information to the first storage system for use in path selection from hosts to the first and second storage systems, where the request from the first storage system for port information of ports in the second storage system occurs during a data migration from the first storage system to the second storage system. [14] Management system according to claim 13, wherein the instructions are executable on the hardware processor to: to receive a query for port information from a host; in response to the query: to filter the merged port information to generate a subset of the merged port information relating to ports relevant to the host; and to provide the filtered subset of port information to the host for use in path selection when accessing storage volumes. [15] Management system according to claim 14, wherein the instructions are executable on the hardware processor to: to filter the merged port information based on zone information that correlates hosts with storage volume groups. [16] Management system according to claim 14, wherein a respective port information of the first port information or of the second port information comprises information about a logical group of storage volumes that a port of a respective storage system of the first storage system or of the second storage system can access. [17] Management system according to claim 14, wherein the first port information comprises an access state of a respective port group of the ports in the first storage system, wherein the access state of the respective port group indicates a state relating to an access by the respective port group to access one or more storage volumes stored by the first storage system. [18] Method for an administrative system comprising a hardware processor, wherein the method comprises the following: Queries, by the management system, of first port information from ports in a first storage system and second port information from ports in a second storage system; The management system receives, from the first storage system, the first port information of ports in the first storage system and from the second storage system, the second port information of ports in the second storage system; The management system merges the first port information from the first storage system and the second port information from the second storage system into merged port information; and The management system receives from the first storage system a request for port information from ports in the second storage system; and The management system sends the second port information to the first storage system for use in path selection from hosts to the first and second storage systems. where the request from the first storage system for port information of ports in the second storage system occurs during a data migration from the first storage system to the second storage system. [19] The method of claim 18 further comprising: Receiving a query for port information from a host; and in response to the query: Filtering the merged port information to obtain a subset of the merged port information relating to ports relevant to the host; and Providing the subset of merged port information from the management system to the host for use in path selection by the host when accessing storage volumes. [20] The method of claim 19 further comprising: Filtering, by the management system, of the merged port information to generate the requested port information, with the filtering being based on zone information that correlates hosts with storage volume groups.