CN105827549B - System and method for managing storage equipment through virtual fiber switch - Google Patents

System and method for managing storage equipment through virtual fiber switch Download PDF

Info

Publication number
CN105827549B
CN105827549B CN201610246450.8A CN201610246450A CN105827549B CN 105827549 B CN105827549 B CN 105827549B CN 201610246450 A CN201610246450 A CN 201610246450A CN 105827549 B CN105827549 B CN 105827549B
Authority
CN
China
Prior art keywords
port
switch
storage system
initiator
interceptor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610246450.8A
Other languages
Chinese (zh)
Other versions
CN105827549A (en
Inventor
林伟东
林伟光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lianchenhui Information Technology Nanjing Co Ltd
Original Assignee
Lianchenhui Information Technology Nanjing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/816,477 external-priority patent/US9495113B2/en
Application filed by Lianchenhui Information Technology Nanjing Co Ltd filed Critical Lianchenhui Information Technology Nanjing Co Ltd
Publication of CN105827549A publication Critical patent/CN105827549A/en
Application granted granted Critical
Publication of CN105827549B publication Critical patent/CN105827549B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Abstract

A system method for managing storage devices through a virtual fabric switch. The first port of the device is connected to a first switch port of a first virtual switch defined within the switch device and the second port of the device is connected to a second switch port of a second virtual switch defined within the switch device. The device can identify a target world wide web port name of a target port of the storage system connected to the second virtual switch. In a first registration process, a first port of a device is registered with a first virtual switch based on the target world wide web port name. In a second registration process, registration information is received for an originator port of a server associated with a target port. An originator web port name of an originator port of the server is determined based on the registration information. A storage volume in the storage system associated with the initiator port is identified based on an initiator Web port name of the initiator port.

Description

System and method for managing storage equipment through virtual fiber switch
Technical Field
This specification relates generally to systems and methods for storing and managing data, and more particularly, to systems and methods for identifying stored data by devices located in paths between virtual fibre channel switches.
Background
The storage of electronic data and more generally the management of electronic data is becoming increasingly important. With the development of the internet, particularly cloud computing, the demand for data storage capacity and methods for efficiently managing stored data is increasing. Currently, many different types of storage devices and storage systems exist for storing data, including disk drives, tape drives, optical disks, Redundant Arrays of Independent Disks (RAIDs), fibre channel-based Storage Area Networks (SANs), and the like.
In many enterprise-level storage systems, it is useful to add data management services to existing storage systems in order to perform one or more tasks as desired. For example, it may be useful to add the following functionality in some storage systems: copying data, performing snapshots of data images, backing up data, copying data, performing data migration from one storage device or system to another storage device or system, and the like. It is generally desirable to be able to install any additional functionality for performing such services without causing any interruption to the operation of the storage system.
Disclosure of Invention
According to one embodiment, a method for obtaining information related to data stored in a network is provided. The network includes a host entity, a switch, and a storage system. A first device in a network having a first port receives an identifier of a second port of a second device in the network. The first port of the first device impersonates the second port of the second device during communication with the switch. The first device receives information identifying a third port of a third device in the network, the third port being partitioned to the second port of the second device. The first device identifies, based at least on the information, data stored in the storage system that is accessible by the host entity.
In one embodiment, the network is a fibre channel based storage area network and the switch is a fibre channel switch.
In one embodiment, the identifier is added to a first port of the first device. For example, the identifier may be a web portal maintenance. The first port of the first device may send a request including the identifier to the switch.
In one embodiment, the second device comprises a storage system and the third device comprises a host entity. The first port of the first device is registered with the switch. The first device receives a request from the host entity to register the third port, the request including a world wide web port name of the third port. The world wide web name of the third port is added to the fourth port of the first device and the first device impersonates the third port of the host entity during a second communication with the storage system to identify data stored in the storage system that is accessible to the host entity.
In another embodiment, the second device comprises a host entity and the third device comprises a storage system. The first device receives a request from the host entity to register the second port, the request including a world wide web port name of the second port. The world wide web name of the second port is added to a fifth port of the first device. The first device sends a request to the switch for information identifying one or more devices partitioned to the second port, the request including a world wide web name of the second port.
In another embodiment, the first device is located in a path between the switch and the second switch.
According to another embodiment, a method for determining correlation with data stored in a network is provided. A first identifier associated with a first port of a storage system is received from the storage system by a device located in a path between the storage system and a switch in a network. The device uses the first identifier to impersonate a first port of the storage system during a first communication with the switch. The device receives a request from a host server connected to the switch to register a second port of the host server, the request including a second identifier associated with the second port. The device spoofs a second port of the host server using a second identifier during a second communication with the storage system and receives information from the storage system identifying data stored in the storage system and accessible through the second port of the host server.
In another embodiment, the first identifier is added to a third port of the device, and the device sends a request including the first identifier to the switch via the third port. The second identifier is added to a fourth port of the device, and the device sends a request to the storage system for information identifying data stored in the storage system and accessible through the second port of the host server.
According to another embodiment, a method for determining information related to data stored in a network is provided. During the registration process, a device located in a path between a switch port of the switch and an initiator port of the host entity identifies an initiator world wide web port name of the initiator port. The initiator world wide web port name is added to a first device port of the device. The device sends a request to the switch for information identifying a port associated with the initiator world wide web port name, and receives from the switch a target world wide web port name of a target port of the storage system associated with the initiator port. The device identifies a storage volume in the storage system associated with the initiator port based on the target world wide web port name and the initiator world wide web port name.
In one embodiment, the registration process includes registering with the device through the originator port. For example, the registration process may include a fibre channel login process.
In one embodiment, the target world wide web port name is added to a second device port of the device. An initiator world wide web port name may be assigned to the first device port.
In one embodiment, a device receives a target world wide web port name of a target port of a storage system partitioned to an initiator port from a switch. A device or switch may access a simple name server table that identifies, for each of one or more ports of the switch, a corresponding world wide web port name.
In one embodiment, a device sends a REPORT LUN command including an initiator Web port name to a storage system, and, in response to the REPORT LUN command, receives information from the storage system identifying a storage volume accessible by the initiator Web port name.
In another embodiment, the device may send a SCSI query to the storage system relating to a storage volume accessible by the initiator world Wide Web Port name, and, in response to the SCSI query, may receive information representing a globally unique identifier of the storage volume. The device determines whether the two storage volumes associated with the initiator world wide web port name are the same based on the globally unique identifier.
In one embodiment, the device provides services for the identified storage volume.
According to another embodiment, a method for providing data management services is provided. An identifier of an originator port of a host entity is determined by a device located in a path between the originator port and a switch port of a switch. Data stored by the storage system that is accessible by the initiator port is identified based on the identifier, and a data management service is provided for the identified data.
According to another embodiment, a method for providing data management services is provided. The first port of the device is connected to a first switch port of a first virtual switch defined within the switch device and the second port of the device is connected to a second switch port of a second virtual switch defined within the switch device. Identifying, by the appliance, a target world wide web port name of a target port of the storage system connected to the second virtual switch. In a first registration process, a first port of a device is registered with a first virtual switch based on the target world wide web port name. In a second registration process, registration information is received for an originator port of a server associated with a target port. An originator web port name of an originator port of the server is determined based on the registration information. A storage volume in a storage system associated with an initiator port is identified based on an initiator Web port name of the initiator port.
In one embodiment, the target world wide web port name is assigned to a first port of the device.
In another embodiment, the second registration process includes registering with the device through the first port through the originator port.
In another embodiment, a switch port identifier associated with an originator port of the server that is partitioned to the target port is received in a second registration process.
In another embodiment, a REPORT LUN command including the initiator world Wide Web Port name is sent to the storage system. In response to the REPORT LUN command, information identifying a storage volume accessible by the initiator world Wide Web Port name may be received from the storage system.
In another embodiment, a SCSI query is sent to the storage system relating to a storage volume accessible by the initiator world Wide Web Port name. In response to the SCSI query, information representing a globally unique identifier of the storage volume is received. A determination is made whether the two storage volumes associated with the initiator world wide web port name are the same based on the globally unique identifier.
In another embodiment, the switch device is a fibre channel switch.
In another embodiment, a data management service is performed for the identified storage volume, wherein the data management service comprises one of: copying data, performing a snapshot of a data image, backing up data, copying data, and performing a data migration.
In another embodiment, the server is connected to the first virtual switch.
In another embodiment, a first virtual switch and a second virtual switch are defined in the switch device.
According to another embodiment, the device is located in a path between a first virtual switch defined in the switch device and a second virtual switch defined in the switch device. The device includes a first port, a storage device for storing computer program instructions, and a processor. The processor is configured to execute computer program instructions that, when executed, cause the processor to perform operations comprising: identifying a target world wide web port name of a target port of the storage system connected to the second virtual switch; registering a first port of the device with a first virtual switch based on the target world wide web port name in a first registration process; receiving, in a second registration process, registration information regarding an originator port of the server associated with the target port; determining an originator web port name of an originator port of the server based on the registration information; and identifying a storage volume in the storage system associated with an initiator port based on an initiator world wide web port name of the initiator port.
These and other advantages of the present invention will become apparent to those of ordinary skill in the art by reference to the following detailed description and drawings.
Drawings
FIG. 1 illustrates a communication system that may be used to provide data storage services and data management services according to one embodiment;
FIG. 2 illustrates a fibre channel based area network (SAN) component according to one embodiment;
FIG. 3 illustrates functional components of a server according to one embodiment;
FIG. 4 illustrates functional components of a storage system according to one embodiment;
FIG. 5 illustrates functional components of a fibre channel switch according to one embodiment;
FIG. 6 illustrates an example of a simple name server table in accordance with one embodiment;
FIG. 7 illustrates an example of a zone configuration that may be established within a fibre channel switch, according to one embodiment;
FIG. 8 illustrates functional components of an interceptor device according to one embodiment;
FIG. 9A shows a diagram of the fibre channel based SAN of FIG. 2 after a link between the fibre channel switch and the storage system has been removed, in accordance with one embodiment;
FIG. 9B shows the fibre channel based SAN of FIG. 2 after an interceptor device has been inserted between the fibre channel switch and the storage system in accordance with one embodiment;
FIG. 10 is a flow diagram of a method for communicating with a component in a network according to one embodiment;
FIG. 11 illustrates a communication system that may be used to provide data storage services and data management services, according to one embodiment;
FIG. 12 is a flow diagram of a method for providing data management services according to one embodiment;
figure 13 shows functional components of an interceptor device according to another embodiment;
FIG. 14A shows a diagram of the fibre channel-based SAN of FIG. 2 after the link between the fibre channel switch and the host entity has been removed;
FIG. 14B shows the fibre channel based SAN of FIG. 2 after an interceptor device has been inserted between the fibre channel switch and the host entity, in accordance with one embodiment;
FIG. 15 is a flow diagram of a method for determining information related to data stored in a network, according to one embodiment;
FIG. 16 is a flow diagram of a method for providing data management services according to another embodiment;
FIG. 17 illustrates a fibre channel based SAN according to one embodiment in which an interceptor device is inserted in the path between a first fibre channel switch and a second fibre channel switch;
FIG. 18 shows a flow diagram of a method for obtaining information stored in a network, in accordance with another embodiment;
FIG. 19 illustrates an exemplary computer that may be used to implement some embodiments of the invention;
FIG. 20A illustrates a fibre channel-based SAN according to another embodiment;
FIG. 20B illustrates a fibre channel-based SAN according to another embodiment;
FIG. 21A illustrates a fibre channel-based SAN according to another embodiment;
FIG. 21B illustrates a fibre channel based SAN including virtual switches within a switch device according to another embodiment;
FIG. 21C illustrates a fibre channel-based SAN including virtual switches within a switch device according to another embodiment; and
FIG. 22 shows a flow diagram of a method for providing data management services, according to one embodiment.
Detailed Description
According to various embodiments, methods and apparatus are provided for providing data storage services and data management services. According to embodiments described herein, a device or apparatus may be inserted into a selected location in a network. For example, a device may be inserted into a path between a switch and a storage system. Alternatively, the device may be inserted into a path between the host entity and the switch. Alternatively, the apparatus may be inserted into a path between the first switch and the second switch. Alternatively, the apparatus may be inserted into a path between a first virtual switch within the switch device and a second virtual switch within the switch device. In other embodiments, the device may be plugged into a different location within the network. The apparatus acquires information identifying ports of a selected plurality of devices in the network, and uses the acquired information to identify data in a storage system in the network that is accessible by the selected host entity. Alternatively, identifier information relating to a selected plurality of device ports in the network may be manually entered into the apparatus to facilitate the process of identifying the ports and/or devices.
According to one embodiment, a first device having a first port in a network receives an identifier of a second port of a second device in the network. The identifier of the second port (e.g., from the other device) may be received automatically by the first device or may be manually entered into the first device. The network includes a host entity, a switch, and a storage system. The first port of the first device impersonates the second port of the second device during communication with the switch. The first device receives information identifying a third port of a third device in the network, the third port being partitioned to the second port of the second device. The first device identifies, based at least on the information, data stored in the storage system that is accessible to the host entity.
In another embodiment, an interceptor device is inserted into a path between a switch port of a switch in a network and a target port of a storage system. In one embodiment, the interceptor device is inserted into a Storage Area Network (SAN). The interceptor device impersonates a selected component in the storage area network to obtain information about the storage configuration and data stored in the storage system. Specifically, in a first registration process, a target world wide web port name of a target port is identified by a device, and an upstream port of the device is registered with a switch based on the target world wide web port name. In a second registration process, registration information is received identifying an originator web port name of an originator port of the host entity that is partitioned to the target port. Registration information may be received from one or more initiator ports. An initiator world wide web port name for the initiator port may be determined based on the registration information. For each of the one or more initiator ports of the host entity, one or more storage volumes in the storage system associated with the respective initiator port may be identified based on an initiator world wide web port name of the respective initiator port. In this way, the interceptor device identifies one or more storage volumes that the host entity can access.
In another embodiment, an interceptor device located in the path between a switch port of a switch and an originator port of a host entity identifies an originator web port name of the originator port during registration. The registration process may be performed automatically or manually. The originator web port name is added to the first device port of the interceptor device. The interceptor device sends a request to the switch for information identifying the port associated with the originator port. The interceptor device receives a target world wide web port name of a target port of the storage system associated with the initiator port. The target world wide web port name is added to the second device port of the interceptor device.
Advantageously, the methods, systems, and apparatus described herein enable transparent or nearly transparent transmission of commands and other data traffic between a host entity and a storage system after an interceptor device is inserted into the network. This feature provides opportunities and possibilities for intercepting, analyzing, redirecting, and/or reprocessing I/O commands and other data traffic flows between the host entity and the storage system.
In one embodiment, the interceptor device may also identify a storage volume in the storage system that is accessible to an originator port of the host entity based on the target world wide port name and the originator world wide port name.
Upon identifying a storage volume accessible to the host entity, the interceptor device may provide additional data management services for the data stored within the volume. For example, the interceptor device may copy data, perform a snapshot of data, backup data, copy data, perform a data migration operation, and the like.
In this context, the term "masquerading" is used to mean that a first device or port uses or masquerades an identifier such as the world wide web port name of a second device or port during communication with a third device or port by employing any means provided or accepted by the hardware and/or software associated with those devices or those ports.
Fig. 1 illustrates a communication system 100 that may be used to provide data storage and data management services according to one embodiment. The communication system 100 includes a first network 105, one or more clients 160-a, 160-B, etc., and one or more servers 135-a, 135-B, etc. The communication system 100 also includes a second network 115 and a storage system 180. Although only two clients 160 are shown in fig. 1, in other embodiments, communication system 100 may include more or less than two clients. Similarly, although only two servers 135 are shown in fig. 1, in other embodiments, the communication system 100 may include more or less than two servers.
For convenience, the term "client 160" is used herein to refer to any of clients 160-A, 160-B, etc. Accordingly, any discussion herein relating to "client 160" is equally applicable to each of clients 160-A, 160-B, etc. Similarly, the term "server 135" is used herein to refer to any one of the servers 135-A, 135-B, etc. Accordingly, any discussion herein relating to "server 135" is equally applicable to each client in servers 135-A, 135-B, etc.
The storage system 180 stores data. For example, storage system 180 may store any type of data including, but not limited to, files, spreadsheets, images, audio files, source code files, and the like. Storage system 180 may receive requests from other devices for storing particular data from time to time and store the particular data in response. For example, storage system 180 may store data received from server 135. The storage system 180 may also receive requests from other devices for access to stored data from time to time and, in response, provide the requested data to the requesting device or provide access to the requested data. The storage system 180 verifies that the requesting device is authorized to access the requested data before providing access to the data. The storage system 180 is connected to the network 115.
For example, the network 115 may include one or more of a number of different types of networks, such as a fibre channel-based Storage Area Network (SAN), an iSCSI-based network, a Local Area Network (LAN), a Wide Area Network (WAN), or a wireless network. Other networks may also be used.
From time to time, server 135 receives requests for stored data from clients 160, communicates with storage system 180 to retrieve the requested data, and provides the requested data to the requesting clients. The server 135 is connected to the network 115 and communicates with the storage system 180 via the network 115. The server 135 is also connected to the network 105 and communicates with the client 160 via the network 105. For example, server 135 may be a personal computer, a workstation, a mainframe computer, a server computer, or the like. In some embodiments, a server or a cluster of two or more servers may be referred to as a "host entity. Alternatively, the host entity is often referred to as a host server.
In the exemplary embodiment of fig. 1, for example, network 105 may include one or more of a number of different types of networks, such as an intranet, a Local Area Network (LAN), a Wide Area Network (WAN), or a wireless network. Other networks may also be used. Alternatively, the network 105 may include a combination of different types of networks.
Client 160 may be any computer or other device capable of communicating via network 105. For example, client 160 may be, but is not limited to: personal computers, laptop computers, tablet devices, server computers, mainframe computers, workstations, wireless devices (such as cellular telephones, personal digital assistants, etc.). For example, when a user of client 160 requests access to a web page, a stored file, a stored email, stored account-related data, etc., client 160 may send a request to server 135 for the stored data.
In one embodiment, server 135 may comprise a web server that maintains web sites and provides access to one or more web pages associated with the web sites. More particularly, server 135 may provide one or more cloud-based services to clients 160, including cloud-based storage services that enable clients 160 to store data remotely and transparently via the internet, and to access the stored data via the internet.
In other embodiments, server 135 may provide other types of services. For example, server 135 may include a file server that provides access to stored files, an email server that provides access to stored emails, and so forth.
In one exemplary embodiment, the network 115 is a fibre channel-based Storage Area Network (SAN). FIG. 2 illustrates components of a fibre channel-based Storage Area Network (SAN)115 according to one embodiment. The fibre channel based Storage Area Network (SAN)115 includes a fibre channel switch 225. Server 135-a is connected to Fibre Channel (FC) switch 225 by links 271 and 272. Server 135-B is connected to FC switch 225 by links 273 and 274. FC switch 225 is connected to storage system 180 via links 281 and 282. In other embodiments, the fibre channel-based SAN 115 may have different types of topologies, including but not limited to: a point-to-point topology, an arbitrated loop topology, a switch fabric topology, or other topology.
Certain devices within the fibre channel-based SAN 115 may include one or more ports, which are entities capable of actively communicating via the network 115. Herein, a port located on server 135 generally represents an initiator port. Herein, a port located on the storage system 180 generally represents a target port. Herein, a port located on FC switch 225 generally refers to a switch port. In the exemplary embodiment of FIG. 2, server 135-A includes initiator ports I-1 and I-2, while server 135-B includes initiator ports I-3 and I-4. Storage system 180 includes target ports T-1 and T-2. FC switch 225 includes ports P-1, P-2, P-3, P-4, P-5, and P-6. Server 135, storage system 180, and FC switch 225 may include more or fewer ports than those described in relation to fig. 2.
Data is transported within the fibre channel-based SAN via the link. In the exemplary embodiment, link 271 connects initiator port I-1 (of server 135-A) to port P-1 of FC switch 225. Link 272 connects initiator port I-2 (of server 135-a) to port P-2 of FC switch 225. Link 273 connects originator port I-3 (of server 135-B) to port P-3 of FC switch 225. Link 274 connects originator port I-4 (of server 135-B) to port P-4 of FC switch 225. Link 281 connects the P-5 port of FC switch 225 to target port T-1 of storage system 180. Link 281 connects the P-6 port of FC switch 225 to target port T-2 of storage system 180.
In one embodiment, communications between components of the fibre channel based SAN 115 are conducted in accordance with the Fibre Channel Protocol (FCP). For example, server 135, FC switch 225, and storage system 180 may send SCSI commands via network 115.
FIG. 3 illustrates functional components of server 135 according to one embodiment. For exemplary purposes, FIG. 3 shows components of server 135-A; however, fig. 3 and the following discussion are equally applicable to any server in communication system 100. Server 135-a includes service manager 325, storage device memory 375, and initiator ports I-1 and I-2. Server 135-a may include more or less than two originator ports.
Service manager 325 controls the operational actions of the various components within server 135-a. Service manager 325 is a functional process that may be implemented in software, hardware, or a combination of software and hardware. The storage device 375 is used by various components of the server 135-a to store data. In the exemplary embodiment of FIG. 3, the initiator ports I-1 and I-2 are implemented in a host bus adapter 362 located in the server 135-A. Server 135-a may include multiple host bus adapters. In other embodiments, the originator ports I-1 and I-2 may be implemented in different components of the server 135-A. Server 135-a may include components not shown in fig. 3.
FIG. 4 illustrates functional components of a storage system 180 according to one embodiment. Storage system 180 includes a storage manager 410, a memory 475, and a storage device 468. The storage manager 410 controls the operation of the various components of the storage system 180. Storage manager 410 may include functionality to store data using one or more of a variety of data storage technologies. For example, storage manager 410 may use virtualization methods, use multiple RAID configurations, and the like to store data. The storage manager 410 is a functional process that may be implemented by software, hardware, or a combination of software and hardware. Memory 475 may be used by various components of storage system 180 to store data. The storage system 180 also includes target ports T-1 and T-2. In one embodiment, target ports T-1 and T-2 may be implemented in one or more host bus adapters. In one embodiment, the storage manager 410 and one or more target ports may be implemented as subsystems referred to as storage controllers. Storage system 180 may include components not shown in fig. 4.
Storage 468 includes one or more storage devices (not shown) capable of storing data. Storage 468 may include one or more block-level storage devices, one or more file-level storage devices, and/or other types of storage devices. For example, storage device 468 may include, but is not limited to: one or more magnetic disk drives, optical disks, tape drives, and the like. Storage 468 may include a Redundant Array of Independent Disks (RAID) or multiple RAIDs. Storage 468 may be a local storage and/or a distributed storage. Other types of storage devices may also be used.
Data stored in storage system 180 may be organized into Logical Unit Numbers (LUNs), also referred to as volumes. In the exemplary embodiment of FIG. 2, storage device 468 includes a plurality of volumes (including volume 491 and volume 492). A LUN or volume is a logical unit and thus may comprise data distributed across multiple storage devices.
Fig. 5 shows functional components of FC switch 225 according to one embodiment. FC switch 225 includes a switch manager 525 and a memory 575. Switch manager 525 controls the operation of various components within FC switch 225. The switch manager 525 is a functional process that may be implemented by software, hardware, or a combination of software and hardware. The components of FC switch 225 may use memory 575 to store control data. The FC switch also includes switch ports P-1, P-2, P-3, P-4, P-5, and P-6. In one embodiment, ports P-1, P-2, P-3, P-4, P-5, and P-6 may be implemented using one or more host bus adapters. FC switch 225 may include components not shown in fig. 5.
From time to time, switch manager 525 directs an I/O command received at a first switch port of FC switch 225 to a second switch port of FC switch 225.
When a port on a device within fibre channel-based SAN 115 connects to FC switch 225, the port registers or logs in with FC switch 225 in a well-known registration or login process. The manufacturer of the device assigns each fibre channel port a unique identifier called the world Wide Web Port Name (WWPN). Each WWPN is a unique 64-bit number. Thus, each of the initiator ports I-1, I-2, I-3, and I-4 has its own WWPN. Each of ports P-1 through P-6 on FC switch 225 has a respective WWPN. Each of the target ports T-1 and T-2 of the storage system 180 has a respective WWPN.
For convenience, the web port name of an initiator port is referred to herein as an initiator web port name, and the web port name of a target port is referred to herein as a target web port name. However, as discussed above, each world wide web port name (whether it is associated with an initiator port or a target port) is a unique 64-bit number. For convenience, the terms initiator world Wide Web port name and target world Wide Web port name are used herein, but these data do not reflect different types of world Wide Web port names, nor any characteristic of the world Wide Web port name itself, but rather distinguish between the world Wide Web port name associated with the initiator port and the world Wide Web port name associated with the target port.
FC switch 225 maintains a simple name server table that stores information about a plurality of ports within fabric-based SAN 115. FIG. 6 illustrates an example of a simple name server table according to one embodiment. Simple name server table 650 includes columns 625 and 629, where column 625 is used to store the world wide web port name of an initiator port or a target port, and column 629 is used to store the identifier of the port of FC switch 225 to which the initiator port or target port is connected. Referring to record 602, the first world wide web port name WWPN-1 assigned to the initiator port I-1 is connected to port P-1 on FC switch 225. Record 604 represents that WWPN-2 (assigned to originator port I-2) is connected to port P-2 on FC switch 225. Record 606 represents that WWPN-3 (assigned to the originator port I-3) is connected to port P-3 on FC switch 225. Record 614 represents that WWPN-5 (assigned to target port I-1) is connected to port P-5 on FC switch 225.
As depicted in fig. 5, simple name server table 650 is stored in memory 575 of FC switch 225. Server 135 and storage system 180 are often granted access to simple name server table 650.
When an initiator port of server 135 or a target port of storage system 180 connects with a port on FC switch 225, the initiator port or target port sends a registration request (also referred to as a fibre channel login request) to FC switch 225. In response, simple name server table 650 is updated to record the WWPNs of the requesting port and the corresponding port on FC switch 225. When an initiator port or a target port is disconnected from FC switch 225, simple name server table 650 is updated to reflect this change.
I/O commands
From time to time, server 135 generates and sends an input/output (I/O) command to storage system 180 via FC switch 225 requesting that storage system 180 store data in a specified storage volume. The I/O command relates to a particular storage volume, is initiated by a particular initiator port of server 135, and is intended for a desired target port of storage system 180. The I/O commands may include, among other data: (1) an identifier of a port on switch 225 that corresponds to the originating initiator port of server 135 (i.e., the port connected to the originating initiator port); (2) an identifier of a port of the switch 225 that corresponds to a target port of the desired storage system 180 (i.e., a port connected to the desired target port); and (3) an identifier of the particular volume associated with the I/O command.
LUN masking
It is generally desirable to limit access to a particular storage volume to either a single server or a cluster of one or more servers defined as a single host entity. Thus, according to one embodiment, a particular volume maintained within storage system 180 may be assigned to all ports of a selected server (and not to any ports of any other servers). In another embodiment, access to a particular storage volume may be limited to a particular host (which may include multiple servers). Thus, the storage volume may be assigned to all ports of each server associated with the host entity. In particular, volumes are assigned to one or more WWPNs associated with respective initiator ports. Assignment information indicating assignment of storage volumes to a plurality of initiator WWPNs is maintained by storage system 180. Storage system 180 authorizes access to storage volumes from the allocation by using a method referred to as "LUN masking," an example of a technique for performing LUN masking is described below.
In the exemplary embodiment, as shown in FIG. 4, server 135-A is authorized to access volume-1 (491) (while server 135-B or any other server is not authorized). Thus, volume-1 (491) is assigned to the WWPN of the originator port I-1 and the WWPN of the originator port I-2 of server 135-A.
Thus, in the example of LUN masking techniques, when storage manager 410 of storage system 180 receives an I/O command specifying volume-1 (491), storage manager 410 retrieves information from the I/O command that can be used to determine the WWPN of the originating initiator port. If a storage volume is assigned to that particular WWPN, storage manager 410 provides access to that storage volume. For example, if the I/O command specifies volume-1 and originates at the originator port I-1, the storage system 180 verifies that volume-1 is assigned to the WWPN of the originator port I-1 and grants access to volume-1. If the volume is not assigned to the originating WWPN, the storage manager 410 denies the I/O command, denying access to the volume.
Partitioning
The internal paths between ports of FC switch 225 may be configured according to one or more predetermined policies using a method known as zoning. For example, FC switch 225 may be configured to ensure that a first port of switch 225 is only linked or partitioned to a particular second port of switch 225. Alternatively, FC switch 225 may be configured to ensure that a particular first port of FC switch 225 is partitioned to two or more ports of the FC switch. Fig. 7 shows an example of a zone configuration that may be established within FC switch 225 according to one embodiment. In the exemplary embodiment of FIG. 2, port P-1 is partitioned to port P5 via internal path 771, port P-2 is partitioned to port P-5 via internal path 772 and to port P-6 via internal path 773, port P-3 is partitioned to port P-6 via internal path 774, and port P-4 is partitioned to port P-6 via internal path 775. Other partition arrangements than that shown in fig. 7 may also be used. According to one partitioning method, known as hard partitioning, partitions are established based on switch ports. According to the hard-partitioning method, a first port may be partitioned to a second port in a network based on a physical connection.
In one method of partitioning, referred to as soft partitioning, partition configurations may be established within FC switch 225 by pairing relationships between the initiator port of server 135 and the target port of storage system 180 based on the respective world wide web port names. Despite the physical connections between the multiple ports, the initiator port of server 135 may still be partitioned to the target port of storage system 180. According to the soft partitioning method, a first world wide web port name can be partitioned to a second world wide web port name without considering any physical connection.
In an exemplary embodiment (referring to FIGS. 1 and 7), initiator port I-1 of server 135-A may be partitioned only to target port T-1 of storage system 180, specifically, from initiator port I-1 to port P-1 of FC switch 225 via link 271, then to port P-5 of FC switch 225 via internal path 771, and then to target port T-1 of storage system 180. Thus, the initiator port I-1 of server 135-A can only send data to the target port T-1 of storage system 180 and can only receive data from the target port T-1 of storage system 180. It should be noted that although in this example, initiator port I-1 is connected to ports P-1 and P-5 of FC switch 225, initiator port I-1 may be partitioned to any other switch port using a soft partition method using WWPN based on multiple ports that are not physical ports.
A particular port has an associated zone defined in terms of a set of ports in the network that are partitioned to the particular port.
In the exemplary embodiment, server 135-A's initiator port I-2 is partitioned to two target ports of storage system 180. Specifically, the initiator port I-2 is partitioned to the target port T-1 by a first path: from initiator port I-2 to port P-2 of the FC switch via link 272, then internally to port P-5 of FC switch 225 via internal path 772, and then to target port T-1 of storage system 180 via link 281. The initiator port I-2 may also be partitioned to the target port T-2 by a second path: from initiator port I-2 to port P-2 of the FC switch via link 272, then internally to port P-6 of FC switch 225 via internal path 773, and then to target port T-2 of storage system 180 via link 282. Thus, the originator port I-2 of server 135-A may send data to target ports T-1 and T-2 of storage system 180 and may receive data from target ports T-1 and T-2 of storage system 180. As discussed above, although there is a physical connection between the multiple ports, the use of the soft partition method can still change the partition configuration based on the WWPNs of the multiple ports.
Multi-path function
In one embodiment, server 135-A includes the following functionality: the relationship between the paths defined by a particular partition configuration within FC switch 225, LUN masking within storage system 180, and the number of volumes maintained within storage system 180 are determined. For example, referring to FIG. 3, the service manager 325 of the server 135-A may include a multi-path function. Alternatively, such functionality may be implemented by a separate software application resident on server 135-A. Such software applications are commonly referred to as multipath software applications.
In the exemplary embodiment, service manager 325 uses a multipath function to examine all available paths between server 135-a and storage system 180 (based on any internal partitions established within FC switch 225 and any LUN masks established in storage system 180) and identify each storage volume accessible via each respective path. Thus, service manager 325 determines that the originator port I-1 is partitioned to only one target port T-1 of storage system 180. Service manager 325 also determines that this particular path enables access to a particular storage volume. In addition, service manager 325 also determines that the originator port I-2 is partitioned to two ports T-1 and T-2 of storage system 180. Service manager 325 also determines that each of these paths enables access to the storage volume. The determination process may be performed based on world wide web port names associated with the various initiator ports of server 135 and based on LUN masking.
The information obtained by service manager 325 regarding which volumes each corresponding initiator port may access may be ambiguous and may not specify how many unique volumes these initiator ports can access.
Service manager 325 uses a multipath function to coordinate the accessible storage volumes to determine the number of unique storage volumes that are actually accessible to the originator ports I-1 and I-2. In the exemplary embodiment, service manager 325 examines each of the three defined paths between server 135-A and storage system 180 and determines that all three paths enable access to the same volume-1 (491), rather than three different storage volumes.
By using the otherwise multi-path functionality, service manager 325 reroutes traffic from a first path to a second path between server 135-A and storage system 180 as needed to ensure continued communication with respect to a particular storage volume. For example, if service manager 325 detects an interruption in the flow of data on link 281 between FC switch 225 and storage system 180, thereby interrupting communications associated with volume-1 (491), service manager 325 may redirect all communications associated with volume-1 (491) to other available paths that enable access to volume-1 (491), such as a path originating from initiator port I-2 using link 282.
Interceptor device
In many enterprise-level storage systems, it is useful to add data management services to existing storage systems. For example, it is often useful to add the following functions: copying data, performing snapshots of data images, backing up data, copying data, performing data migration from one storage device or system to another storage device or system, and the like. Preferably, such functionality is added without causing any interruption to the operation of the storage system.
One solution is to add functionality to the server or host entity. For example, a specialized driver (e.g., a software application) may be installed in the server to intercept I/O commands sent to the storage system. However, this solution is disadvantageous for a number of reasons. Installing software on a server creates the risk of: any problem with the installed application may slow down the server or even cause the server to crash. Another problem with this approach is that different software must be created that is appropriate for the operating system platform used on the various servers. Creating different drivers for different servers is inefficient and undesirable.
The inventors have identified a solution comprising: a system and method for inserting a device or apparatus into a fibre channel based network comprising a host entity and a storage system, the device or apparatus having the functions of: transparently intercept all I/O commands and provide data management services for data stored in the storage system. The inventors have also determined a solution that includes a system and method for transparently performing the insertion of such devices or apparatuses without interrupting the operation of the storage system and without requiring any system downtime.
According to various embodiments, a device or apparatus is inserted into a selected location in a network. In one embodiment, a device is inserted into a path between a storage system and a fibre channel switch. In another embodiment, a device is inserted into a path between a host entity and a fibre channel switch. In another embodiment, an apparatus is inserted into a path between a first fibre channel switch and a second fibre channel switch. In other embodiments, other arrangements may be used.
Storage equipment side interceptor
In one embodiment, a device in a network between a storage system and a switch receives a first identifier associated with a first port of the storage system. The device spoofs a first port of the storage system using the first identifier during a first communication with the switch. The device receives a request from a host server connected to the switch to register a second port of the host server. The request includes a second identifier associated with the second port. The device uses the second identifier to impersonate a second target port of the host server during a second communication with the storage system and receives information from the storage system identifying data stored in the storage system and accessible through the second port of the host server.
Thus, in the exemplary embodiment, an interceptor device is inserted into the path between the selected port of FC switch 225 and the selected target port of stored system 180. The interceptor means determines the WWPN of the selected target port of the storage system 180, determines the WWPN of each initiator port of the server or host entity that is partitioned to the selected target port of the storage system 180, and identifies all storage volumes in the storage device that are assigned to the respective WWPN of the server or host entity, respectively.
Fig. 8 illustrates the functional components of an interceptor device 890 according to an embodiment. Interceptor device 890 includes interceptor processor 810, memory 815, and data management service 848. The interceptor process 810 controls the operation of the various components of the interceptor device 890. The interceptor process 810 is a functional process that may be implemented by software, hardware, or a combination of software and hardware. The various components of the interceptor device 890 may use memory 815 to store data. The interceptor device 890 also includes interceptor ports 846 and 847. Interceptor ports 846 and 847 may be implemented using one or more host bus adapters.
In one embodiment, the interceptor device 890 comprises a computer. Other types of processing devices may also be used.
Interceptor device 890 may be inserted between a selected port of FC switch 225 and a target port of storage system 180 using any of a number of methods. For example, in one exemplary embodiment, as shown in FIG. 9A, link 281 between port P-5 of FC switch 225 and target port T-1 of storage system 180 is removed.
The multipath functionality in server 135 ensures that the removal of link 281 does not cause an interruption in the data flow with respect to any volumes maintained in storage system 180. For example, service manager 325 of server 135 may detect the removal of link 281 and determine that originator port I-1 is no longer in communication with storage device 180. Service manager 325 may use the multipath function to determine that any I/O commands associated with volume-1 may be redirected from the originator port I-1 (which is no longer in communication with storage device 180 due to the removal of link 281) to the originator port I-2, which is also capable of accessing volume-1 and communicating with storage system 180 via other available paths.
In an exemplary embodiment, the interceptor device 890 is inserted in the following manner. Referring to FIG. 9B, interceptor port 846 of interceptor device 890 is connected to port P-5 of FC switch 225 by link 981, and interceptor port 847 is connected to destination port T-1 of storage system 180 by link 982.
In other embodiments, other devices may be interposed between, for example, interceptor device 890 and FC switch 225, or between interceptor device 890 and storage system 180.
To obtain information about the data stored in the storage system 180, the interceptor device 890 now communicates with components of the fibre channel-based SAN 115. Fig. 10 is a flow diagram of a method for communicating with a component of a network according to one embodiment. At step 1010, a target world wide web port name of a target port of a storage system is identified by a device located in a path between a switch port of a switch and the target port of the storage system. In an exemplary embodiment, when the target port T-1 of the storage system 180 is connected with the interceptor port 847 of the interceptor device 890, the interceptor device 890 issues a request for registration (such as a fibre channel login) to the target port T-1 of the storage system 180 and, in response, obtains the WWPN of the target port.
At step 1020, an upstream port of the device is registered with the switch based on the target world wide web port name in a first registration procedure or fibre channel login procedure. In the illustrative embodiment, (upstream) interceptor port 846 uses the WWPN of target port T-1 to impersonate target port T-1 and obtain information from FC switch 225. Specifically, interceptor device 890 sends a request to register with FC switch 225 through from (upstream) interceptor port 846. The request to register includes the target web port name of target port T-1 (and may also include a second web port name unique to interceptor port 846). FC switch 225 receives the request to register and registers interceptor port 846 based on the target world wide web port name of target port T-1. Additionally, FC switch 225 may register interceptor port 846 based on a second world wide port name that is unique to interceptor port 846.
At step 1030, in a second registration process, registration information is received for an originator port of a server associated with a target port. In an exemplary embodiment, the registration information received from the originator port includes information identifying the world wide web name of the originator port. In another embodiment, the registration information may include other types of identifiers associated with the originator port, such as a port number. The registration information received from the initiator port may also include information identifying the switch port connected to the initiator port.
Thus, in a second registration process, when interceptor port 846 registers with FC switch 225 using the world Wide Web port name of target port T-1, all initiator ports of any server 135 that are partitioned to target port T-1 register with interceptor port 846. During a second registration process, each initiator port sends registration information identifying the respective world Wide Web port name. Thus, each of the initiator ports I-1 and I-2 (which are classified as target ports T-1) registers with interceptor port 846 and provides information specifying said each initiator port to interceptor port 846. Specifically, in the registration information, the initiator port I-1 provides the world Wide Web port name (WWPN-1) of the initiator port I-1, and the initiator port I-2 provides the world Wide Web port name (WWPN-2) of the initiator port I-2. In the registration information of the originator port I-1, a switch port identifier for identifying the switch port P-1 connected to the originator port I-1 may be further included. In the registration information of the originator port I-2, a switch port identifier for identifying the switch port P-2 connected to the originator port I-2 may be further included.
At step 1040, an originator web port name for an originator port of the server (or host entity) is determined based on the registration information. Thus, the interceptor device 890 obtains the world wide web port name for each originator port of the server 135-a from the received registration information. Specifically, interceptor process 810 of interceptor device 890 determines that WWPN-1 is the world Wide Web port name of the originator port I-1 and WWPN-2 is the world Wide Web name of the originator port I-2. In this manner, the interceptor device 890 determines the originator web port name of each originator port of the server 135-A that is partitioned to the target port T-1 of the storage system 180.
In an alternative embodiment, the registration information received from the initiator port does not include the world wide web port name of the initiator port, but includes a switch port identifier for identifying the switch port connected to the initiator port. For example, the originator port I-1 provides registration information indicating that the originator port I-1 is connected to switch port P-1, and the originator port I-2 provides registration information indicating that the originator port I-2 is connected to switch port P-2. Thus, the interceptor device 890 accesses and examines the simple name server table 650 and identifies a corresponding originator web name for each switch port identifier received. Specifically, interceptor process 810 of interceptor device 890 consults simple name server table 650 and determines that WWPN-1 is associated with switch port identifier P-1 (and, therefore, is linked with port P-1 of FC switch 225) and WWPN-2 is associated with switch port identifier P-2 (and, therefore, is linked with port P-2 of FC switch 225).
In another embodiment, interceptor device 890 may impersonate target port T-1 and send a request from (upstream) interceptor port 846 for registration with FC switch 225 (the request including the target world wide web port name of target port T-1), as shown in step 1020. In response, FC switch 225 accesses simple name server table 650 and provides information specifying the partitioning of one or more initiator ports of server 135-A to target port T-1 to interceptor device 890.
At step 1050, one or more storage volumes in the storage system associated with the initiator port are identified based on the initiator Web port name of the initiator port. In the exemplary embodiment, interceptor device 890 now impersonates each originator port of server 135 to obtain information from storage system 180. In particular, the interceptor process 810 of the interceptor device 890 uses a standard procedure to add the originator web port name of the originator port that is partitioned to the target port T-1 to the (downstream) interceptor port 847 of the interceptor device 890. Thus, interceptor process 810 adds WWPN-1 and WWPN-2 to interceptor port 847. After adding the originator web port name to interceptor port 847, interceptor process 810 may obtain information identifying one or more volumes that each respective originator web port name can access from storage system 180 in the following manner.
For each initiator world wide web port name currently associated with port 847 of interceptor device 890, interceptor process 810 sends a command to storage system 180 regarding specifying the corresponding WWPN and requesting information identifying the volume that the initiator WWPN can access. For example, interceptor process 810 may send a REPORT LUN command according to the SCSI protocol. The storage system 180 receives the command and, in response, sends information indicating one or more volumes accessible by the specified initiator WWPN. Thus, in the exemplary embodiment, interceptor process 810 sends a REPORT LUN command specifying WWPN-1 to storage system 180. In response, the storage system 180 sends information to the interceptor device 890 indicating that WWPN-1 can access volume-1 (491). The interceptor device 810 also sends a REPORT LUN command specifying WWPN-2 to the storage system 180. In response, storage system 180 informs interceptor device 890 that WWPN-2 is able to access volume-1 (491). In other embodiments, the interceptor device 890 may use a different type of identifier (such as a port number) associated with the originator port to impersonate the originator port and determine information identifying that the originator port can access the data.
As discussed above, in some embodiments, the information received from storage system 180 regarding which volumes accessible by each respective initiator web port name may be ambiguous and may not specify how many unique volumes may be accessed by the initiator web port names. As a result, the interceptor device 890 may interpret information from the storage system 180 that indicates that a plurality of storage volumes are actually stored. Thus, the interceptor device 890 may coordinate whether the information received from the storage system 180 has determined whether the identified storage volumes are unique or whether two or more of the identified storage volumes are identical such that redundancy exists.
Thus, in one embodiment, interceptor process 810 sends a command (such as a SCSI command referred to as an INQUIRY command) to each identified volume to obtain a Globally Unique Identifier (GUID) associated with the volume. In response to the command, the volume sends a message to the interceptor device 890 specifying the globally unique identifier for the volume. Based on the GUIDs received in this manner, the interceptor process 810 determines how many unique volumes to store and whether there are any identified volume redundancies. The implementation of the globally unique identifier for each volume may vary from manufacturer to manufacturer of the storage system. In some embodiments, it may be desirable to use non-standard commands to retrieve the information that makes up the GUID.
Using the methods described herein, the interceptor device 890 identifies the initiator WWPN that is partitioned to the selected target port of the storage system 180 and identifies one or more volumes within the storage system 180 that are accessible by the initiator WWPN. The method may be used to identify a plurality of WWPNs associated with a selected server (or host entity). The interceptor device 890 may then identify all volumes within the storage system 180 that are accessible by the WWPN. Thus, the interceptor device 890 may identify all volumes that a server or host entity can access.
Although the examples described herein discuss systems, devices, and methods for identifying volumes in a storage system that are accessible through an initiator port or host entity, in other embodiments, these methods, devices, and systems described herein may be used to identify any data structure that a particular initiator port or host entity is capable of accessing. For example, the methods, devices, and systems described herein may be used to identify (but are not limited to) files, databases, physical sectors on a disk drive, etc. that are accessible through a particular initiator port or host entity.
Advantageously, the systems and methods described herein enable an interceptor device 890 to be inserted in the data path between FC switch 225 and storage system 180, enabling all I/O commands to be intercepted transparently. The systems and methods described herein also enable transparent insertion of the interceptor device 890 without interrupting the operation of the storage system 180 or the network.
Providing data management services through storage device side interceptors
According to one embodiment, the interceptor device 890 provides one or more data management services with respect to data stored in the storage system 180. Referring to fig. 8, the interceptor device 890 includes a data management service 848, the data management service 848 including functionality to provide one or more data management services. For example, the data management service 848 may include the following functionality: copying data, performing snapshots of data images, backing up data, copying data, performing data migration, and the like. The data management service 848 may include user interface functionality. For example, storage volumes and host entities identified by the interceptor device 890 using the methods described herein may be displayed to a user by: using the user interface facilitates a user in selecting one or more volumes and selecting one or more services that the user wishes to execute with respect to the selected volumes.
In one embodiment, after identifying one or more volumes accessible to a particular server or host entity in the manner described above, the interceptor device 890 may use this information to provide one or more data management services. Fig. 11 illustrates another embodiment of a communication system 100 that may be used to provide data management services. In the embodiment of fig. 11, the communication system 100 also includes a backup storage system linked to the network 115. In an exemplary embodiment, the interceptor device 890 may include functionality to copy one or more volumes that a particular host entity (in this example, server 135-a) is authorized to access. Thus, the interceptor device 890 identifies a volume in the storage system 180 that the host entity has access to, and copies the volume to the backup storage system 1140.
To ensure that the copying can be done completely and accurately in the event that the host entity copies the data while writing the new data to the volume, the interceptor device 890 records the location of any data written to the volume during the copying process. In this manner, the interceptor device 890 maintains a track of the new data written to the volume. After the first step is completed, the interceptor means 890 consults the record representing the location of the new data and copies the new data in a subsequent step. Other steps may also be performed.
FIG. 12 is a flow diagram of a method for providing data management services, according to one embodiment. At step 1210, an identifier of an initiator port of a host entity linked to a switch is determined by a device located in a path between the switch port of the switch and a target port of a storage system. In the manner described above, the interceptor process 810 of the interceptor device 890 receives the world wide port name of the originator port I-1 from the host entity (e.g., server 135-A). In the exemplary embodiment, the world Wide Web port name of the initiator port I-1 is WWPN-1.
At step 1220, a storage volume in the storage system that is accessible to the initiator port is identified based on the identifier. In the exemplary embodiment, interceptor process 810 determines that WWPN-1 has access to volume-1 maintained in storage system 180 in the manner described above.
After identifying the volumes in the storage system 180 by the detailed and accurate information for the one or more initiator WWPNs specifying the host entity, the interceptor device 890 may intercept the I/O commands and determine the source of each I/O command received. This enables the data management service 848 (of the interceptor device 890) to perform a selected one or more actions for each I/O command based on the source of the I/O command.
At step 1230, a data management service is provided for the identified data. For example, referring to FIG. 8, the data management service 848 (of interceptor device 890) may access volume-1 and copy the data in volume-1 to another volume. In the exemplary embodiment of FIG. 11, the data management service 848 may copy the data in volume-1 to a volume in the backup storage system 1140.
Before copying the data, the data management service 848 instructs the interceptor process 810 to intercept all data write commands. The data management service 848 then begins to copy the data in the volumes from beginning to end in order. While the copy process is being performed, new data is written to the portion of the volume for which the copy has been completed. To ensure that the most recent copy is made, the data management service 848 records the location of all new data written to the volume. After the first step is completed, the data management service 848 copies the locations where new data is written in subsequent steps, and may perform other steps if desired.
In other embodiments, the data management service 848 may provide other types of services, such as performing snapshots of data images, copying data, performing data migration from one storage device or system to another, and so forth. When other functions are performed, interceptor process 810 intercepts I/O commands as needed to enable such functions to be performed. In another embodiment, the data management service 848 may monitor I/O commands sent to or received from volumes maintained in the selected storage system 180 and may generate statistics related to these I/O commands. In another embodiment, the data management service 848 may monitor traffic sent to and from the selected storage volume and, upon detecting that a predetermined condition is reached, invoke a predetermined function to perform a specified action. For example, the data management service 848 may notify an administrator when a designated initiator port writes data to a selected volume.
Main machine side interceptor
According to another embodiment, an interceptor device is inserted in the path between the selected port of FC switch 225 and the selected host entity. The interceptor device determines the world wide web port name of each initiator port of the host entity. The world wide port names of these initiator ports may be received automatically by the interceptor device (e.g., from other equipment) or may be manually entered into the interceptor device by a user. The interceptor device then determines, for each respective initiator port of the host entity, a world wide port name for each target port of the storage system 180 that is partitioned to the respective initiator port. The world wide web port names of these target ports may be received automatically or may be manually entered into the interceptor device by a user. The interceptor device identifies a storage volume in the storage system that is assigned to the corresponding initiator port. The methods described herein may be performed while enabling normal communications between the host entity and the storage system, including the exchange of I/O commands or other data traffic, to proceed.
Fig. 13 illustrates the functional components of an interceptor device 1390 according to another embodiment. The interceptor device 1390 includes an interceptor process 1310, memory 1315, and data management services 1348, which are similar to the corresponding components shown in the embodiment of fig. 8. The interceptor device also includes interceptor ports 1346, 1347, 1348, and 1349. The interceptor ports 1346, 1347, 1348, and 1349 may be implemented using one or more host bus adapters.
In one embodiment, the interceptor device 1390 comprises a computer. Other types of processing devices may also be used.
Interceptor device 1390 may be inserted into the path between the selected port of FC switch 225 and the host entity using any of a variety of methods. For example, in the exemplary embodiment shown in FIG. 14A, link 271 between port P-1 of FC switch 225 and originator port I-1 of server 135-A, and link 272 between port P-2 of FC switch 225 and originator port I-2 of server 135-A are removed, and interceptor device 1390 is inserted between FC switch 225 and server 135-A.
Referring to fig. 14B, the interceptor device 1390 may be inserted as follows. Interceptor port 1346 of interceptor device 1390 is connected to port I-1 of server 135-a by link 1471 and interceptor port 1348 of interceptor device 1390 is connected to port I-2 of server 135-a by link 1472. Interceptor port 1347 of interceptor device 1390 is connected to port P-1 of FC switch 225 and interceptor port 1349 of interceptor device 1390 is connected to port P-2 of FC switch 225.
In other embodiments, other devices may be interposed between interceptor device 1390 and FC switch 225, or between interceptor device 1390 and server 135-a, for example.
To obtain information about the data stored in the storage system 180, the interceptor device 1390 now communicates with components of the fibre channel-based SAN 115. FIG. 15 is a flow diagram of a method for determining information related to data stored in a network, according to one embodiment.
At step 1510, an originator web port name of an originator port of the host entity is identified by a device located in a path between a switch port and an originator port of the switch. In the exemplary embodiment, when an originator port I-1 of 135-A connects with an interceptor port 1346 of interceptor device 1390, the originator port I-1 detects interceptor port 1346 and attempts to register with interceptor device 1390. Thus, the originator port I-1 sends a request for registration to the interceptor device 1390. For example, the request for registration may include a request to complete a fibre channel login. The request includes the world wide web port name (WWPN-1) of the initiator port I-1. The interceptor device 1390 receives the request and retrieves the world wide web port name of the originator port I-1. In another embodiment, the request received from the originator port I-1 can include a different identifier (such as a port number) associated with the originator port I-1.
In another embodiment, the user may manually enter the world Wide Web port name (WWPN-1) of the initiator port I-1 into the interceptor device 1390.
At step 1520, the initiator world wide web port name is added to the first device port of the device. In the exemplary embodiment, interceptor process 1310 of interceptor device 1390 adds the world wide web port name (WWPN-1) of the originator port I-1 to the (downstream) interceptor port 1347 of interceptor device 1390 using standard procedures.
At step 1525, a request is sent to the switch for information identifying the port associated with the originator web port name of the originator port. Interceptor device 1390 uses the world wide web port name (WWPN-1) of originator port I-1 to impersonate originator port I-1 during interaction with FC switch 225. Specifically, interceptor device 1390 sends a request to FC switch 225 via interceptor port 1347 for information identifying the port that is partitioned to originator port I-1. The request includes the world wide web port name, WWPN-1, of the initiator port I-1. In another embodiment, the request may include different types of identifiers (such as port numbers) associated with the initiator port I-1. FC switch 225 receives the request and determines to respond.
At step 1530, a target world wide web port name for a target port of the storage system associated with the initiator port is received from the switch. In response to the request for information received from interceptor device 1390, FC switch 225 accesses simple name service table 650 and retrieves information identifying the port partitioned to originator port I-1. In another embodiment, FC switch 225 retrieves information identifying the port that is partitioned to WWPN-1. In the exemplary embodiment, target port T-1 is partitioned to initiator port I-1(WWPN-1), and therefore, FC switch 225 sends information identifying target port T-1, including the target world Wide Web port name (WWPN-5) of target port T-1, to interceptor device 1390. In another embodiment, FC switch 225 may send other types of identifiers (such as a port number) associated with target port T-1 to interceptor device 1390.
In another embodiment, the user may manually enter the target world wide web port name (WWPN-5) into the interceptor means 1390.
At step 1540, the target world wide web port name is added to the second device port of the device. To ensure that communications between the server 135-A and the storage system 180 can continue with little or no interruption, the interceptor process 1310 adds the target world Wide Web port name (WWPN-5) of the target port T-1 to the (upstream) interceptor port 1346 of the interceptor device 1390. When server 135-A determines that the originator port I-1 is connected to interceptor port 1346 (now impersonating target port T-1), server 135-A registers with (upstream) interceptor port 1346. For example, server 135-A may perform a fibre channel login procedure to register with interceptor port 1346.
Server 135-A now sends data, requests, and other communications intended for target port T-1 of storage system 180 to (upstream) interceptor port 1346. Interceptor device 1390 enables these communications to reach (via FC switch 225) storage system 180 with little or no interruption. In this manner, interceptor device 1390 reconstructs a transparent path between the originator port I-1 of server 135-A and the target port T-1 of storage system 180.
The above steps may also be used to identify stored data that may be accessed through the originator port I-2 of the server 135-A. In the exemplary embodiment, when the originator port I-2 of server 135-A connects with interceptor port 1348 of interceptor device 1390, the originator port I-2 attempts to register with interceptor device 1390. Thus, the originator port I-2 sends a request to the interceptor device 1390 to register or complete a fibre channel login. The request includes the world wide web port name (WWPN-2) of the initiator port I-2. The interceptor device 1390 receives the request and retrieves the world wide web port name of the originator port I-2.
After interceptor device 1390 obtains WWPN-2, interceptor device 1390 uses the world wide web port name of originator port I-2 to impersonate originator port I-2 during communication with FC switch 225. In particular, the interceptor process 1310 of the interceptor device 1390 uses standard procedures to add the world wide web port name of the originator port I-2 to the (downstream) interceptor port 1349 of the interceptor device 1390. The interceptor process 1310 thus adds WWPN-2 to the interceptor port 1349. Interceptor device 1390 now sends a request to FC switch 225 for information identifying the port that is partitioned to interceptor port I-2 (WWPN-2). In this exemplary embodiment, target port T-1 and target port T-2 are partitioned to interceptor port I-2(WWPN-2) via switch ports P-2, P-5, and P-6 as shown in FIGS. 2 and 7. Accordingly, FC switch 225 receives the request and sends a message to interceptor device 1390 indicating that target port T-1 and target port T-2 are partitioned to WWPN-2. The response also includes the world wide web port names of the target ports T-1 and T-2.
The interceptor process 1310 now adds the world wide port names of the target ports T-1 and T-2 to the (upstream) interceptor port 1348 to enable transparent communication between the server 135-A's originator port I-2 and the storage system 180. Server 135-a detects the added world wide web port name and resends the communication message to storage system 180 via originator port I-2.
Advantageously, the methods, systems, and apparatus described herein enable transparent or nearly transparent transmission of commands or other data traffic between a host entity and a storage system upon insertion of an interceptor device into a network. This feature provides opportunities and possibilities for intercepting, analyzing, redirecting, and/or reprocessing I/O commands and other data traffic flows between the host entity and the storage system.
In the exemplary embodiment, interceptor device 1390 examines data stored in storage system 180. Specifically, in step 1550, a storage volume in the storage system associated with the initiator port is identified based on the target world wide port name and the initiator world wide port name. In the exemplary embodiment, interceptor device 1390 now masquerades as the originator port I-1 of server 135-A to obtain information from storage system 180. Interceptor device 1390 also impersonates the originator port I-2 of server 135-a to obtain information from storage system 180. In particular, for each initiator world wide web port name associated with port 1347 or 1349 of interceptor device 1390, interceptor process 1310 sends a command to storage system 180 specifying the responding initiator WWPN and requesting information identifying the volume that the initiator WWPN can access. The command may also specify the target world wide web port name that is partitioned to the initiator WWPN. For example, the interceptor process 1310 may send a REPORT LUN command to the storage system 180 according to the SCSI protocol. The storage system 180 receives the command and, in response, sends information indicating one or more volumes accessible by the specified initiator WWPN. Thus, in this exemplary embodiment, interceptor process 1310 can send a REPORT LUN command to storage system 180 specifying WWPN-1. In response, the storage system 180 sends information to the interceptor means 1390 indicating that WWPN-1 can access volume-1 (491). The interceptor process 1310 may send a REPORT LUN command specifying WWPN-2 to the storage system 180. In response, storage system 180 informs interceptor device 1390 that WWPN-2 can access volume-1 (491). In other embodiments, the interceptor device 1390 may use a different type of identifier associated with the originator port (such as a port number) to impersonate the originator port and determine information identifying the data that the originator port can access.
As discussed above, in some embodiments, the information received from storage system 180 regarding which volumes each respective initiator world wide port name can access may be ambiguous and may not specify how many unique volumes these initiator world wide port names can access. Thus, the interceptor device 1390 may intercept information obtained from the storage system that represents the plurality of storage volumes that actually exist. Thus, the interceptor device 1390 may coordinate that information received from the storage system 180 has determined whether the identified storage volumes are unique or whether two or more of the identified storage volumes are identical so that there is redundancy.
Thus, in one embodiment, interceptor process 1310 sends a command (such as a SCSI command referred to as an INQUIRY command) to each identified volume to obtain a Globally Unique Identifier (GUID) associated with the volume. In response to the command, the volume sends a message to the interceptor device 1390 specifying the globally unique identifier for the volume. Based on the GUIDs received in this manner, the interceptor process 1310 determines how many unique volumes to store and whether there are any identified volume redundancies. The implementation of the globally unique identifier for each volume may vary from manufacturer to manufacturer of the storage system. In some embodiments, it may be desirable to use non-standard commands to retrieve the information that makes up the GUID.
Using the methods described herein, interceptor device 1390 identifies the initiator WWPN of the initiator port of the host entity, identifies the target port of the storage system that is partitioned to the initiator WWPN, and identifies one or more volumes within storage system 180 that the initiator WWPN can access. The method may be repeated for multiple initiator ports of the host entity. Thus, the method may be used to identify a plurality of WWPNs associated with the selected server (or host entity). The interceptor device 1390 may then identify all volumes within the storage system 180 that are accessible by the WWPN. Thus, interceptor device 1390 may identify all volumes that a server or host entity can access.
Advantageously, the systems and methods described herein enable an interceptor device 1390 to be inserted into a data path between FC switch 225 and a host entity, enabling I/O commands to be intercepted transparently. The systems and methods described herein also enable transparent insertion of the interceptor device 1390 without interrupting the operation of the storage system 180 or network.
Providing data management services using host-side interceptors
According to one embodiment, interceptor device 1390 provides one or more data management services with respect to data stored in storage system 180. Referring to fig. 13, the interceptor device 1390 includes a data management service 1348, the data management service 1348 including functionality to provide one or more data management services. For example, the data management service 1348 may include the following functionality: copying data, performing snapshots of data images, backing up data, copying data, performing data migration from one storage device or system to another storage device or system, and the like. The data management service 1348 may include user interface functionality. For example, the storage volumes and host entities identified by the interceptor device 1390 using the methods described herein may be displayed to the user by: using the user interface facilitates a user in selecting one or more volumes and selecting one or more services that the user wishes to execute with respect to the selected volumes.
In one embodiment, after identifying one or more volumes accessible to a particular server or host entity in the manner described above, the interceptor device 1390 may use this information to provide one or more data management services. For example, interceptor device 1390 may include functionality to copy one or more volumes that a particular host entity (in this example, server 135-a) is authorized to access. Accordingly, interceptor device 1390 may identify a volume in storage system 180 that is accessible by the host entity and may copy the volume to a backup storage system, such as backup storage system 1140 shown in fig. 11.
To ensure that a copy can be made completely and accurately in the event that the host entity makes a copy of the data while writing new data to the volume, interceptor device 1390 records the location of any data written to the volume during the copy process. In this manner, interceptor device 1390 keeps track of new data written to a volume. After the first step is completed, the interceptor means 1390 consults the record representing the location of the new data and copies the new data in a subsequent step. Other steps may also be performed.
FIG. 16 is a flow diagram of a method for providing data management services, according to one embodiment. At step 1610, an identifier of an originator port of the host entity is determined by a device located in a path between the originator port and a switch port of the switch. In the manner described above, interceptor process 1310 of interceptor device 1390 receives the world wide port name of originator port I-1 from a host entity (e.g., server 135-A). In the exemplary embodiment, the world Wide Web port name of the initiator port I-1 is WWPN-1.
At step 1620, data stored in the storage system and accessible to the initiator port is identified based on the identifier. In the exemplary embodiment, interceptor process 1310 impersonates originator port I-1 using WWPN-1 in the manner described above and determines that WWPN-1 has access to volume-1 maintained in storage system 180.
After identifying volumes in the storage system 180 through detailed and accurate information specifying one or more initiator WWPNs of the host entity, the interceptor device 1390 may intercept I/O commands and determine the source of each I/O command received. This enables the data management service 1348 (of the interceptor device 1390) to perform a selected one or more actions for each I/O command based on the source of the I/O command.
At step 1630, a data management service is provided for the identified data. For example, referring to FIG. 13, the data management service 1348 (of interceptor device 1390) may access volume-1 and copy the data in volume-1 to another volume. Referring to FIG. 11, the data management service 1348 may copy the data in volume-1 to a volume in the backup storage system 1140.
Before copying the data, the data management service 1348 instructs the interceptor process 1310 to intercept all data write commands. The data management service 1348 then begins to copy the data in the volumes in order from beginning to end. While the copy process is being performed, new data is written to the portion of the volume for which the copy has been completed. To ensure that the most recent copy is made, the data management service 1348 records the location of all new data written to the volume. After the first process is completed, the data management service 1348 copies the locations where new data is written in subsequent processes, and may perform other processes if desired.
In other embodiments, the data management service 1348 may provide other types of services, such as performing snapshots of data images, copying data, performing data migration from one storage device or system to another, and so forth. When other functions are performed, interceptor process 1310 intercepts I/O commands as needed to enable such functions to be performed. In another embodiment, the data management service 1348 may monitor the I/O commands sent to or received from the volumes maintained in the selected storage system 180 and may generate statistics related to these I/O commands. In another embodiment, the data management service 1348 may monitor the traffic sent to and from the selected storage volume and, upon detecting that a predetermined condition is met, invoke a predetermined function to perform the specified action. For example, the data management service 1348 may notify an administrator when a designated initiator port writes data to a selected volume.
Multi-switch configuration
In another embodiment, an interceptor device may be inserted into a fibre channel network in a path between a first fibre channel switch and a second fibre channel switch. Such a configuration may advantageously enable the interceptor device to access and communicate with an increased number of host entities and/or an increased number of storage systems.
In the exemplary embodiment shown in fig. 17, network 115 includes FC switch 225, a second FC switch 1745, and an interceptor device 1790. The second switch 1745 is connected to server 135-a via links 1712 and 1714 and to server 135-B via links 1716 and 1718.
Interceptor device 1790 is interposed between FC switch 225 and second switch 1745. Specifically, ports 1746 and 1748 of interceptor device 1790 are connected to second FC switch 1745 via links 1722 and 1724, respectively. Ports 1747 and 1749 of interceptor device 1790 are connected to ports P-1 and P-2 of FC switch 225 via links 1773 and 1774, respectively.
After connecting with FC switch 225 and second FC switch 1745, interceptor device 1790 obtains information related to data stored in network 115. FIG. 18 is a flow diagram of a method for obtaining information stored in a network, according to one embodiment.
At step 1810, a first device in a network, the first device including a first port, receives an identifier of a second port of a second device in the network, the network including a host entity, a switch, and a storage system. In this exemplary embodiment, when interceptor device 1790 is connected to second FC switch 1745, server 135-a detects ports 1746 and 1748 of interceptor device 1790 and sends a request for registration via each of its ports (I-1 and I-2). Server 135-B also sends a request for registration via each of its ports (I-3 and I-4). Interceptor device 1790 receives the world wide web port name (WWPN-1) of interceptor port I-1 of server 135-A and likewise receives the respective world wide web port names from initiator ports I-2, I-3, and I-4. In another embodiment, the user may manually enter the world Wide Web Port name (WWPN-1) of interceptor port I-1 into the interceptor device 1790.
At step 1820, the first port of the first device masquerades as the second port of the second device during communication with the switch. In a manner similar to that discussed above, the world wide web port name (WWPN-1) received to the server 135-a is added to a selected port of the interceptor means 1790, such as (downstream) port 1747.
At step 1830, information identifying that a third port of a third device in the network is partitioned to a second port of a second device is received by the first device. In a manner similar to that discussed above, interceptor device 1790 receives information from FC switch 225 specifying target port T-1, which is partitioned to originator port I-1, and the world wide port name of target port T-1. In another embodiment, the user may manually enter the world Wide Web Port name of the target port T-1 into the interceptor device 1790.
At step 1840, data stored in the storage system and accessible by the host entity is identified based at least on the information. Upon determining that the target port T-1 of the storage system 180 is partitioned to the initiator port I-1 of the interceptor device 1790, the interceptor device 1790 uses the world wide web port name WWPN-1 of the initiator port I-1 to communicate with the storage system 180 and identify the storage volumes accessible through the initiator port I-1.
In a similar manner, the interceptor device 1790 may identify one or more storage volumes accessible through the originator port I-2 of the server 135-A. The interceptor device 1790 may also identify one or more storage volumes accessible through each of the originator ports I-3 and I-4 of the server 135-B.
According to one embodiment, the interceptor means 1790 provides one or more data management services for data stored in the storage system 180 (e.g., storage volumes accessible through the initiator ports I-1, I-2, I-3, and I-4). In a manner similar to the methods described above and illustrated in fig. 12 and 16, the interceptor means 1790 may copy data, perform snapshots of data images, backup data, copy data, perform data migration from one storage device or system to another, and so forth.
In various embodiments, the method steps described herein, including the method steps described in fig. 10, 12, 15, 16, and/or 18, may be performed in an order different than the particular order described or illustrated. In other embodiments, other steps may be provided, or some steps may be omitted from the described methods.
The systems, devices, and methods described herein may be implemented by digital circuitry, using one or more computers (using well-known processors, memory units, storage devices, computer software, and other components), as is well-known. Generally, a computer includes a processor for executing instructions and one or more memories for storing instructions and data. A computer may also include, or be coupled to, one or more mass storage devices (such as, for example, one or more of a magnetic disk, an internal hard and removable magnetic disk, a magneto-optical disk, an optical disk, and so forth)
The systems, devices, and methods described herein may be implemented by a computer operating in a client-server relationship. Typically, in such systems, client computers are located remotely from server computers and interact via a network. The client-server relationship may be defined and controlled by computer programs running on the respective client computers and server computers.
The systems, devices, and methods described herein may be used in a network-based cloud computing system. In such network-based cloud computing systems, a server or other processor connected to a network communicates with one or more client computers via the network. For example, a client computer may communicate with a server via a web browser application program that resides and operates on the client computer. Client computers may store data on servers and access the data via a network. A client computer may send a request for data to a server via a network or request an online service. The server may execute the requested service and provide the data to the client computer. The server may also send data for causing the client computer to perform specific functions, e.g., perform calculations, display specified data on a screen, etc.
The systems, apparatus, and methods described herein may be implemented by a computer program product for execution by a programmable processor, the computer program product may be tangibly embodied in an information carrier (e.g., a non-volatile machine-readable storage device). The method steps described herein (including one or more of fig. 10, 12, 15, 16 and/or 18) may be implemented by one or more computer programs executable by such a processor. A computer program is a set of computer program instructions that can be used, directly or indirectly, in a computer to perform a certain action or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
FIG. 19 depicts a high-level block diagram of an exemplary computer that may be used to implement the systems, apparatus, and methods described herein. Computer 1900 includes a processor 1901 and a memory 1903, the processor 1901 operatively coupled to a data storage device 1902. The processor 1901 controls the overall operation of the computer 1900 by executing computer program instructions that define such operations. The computer program instructions may be stored in the data storage device 1902, or other computer readable medium, and may be loaded into the memory 1903 when execution of the computer program instructions is required. Thus, the method steps in fig. 10, 12, 15, 16 and/or 18 may be defined by computer program instructions stored in memory 1903 and/or data storage device 1902 and controlled by processor 1903 for executing the computer program instructions. For example, the computer program instructions may be implemented as computer executable code programmed by one skilled in the art to perform the algorithms defined by the method steps in fig. 10, 12, 15, 16 and/or 18. Thus, by executing the computer program instructions, the processor 1901 executes the algorithm defined by the method steps in fig. 10, 12, 15, 16 and/or 18. Computer 1900 also includes one or more network interfaces 1904 to communicate with other devices via a network. Computer 1900 also includes one or more input/output devices 1905 (e.g., a display, a keyboard, a mouse, speakers, buttons, etc.) that enable a user to interact with computer 1900.
The processor 1901 may include both general and special purpose microprocessors, and may be the only processor or one of multiple processors 1901 of the computer 1900. For example, the processor 1901 may include one or more Central Processing Units (CPUs). The processor 1901, data storage 1902, and/or storage 1903 may include, be supplemented by, or may be incorporated in the following: one or more Application Specific Integrated Circuits (ASICs) and/or one or more Field Programmable Gate Arrays (FPGAs).
Data storage device 1902 and storage device 1903 both include tangible, non-volatile computer-readable storage media. Data storage 1902 and storage 1903 may each include high-speed random access memory devices (such as dynamic random access memory Devices (DRAMs), static random access memory devices (SRAMs), double data rate synchronous dynamic random access memory devices (DDR RAMs), or other random access solid state memory devices) and may include non-volatile memory devices such as one or more of: magnetic disk storage devices (such as internal hard disks and removable magnetic disks), magneto-optical disk storage devices, flash memory device, semiconductor memory devices (such as erasable programmable read-only memory devices (EPROM), electrically erasable programmable read-only memory devices (EEPROM), compact disk read-only memory devices (CD-ROM), digital versatile disk read-only memory devices (DVD-ROM) disks), or other non-volatile solid state memory devices.
The input/output devices 1905 can include peripheral devices (such as printers, scanners, display screens, etc.). For example, input/output devices 1905 can include a display device (such as a Cathode Ray Tube (CRT) or Liquid Crystal Display (LCD) monitor), a keyboard for displaying information to the user, and a pointing device (such as a mouse or a trackball) by which the user can provide input to computer 1900.
Those skilled in the art will recognize that embodiments of an actual computer or computer system may have other configurations and may also have other components, and that FIG. 19 is a high-level representation of some of the components of such a computer for exemplary purposes.
According to another embodiment, the interceptor device may be inserted into a fibre channel network in a path between a first fibre channel switch and a second fibre channel switch. Such a configuration may advantageously enable the interceptor device to access and communicate with an increased number of host entities and/or an increased number of storage systems. Such a configuration may also establish better fibre channel topology/protocol/connection support between the interceptor device ports and the storage ports.
In the exemplary embodiment shown in fig. 20A, fibre channel storage area network 2015 includes servers 135-a and 135-B, FC switch 225, second FC switch 2045, storage system 2080, and interceptor device 2090.
Interceptor device 2090 is inserted between FC switch 225 and second FC switch 2045. Specifically, port 2046 is connected via link 2081 to port P-5 of FC switch 225, and port 2047 of interceptor device 2090 is connected via link 2082 to port 2091 of second FC switch 2045. Port P-6 of FC switch 225 is connected via link 2083 to port T2 of storage system 2080.
Alternatively, the interceptor device 2090 may be installed in a network having a configuration as shown in fig. 20B. Port 2046 of interceptor device 2090 is connected to port P-5 of FC switch 225 via link 2081. Port 2047 of interceptor device 2090 is connected via link 2082 to port 2091 of FC switch 2045. Port 2092 of FC switch 2045 is coupled to port T-1 of storage system 2080. Port 2093 of FC switch 2045 is coupled to port T-2 of storage system 2080.
After connecting with FC switch 225 and second FC switch 2045, interceptor device 2090 obtains information related to data stored in fibre channel-based SAN 2015. To obtain information related to data stored in the storage system 2080, the interceptor device 2090 communicates with components of the network 2015. In a manner similar to that described with reference to fig. 10, in the first registration process, a target world wide web port name of a target port of the storage system is identified, and an upstream port of the interceptor device is registered with FC switch 225 based on the target world wide web port name. In a second registration process, registration information is received for an originator port of a server associated with a target port. An originator web port name for an originator port of the server (or host entity) is determined based on the registration information. One or more storage volumes in the storage system associated with the initiator port are identified based on the initiator world wide web port name. For example, interceptor device 2090 may send a command, such as a REPORT LUN command, to storage system 2080 specifying the corresponding initiator WWPN and requesting information for the volume that is accessible by that initiator WWPN. In response, the storage system 2080 sends information to the interceptor device 2090 indicating the volumes that the initiator WWPN has access to.
Use of virtual fibre channel switch/Virtual Storage Area Network (VSAN)
According to another embodiment, the interceptor device may be inserted into a fibre channel-based storage area network in a path between a first virtual fibre channel switch and a second virtual fibre channel switch. A virtual fibre channel switch may alternatively be referred to as a virtual storage area network ("virtual SAN" or "VSAN"), or a virtual fabric, and/or other names used by a particular vendor. Virtual fibre channel switches, VSANs and virtual fabrics are well known. For convenience, the virtual fibre channel switch is generally referred to herein as a "virtual switch".
Inserting an interceptor device in a path between a first virtual fibre channel switch and a second virtual fibre channel switch may advantageously allow insertion of the interceptor device without unplugging any connection in the network and without disconnecting any port of the storage or server (host) from any port of the switch.
FIG. 21A illustrates a fibre channel based storage area network according to one embodiment. The fibre channel based storage area network 2115 includes servers 135-A and 135-B, storage systems 2180, and fibre channel switches 2126. The fibre channel switch 2126 includes: ports P-1, P-2, P-3, P-4, P-5, P-6, P-7, and P-8. Ports I-1 and I-2 of server 135-A are connected to ports P-1 and P-2, respectively, of FC switch 2126. Ports I-3 and I-4 of server 135-B are connected to ports P-3 and P-4, respectively, of switch 2126. Port P-5 of the FC switch is connected to port T-1 of storage system 2180. Port P-6 of the FC switch is connected to port T-2 of storage system 2180. In this exemplary embodiment, ports P-7 and P-8 of FC switch 2126 are not yet used.
Virtual SAN capabilities provide the functionality to define one or more virtual switches within fibre channel switch 2126.
According to an exemplary embodiment, two virtual switches are defined within the fibre channel switch 2126 and an interceptor device is inserted between the virtual switches. Figures 21B and 21C illustrate a fibre channel-based SAN including a plurality of virtual switches, in accordance with various embodiments. In the embodiment shown in FIG. 21B, the fibre channel switch 2126 is configured to include a first virtual fibre channel switch 2127 and a second virtual fibre channel switch 2128, the first virtual fibre channel switch 2127 including ports P-1, P-2, P-3, P-4, P-6, and P-7, and the second virtual fibre channel switch 2128 including ports P-5 and P-8.
The interceptor device 2190 is interposed between the first virtual switch 2127 and the second virtual switch 2128. Advantageously, the interceptor device 2190 may be installed in the network (i.e., interposed between the first virtual switch 2127 and the second virtual switch 2128) without disconnecting any existing connections in the network. Specifically, port 2146 of interceptor device 2190 is connected to port P-7 of first virtual switch 2127 via link 2181. The port 2147 of the interceptor device 2190 is connected to the port P-8 of the second virtual switch 2128 via the link 2181. Port P-6 of the first virtual switch 2127 remains connected to port T-2 of the storage system 2180. Port P-5 of the second virtual switch 2128 remains connected to port T-1 of the storage system 2180.
In another embodiment shown in FIG. 21C, a first virtual fibre channel switch 2127 includes ports P-1, P-2, P-3, P-4, and P-7, and a second virtual fibre channel switch 2128 includes ports P-5, P-6, and P-8. As shown in FIG. 21B, an interceptor device 2190 is connected to ports P-7 and P-8 of the FC switch 2126.
In other embodiments, more than two virtual switches may be defined within a fibre channel switch.
To obtain information about data stored in the storage system 2180, the interceptor device 2190 now communicates with components of the fibre channel-based SAN 2115. In a manner similar to that described with reference to fig. 10, in the first registration process, the interceptor device 2190 identifies a target web port name of a target port of the storage system and registers an upstream port of the interceptor device 2190 with the first virtual switch 2127 based on the target web port name. In this exemplary embodiment, the interceptor means 2190 issues a request for registration (such as a fibre channel login) to a target port of the storage system and obtains the WWPN of the target port.
In a second registration process, registration information regarding an originator port of the server associated with the target port is received by the interceptor means 2190. The interceptor device 2190 determines an originator web port name of the originator port of the server (or host entity) based on the registration information. The interceptor device 2190 identifies one or more storage volumes in the storage system associated with the originator port based on the originator web port name of the originator port. For example, interceptor device 2190 may send a command, such as a REPORT LUN command, to storage system 2180 specifying the corresponding initiator WWPN and requesting information identifying the volumes that the initiator WWPN can access. In response, the storage system 2180 satellite interceptor means 2190 sends information representing volumes that the originator WWPN has access to.
The interceptor device 2190 may provide one or more data management services for data stored in the storage system 2180 (such as a selected storage volume). In a manner similar to the method described above, the interceptor device 2190 may: copying data, performing snapshots of data images, backing up data, copying data, performing data migration from one storage device or system to another storage device or system, and the like.
FIG. 22 is a flow diagram of a method for providing data management services, according to one embodiment. At step 2210, a first port of the device is connected with a first switch port of a first virtual switch defined within the switch device, and a second port of the device is connected with a second switch port of a second virtual switch defined within the switch device. In the example of fig. 21, the interceptor device 2190 is inserted in the path between the first virtual switch 2127 and the second virtual switch 2128, as described above. At step 2220, the interceptor means 2190 may issue a request for registration, such as a fibre channel login, to the target port of the storage system 2180 by the appliance identifying the target world wide web name of the target port of the storage system connected to the second virtual switch, for example, and in response, obtain the WWPN of the target port.
At step 2230, in a first registration process, a first port of the device registers with the first virtual switch based on the target world wide web port name. During the registration process, the interceptor device 2190 registers an upstream port of the interceptor device 2190 with the first virtual switch 2127 based on the target web port name. At step 2240, in a second registration process, registration information is received regarding an originator port of the server associated with the target port. At step 2250, an originator web port name for the originator port of the server is determined based on the registration information. For example, in the exemplary embodiment of FIG. 21, registration information may be received from the originator port of server 135-A, the registration information including information identifying the world Wide Web port name of the originator port. At step 2260, a storage volume in the storage system associated with the initiator port is identified based on the initiator world wide web port name of the initiator port. The interceptor device 2190 obtains information from the storage system 2180 by impersonating the originator port of the server 135-a in the manner described above.
In another embodiment, a virtual SAN may be formed for the interceptor device port and the server port. Such a configuration is advantageous when only the selected server is to be inserted.
Although the embodiments described herein are described in the context of a channel-based fiber optic SAN, the methods and systems described herein are not limited to use within a channel-based fiber optic SAN. In other embodiments, the methods and systems described herein may be used in conjunction with other types of communication systems and networks. For example, the methods and systems described herein may be used in a communication system by using the iSCSI protocol.
Some or all of the methods, systems, and apparatus discussed herein include, but are not limited to: clients 160, servers 135, fibre channel switches 225, 1745, 2045, and 2126, storage systems 180, 2080, and 2180, interceptor devices 890, 1390, 1790, 2090, and 2190, and components thereof, including but not limited to: service manager 325, memory 375, storage manager 410, memory 475, storage 468, switch manager 525, memory 575, interceptor process 810, memory 815, data management service 848, interceptor process 1310, memory 1315, data management service 1348, and all ports within any of these devices or components that may be implemented by a computer, such as computer 1900 shown in fig. 19.
The foregoing detailed description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the detailed description, but rather from the claims as interpreted according to the breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are merely illustrative of the principles of this invention and that various modifications may be made by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art may implement various other combinations of features without departing from the scope and spirit of the invention.

Claims (18)

1. A method for providing data management services, the method comprising:
connecting a first port of a device to a first switch port of a first virtual switch defined within a switch device and connecting a second port of the device to a second switch port of a second virtual switch defined within the switch device;
identifying, by the appliance, a target world wide web port name of a target port of a storage system connected to the second virtual switch;
registering the first port of the device with the first virtual switch based on the target world wide web port name in a first registration process;
receiving, in a second registration process, registration information regarding an originator port of a server associated with the target port;
determining an originator web port name of the originator port of the server based on the registration information; and
identifying a storage volume in the storage system associated with the initiator port based on the initiator world wide web port name of the initiator port.
2. The method of claim 1, further comprising:
assigning the target world wide web port name to the first port of the device.
3. The method of claim 1, wherein the second registration procedure comprises registering with the device via the first port through the originator port.
4. The method of claim 3, further comprising:
in the second registration process, a switch port identifier associated with an originator port of a server that is partitioned to the target port is received.
5. The method of claim 1, further comprising:
sending a REPORT LUN command including the initiator world Wide Web port name to the storage system; and
receiving information from the storage system identifying the storage volume accessible by the initiator world Wide Web Port name in response to the REPORT LUN command.
6. The method of claim 5, further comprising:
sending a SCSI query to the storage system relating to the storage volume accessible by the initiator world Wide Web Port name;
receiving information representing a globally unique identifier of the storage volume in response to the SCSI query; and
determining whether two storage volumes associated with the initiator Web Port name are the same based on the globally unique identifier.
7. The method of claim 1, wherein the switch device is a fibre channel switch.
8. The method of claim 1, further comprising:
performing a data management service for the identified storage volume, wherein the data management service comprises one of: copying data, performing a snapshot of a data image, backing up data, copying data, and performing a data migration.
9. The method of claim 1, wherein the server is connected with the first virtual switch.
10. The method of claim 1, further comprising:
defining the first virtual switch and the second virtual switch within the switch device.
11. An apparatus in a path between a first virtual switch defined within a switch device and a second virtual switch defined within the switch device, the apparatus comprising:
a first port;
a memory for storing computer program instructions; and
a processor configured to execute the computer program instructions, which when executed on the processor cause the processor to perform operations comprising:
identifying a target world wide web port name of a target port of a storage system connected to the second virtual switch;
registering the first port of the device with the first virtual switch based on the target world wide web port name in a first registration process;
receiving, in a second registration process, registration information regarding an originator port of a server associated with the target port;
determining an originator web port name of the originator port of the server based on the registration information; and
identifying a storage volume in the storage system associated with the initiator port based on the initiator world wide web port name of the initiator port.
12. The device of claim 11, the operations further comprising:
assigning the target world wide web port name to the first port of the device.
13. The device of claim 11, wherein the second registration procedure comprises registering with the device via the first port through the originator port.
14. The device of claim 13, the operations further comprising:
in the second registration process, a switch port identifier associated with an originator port of a server that is partitioned to the target port is received.
15. The device of claim 11, the operations further comprising:
sending a REPORT LUN command including the initiator world Wide Web port name to the storage system; and
receiving information from the storage system identifying the storage volume accessible by the initiator world Wide Web Port name in response to the REPORT LUN command.
16. The device of claim 15, the operations further comprising:
sending a SCSI query to the storage system relating to the storage volume accessible by the initiator world Wide Web Port name;
receiving information representing a globally unique identifier of the storage volume in response to the SCSI query; and
determining whether two storage volumes associated with the initiator Web Port name are the same based on the globally unique identifier.
17. The apparatus of claim 11, wherein the first and second virtual switches are defined within a fibre channel switch.
18. The device of claim 11, the operations further comprising:
performing a data management service for the identified storage volume, wherein the data management service comprises one of: copying data, performing a snapshot of a data image, backing up data, copying data, and performing a data migration.
CN201610246450.8A 2015-08-03 2016-04-20 System and method for managing storage equipment through virtual fiber switch Active CN105827549B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/816,477 US9495113B2 (en) 2011-12-23 2015-08-03 Systems, devices, apparatus, and methods for identifying stored data by a device located in a path between virtual Fibre channel switches and performing a data management service
US14/816,477 2015-08-03

Publications (2)

Publication Number Publication Date
CN105827549A CN105827549A (en) 2016-08-03
CN105827549B true CN105827549B (en) 2020-05-05

Family

ID=56526311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610246450.8A Active CN105827549B (en) 2015-08-03 2016-04-20 System and method for managing storage equipment through virtual fiber switch

Country Status (1)

Country Link
CN (1) CN105827549B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070715B (en) * 2017-04-13 2020-07-07 国家计算机网络与信息安全管理中心 Method for generating virtual link
CN109254724B (en) * 2018-07-17 2022-03-08 中国航空无线电电子研究所 Embedded virtual airborne storage system capable of configuring multiple partitions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179053A (en) * 2011-12-23 2013-06-26 林伟东 Systems and methods for providing data management service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179053A (en) * 2011-12-23 2013-06-26 林伟东 Systems and methods for providing data management service

Also Published As

Publication number Publication date
CN105827549A (en) 2016-08-03

Similar Documents

Publication Publication Date Title
EP2795454B1 (en) Systems and methods for providing data management services
US10152281B2 (en) Systems, devices, apparatus, and methods for transparently inserting a virtual storage layer in a fibre channel based storage area network while maintaining continuous input/output operations
US11249857B2 (en) Methods for managing clusters of a storage system using a cloud resident orchestrator and devices thereof
US9229647B2 (en) Systems, methods, and apparatus for spoofing a port of a host entity to identify data that is stored in a storage system and may be accessed by the port of the host entity
US7529816B2 (en) System for providing multi-path input/output in a clustered data storage network
US7912814B2 (en) Data migration in storage system
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US8793448B2 (en) Transparent data migration within a computing environment
EP2178268A2 (en) Method and apparatus for resource provisioning
US20040139240A1 (en) Storage system with LUN virtualization
US9740649B2 (en) Systems, devices, apparatus, and methods for identifying stored data by a device located in a path between virtual Fibre channel switches and performing a data management service
US8972656B1 (en) Managing accesses to active-active mapped logical volumes
US10025502B2 (en) Fibre channel initiator alias/port suggestion and autocomplete
US8972657B1 (en) Managing active—active mapped logical volumes
US7689786B1 (en) Techniques for overriding device reservations
US9696917B1 (en) Method and apparatus for efficiently updating disk geometry with multipathing software
US20140195698A1 (en) Non-disruptive configuration of a virtualization cotroller in a data storage system
US20070192553A1 (en) Backup apparatus and backup method
US9304875B2 (en) Dynamically tracking logical units moving between input/output ports of a storage area network target
CN105827549B (en) System and method for managing storage equipment through virtual fiber switch
KR20180066010A (en) A system for providing data movement services using volumes in a san network environment
US11640241B2 (en) Remote storage object techniques

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant