`US007398273B2
`
`c12) United States Patent
`Dobberpuhl et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 7,398,273 B2
`*Jul. 8, 2008
`
`(54) PUSHING ATTRIBUTE INFORMATION TO
`STORAGE DEVICES FOR NETWORK
`TOPOLOGY ACCESS
`
`(58) Field of Classification Search ................... 707 /10,
`707/104.1; 709/250, 213,227
`See application file for complete search history.
`
`(75)
`
`Inventors: Walter T. Dobberpuhl, Milford, MA
`(US); Andreas L. Bauer, Acton, MA
`(US); George M. Ericson, Shrewsbury,
`MA (US); Charles H. Hopkins, Upton,
`MA (US); Jennifer Lyn Milliken
`Nicoletti, Framingham, MA (US);
`Walter A. O'Brien, III, Westborough,
`MA (US); Timothy D. Sykes, Berlin,
`MA (US); Stephen James Todd,
`Shrewsbury, MA (US)
`
`(73) Assignee: EMC Corporation, Hopkinton, MA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 512 days.
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 10/827,716
`
`(22)
`
`Filed:
`
`Apr. 20, 2004
`
`(65)
`
`Prior Publication Data
`
`US 2004/0199513 Al
`
`Oct. 7, 2004
`
`Related U.S. Application Data
`
`(63)
`
`Continuation of application No. 09/568,386, filed on
`May 10, 2000, now Pat. No. 6,754,718.
`
`(51)
`
`(52)
`
`Int. Cl.
`G06F 17130
`(2006.01)
`G06F 151167
`(2006.01)
`G06F 12100
`(2006.01)
`G06F 7100
`(2006.01)
`G06F 15116
`(2006.01)
`U.S. Cl. ...................... 707/10; 707/104.1; 709/250;
`709/213; 709/227
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,6ll,056 A
`5,909,430 A *
`6,148,414 A
`6,209,023 Bl
`6,212,606 Bl*
`6,289,333 Bl
`6,363,427 Bl
`6,389,432 Bl
`
`3/1997 Hotchkin .................... 395/281
`6/1999 Reaves ....................... 370/254
`11/2000 Brown eta!. ................... 714/9
`3/2001 Dimitroff et al. ............ 709/2 ll
`4/2001 Dimitroff .................... 711/147
`9/2001 Jawahar et al. . ................ 707/2
`3/2002 Teibel et al.
`................ 709/227
`5/2002 Pothapragada et al. ...... 707/205
`
`(Continued)
`
`Primary Examiner-Kuen S. Lu
`(74) Attorney, Agent, or Firm-Bromberg & Sunstein LLP
`
`(57)
`
`ABSTRACT
`
`A method apparatus and computer program product for pro(cid:173)
`viding access to host attribute information in a storage area
`network is disclosed. The storage area network is composed
`of a plurality of hosts coupled to at least one initiator. Each
`initiator is coupled to one or more targets and each initiator
`has an associated identifier. In each host, the identifier of the
`initiator is related to other host attribute information. The
`identifier may be, for example, a world wide name. The host
`attribute information including the identifier is sent from each
`of the plurality of hosts to the one or more targets and stored
`in memory of an associated storage array. Either a host or
`requestor remote from the storage array may request the
`collected host attribute information from the storage array. A
`topology of the storage area network may then be formed
`from the host attribute information of each host.
`
`32 Claims, 3 Drawing Sheets
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 1 of 10
`
`
`
`US 7,398,273 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6,421,711
`6,421,723
`6,430,645
`6,470,397
`6,496,914
`
`Bl*
`Bl*
`Bl*
`Bl
`Bl
`
`7/2002 Blumenau et al. ........... 709/213
`7/2002 Tawil ......................... 709/224
`8/2002 Basham ...................... 710/305
`10/2002 Shah et al. .................. 709/250
`12/2002 Vook et al. .................. 711/170
`
`6,564,228 Bl
`6,671,776 Bl*
`6,754,718 Bl
`6,792,412 Bl*
`6,922,729 Bl *
`2002/0091710 Al *
`* cited by examiner
`
`5/2003 O'Connor ................... 707/200
`12/2003 DeKoning .................. 711/114
`6/2004 Dobberpuhl et al.
`........ 709/250
`9/2004 Sullivan et al.
`............... 706/25
`7/2005 Cheung ...................... 709/229
`7 /2002 Dunham et al. ............. 707 /200
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 2 of 10
`
`
`
`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 1 of 3
`
`US 7,398,273 B2
`
`GUI
`
`(cid:143) ~ c
`
`100
`
`Network
`
`Push Architecture
`
`Push
`Application
`150
`
`Server
`110
`
`Data Bus 145
`
`Server
`110
`
`Push
`Application
`150
`
`Push
`Application
`150
`
`Server
`110
`
`IT]
`
`Storage Arrays Processor
`115
`
`FIG.1
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 3 of 10
`
`
`
`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 2 of 3
`
`US 7,398,273 B2
`
`Start
`
`Finding all of the unique parts from the
`host to the target by scanning the data
`bus for targets
`
`200
`
`Querying the Operating System of the
`host for host attributes
`
`210
`
`Pushing the host attribute information
`down each unique path to the
`corresponding target
`
`220
`
`End
`
`FIG. 2
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 4 of 10
`
`
`
`U.S. Patent
`
`Jul. 8, 2008
`
`Sheet 3 of 3
`
`US 7,398,273 B2
`
`130
`
`0
`
`GUI
`
`[!]~
`
`Management
`Client
`
`370
`
`;
`
`::;:=:=====
`'
`1(cid:141) 1
`
`l(cid:141)
`
`I
`
`I I
`
`Server 2
`110
`
`Server 3
`110
`
`100
`
`Push Command
`Server 1
`A
`Other Info
`
`350
`
`120~
`
`Attach Command
`G,H
`bb,dd,ff
`Other Info
`
`390
`
`FIG. 3
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 5 of 10
`
`
`
`US 7,398,273 B2
`
`1
`PUSHING ATTRIBUTE INFORMATION TO
`STORAGE DEVICES FOR NETWORK
`TOPOLOGY ACCESS
`
`PRIORITY
`
`This application is a continuation of U.S. application Ser.
`No. 09/568,386 filed May 10, 2000 entitled "Pushing
`Attribute Information to Storage Devices for Network Topol(cid:173)
`ogy Access" that has issued as U.S. Pat. No. 6,754,718 which
`is incorporated herein, by reference, in its entirety.
`
`TECHNICAL FIELD
`
`This invention generally relates to storage area networks, 15
`and more particularly to providing access to host attribute
`information.
`
`BACKGROUND ART
`
`2
`tifier of each initiator coupled to the host, such as a worldwide
`name. An example of a host is a server. An example of an
`initiator is a host bus adapter and an example of a target is a
`storage array.
`In each host, the host polls for host attribute information. In
`one embodiment, the step of polling requires accessing all
`SCSI devices attached to the host and querying the operating
`system resident on the host. The host then relates the identi(cid:173)
`fier, such as a world wide name of each coupled initiator to the
`10 other obtained host attribute information. The host attribute
`information is sent from each of the plurality of hosts to the
`one or more targets. Upon receipt of the host attribute infor(cid:173)
`mation, each target stores the host attribute information in an
`addressable memory location. After the host attribute infor(cid:173)
`mation is stored for all hosts, any host may access any of the
`targets and request the host attribute information resident on
`the target. In one embodiment the host attribute information
`on each target is identical. Based upon the host attribute
`information retrieved from the addressable memory location,
`20 the retrieving host creates a topology of the storage area
`network.
`In another embodiment, a user remotely accesses a host
`which is part of the storage area network. The user may access
`either the topology created by the host or initiate the retrieval
`from a database on the target all of the host attribute informa(cid:173)
`tion in order to create a topology for issuing further com(cid:173)
`mands any of the components of the storage area network. In
`one embodiment, the host attribute information are retrieved
`from one of a plurality of storage arrays. In such an embodi(cid:173)
`ment, each storage array is composed of disks grouped into
`LUNs and the database includes an association ofLUN infor(cid:173)
`mation and host attribute information. The association
`between the LUN information and the host attribute informa-
`tion is then used in the creation of the topology. The topology
`35 may then be displayed to the remotely connected user.
`
`As businesses grow, so too do their requirements for the
`storage of data. Storage area networks (SAN s) are a scalable
`solution to this problem, allowing additional storage devices
`to be added as the need arises. SAN s contain storage devices
`and servers forming a network configuration. SAN s provide a 25
`mechanism through which all of a business' storage devices
`may be made available to all of the servers in the business'
`computer network. The servers in a SAN are coupled to the
`computer network of the business and act as a pathway
`between the end user and the stored data. Because stored data 30
`does not reside directly on any of the SAN' s servers or the
`servers of the computer network external from the SAN,
`server power is utilized for business applications, and net(cid:173)
`work capacity is released to the end user. Since there is no
`central processing bottleneck and many storage devices may
`be connected to the SAN, the SAN is scalable.
`One of the major challenges for the designers of SANs
`involves their configuration and management. Due to the ever
`growing number of components in a scalable SAN, the
`changing state of those components, and the multitude of 40
`physical and logical relationships between components, cre(cid:173)
`ating a topology of the SAN which a system manager can use
`possesses a difficult task. Prior art SANs do not have the
`ability to automatically create a current topology providing
`recognizable identifiers for the connected components. As 45
`such, system managers are forced to create associations
`between the world wide name of particular host bus adapters
`(HBAs) and the servers that are connected to them.
`At best, in a SAN in which the components are connected
`through a fibre channel, the communication protocol of the 50
`fibre channel provides a means at the storage array for linking
`a world wide name (WWN) of a host bus adapter (HBA) to an
`identifier of the storage array, but the protocol does not pro(cid:173)
`vide any information about the server connected to the host
`bus adapter and therefore does not define a usable topology 55
`for the SAN.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The foregoing features of the invention will be more
`readily understood by reference to the following detailed
`description, taken with reference to the accompanying draw(cid:173)
`ings, in which:
`FIG. 1 is a representation of a storage area network in
`which host attribute information is provided to the storage
`arrays;
`FIG. 2 is a flow chart showing the pushing of host attribute
`information; and
`FIG. 3 is a detailed example of a storage area network.
`
`DETAILED DESCRIPTION OF SPECIFIC
`EMBODIMENTS
`
`For the purposes of the description herein and the claims
`that follow it, unless the context otherwise requires, the term
`"Storage Area Network" (SAN) is a network of shared stor(cid:173)
`age devices in which each storage device includes a processor
`for communicating through a communications protocol with
`other devices connected to the SAN, such as a server, or
`devices external to the SAN. A storage device is a machine
`60 that contains a disk or disks for storing data. The term storage
`device and storage array shall be used interchangeably herein.
`In the preferred embodiment the communications protocol is
`SCSI (small computer system interface). SCSI provides for
`the control of the input and output of connected devices over
`65 a data bus. In the following detailed description and appended
`claims the term "data bus" shall refer to any connection
`between an initiator and a target which transports communi-
`
`SUMMARY OF THE INVENTION
`
`A computer program product and method for providing
`access to host attributes in a storage area network is disclosed.
`A storage area network is composed of a plurality of hosts
`coupled to at least one initiator wherein the initiator is in turn
`coupled to one or more targets. Host attribute information
`may include the user selected name for the host, the Internet
`Protocol address for the host, the operating system of the host,
`the type of each initiator connected to the host, and an iden-
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 6 of 10
`
`
`
`US 7,398,273 B2
`
`3
`cation connnands. In the preferred embodiment, the storage
`area network employs fiber optic cable as a data bus for
`connections between initiators and targets. In other embodi(cid:173)
`ments the data bus may be a 16-bit standard SCSI cable. In the
`following detailed description and the appended claims, the
`term "host attributes" shall mean any indicia of the server,
`such as, the name of the server, the Internet Protocol (IP)
`address of the server, or the operating system of the server.
`Host attributes also include indicia identifying components
`linked to the server, such as, host bus adapters and include an 10
`identifier of such host bus adapters such as the world wide
`name (WWN) and the type of each adapter. In the following
`detailed description and appended claims, the terms server
`and host shall be used interchangeably to denote a computer
`or processor with coupled memory which is part of a storage 15
`area network unless indicated otherwise. In the following
`detailed description and the appended claims the term "topol(cid:173)
`ogy" shall mean a mapping of all devices within a network,
`such as, a storage area network, and the interconnections
`between the devices. The term "memory location" as used in 20
`the written description and the appended claims shall mean
`one or more addressable areas for the storage of data.
`FIG. 1 is a representation of a storage area network 100 in
`which host attribute information is provided to storage
`devices for the formation of a SAN topology. The storage area 25
`network includes a plurality of servers 110 and at least one
`coupled storage array 120 containing a processor 115. Each
`storage array 120 and server 110 is capable of connnunicating
`with other storage arrays and servers through a connnunica(cid:173)
`tion protocol on a data bus 145. Connnunication is also pos- 30
`sible with devices outside of the SAN. For example, a com(cid:173)
`puter 130 connected to the network either locally or remotely
`may access the servers of the SAN through an address asso(cid:173)
`ciated with the server such as an Internet protocol address.
`In a SAN environment, one embodiment of this method 35
`allows a server coupled to a storage array to determine all of
`the servers coupled to that storage array by querying the
`storage array only. The server can determine the attributes of
`all coupled servers as well as the attributes of all the HBAs
`within the coupled servers and the mappings of the HBA' s to 40
`the storage pools(user data) by retrieving this data from the
`storage array. This is more efficient than connecting to each
`server individually and allows a storage area network topol(cid:173)
`ogy of coupled servers to be constructed by the storage array
`or any coupled server and enables a graphic user interface 45
`(GUI) to represent the topology that does not require user
`knowledge of HBA and Storage Processor World Wide
`Names.
`Through an application, known as an push application 150,
`residing on a coupled server, computer 130 may access data 50
`from a storage array and manage and configure the SAN. In
`one embodiment, a connected computer resides in a local area
`network (LAN) or wide area network (WAN) which is con(cid:173)
`nected to the SAN. In another embodiment, a computer
`remotely connects to a server within the SAN by accessing 55
`the server's IP address through an Internet connection.
`In an embodiment of the invention, the push application
`150 residing on each of the servers 110 in the SAN 100 polls
`all connections to its respective server to obtain host attributes
`and causes host attribute information to be "pushed" down 60
`from the server to the storage arrays. In the preferred embodi(cid:173)
`ment, the host attribute information includes at least the
`server name and server IP address, connected host bus adapter
`(HBA) port numbers and HBA type (OS Platform) and asso(cid:173)
`ciated identifier, such as a WWN and the operating system 65
`device name of the HBA path. This information is stored by
`the push application in a memory location associated with the
`
`4
`storage array. Preferably the host attribute information is
`stored as a collection of structured data and may be stored
`within a database structure. The host attribute information for
`each host is sent and stored at each attached storage array.
`5 After each of the servers 110 within the SAN 100 have sent
`their host attribute information to the storage array 120, the
`collected host attribute information allows a processor resi(cid:173)
`dent in the storage array or a push application 150 connected
`within the SAN or a remote GUI 130 connected to a push
`application 150 connected to a SAN to form a network topol(cid:173)
`ogy.
`FIG. 2 is a flow chart of the steps taken by a server in the
`course of pushing host attribute information to a target. The
`push application resident on the server begins by finding all of
`the unique paths from the server to the storage array(s ), this is
`done by scanning the data bus for the storage array(s) (step
`200). In the preferred embodiment, the data bus is a SCSI bus
`known as a fibre charmel. A unique path is comprised of a
`coupling between an initiator and a target. An example of an
`initiator is a HBA and an example of a target is a storage
`processor of a storage array. For instance, if there are two
`HBAs and two storage processors connected to the host, then
`there are a total of 4 unique paths: (HBAl, SPl), (HBAl,
`SP2), (HBA2, SPl), (HBA2, SP2).
`The push application then determines the host attributes by
`querying the operating system of the server (step 210). The
`push application obtains the host name, host IP address, and
`the HBA type. In the preferred embodiment the HBA type is
`determined solely by the operating system used on the server.
`Each operating system including but not limited to the
`Microsoft Corporation's Windows NT or Sun Micro system's
`Solaris use a particular and unique HBA type. The push
`application also obtains the operating system device name for
`the HBA path. An example of this server attribute for Win(cid:173)
`dows NT would be\ \.\SCSI3:0:2:0. The push application will
`then determine further host attributes for the HBA from the
`operating system. The HBA attributes include the HBA Ven(cid:173)
`dor Name, the HBA Model and the HBA device driver
`description.
`The push application will first query the target to determine
`if the target is running a compliant topology program for
`receiving host attribute information. This prevents other SCSI
`devices which are either not capable of being upgraded to the
`topology program or have not been upgraded from receiving
`unintelligible data. If the target is capable of receiving host
`attribute information, the push application then pushes the
`host attribute information down each unique path to the cor(cid:173)
`responding target (step 220). The Storage Processor(s) will
`receive the pushed information and store it in a database,
`along with the WWN of the HBA (which is determined by the
`underlying connnunication protocol). In the preferred
`embodiment the fibre charmel protocol determines the WWN
`of the HBA. It should be understood that for each storage
`array there is a separate database. It should also be understood
`that the WWN after it is associated with the other host
`attribute information will also be considered host attribute
`information. As previously stated, the host attribute informa(cid:173)
`tion is preferably stored in database, but may also be stored in
`any addressable memory.
`FIG. 3 is a detailed example of storage area network shown
`in FIG. 1 in which host attribute information is pushed to a
`storage array. It should be understood that although this
`example shows only one storage array, multiple storage
`arrays may be part of the SAN. After each server 110 (server
`1-4) of the SAN is booted, a push application 150 begins to
`automatically execute. A vendor unique SCSI connnand
`known as a push connnand 350 is created which sends the
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 7 of 10
`
`
`
`US 7,398,273 B2
`
`5
`host attributes to the storage array 120 as described above.
`The push command can also be initiated by a system manager
`through an external application referred hereinafter as the
`"management client" 370, on a computer 130 which is
`coupled to the SAN 100. Through a GUI 370, the system
`manager can execute a push in order to update the database to
`obtain a topology of the SAN that contains all of the current
`connections. The push command 350 creates a data structure
`which contains the name of the server which in the example is
`server 1, the identifier of the host bus adapter or world wide 10
`name of the host bus adapter which is A and the push appli(cid:173)
`cation sends the push command to a push database 361 on the
`storage array. The data structure of the push command may
`contain other host attributes. The push application then-re(cid:173)
`quests the database 361 from the storage array 120 and creates 15
`a displayable map or list of host HBAs' and storage arrays.
`The push database 361 includes the host attributes of all of the
`servers connected to the SAN which in this example would be
`the host attributes for servers 1, 2, 3, and 4. The data contained
`in the push database 361 provides a description of the topol- 20
`ogy of the SAN 100 and the push application 150 creates a
`displayable map from the database 361. When a system man(cid:173)
`ager accesses any of the servers in the SAN 100, the push
`application can send a current topology of the SAN 100 to a
`graphical user interface(GUI) 370 of the system manager's 25
`computer. The topology is such that a system manager need
`not associate a World Wide Name of a HBA with a server,
`rather the system manager is presented with a topology show(cid:173)
`ing the name of the server along with other host attributes and
`which shows the host bus adapters connected to the server and 30
`all of the possible data paths. This allows a much more intui(cid:173)
`tive interface for SAN configuration to be presented to the
`system manager. The system manager may then configure the
`SAN by grouping disks in the disk array together. In FIG. 3
`there are six groupings of disks aa,bb,cc,dd,ee,ff into LUNs. 35
`Once the LUN s are established, the LUN s become an element
`of the topology which the system manager may manage and
`configure. It should be understood by one of ordinary skill in
`the art that the program which creates the topology or list of
`servers, host bus adapter connections and connected storage 40
`arrays in the storage area network may be resident at the
`server, at the storage array, or at the remote location of the
`system manager's computer. Database 361 may simply be
`addressable memory associated with the storage array in an
`alternative embodiment.
`The push application 150 of each server (server 1-4) peri(cid:173)
`odically polls the database or addressable memory 361 for
`changes and also periodically sends the server's attributes to
`the storage processor of every storage array(in FIG. 3 only
`one storage array 120 is shown) which has a data path to the 50
`server. By periodically updating the database 361, the current
`state of the SAN 100 is maintained. In an alternative embodi(cid:173)
`ment, the system manager or other user of the invention may
`request the topology directly from the storage processor asso(cid:173)
`ciated with the storage array 120. In such an embodiment, the
`storage processor of the storage array 120 includes a program
`which accesses the database 361 which is stored in a memory
`location in the storage array 120 and the program creates a
`displayable topology based upon the associations of the data
`in the database 361.
`FIG. 3 also shows a second command being sent to the
`storage array. The second command is an attach command
`390whichis usedinconfigurationofthe SAN 100. The attach
`command 390 is also a vendor unique SCSI command which
`identifies the available data paths which are accessible and
`visible to a user connecting to the SAN 100. Once the push
`application 150 has created the topology of the SAN 100 and
`
`6
`the system manager has accessed the topology, the system
`manager can issue an attach command 390. The attach com(cid:173)
`mand 390 determines the visible paths that a user of the SAN
`can see. The attach command 390 creates a data structure
`5 which includes the name or worldwide name of the host bus
`adapter attached to a given server along with the disks or
`groups of disks in the storage array 120 selected by the system
`manager to be visible to a user who is connected to that server.
`The attach command pushes the information into an attach
`database 391 in the storage array 120. When a user through a
`computer attempts to access information in the SAN 100, the
`user connects either remotely or locally to a server in the SAN
`through standard communication protocols known to those of
`ordinary skill in the art. Upon connecting, the server through
`an attached initiator issues a retrieve vendor unique SCSI
`command which contains indicia of source to the storage
`processor. The retrieve vendor unique SCSI command
`requests data associated with the connected server from the
`attach database. The storage processor in response to the
`retrieve vendor unique SCSI command collects and transmits
`to the server the requested data. The server then uses the data
`to create a topology of the SAN which is visible to the user
`and then the topology is transmitted to the computer associ(cid:173)
`ated with the user. For example, in FIG. 3 the attach command
`390 indicates that a user who logs into server four can access
`either HBA G or HBA H and can virtually see logical unit
`numbers (LUNs) bb, dd, ff, althoughLUNs aa, bb, cc, dd, ee,
`and ff physically exist. As a result, a retrieve vendor unique
`SCSI command is issued and a topology containing HBA G
`and HBA H and L UN s b b dd and ff is transmitted to the user's
`associated computer. By using the attach command a system
`administrator may limit access to certain data locations
`within the storage array thus providing security.
`In an alternative embodiment, the attach command con(cid:173)
`tains indicia of user identity. Thus, a unique topology for the
`specific user may be created in the following manner. When
`the user connects to a server in a SAN data concerning the
`identity of the user may be transmitted to the server. The
`server then incorporates the identity of the user into the
`retrieve vendor unique SCSI command and data is retrieved
`from the attach database which provides a unique topology
`for the specific user. For instance, a particular business
`employee may be granted access to all of the LUNs and the
`employee will be provided with a topology reflecting this
`45 unlimited access while an unknown party accessing the SAN
`through the Internet may be granted access to a limited num(cid:173)
`ber of the LUNs and like the topology for the business
`employee the topology provided for the unknown party will
`reflect the access privileges provided by the system adminis(cid:173)
`trator.
`For more information about the methodology for control(cid:173)
`ling access to data locations see U.S. patent application Ser.
`No. 09/014,064 entitled "Apparatus and Method of Accessing
`Target Devices Across a Bus Utilizing Initiator Identifiers"
`55 assigned to the same assignee as the present application and
`incorporated herein in its entirety.
`In an alternative embodiment, the disclosed method for
`attribute information access may be implemented as a com(cid:173)
`puter program product for use with a computer system as
`60 described above. Such an implementation may include a
`series of computer instructions fixed either on a tangible
`medium, such as a computer readable medium (e.g., a dis(cid:173)
`kette, CD-ROM, ROM, or fixed disk) or transmittable to a
`computer system, via a modem or other interface device, such
`65 as a communications adapter connected to a network over a
`medium. The medium may be either a tangible medium ( e.g.,
`optical or analog communications lines) or a medium imple-
`
`Ex.1020
`CISCO SYSTEMS, INC. / Page 8 of 10
`
`
`
`US 7,398,273 B2
`
`7
`mented with wireless techniques ( e.g., microwave, infrared or
`other transmission techniques). The series of computer
`instructions embodies all or part of the functionality previ(cid:173)
`ously described herein with respect to the system. Those
`skilled in the art should appreciate that such computer 5
`instructions can be written in a number of programming lan(cid:173)
`guages for use with many computer architectures or operating
`systems. Furthermore, such instructions may be stored in any
`memory device, such as semiconductor, magnetic, optical or
`other memory devices, and may be transmitted using any 10
`communications technology, such as optical, infrared, micro(cid:173)
`wave, or other transmission technologies. It is expected that
`such a computer program product may be distributed as a
`removable medium with accompanying printed or electronic
`documentation (e.g., shrink wrapped software), preloaded 15
`with a computer system ( e.g., on system ROM or fixed disk),
`or distributed from a server or electronic bulletin board over
`the network ( e.g., the Internet or World Wide Web). Of course,
`some embodiments of the invention may be implemented as a
`combination of both software ( e.g., a computer program 20
`product) and hardware. Still other embodiments of the inven(cid:173)
`tion are implemented as entirely hardware, or entirely soft(cid:173)
`ware ( e.g., a computer program product).
`Although various exemplary embodiments of the invention
`have been disclosed, it should be apparent to those skilled in 25
`the art that various changes and modifications can be made
`which will achieve some of the advantages of the invention
`without departing from the true scope of the invention. These
`and other obvious modifications are intended to be covered by
`the appended claims.
`We claim:
`1. A method for providing access to topology information
`in a storage area network, for creating a topology of the
`storage area network for a retrieving device coupled to a
`storage array,
`wherein the storage area network is composed of a plurality
`of networking devices including hosts, each host
`coupled to at least one initiator, each initiator coupled to
`one or more targets that provide access to the storage
`array, each initiator having an associated identifier, the 40
`method comprising:
`a. automatically ascertaining, from each host, host attribute
`information by polling each initiator coupled to a corre(cid:173)
`sponding host;
`b. relating identifiers, associated with the coupled initia- 45
`tors, to the host attribute information to form topology
`information, the topology information comprising data
`representing interconnections among the networking
`devices from the plurality of networking devices; and
`c. storing the topology information in a data structure 50
`within the storage array,
`wherein the identifier is a worldwide name, and
`wherein the host attribute information includes a refer-
`ence to operating system type of the host and a refer(cid:173)
`ence to initiator type.
`2. A method according to claim 1, wherein polling includes
`checking any SCSI devices attached to the host.
`3. The method according to claim 2, wherein the SCSI
`devices include host bus adapters.
`4. The method according to claim 1, wherein the data 60
`structure is a database.
`5. The method of claim 1, further comprising:
`requesting topology information from the storage array;
`and
`creating a topology of the storage area network.
`6. The method according to claim 1, wherein the host
`attribute information includes a name for the host.
`
`8
`7. The method according to claim 1, wherein the host
`attribute information includes an Internet protocol address for
`the host.
`8. A method according to claim 1, wherein each host is a
`server in the storage area network.
`9. A method according to claim 4, wherein the target is
`coupled to the storage array wherein the storage array is
`composed of disks grouped into LUNs and the database has
`an association between host attribute information and the
`LUNs.
`10. A method for providing access to topology information
`in a storage area network according to claim 5, wherein a
`server creates the topology.
`11. A method for providing access to topology information
`in a storage area network according to claim 10, wherein the
`topology is created in response to a request from outside of
`the storage area