The claimed subject matter relates generally to electronic communication and, more specifically, to techniques for the setup and configuration of communication channels.
Provided are techniques for the setup and configuration of communication channels in a manner that simplifies client login to a storage area network (SAN) and reduces administrator workload.
Fibre channel nport identifier virtualization (NPIV) is a technology that enables a fibre channel adaptor to virtualize a physical port. At one time, each port of a fibre channel adapter was assigned a single worldwide unique identifier (WWPN). Now, a storage virtualizer is able to assign multiple WWPNs to a single physical port. In one popular implementation of the NPIV standard, a WWNP intended to be applied to an nport is supplied by a client's virtual adapter when a client partition corresponding to the client executes a fibre channel login to access the client's storage.
Provided are techniques for providing a user interface on a storage virtualizer, the user interface configured to enable a worldwide unique identifier (WWPN) to be selectively activated on a storage area network (SAN), and setting up a zoning for the WWPN on the SAN prior to installation of a virtual I/O client and without a requirement that the user manually enter the WWPN.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the claimed subject matter will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the claimed subject matter can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures, in which:
As will be appreciated by one skilled 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, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would 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 for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program 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, wireline, optical fiber cable, 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 combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. 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, including a local area network (LAN) or a wide area network (WAN), 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 below 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 actions 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.
In current NPIV technology, one problem is that the WWPN assigned to an nport is not visible on a storage area network (SAN) until a client executes a process login using the logical unit number (LUN) assigned to the client. This limitation creates a “chicken and egg” problem for a SAN administrator in that the administrator cannot easily zone and configure the client's SAN access until a client's WWPN is visible on the SAN and they cannot install and boot the client and until the SAN is configured to provide the storage for the client. Currently, the administrator must manually configure the SAN by querying a virtualization manager that controls the assignment of WWPNs to determine the WWPNs that will be assigned to the client and, then type each sixteen (16) digit hexadecimal number corresponding to yet to be assigned WWPNs into a SAN management tool. Obviously, this process is error prone, time consuming and tedious for the SAN administrator.
A secondary problem is related to the configuration for a SAN for live partition mobility (LPM). A current implementation of LPM with respect to NPIV employs two (2) WWPNs for each virtual adapter of a virtualization manager. A second WWPN enables a client to briefly be logged in to both a source and destination storage virtualizers. However, many users do not initially plan to use LPM and, as a result, do not bother to set up the secondary WWPN when the SAN is configured. Then, if the user wishes to use LPM, the user must manually enter the secondary WWPN into the SAN management tool. The disclosed technology addresses both the first and secondary problems.
CRSM 112 is illustrated storing a hypervisor (HYPR) 114 and a number of logical partitions, or LPARs, i.e. a LPAR_1121, a LPAR_2122 and a LPAR_3123. As should be familiar to one with skill in the relevant arts, each of LPAR 121-123 may implement a different operating system (OS) such that multiple OSs (not shown) are able to run concurrently on computing system 102. Also stored on CRSM 112 are a virtual input/output server (VIOS) 116 and a storage adapter 118, which handle data storage tasks associated with LPARs 121-123. The implementation and coordination of LPARs 121-123, the respective OSs, HYPR 114, VIOS 116 and storage adapter 118 are explained in more detail below in conjunction with
Computing system 102 is connected to the Internet 130, which is also connected to a hardware management console (HMC) 132. Although in this example, computing system 102 and HMC 132 are communicatively coupled via the internet 130, they could also be coupled through any number of communication mediums such as, but not limited to, a local area network (LAN) and a wide area network (WAN). Also provided is a channel 134 between HMC 132 and VIOS 116. HMC 132 enables an administrator to configure and control the various elements of computing system architecture 100, including, but not limited to, computing system 102, HYPR 114, VIOS 116 and a storage area network (SAN) 140. Although not illustrated, HMC 132 would typically include a CRSM and one or more processors to store and execute, respectively, logic associated with HMC 132 as well as a monitor, keyboard and mouse. Although illustrated as a standalone component, HMC 132 may also be incorporated into another component, including but not limited to computing system 102, in which case HMC 132 may utilize components such as CRSM, processors, monitor, keyboards and mouse of the other component. SAN 140 is illustrated as containing three storage devices, or logical units, i.e. a LUN_1141, a LUN_2142 and a LUN_3143. It should be noted there are many possible computing system configurations, of which computing system architecture 100 is only one simple example
Any particular WWPN may be “logged in” to SAN 140. SAN 140 is correspondingly configured to provide access to the CVFCA 151-153 or SVFCA 161-163 that corresponds to the particular WWPN. In a common scenario, VIOS 116 (or HMC 172) supplies a WWPN to a CVFCA, and the corresponding LPAR, which in this example will be CVFCA_1151 and LPAR_1121. LPAR1121 then used the supplied WWPN to login to SAN 140 by-passing the WWPN to SAN 140 via CVFCA_1151, SVFCA_1161, SA 166, FCDS 168 and port 170. The WWPN is then visible on SAN 140 so that SAN 140 may be configured. Typically, each LPAR 121-132 is only configured to use SAN 140 via one of the corresponding CVFCA 151-153 or SVFCA 161-163 at any particular time.
The disclosed technology provides a second path for a WWPN to be logged into SAN 140, a path that does not involve the client such as LPARs 121-123. In one embodiment, a WWPN is supplied by a virtualization manager 164 to VIOS 116 and then from a storage virtualizer 165 of VIOS 116 directly to FCDS 168 via a channel 172. In this manner, SAN 140 may be configured with a particular WWPN prior to a client such as LPARs 121-123 attempting to login via a CVFCA 151-153 or SVFCA 161-163. The disclosed technology provides the ability for a secondary virtual fibre channel adapter (VFCA), such as CVFCA 151-153 of SVFCA 161-163, to be configured on SAN 140 in a manner that is quicker and more efficient than the prior art. In addition, the disclosed technology may also be employed to login a primary VCFA more quickly and efficiently.
Process 200 starts in a “Begin Setup Storage” block 202 and proceeds immediately to a “Receive Setup Request” block 204. In one embodiment, process 200 may be initiated by an administrator operating through a user interface associated with, for example but not limited to VIOS 116 or HMC 172 (
During processing associated with a “Login Successful?” block 210, a determination is made as to whether or not the login request initiated during processing associated with block 208 was successful. Typically, a determination of success would be based upon an acknowledgement transmitted from SAN 140 to VIOS 116 and a determination of failure would be based upon either an explicit failure message or because of the expiration of a timer (not shown). If a determination of success is made, the administrator who initiated the request is notified, during processing associated with a “Report Success” block 212, that the WWPN has been established on SAN 140. In addition, LPAR_1121 is notified of the successful establishment of the WWPN on SAN 140.
During processing associated with a “Logout of Port” block 214, VIOS 116 logs out of the port established during processing associated with blocks 206 and 208 so that the client for whom the port was established, which in this example is LPAR_1121 (
If, during processing associated with block 210, a determination of a login failure is made, the administrator is notified, during processing associated with a “Report Error” block 216, of that fact so that appropriate actions may be taken. Finally, once processing associated with either blocks 212 or 216 is complete, control proceeds to an “End Setup Storage” block 219 during which process 200.
Process 250 starts in a “Begin Connect Client” block 252 and proceeds immediately to a “Contact SAN” block 254. During processing associated with block 254, LPAR_1121 contacts SAN 140 (
During processing associated with a “Log WWPN on SAN” block 258, LPAR_1121 logs into SAN 140 using the supplied WWPN. During processing associated with a “Login Successful?” block 260, a determination is made as to whether or not the login executed during processing associated with block 258 was successful. If so, control proceeds to a “Report Success” block 262. During processing associated with block 262, an administrator who initiated the storage allocation request is notified of the completion. If, during processing associated with block 260, a determination is made that the request did not succeed, the administrator is notified during processing associated with a “Report Error” block 264. Finally, during processing associated with an “End Connect Client” block 269, process 250 is complete.
In this manner, a particular WWPN login request made by LPAR_1121 may be “pre-configured.” In other words, by enabling VIOS 116 to login a WWPN that is to be used by LPAR_1121, partitions on SAN 140 corresponding to the particular WWPN may be configured prior to an actual login request by LPAR_1121. In addition, if LPAR_1121 attempts to login to the particular WWPN on SAN 140 while VIOS 116 is attempting to login the same WWPN, an interrupt (see 218,
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
The flowchart and block diagrams in the 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.