1. Field of the Invention
The present invention relates in general to computing systems and, more particularly, to methods and systems for verifying server-storage device connectivity in a storage area network environment.
2. Description of the Related Art
It is well known that a server and one or more storage devices need to be connected before the server and the storage device(s) are able to communicate with one another. The most common solution for ensuring that a server and a storage device are connected is for a user to verify the connectivity between the server and the storage device. This solution is usually accomplished manually. That is, the user examines the actual storage area network (SAN) configuration to ensure that the server is indeed connected to the storage device. While manually ensuring that the server and the storage device is an effective way of ensuring physical connectivity, manual inspection of the SAN configuration is time consuming and does not ensure that the server is capable of storing data on the storage device. For example, many SAN configurations include a zoning configuration that prohibits some devices and/or ports from accessing other devices and/or ports in the SAN configuration. That is, a server may be physically connected to a storage device; however, the zoning configuration of the particular SAN configuration may prohibit the server from actually accessing the storage device. As such, a manual inspection of the SAN configuration may verify that the server and the storage device are connected, but cannot verify that the server is actually capable of storing data on the storage device. Therefore, improvements to current SAN configurations are needed.
Various embodiments provide methods for verifying server-storage device connectivity in a storage area network (SAN) environment comprising a server, a processor, and a plurality of storage devices. One method comprises determining, by the processor, which of the plurality of storage devices the server is physically connected and determining, by the processor, which of the plurality of storage devices a zoning configuration in the SAN environment enables the server to access. The method further comprises returning to a user an indication of each storage device in the plurality of storage devices that the server is both physically connected and includes zoning access.
Various other embodiments provide computer storage mediums comprising a computer program product method for verifying server-storage device connectivity in a SAN environment comprising a server, a processor, and a plurality of storage devices. One computer storage medium comprises computer program code for determining, by the processor, which of the plurality of storage devices the server is physically connected and computer program code for determining, by the processor, which of the plurality of storage devices a zoning configuration in the SAN environment enables the server to access. The computer storage medium further comprises computer program code for returning to a user an indication of each storage device in the plurality of storage devices that the server is both physically connected and includes zoning access.
Other embodiments provide systems for verifying server-storage device connectivity in a SAN environment. One system comprises a server, a plurality of storage devices, a switch fabric coupling the server to the plurality of storage devices, and a processor coupled to the server, the plurality of storage devices, and each device in the switch fabric. In one embodiment, the processor is configured to determine which of the plurality of storage devices the server is physically connected, determine which of the plurality of storage devices a zoning configuration in the SAN environment enables the server to access, and return to a user an indication of each storage device in the plurality of storage devices that the server is both physically connected and includes zoning access.
In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
Various embodiments provide systems, methods, and computer storage mediums for verifying server-storage device connectivity in a storage area network (SAN) environment. Once connectivity is verified, a user is provided with one or more options for transferring data in a server to one or more available storage devices.
SAN environment 110 may comprise any SAN configuration known in the art or developed in the future. That is, SAN environment 110 may include any device and/or devices and connection(s) that enable one or more servers 120 to communicate with, store data to, and retrieve data from one or more storage devices 130.
Server(s) 120 may be any type of system and/or device known in the art or developed in the future capable of operating as a computing server. Examples of servers 120 include, but are not limited to, a mail server 1210, an application server 1220, a database server 1230, and the like computing servers. In one embodiment, system 100 comprises more than one server 120. In another embodiment, system 100 comprises at least two different types of servers 120 (e.g., at least one mail server and at least one application server, at least one application server and at least one database server, at least one mail server and at least one database server, etc.). As illustrated in
Storage device(s) 130 may be any system and/or device known in the art or developed in the future capable of storing data and communicating with server(s) 120 such that server(s) 120 are able to store and retrieve data in storage device(s) 130. Examples of storage devices 130 include, but are not limited to, storage tape 1310, an optical storage device 1320, one or more disk storage devices (e.g., a redundant array of independent disks (RAID) configuration 1330, a just a bunch of disks (JBOD) configuration 1340, etc), and the like storage devices. In one embodiment, system 100 comprises more than one storage device 130. In another embodiment, system 100 comprises at least two different types of storage devices 130 (e.g., at least one storage tape 1310 and at least one optical storage device 1320, at least one tape 1310 and at least one RAID configuration 1320, at least one tape 1310 and at least one JBOD configuration 1340, at least one optical storage device 1320 and at least one RAID configuration 1330, at least one optical storage device 1320 and at least one JBOD configuration 1340, at least one RAID configuration 1330 and at least one JBOD configuration 1340, etc.). System 100, in yet another embodiment, comprises at least three different types of storage devices 130 (e.g., storage tape 1310, optical storage device 1320, and RAID configuration 1330; storage tape 1310, optical storage device 1320, and JBOD configuration 1340; optical storage device 1320, RAID configuration 1330, and JBOD configuration 1340; etc.). As illustrated in
Switch fabric 140 may include any number of systems and/or devices (e.g., one or more switches 1410) known in the art or developed in the future capable of forming a switch fabric. In one embodiment, switch 1410 is a Fibre Channel switch and at least a portion of switch fabric 140 comprises a Fibre Channel switch fabric. In another embodiment, switch fabric 140 includes a plurality of Fibre Channel switches 1410 and at least a portion of switch fabric 140 comprises a Fibre Channel switch fabric, as illustrated in
As one skilled in the art will appreciate, servers 120, storage devices 130, and switches 1410 each comprise one or more ports that enable servers 120, storage devices 130, and switches 1410 to be coupled to one another. Furthermore, each port is capable is being identified by a World Wide Port Name (WWPN). As discussed below, processor 150 uses the WWPN for each port to at least partially determine and/or verify the connectivity of server(s) 120 and storage device(s) 130.
Processor 150, in one embodiment, is configured to obtain the WWPN for each port in one or more of servers 120, the WWPM for each port in each storage device 130, and the WWPN for each port in each switch 1410. Processor 150 is also configured to query each switch 1410 to identify the WWPN for each port of an external device (server 120, storage device 130, another switch 1410, etc.) that is coupled to a port in the particular switch 1410. Furthermore, processor 150 is configured to link the WWPN of each port coupled to the port of a particular switch 1410 to create one or more paths from one or more of servers 120 through one or more of switches 1410 to one or more of storage devices 130. By creating the path(s) from server(s) 120 to storage device(s), processor 150 is capable of determining/verifying which server 120 is physically coupled to which storage device 130. While a particular server 120 may be physically coupled to a particular storage device 130, the zoning configuration of system 100 may preclude the particular server 120 from storing data to and retrieving data from the particular storage device 130.
Memory 160 is configured to store a table 1610 (e.g., a look-up table) detailing the zoning configuration of system 100. Table 1610 includes a listing of each WWPN of each port in servers 120, storage devices 130 and switches 1410. Table 1610 also lists any restrictions that any port may include. That is, a particular port in a storage device 130 may be restricted from receiving data from a port of a particular switch 1410, which is coupled to a port of a particular server. For example, with reference to
In one embodiment, processor 150 is configured to determine, via table 1610, which servers 120 have zoning access to which storage devices 130. That is, in one embodiment, processor is configured to, after determining/verifying the physical paths coupling servers 120 to storage devices 130, query table 1610 to determine if any zoning restrictions provided in table 1610 preclude a particular server 120 from accessing one or more storage devices. In other words, after determining/verifying that, for example, application server 1220 is physically coupled to one or more of storage tape 1310, optical storage device 1320, RAID configuration 1330, and/or JBOD configuration 1340, processor 150 is configured to query table 1610 to determine if the zoning configuration precludes application server 1220 from accessing whichever of storage tape 1310, optical storage device 1320, RAID configuration 1330, and/or JBOD configuration 1340 is physically coupled to application server 1220.
Processor 150 is further configured to provide to a user (via UI 170) which storage device(s) 130 are both physically coupled to and has zoning access to for a particular server 120 after processor 150 has made such determination/verification. In other words, processor 150 provides the user with available storage options amongst storage devices 130 for a particular server 120 from which the user desires to store data.
UI 170 may be any user interface known in the art or developed in the future. That is, UI 170 may be any system and/or device (e.g., a display, a mouse, a key board, etc) that enables a user to interact with system 100.
While the embodiments illustrated in
Method 300 further comprises determining/verifying, by the processor that the server is physically coupled to one or more storage devices (block 320). That is, the processor identifies which storage devices are physically coupled to the server. Method 300 also comprises determining/verifying, by the processor, that the server also has zoning access to one or more of the storage devices that is/are physically coupled to the server (block 330). That is, the processor identifies which of the storage devices that are physically coupled to the server that the server also has zoning access to. In one embodiment, the processor determines/verifies which of the storage devices that are physically coupled to the server that the server also has zoning access to utilizing a zoning table (e.g., table 1610 in
After the processor has determined/verified which storage device(s) the server is both physically coupled to and has zoning access to, method 300 comprises supplying an output, from the processor, including a listing of such storage device(s) to the user via, for example, a user interface (e.g., UI 170 in
Method 300 further comprises storing the data in the selected one or more storage devices that are both physically coupled to the server and to which the server has zoning access to (block 360). Method 300 then concludes.
While at least one exemplary embodiment has been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the invention, it being understood that various changes may be made in the function and arrangement of elements described in an exemplary embodiment without departing from the scope of the invention as set forth in the appended claims and their legal equivalents.
As will be appreciated by one of ordinary skill in the art, aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer-readable medium(s) may be utilized. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, crystal, polymer, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Examples (a non-exhaustive list) of computer-readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store a program or data for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber cable, radio frequency (RF), etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any static language, such as the “C” programming language or similar programming language. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, or communication system, including, but not limited to, a local area network (LAN) or a wide area network (WAN), Converged Network, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the above figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
While one or more embodiments of the present invention have been illustrated in detail, one of ordinary skill in the art will appreciate that modifications and adaptations to those embodiments may be made without departing from the scope of the present invention as set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6665714 | Blumenau et al. | Dec 2003 | B1 |
6742034 | Schubert et al. | May 2004 | B1 |
6772204 | Hansen | Aug 2004 | B1 |
7039870 | Takaoka et al. | May 2006 | B2 |
7130909 | Yamashita et al. | Oct 2006 | B2 |
7165152 | Blumenau et al. | Jan 2007 | B2 |
7203770 | Terai et al. | Apr 2007 | B2 |
7281044 | Kagami et al. | Oct 2007 | B2 |
7343410 | Mercier et al. | Mar 2008 | B2 |
7376898 | Yehuda et al. | May 2008 | B1 |
7403987 | Marinelli et al. | Jul 2008 | B1 |
7469274 | Ryu et al. | Dec 2008 | B1 |
7609654 | Lubeck et al. | Oct 2009 | B2 |
7657613 | Hanson et al. | Feb 2010 | B1 |
7664839 | Karr et al. | Feb 2010 | B1 |
7805566 | Abouelwafa et al. | Sep 2010 | B2 |
7860015 | Panelli et al. | Dec 2010 | B1 |
7870094 | Tsuge et al. | Jan 2011 | B2 |
7945640 | VanTine | May 2011 | B1 |
8051113 | Shekar et al. | Nov 2011 | B1 |
8255420 | Abushanab et al. | Aug 2012 | B2 |
20020129230 | Albright et al. | Sep 2002 | A1 |
20020188697 | O'Connor | Dec 2002 | A1 |
20020196744 | O'Connor | Dec 2002 | A1 |
20030061491 | Jaskiewicz et al. | Mar 2003 | A1 |
20030130821 | Anslow et al. | Jul 2003 | A1 |
20030172239 | Swank | Sep 2003 | A1 |
20030189929 | Matsuzaki et al. | Oct 2003 | A1 |
20030195953 | Suzuki et al. | Oct 2003 | A1 |
20030221001 | Moran et al. | Nov 2003 | A1 |
20040024573 | Allen et al. | Feb 2004 | A1 |
20040054782 | Donze et al. | Mar 2004 | A1 |
20040064543 | Ashutosh et al. | Apr 2004 | A1 |
20040064545 | Miyake | Apr 2004 | A1 |
20040155899 | Conrad | Aug 2004 | A1 |
20040215764 | Allen et al. | Oct 2004 | A1 |
20040215831 | Shoji et al. | Oct 2004 | A1 |
20050055428 | Terai et al. | Mar 2005 | A1 |
20050114611 | Durham et al. | May 2005 | A1 |
20050188127 | Anderson et al. | Aug 2005 | A1 |
20050210098 | Nakamichi et al. | Sep 2005 | A1 |
20060085166 | Ochi et al. | Apr 2006 | A1 |
20060122980 | He et al. | Jun 2006 | A1 |
20060123068 | Cannon et al. | Jun 2006 | A1 |
20060182041 | Graves | Aug 2006 | A1 |
20060271656 | Yagawa | Nov 2006 | A1 |
20070106861 | Miyazaki et al. | May 2007 | A1 |
20070220320 | Sen et al. | Sep 2007 | A1 |
20080065748 | Brisse | Mar 2008 | A1 |
20080140812 | Chang | Jun 2008 | A1 |
20080162681 | Yellapragada et al. | Jul 2008 | A1 |
20080281993 | Nicholson et al. | Nov 2008 | A1 |
20080301332 | Butler et al. | Dec 2008 | A1 |
20090083423 | Basham et al. | Mar 2009 | A1 |
20090157998 | Batterywala | Jun 2009 | A1 |
20090222733 | Basham et al. | Sep 2009 | A1 |
20090240910 | Inomata et al. | Sep 2009 | A1 |
20100274883 | Yamamoto et al. | Oct 2010 | A1 |
20100318737 | Thomas et al. | Dec 2010 | A1 |
Entry |
---|
Colleen Rhodes, “Security Considerations for Storage Area Networks,” 2005, 15 pages. |
Number | Date | Country | |
---|---|---|---|
20120089725 A1 | Apr 2012 | US |