US7124179B1 - Single management point for a storage system or storage area network - Google Patents

Single management point for a storage system or storage area network Download PDF

Info

Publication number
US7124179B1
US7124179B1 US10/964,090 US96409004A US7124179B1 US 7124179 B1 US7124179 B1 US 7124179B1 US 96409004 A US96409004 A US 96409004A US 7124179 B1 US7124179 B1 US 7124179B1
Authority
US
United States
Prior art keywords
storage
san
user interface
sub
storage system
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.)
Expired - Lifetime, expires
Application number
US10/964,090
Inventor
Andreas L. Bauer
Russell R. Laporte
Richard J. Nordin
Brian G. Campbell
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.)
EMC Corp
Original Assignee
EMC Corp
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
Application filed by EMC Corp filed Critical EMC Corp
Priority to US10/964,090 priority Critical patent/US7124179B1/en
Application granted granted Critical
Publication of US7124179B1 publication Critical patent/US7124179B1/en
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1008Graphical user interface [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Definitions

  • the present invention generally relates to computer networks and, more particularly, relates to managing storage systems including storage area networks (SANs) within such computer networks.
  • SANs storage area networks
  • Certain kinds of networks can employ a client workstation or user interface interacting with or controlling other sections of the network such as storage system sections. Because of today's widespread demand for computer networks, they may frequently be worked to their limits in whatever applications they are employed. In storage area networks (SANs) which encompass storage systems often comprised of multiple manageable components, connected servers (computers) and other network nodes including interconnects such as switches and hubs, it is a large task to manage all such nodes. This task may be handled through application of what is generically termed “management software”.
  • management software what is generically termed “management software”.
  • This software normally runs on the client or user interface (UI) computer while, at the same time, also being deployed and running as agent software on various network nodes such as servers connected between the client computer and the storage systems, or, more recently, as agent software on storage processors (yet other computers) within such storage systems.
  • UI user interface
  • current management software is employed in certain client-server network architectures to manage disk arrays by communicating with its agent software that runs on the array's storage processors and on attached hosts (servers). But, to fully manage such an array, the user has to connect to and communicate with all storage- 23 related nodes including storage processors and any attached hosts. This means that there are a vast number of individual connections and communications between the client (user interface) and various network nodes. This configuration imposes a heavy burden on the client computer in dealing with all of the nodes in its network.
  • FIG. 1 As a simplified example of multiple UI-to-storage-system connections and communications in the prior art, refer to prior art FIG. 1 , where a network is shown comprising user interface (client workstation) 100 and storage system 103 .
  • UI 100 is connected by two bus connections 101 and 102 to two storage processors 104 and 105 respectively.
  • Those processors and disk drives 106 and 107 connected therefrom by network paths 108 and 109 respectively all are contained within storage system 103 .
  • FIG. 2 As another example of multiple UI connection and communication shortcomings of certain prior art configurations, refer to prior art FIG. 2 .
  • the same network as that of FIG. 1 is shown, but, in addition, with a number of servers 213 , 214 , and 215 attached to the storage system via bus 212 (typically a Small Computer System Interface or SCSI bus), in a Storage Area Network (SAN) configuration and not attached in the server capacity or configuration mentioned in the prior paragraph.
  • bus 212 typically a Small Computer System Interface or SCSI bus
  • SAN Storage Area Network
  • Boundary 219 circumscribes all storage-related nodes shown in this Figure, and is therefore a boundary for the SAN which could contain yet additional nodes.
  • An object in computer software terms, is a dedicated area of memory which can be thought of as an impervious “container” holding both data and instructions within itself, both defining itself and its relationships to other objects in the system or network.
  • An object sends and receives messages to and from other objects, responds and reacts to such messages (e.g. commands) but is normally impervious to internal scrutiny.
  • a storage processor which is a kind of computer
  • Embodiments of the present invention relate to system, apparatus, method, and computer program product for managing a storage system or Storage Area Network (SAN) within a computer network through a single point of contact on the storage system or SAN.
  • the present invention thus relates to any such computer network including a user interface (UI) or client workstation where such storage system has a number of storage processors and one or more disk drives.
  • the managing of such storage system involves a number of activities including selectively communicating between the user interface and each one of the storage processors. Further, each one of the storage processors learns and stores information about itself and about all other nodes in the network including all other storage processors.
  • the user interface requests the complete network node information from a particular one of these storage processors (portal processor) and thereby establishes a single management point of contact or point of ingress/egress or port through which to manage the storage network or SAN.
  • the user interface sends commands destined for all nodes in the storage system or SAN to such particular storage processor which responds to certain of those commands destined for itself and which sends all other commands to other nodes in the storage system or SAN to which such other commands were destined.
  • software language used in the computer network is an object oriented language whereby information learned and stored by the storage processors about themselves and the other nodes in the storage system or SAN is object tree information.
  • object tree information In this object oriented environment, all storage processors, servers and any other attached nodes in the storage system or SAN construct their own respective object trees including information about themselves and their directly connected (child) nodes.
  • each storage processor automatically and without user intervention, both determines IP addresses for all other storage processors and then requests their respective constructed object trees.
  • Each storage processor combines its own object tree information with all object trees received from all other storage processors into its combined storage processor object tree view.
  • each storage processor looks up IP addresses for all attached servers (if any) and all attached other nodes (if any) in the storage system or SAN automatically and without user intervention.
  • Each storage processor requests all such attached servers and all other nodes to forward their respective object trees and combines all such received object trees with its combined storage processor object tree view to obtain a combined storage system object tree view or combined SAN object tree view.
  • the user interface selects a particular storage processor to act as the storage system or SAN portal processor.
  • the portal processor forwards the combined storage system object tree view or combined SAN object tree view to the user interface to enable the user interface to manage the storage system or SAN.
  • Another advantage of employing certain software embodiments of the present invention relates directly to Internet usage.
  • Such software can be written so that a user can run it within a web browser. Since there is space for only one value in the web browser field (i.e. http://WWW._____), only one value can be inserted which can be the singular IP address of the portal processor of the present invention. Accordingly, this allows access for purposes of control, management, or other function to an entire SAN by way of a singular Internet address which is very advantageous.
  • FIG. 1 is a prior art block diagram of a computer network showing a user interface and storage processors in a configuration not associated with a SAN;
  • FIG. 2 is a prior art block diagram of a computer network showing a user interface and storage processors along with attached servers in a SAN configuration;
  • FIG. 3 is a block diagram of a computer network organized in accordance with principles of the present invention, showing a user interface and storage processors along with attached servers in a SAN configuration;
  • FIG. 4 is a schematic diagram of a computer network showing a user interface and multiple SAN configurations being managed by such single user interface in accordance with principles of the present invention
  • FIG. 5 is a schematic diagram of object tree information of various types including the type that may be learned, stored, combined and utilized by the user interface in a computer network utilizing principles of the present invention
  • FIG. 6 is a flowchart illustrating a startup algorithm in accordance with principles of the present invention.
  • FIG. 7 is another flowchart illustrating the algorithm associated with commands issued by the user interface in accordance with principles of the present invention.
  • objects are software containers located in memory having special properties. Objects contain both data and instructions/functions and can send and receive messages between and amongst themselves, but they cannot be broken-into (i.e., they encapsulate the data contained in them and allow access only through a well-defined interface). Programmers can create relationships between objects, e.g., objects can inherit characteristics from other objects and/or they can contain such other objects and/or they can contain links to such other objects. Objects are defined by way of its class, and objects are thus instances of that class. For example, one can create an object called “Fluffy” from a class called “Feline”. Multiple objects of this class can be made, each having a different name.
  • Object “trees” are pictorial representations of relationships between objects or nodes and, in the case of a network's nodes being represented by objects, can readily convey such network's entire functional relationship.
  • object trees are used in constructing a preferred embodiment of the present invention described hereinbelow.
  • a user interface is a computer with terminal, mouse and keyboard sometimes referred to as a client, head-end station, head station or client workstation. It can also be thought of as that connective boundary between the human-user and the computer system, such boundary typically being conceived as the client terminal's screen with keyboard and/or mouse interaction.
  • the UI runs various kinds of software including what is termed storage management software or client software.
  • a server, server location, host, agent, or remote agent are all synonymous terms meaning another computer which “serves” its client by functioning closely with its assigned network component or sub system such as a storage system or portion thereof. Thus, the server responds to commands from its client and serves its client in response to those commands.
  • a client can communicate with its server directly in certain configurations.
  • Storage management software which runs on the client has software components, which can run on various network nodes including its storage processors and server(s), and which are called agents or agent software.
  • This software can be object-oriented software such as C++, JAVA, Smalltalk, etc.
  • the storage system includes media for storing binary to information and typically includes disk drives in an array configuration sometimes called RAID (Redundant Array of Independent Disks).
  • the storage system may require its own computer processing power (independent of other computer power in or associated with the network) called storage processor(s) which, among other things, can control disk drives and information flow thereto.
  • These storage processors also can run agents or agent software. Any of these computers or processors are also commonly referred to as hosts.
  • Peripheral cluster is storage and any other peripheral devices under control of their respective server or storage processor.
  • FIG. 3 Syn Configuration
  • FIG. 3 there is shown a block diagram of a computer network organized in accordance with principles of the present invention, and showing a user interface and storage processors (SPs) along with attached servers in a SAN configuration.
  • UI 300 is communicatively connected via bus or link 318 , such as a LAN bus, to SAN 319 and specifically to storage processor 304 in this example.
  • bus or link 318 such as a LAN bus
  • storage processor 304 in this example.
  • SP 304 and SP 305 are inter-connected by bus 312 , and are also operatively coupled to disk drives 306 and 307 respectively, through busses 308 and 309 respectively.
  • these SPs are cross coupled to each other's disk drives in a backup capacity by busses 310 and 311 shown as dashed lines.
  • Disk drive 306 contains disks 0 , 1 , 2 , 3 and disk drive 307 contains disks 4 , 5 , 6 , 7 . All of these components circumscribed by boundary 303 comprise a storage system and they can be either physically close together or located remotely from each other while still representing the same storage system.
  • SP 304 is connected via its local bus 316 to servers 320 , 321 , and 322 .
  • SP 305 is connected via its local bus 317 to servers 313 , 314 , and 315 . All of these components, including the components within storage system boundary 303 and excluding UI 300 , are contained within SAN 319 .
  • SP 304 In operation, utilizing an object-oriented computer language such as C++, SP 304 initially constructs an object tree of itself, showing actual relationships between the various components comprising itself as being relationships of corresponding objects or nodes in such tree (more detailed discussion of object trees, per se, will be undertaken in connection with FIG. 5 hereinbelow). Thereafter, SP 304 automatically and without user intervention requests or otherwise determines the Internet address(es) of all peer processors, which, in this example, is the address of SP 305 . Such address information is forwarded from SP 305 to SP 304 over bus 312 which can be a LAN bus, ethernet bus, SCSI bus, or combination thereof, and all being compatible with the Internet.
  • bus 312 can be a LAN bus, ethernet bus, SCSI bus, or combination thereof, and all being compatible with the Internet.
  • a SCSI bus may be preferred in those instances where a SCSI bus is also used internal to the disk array, allowing for better internal communication. Then, SP 304 requests and receives over bus 312 object tree information from SP 305 which had earlier constructed such object tree information of itself in a manner similar, if not identical, to how SP 304 constructed its own object tree. If a SCSI bus proves to be more work than that imposed by a LAN bus, the latter can be used in this instance. SP 304 combines its own object tree information with that of SP 305 to provide a combined storage processor object tree view.
  • SP 304 and SP 305 request over various interconnecting buses shown, or otherwise determine, IP addresses for all attached servers 313 , 314 , 315 , 320 , 321 and 322 , and for all attached other nodes in the storage system such as disk drives 306 and 307 . Then, by way of those addresses, SP 304 and SP 305 each request from the other all object tree information about the other's attached servers and disk drives; all of that obtained non-processor object tree information is returned to each such requesting storage processor.
  • UI 300 selects SP 304 to be its “portal processor”. This is the particular storage processor in the storage system selected to serve as a port for information flow from and to UI 300 .
  • UI 300 further requests its combined SAN object tree view over bus 318 .
  • SP 304 forwards such view via bus 318 to UI 300 which stores all such object tree information in its local database for purposes of allowing its users to access and view such object tree information as part of user storage system and SAN management activity.
  • FIG. 4 Multiple San Configuration
  • FIG. 4 there is presented a schematic diagram of a computer network showing a user interface and multiple SAN configurations being managed by such single user interface in accordance with principles of the present invention.
  • UI 300 is the same UI as in FIG. 3 .
  • SAN 319 of FIG. 3 is shown in FIG. 4 and is connected to UI 300 by way of bus 318 , as in FIG. 3 .
  • Other SAN configurations are designated 401 , 402 , 403 , 404 , and 405 .
  • Each SAN is connected to UI 300 directly by way of busses 406 , 407 , 408 , 409 and 410 respectively, each such bus being connected to its respective portal processor (not shown) located within its SAN.
  • FIG. 5 Object Trees
  • FIG. 5 is an object tree schematic diagram of information of various types including that which may be learned, stored, and combined in storage processors and utilized by the user interface.
  • object or node labeled SP-A it is shown as having several “child” nodes, namely: LUN 1 , LUN 2 , and LUN 3 as well as a node labeled Disk 0 , 1 , 2 , 3 .
  • a node in addition to being used herein interchangeably with object is also a logical/functional construct enabling one to envision and design interrelationships in a computer system or computer storage system. Under certain circumstances, a node could represent a complete functional entity and in another instance could represent a sub-function within such entity.
  • LUN means “logical unit” which is a logical construct that exists in or on storage systems, which is accessible by a server to store data and which can look like a disk drive to the server.
  • Node SP-A is intended to represent object information describing SP- 304 of FIG. 3 .
  • SP-B is also shown as having several child nodes, namely: LUN 4 , LUN- 5 , and LUN- 6 as well as a node labeled Disk 4 , 5 , 6 , 7 .
  • Node SP-B is intended to represent object information describing SP- 305 of FIG. 3 .
  • each SP is shown connected to three servers and four disks and such a configuration would ordinarily be represented in a more complex object tree by more than only three LUNs per SP; thus, it should be understood that more LUNs are implied in FIG. 5 but only three LUNs per SP are shown for purposes of enhancing clarity of presentation.
  • SP- 304 When SP- 304 functions to build its object tree representing itself and its directly connected nodes it constructs relationships that can be generally represented pictorially as shown as the parent-child relationships for SP-A (although realistically in a much more complex pattern than that shown).
  • SP- 305 When SP- 305 functions to build its object tree representing itself and its directly connected nodes it constructs relationships that can be generally represented pictorially as shown as the parent-child relationships for SP-B, (again, more complex than shown).
  • neither processor has an object tree representation of either the complete configuration of the storage system or the complete SAN. It should also be understood that more than two processors per storage system can be used. If there were three processors, then there would be three object trees constructed, etc. Accordingly, to obtain a complete object tree representation of SAN 319 all constructed object trees must be combined (whether, two, three or whatever number of storage processor trees constructed).
  • root node or object 500 which is now the “parent” of two child nodes SP-A and SP-B, and which contains at least general header-type information about its storage processor children.
  • root node 500 is either all of the information below it in the tree, or header information suggesting all of the information below it in the tree. Accordingly, the root node or object is the best starting point for the inquiry, but, as noted, having only the root alone may not be sufficient. However, not only can you eventually get all of the objects in the storage system or the SAN via the root node, but you also get them in proper association with each other, which is of prime importance.
  • All of these many different objects in this kind of a system include an object that describes a storage system.
  • a storage system has components in it such as LUNs, Disks and storage processors which are each also expressed as an object.
  • OOD object-oriented design
  • this relationship is expressable in an object tree where, as in this example, root object 500 “HAS A” SP object for SPA and “HAS A ” SP object for SP-B.
  • SP-B “HAS A” disk object(s), LUN object(s), etc.
  • interface dashed lines 501 and 502 are used to represent locations within the network where such object tree combining can take place.
  • object tree construction interface line 501 shows root object 500 located on the UI side of that interface meaning that root 500 was constructed and all object trees were combined in the UI. Accordingly, resources of the UI had to be dedicated to that activity.
  • object tree construction interface line 502 root node 500 falls on the storage side of that interface meaning that root node 500 was constructed and all object trees were combined in storage processors, thus alleviating that burden from the UI.
  • UI 300 can request root node 500 from any particular storage processor on which it resides, and thus make such particular processor the portal processor. (Also, UI can select a different portal processor later if the first selected portal processor malfunctions or is otherwise no longer desirable to use.) By returning such root node to the UI, the portal processor allows the UI to have access to header information about the complete object tree representing the complete storage system or SAN. Armed with such header information, the UI can then call for any or all of the complete object tree and store it in its local database for convenient access of its users.
  • FIG. 6 Flowchart of Startup Algorithm
  • FIG. 6 is a flowchart illustrating a startup algorithm in accordance with principles of the present invention. It is discussed in terms of a SAN, but it is understood that the present invention also encompasses a storage system by itself as well as part of a SAN. The algorithm is thus equally applicable to a storage system as well as the SAN of which it is a part.
  • all storage processors, disk drives, servers, and any other attached nodes in the SAN build their own respective object trees for themselves and for their child nodes.
  • each storage processor determines the respective internet protocol (IP) addresses for all other storage processors (its peers) over LAN busses interconnecting them.
  • IP internet protocol
  • each storage processor asks (via the LAN busses and/or IP addresses) each other storage processor in the storage system for its constructed object tree.
  • each storage processor combines its own object tree with all object trees received from all other storage processors into its combined storage processor object tree view.
  • each storage processor holds the same object information as the next processor although the “view” from each processor might be different.
  • each storage processor obtains IP addresses for all attached servers, disk drives and any other attached nodes in the SAN.
  • each storage processor requests that all such attached servers, disk drives and nodes forward their respective object trees, and then combines them with the combined storage processor object tree view to obtain a combined SAN object tree view.
  • the UI selects a particular storage processor to act as the SAN portal processor.
  • the SAN portal processor forwards the combined SAN object tree view to the user interface.
  • FIG. 7 Flowchart —UI Commands
  • FIG. 7 is a flowchart showing the algorithm associated with commands issued by the user interface in accordance with principles of the present invention.
  • the portal storage processor receives a command or request from the UI, for example, in FIG. 3 , SP 304 can receive a command via bus 318 from UI 300 .
  • the UI might want to command a storage processor to “clear cache”. Or, as another example, the UI may want to command a particular server to choose a different communication channel to storage.
  • the algorithmic process moves next to decision block 702 wherein the query is made: is the command or request directed to the portal storage processor?
  • portal storage processor 304 responds “yes” if the command is directed to it, and the algorithmic process moves to block 703 where the portal processor through its agent software executes the request and then sends an acknowledgment back to the user interface, as depicted in block 706 .
  • the algorithmic process moves from block 702 via the “no” output to block 704 where a determination is made regarding which SAN node this command is directed to and then forwards such command to such node.
  • the addressed SAN node receiving such command using its agent software, executes it and provides notice thereof to the portal storage processor.
  • the addressed SAN node is a directly-coupled peer processor (as shown in FIG. 3 ), and indirectly if, for example, it is a server operatively coupled to a peer processor.
  • the algorithmic process moves to block 706 where the portal storage processor, through its agent software, sends a response to the user interface acknowledging that such command or request has been executed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

There is disclosed a system, method, apparatus and computer program product for managing a storage system including a SAN within a computer network. The storage system can be managed in object-oriented computer language. Object trees of each component in the storage system or SAN are obtained and combined on each storage processor in the storage system. The user interface (UI) can therefore select one storage processor within the storage system, and request such combined object tree information for the entire storage system or SAN from only that singular storage processor on which such combined information is stored. This eliminates a severe computational drain on the UI, which otherwise would be required to make these object tree combinations, and further allows a single point of storage management contact between UI and storage system or SAN by way of that singular storage or portal processor. Commands from the UI destined for any node within the storage system or SAN are thus always addressed to that same single point of contact or portal processor allowing for ease of use and other advantages.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
This patent application is a continuation application, filed under 37 C.F.R. § 1.53(b)(1), of prior non-provisional parent application Ser. No. 09/798,571, filed Mar. 3, 2001, entitled “Single-Management Point for a Storage System or Storage Area Network” and which issued as U.S. Pat. No. 6,839,750 on Jan. 4, 2005. This patent application has the same inventorship as that of the parent application, and has its assignee in common with that of the parent application. Benefits under Title 35 United States Code section 120 (35 U.S.C. § 120) are hereby claimed.
FIELD OF THE INVENTION
The present invention generally relates to computer networks and, more particularly, relates to managing storage systems including storage area networks (SANs) within such computer networks.
BACKGROUND OF THE INVENTION
Virtually all human activity in our modern society is now impacted to at least some degree by computer networks, although we are probably not always aware of that impact. One prime example is the Internet network, which has made its influence felt in ways not imagined just a few years ago. The vast amount of information made available thereby, and the ease of communication provided thereby between far-flung communities remains astonishing. Of course, there are smaller networks, some of which are sometimes referred to as LANs (Local Area Networks) which can be used within corporate organizations, certain government organizations or other limited areas which likewise provide techniques for enhancing human productivity.
Certain kinds of networks can employ a client workstation or user interface interacting with or controlling other sections of the network such as storage system sections. Because of today's widespread demand for computer networks, they may frequently be worked to their limits in whatever applications they are employed. In storage area networks (SANs) which encompass storage systems often comprised of multiple manageable components, connected servers (computers) and other network nodes including interconnects such as switches and hubs, it is a large task to manage all such nodes. This task may be handled through application of what is generically termed “management software”. This software normally runs on the client or user interface (UI) computer while, at the same time, also being deployed and running as agent software on various network nodes such as servers connected between the client computer and the storage systems, or, more recently, as agent software on storage processors (yet other computers) within such storage systems.
Accordingly, current management software is employed in certain client-server network architectures to manage disk arrays by communicating with its agent software that runs on the array's storage processors and on attached hosts (servers). But, to fully manage such an array, the user has to connect to and communicate with all storage-23 related nodes including storage processors and any attached hosts. This means that there are a vast number of individual connections and communications between the client (user interface) and various network nodes. This configuration imposes a heavy burden on the client computer in dealing with all of the nodes in its network.
As a simplified example of multiple UI-to-storage-system connections and communications in the prior art, refer to prior art FIG. 1, where a network is shown comprising user interface (client workstation) 100 and storage system 103. UI 100 is connected by two bus connections 101 and 102 to two storage processors 104 and 105 respectively. Those processors and disk drives 106 and 107 connected therefrom by network paths 108 and 109 respectively all are contained within storage system 103. ( Cross coupling 111 and 110 between storage processor 104 and disk drive 107, and storage processor 105 and disk drive 106 respectively, are shown as dashed lines to suggest secondary or back-up connectivity.) As noted above, it would not be atypical for servers to be included in such configuration and located between the UI and each storage processor directly in the path of bus connections 101 and 102, but are not shown herein to enhance clarity of presentation.
As another example of multiple UI connection and communication shortcomings of certain prior art configurations, refer to prior art FIG. 2. The same network as that of FIG. 1 is shown, but, in addition, with a number of servers 213, 214, and 215 attached to the storage system via bus 212 (typically a Small Computer System Interface or SCSI bus), in a Storage Area Network (SAN) configuration and not attached in the server capacity or configuration mentioned in the prior paragraph. It can be seen that this configuration entails three more connections, 216, 217, and 218 between these SAN servers and user interface 100, with their respective communications. Boundary 219 circumscribes all storage-related nodes shown in this Figure, and is therefore a boundary for the SAN which could contain yet additional nodes. It should be understood that only three servers are shown herein for purposes of simplification, but, in reality, there can be up to fifteen or more such servers per SAN, each having its own connection and communication to the UI. And, there can be many SANs, perhaps 100 or more per UI, in a local area network (LAN) as a function of need. For this example, this translates to some 1700 separate and concurrent communication links to the UI!
Obviously, the point of these examples is to clearly show that the number of nodes per network requiring UI direct handling over dedicated lines can multiply significantly. The UI computer resource can be overburdened in managing each node in the SAN via a dedicated line to each such node. Furthermore, even before such managing can take place, this multi-connection arrangement requires the user to initially determine what hosts or servers are attached to the storage system and what their names or Internet addresses are, in order to properly deal with them. Thus, even if managing only a single storage system (even if employing only one array), the human user has to provide the client application software with the Internet addresses of all storage processors and all attached hosts which requires manual adjustments when new hosts are added or removed or when any addresses change. This increases the likelihood of imposing human error on the system. Additionally, since the client application software is required to communicate with multiple storage processors and all attached hosts, management performance is slow and only a limited number of nodes can be managed.
In the foregoing prior art examples, object-oriented programming languages such as “C++” have been employed. An object, in computer software terms, is a dedicated area of memory which can be thought of as an impervious “container” holding both data and instructions within itself, both defining itself and its relationships to other objects in the system or network. An object sends and receives messages to and from other objects, responds and reacts to such messages (e.g. commands) but is normally impervious to internal scrutiny. For example, a storage processor (which is a kind of computer) can be characterized as a “family” or “tree” of objects, where each such object may describe or relate to a specific detail in the processor (e.g. a fan, power switch, cache memory, power supply, disk drive interface, etc.), where these objects in the storage processor can send messages to each other and to other objects outside the processor. In prior art object-oriented computer networks, these objects defining various storage processors, servers and other nodes in the storage system, and relationships between them, were transferred back to the client application software running on the user interface computer where those objects were reassembled in the UI computer into a complete object tree reflecting the entire configuration of the storage system. This imposed a large burden on the user interface computer's processing power, which prevented it from performing other required tasks more efficiently, and from being optimized as a processing resource. In addition, to the overburdening shortcoming, users are sometimes confused by the complexity of having multiple operative connections into a single storage system or SAN.
These various shortcomings and problems of the prior art are overcome through the welcome arrival of applicants' present invention. Not only is the overburdening problem alleviated, but the overall configuration is simpler and more readily understood by users of the system.
SUMMARY OF THE INVENTION
Embodiments of the present invention relate to system, apparatus, method, and computer program product for managing a storage system or Storage Area Network (SAN) within a computer network through a single point of contact on the storage system or SAN. The present invention thus relates to any such computer network including a user interface (UI) or client workstation where such storage system has a number of storage processors and one or more disk drives. The managing of such storage system involves a number of activities including selectively communicating between the user interface and each one of the storage processors. Further, each one of the storage processors learns and stores information about itself and about all other nodes in the network including all other storage processors. It further learns and stores information about its relationship with all of these other nodes and about the inter-relationships between any one of these other nodes and any other of them, to thereby obtain and have available complete network node information on each storage processor. The user interface requests the complete network node information from a particular one of these storage processors (portal processor) and thereby establishes a single management point of contact or point of ingress/egress or port through which to manage the storage network or SAN.
In a further feature of the present invention, the user interface sends commands destined for all nodes in the storage system or SAN to such particular storage processor which responds to certain of those commands destined for itself and which sends all other commands to other nodes in the storage system or SAN to which such other commands were destined.
In another aspect of the present invention, software language used in the computer network is an object oriented language whereby information learned and stored by the storage processors about themselves and the other nodes in the storage system or SAN is object tree information. In this object oriented environment, all storage processors, servers and any other attached nodes in the storage system or SAN construct their own respective object trees including information about themselves and their directly connected (child) nodes. In a significant advance in design, at least as applied in this context, each storage processor automatically and without user intervention, both determines IP addresses for all other storage processors and then requests their respective constructed object trees. Each storage processor combines its own object tree information with all object trees received from all other storage processors into its combined storage processor object tree view. Again, in a significant advance in design, at least as applied in this context, each storage processor looks up IP addresses for all attached servers (if any) and all attached other nodes (if any) in the storage system or SAN automatically and without user intervention. Each storage processor requests all such attached servers and all other nodes to forward their respective object trees and combines all such received object trees with its combined storage processor object tree view to obtain a combined storage system object tree view or combined SAN object tree view. The user interface selects a particular storage processor to act as the storage system or SAN portal processor. The portal processor forwards the combined storage system object tree view or combined SAN object tree view to the user interface to enable the user interface to manage the storage system or SAN.
It is thus a general object of the present invention to provide an improved computer network.
It is another object of the present invention to provide an improved computer network wherein the user interface or client workstation computer is utilized more efficiently.
It is yet another object of the present invention to provide an improved computer network wherein the workload for the user interface or client workstation computer is significantly reduced by shifting responsibility for performing a major portion of its work to a multitude of computer nodes in the managed network.
It is a still further object of the present invention to provide an improved computer network where only one communication link between a user interface and a storage system or SAN is needed to manage the entire storage system or SAN.
It is thus advantageous to employ embodiments of the present invention in networks involving user interface computers and storage systems or SANs. For one example, it is more intuitive and easier for a human user to be able to point at only one SAN processor and retrieve the entire SAN information. Furthermore, it is beneficial to improve scalability of the user interface by freeing it up from the burden of dealing concurrently with a huge number of SAN nodes, and instead putting its processing power to work on other more significant activities. For example, in a huge network comprising many SANs, such freed-up processing power allows the computer to ultimately manage several thousand or even tens-of-thousands of nodes via a single communication link to each SAN in that huge network.
Another advantage of employing certain software embodiments of the present invention relates directly to Internet usage. Such software can be written so that a user can run it within a web browser. Since there is space for only one value in the web browser field (i.e. http://WWW.______), only one value can be inserted which can be the singular IP address of the portal processor of the present invention. Accordingly, this allows access for purposes of control, management, or other function to an entire SAN by way of a singular Internet address which is very advantageous.
Other objects and advantages will be understood after referring to the detailed description of preferred embodiments and to the appended drawings wherein:
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a prior art block diagram of a computer network showing a user interface and storage processors in a configuration not associated with a SAN;
FIG. 2 is a prior art block diagram of a computer network showing a user interface and storage processors along with attached servers in a SAN configuration;
FIG. 3 is a block diagram of a computer network organized in accordance with principles of the present invention, showing a user interface and storage processors along with attached servers in a SAN configuration;
FIG. 4 is a schematic diagram of a computer network showing a user interface and multiple SAN configurations being managed by such single user interface in accordance with principles of the present invention;
FIG. 5 is a schematic diagram of object tree information of various types including the type that may be learned, stored, combined and utilized by the user interface in a computer network utilizing principles of the present invention;
FIG. 6 is a flowchart illustrating a startup algorithm in accordance with principles of the present invention; and,
FIG. 7 is another flowchart illustrating the algorithm associated with commands issued by the user interface in accordance with principles of the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS Introduction—Object-Oriented Programming and Definitions
As mentioned in the background section, objects are software containers located in memory having special properties. Objects contain both data and instructions/functions and can send and receive messages between and amongst themselves, but they cannot be broken-into (i.e., they encapsulate the data contained in them and allow access only through a well-defined interface). Programmers can create relationships between objects, e.g., objects can inherit characteristics from other objects and/or they can contain such other objects and/or they can contain links to such other objects. Objects are defined by way of its class, and objects are thus instances of that class. For example, one can create an object called “Fluffy” from a class called “Feline”. Multiple objects of this class can be made, each having a different name. Object “trees” are pictorial representations of relationships between objects or nodes and, in the case of a network's nodes being represented by objects, can readily convey such network's entire functional relationship. Although the present invention is not necessarily constrained to embodiments generated by object-oriented design, object trees are used in constructing a preferred embodiment of the present invention described hereinbelow.
A user interface (UI) is a computer with terminal, mouse and keyboard sometimes referred to as a client, head-end station, head station or client workstation. It can also be thought of as that connective boundary between the human-user and the computer system, such boundary typically being conceived as the client terminal's screen with keyboard and/or mouse interaction. The UI runs various kinds of software including what is termed storage management software or client software. A server, server location, host, agent, or remote agent are all synonymous terms meaning another computer which “serves” its client by functioning closely with its assigned network component or sub system such as a storage system or portion thereof. Thus, the server responds to commands from its client and serves its client in response to those commands. A client can communicate with its server directly in certain configurations. Storage management software which runs on the client has software components, which can run on various network nodes including its storage processors and server(s), and which are called agents or agent software. This software can be object-oriented software such as C++, JAVA, Smalltalk, etc. The storage system includes media for storing binary to information and typically includes disk drives in an array configuration sometimes called RAID (Redundant Array of Independent Disks). The storage system may require its own computer processing power (independent of other computer power in or associated with the network) called storage processor(s) which, among other things, can control disk drives and information flow thereto. These storage processors also can run agents or agent software. Any of these computers or processors are also commonly referred to as hosts. Peripheral cluster is storage and any other peripheral devices under control of their respective server or storage processor.
FIG. 3—San Configuration
Referring to FIG. 3, there is shown a block diagram of a computer network organized in accordance with principles of the present invention, and showing a user interface and storage processors (SPs) along with attached servers in a SAN configuration. UI 300 is communicatively connected via bus or link 318, such as a LAN bus, to SAN 319 and specifically to storage processor 304 in this example. There are other physical links from UI 300 to other SPs such as to SP 305, (and to any others—not shown) in the SAN but only one such link is used communicatively at any given time regardless of the total number of such physical bus links in existence, and more explanation about this is given hereinbelow. Only one such link is thus shown in this Fig. for purposes of enhancing clarity of explanation. SP 304 and SP 305 are inter-connected by bus 312, and are also operatively coupled to disk drives 306 and 307 respectively, through busses 308 and 309 respectively. In addition these SPs are cross coupled to each other's disk drives in a backup capacity by busses 310 and 311 shown as dashed lines. Disk drive 306 contains disks 0, 1, 2, 3 and disk drive 307 contains disks 4,5,6,7. All of these components circumscribed by boundary 303 comprise a storage system and they can be either physically close together or located remotely from each other while still representing the same storage system.
SP 304 is connected via its local bus 316 to servers 320, 321, and 322. Symmetrically, SP 305 is connected via its local bus 317 to servers 313, 314, and 315. All of these components, including the components within storage system boundary 303 and excluding UI 300, are contained within SAN 319.
In operation, utilizing an object-oriented computer language such as C++, SP 304 initially constructs an object tree of itself, showing actual relationships between the various components comprising itself as being relationships of corresponding objects or nodes in such tree (more detailed discussion of object trees, per se, will be undertaken in connection with FIG. 5 hereinbelow). Thereafter, SP 304 automatically and without user intervention requests or otherwise determines the Internet address(es) of all peer processors, which, in this example, is the address of SP 305. Such address information is forwarded from SP 305 to SP 304 over bus 312 which can be a LAN bus, ethernet bus, SCSI bus, or combination thereof, and all being compatible with the Internet. A SCSI bus may be preferred in those instances where a SCSI bus is also used internal to the disk array, allowing for better internal communication. Then, SP 304 requests and receives over bus 312 object tree information from SP 305 which had earlier constructed such object tree information of itself in a manner similar, if not identical, to how SP 304 constructed its own object tree. If a SCSI bus proves to be more work than that imposed by a LAN bus, the latter can be used in this instance. SP 304 combines its own object tree information with that of SP 305 to provide a combined storage processor object tree view.
SP 304 and SP 305 request over various interconnecting buses shown, or otherwise determine, IP addresses for all attached servers 313, 314, 315, 320, 321 and 322, and for all attached other nodes in the storage system such as disk drives 306 and 307. Then, by way of those addresses, SP 304 and SP 305 each request from the other all object tree information about the other's attached servers and disk drives; all of that obtained non-processor object tree information is returned to each such requesting storage processor. Each storage processor, SP 304 and SP 305 in this example, then combines its own previously-constructed object tree information which was rolled-up into the combined storage processor object tree view with all non-processor object tree information it receives thereby forming its own combined SAN object tree view. By way of a suitable command over bus 318 (rather than over the other similar, if not identical, bus—not shown—to SP 305), UI 300 selects SP 304 to be its “portal processor”. This is the particular storage processor in the storage system selected to serve as a port for information flow from and to UI 300. UI 300 further requests its combined SAN object tree view over bus 318. SP 304 forwards such view via bus 318 to UI 300 which stores all such object tree information in its local database for purposes of allowing its users to access and view such object tree information as part of user storage system and SAN management activity.
FIG. 4—Multiple San Configuration
Referring next to FIG. 4, there is presented a schematic diagram of a computer network showing a user interface and multiple SAN configurations being managed by such single user interface in accordance with principles of the present invention. UI 300 is the same UI as in FIG. 3. SAN 319 of FIG. 3 is shown in FIG. 4 and is connected to UI 300 by way of bus 318, as in FIG. 3. Other SAN configurations are designated 401, 402, 403, 404, and 405. Each SAN is connected to UI 300 directly by way of busses 406, 407, 408, 409 and 410 respectively, each such bus being connected to its respective portal processor (not shown) located within its SAN. As noted before, only the bus being used as a communicative link to the UI from and to each SAN and not every bus connection between the UI and multiple storage processors within each SAN is shown, for purposes of enhancing clarity of presentation. Multiple SANs (not limited to the number shown herein) can thus be managed by a single UI in accordance with principles of the present invention because the UI has been relieved of an unduly burdensome processing load as a result of each portal processor forwarding its combined SAN object tree view to the UI rather than requiring the UI to dissipate its processing power by computing each combined SAN object tree view.
FIG. 5—Object Trees
FIG. 5 is an object tree schematic diagram of information of various types including that which may be learned, stored, and combined in storage processors and utilized by the user interface. Referring first to object or node labeled SP-A, it is shown as having several “child” nodes, namely: LUN 1, LUN 2, and LUN 3 as well as a node labeled Disk 0,1,2,3. A node in addition to being used herein interchangeably with object is also a logical/functional construct enabling one to envision and design interrelationships in a computer system or computer storage system. Under certain circumstances, a node could represent a complete functional entity and in another instance could represent a sub-function within such entity. LUN means “logical unit” which is a logical construct that exists in or on storage systems, which is accessible by a server to store data and which can look like a disk drive to the server. There is a parent-child hierarchical relationship between node SP-A and its child nodes. Node SP-A is intended to represent object information describing SP-304 of FIG. 3. Similarly, SP-B is also shown as having several child nodes, namely: LUN 4, LUN-5, and LUN-6 as well as a node labeled Disk 4,5,6,7. There is also a parent-child hierarchical relationship between node SP-B and its child nodes. Node SP-B is intended to represent object information describing SP-305 of FIG. 3. In FIG. 3, each SP is shown connected to three servers and four disks and such a configuration would ordinarily be represented in a more complex object tree by more than only three LUNs per SP; thus, it should be understood that more LUNs are implied in FIG. 5 but only three LUNs per SP are shown for purposes of enhancing clarity of presentation.
When SP-304 functions to build its object tree representing itself and its directly connected nodes it constructs relationships that can be generally represented pictorially as shown as the parent-child relationships for SP-A (although realistically in a much more complex pattern than that shown). Similarly, when SP-305 functions to build its object tree representing itself and its directly connected nodes it constructs relationships that can be generally represented pictorially as shown as the parent-child relationships for SP-B, (again, more complex than shown). Accordingly, at this stage of the object tree construction within a storage system such as storage system 303, neither processor has an object tree representation of either the complete configuration of the storage system or the complete SAN. It should also be understood that more than two processors per storage system can be used. If there were three processors, then there would be three object trees constructed, etc. Accordingly, to obtain a complete object tree representation of SAN 319 all constructed object trees must be combined (whether, two, three or whatever number of storage processor trees constructed).
After such combination a new node is created, namely, “root” node or object 500 which is now the “parent” of two child nodes SP-A and SP-B, and which contains at least general header-type information about its storage processor children. Essentially what is in root node 500 is either all of the information below it in the tree, or header information suggesting all of the information below it in the tree. Accordingly, the root node or object is the best starting point for the inquiry, but, as noted, having only the root alone may not be sufficient. However, not only can you eventually get all of the objects in the storage system or the SAN via the root node, but you also get them in proper association with each other, which is of prime importance.
All of these many different objects in this kind of a system include an object that describes a storage system. However, as noted, a storage system has components in it such as LUNs, Disks and storage processors which are each also expressed as an object. Thus, the manner in which to express the notion that a storage system object contains disk objects, via object-oriented design (OOD) methodology is accomplished with the “HAS A” relationship, a familiar term in such OOD. And, this relationship is expressable in an object tree where, as in this example, root object 500 “HAS A” SP object for SPA and “HAS A ” SP object for SP-B. Similarly, SP-B “HAS A” disk object(s), LUN object(s), etc. And, all of these objects are required for the computer system to really extract all the information needed about the storage system or SAN. For example, if a user needed capacity information about the disks, the user would (via the combined object tree) ask the storage system about the disk object, and then (via the combined object tree) ask the disk object to get the capacity.
Referring next to interface dashed lines 501 and 502, they are used to represent locations within the network where such object tree combining can take place. In the prior art such object tree combining took place in the UI. Prior art object tree construction interface line 501 shows root object 500 located on the UI side of that interface meaning that root 500 was constructed and all object trees were combined in the UI. Accordingly, resources of the UI had to be dedicated to that activity. However, referring to present invention object tree construction interface line 502, root node 500 falls on the storage side of that interface meaning that root node 500 was constructed and all object trees were combined in storage processors, thus alleviating that burden from the UI. Then, UI 300 can request root node 500 from any particular storage processor on which it resides, and thus make such particular processor the portal processor. (Also, UI can select a different portal processor later if the first selected portal processor malfunctions or is otherwise no longer desirable to use.) By returning such root node to the UI, the portal processor allows the UI to have access to header information about the complete object tree representing the complete storage system or SAN. Armed with such header information, the UI can then call for any or all of the complete object tree and store it in its local database for convenient access of its users.
FIG. 6—Flowchart of Startup Algorithm
FIG. 6 is a flowchart illustrating a startup algorithm in accordance with principles of the present invention. It is discussed in terms of a SAN, but it is understood that the present invention also encompasses a storage system by itself as well as part of a SAN. The algorithm is thus equally applicable to a storage system as well as the SAN of which it is a part. In block 601 all storage processors, disk drives, servers, and any other attached nodes in the SAN build their own respective object trees for themselves and for their child nodes. Upon completion the algorithmic process moves to block 602 where each storage processor determines the respective internet protocol (IP) addresses for all other storage processors (its peers) over LAN busses interconnecting them. When completed the algorithmic process moves to block 603 where each storage processor asks (via the LAN busses and/or IP addresses) each other storage processor in the storage system for its constructed object tree. Next, in block 604 each storage processor combines its own object tree with all object trees received from all other storage processors into its combined storage processor object tree view. At this juncture, each storage processor holds the same object information as the next processor although the “view” from each processor might be different. Next, referring to block 605 each storage processor obtains IP addresses for all attached servers, disk drives and any other attached nodes in the SAN. Next, referring to block 606, each storage processor requests that all such attached servers, disk drives and nodes forward their respective object trees, and then combines them with the combined storage processor object tree view to obtain a combined SAN object tree view. Next, referring to block 607, the UI selects a particular storage processor to act as the SAN portal processor. Finally, in block 608, in response to a request from the UI, the SAN portal processor forwards the combined SAN object tree view to the user interface.
FIG. 7—Flowchart —UI Commands
FIG. 7 is a flowchart showing the algorithm associated with commands issued by the user interface in accordance with principles of the present invention. In block 701, the portal storage processor receives a command or request from the UI, for example, in FIG. 3, SP 304 can receive a command via bus 318 from UI 300. For example, the UI might want to command a storage processor to “clear cache”. Or, as another example, the UI may want to command a particular server to choose a different communication channel to storage. The algorithmic process moves next to decision block 702 wherein the query is made: is the command or request directed to the portal storage processor? Thus, in our example, portal storage processor 304 responds “yes” if the command is directed to it, and the algorithmic process moves to block 703 where the portal processor through its agent software executes the request and then sends an acknowledgment back to the user interface, as depicted in block 706. On the other hand, if the command is not directed to SP-304, the algorithmic process moves from block 702 via the “no” output to block 704 where a determination is made regarding which SAN node this command is directed to and then forwards such command to such node. In block 705, the addressed SAN node receiving such command, using its agent software, executes it and provides notice thereof to the portal storage processor. Such notice is provided directly if, for example, the addressed SAN node is a directly-coupled peer processor (as shown in FIG. 3), and indirectly if, for example, it is a server operatively coupled to a peer processor. Finally, the algorithmic process moves to block 706 where the portal storage processor, through its agent software, sends a response to the user interface acknowledging that such command or request has been executed.
The present embodiments are to be considered in all respects as illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims (14)

1. In an object oriented computer network including a user interface and a storage system, said storage system including both a plurality of storage processors each having information defining itself and its relationship to all of its directly coupled nodes and at least one disk drive, apparatus for managing said storage system comprising:
first sub-apparatus for communicating between said user interface and each one of said plurality of storage processors;
said each one of said plurality of storage processors including second sub-apparatus for communicating with both all other of said plurality of storage processors and said at least one disk drive;
said second sub-apparatus including third sub-apparatus for obtaining said information from each of said all other of said plurality of storage processors whereby said each one of said plurality of storage processors contains all said information in said storage system; and,
said user interface including selection sub-apparatus for selecting a particular one of said plurality of storage processors, whereby a single management point of ingress to and egress from said storage system is established for said user interface.
2. The apparatus of claim 1 wherein said information is object tree information.
3. The apparatus of claim 2 wherein said storage system is operatively coupled to at least one server, said storage system and said at least one server thereby forming a SAN, and wherein said third sub-apparatus includes fourth sub-apparatus for obtaining said object tree information from said at least one server whereby said each one of said plurality of storage processors contains all said object tree information in said SAN.
4. The apparatus of claim 3 wherein said user interface sends commands destined for nodes in said SAN to said particular one of said plurality of storage processors which includes respond-send apparatus for both responding to any of said commands destined for itself and for sending all other of said commands along SAN routes to other said nodes in said SAN to which said other of said commands were destined by said user interface.
5. The apparatus of claim 2 wherein said user interface includes different selection sub-apparatus for selecting a different one of said plurality of storage processors for various reasons including malfunctioning of said particular one of said plurality of processors.
6. The apparatus of claim 2 further including an Internet web server and wherein said selection sub-apparatus utilizes said Internet web server for addressing said particular one of said storage processors via an IP address over the Internet.
7. The apparatus of claim 1 wherein said storage system is operatively coupled to at least one server, said storage system and said at least one server thereby forming a SAN, and wherein said third sub-apparatus includes fourth sub-apparatus for obtaining said information from said at least one server whereby said each one of said plurality of storage processors contains all said information in said SAN.
8. The apparatus of claim 7 wherein said user interface sends commands destined for nodes in said SAN to said particular one of said plurality of storage processors which includes respond-send apparatus for both responding to any of said commands destined for itself and for sending all other of said commands along SAN routes to other said nodes in said SAN to which said other of said commands were destined by said user interface.
9. The apparatus of claim 1 wherein said user interface includes different selection sub-apparatus for selecting a different one of said plurality of storage processors for various reasons including malfunctioning of said particular one of said plurality of processors.
10. The apparatus of claim 1 further including an Internet web server and wherein said selection sub-apparatus utilizes said Internet web server for addressing said particular one of said storage processors via an IP address over the Internet.
11. In a computer network including a user interface and a storage system having a plurality of storage processors and at least one disk drive, a system for managing said storage system comprising:
a first sub-system for selectively communicating between said user interface and each one of said storage processors;
said each one of said storage processors including a second sub-system for learning and storing information about itself and about all other nodes in said network including all other of said storage processors, about its relationship with said all other nodes, and about inter-relationships between any one of said other nodes and any other of said other nodes to thereby obtain and have available complete network node information; and,
said user interface including a third sub-system for requesting said complete network node information from a particular one of said plurality of storage processors and thereby establishing a single management point of ingress to and egress from said storage system through said particular one of said storage processors for said user interface.
12. The system of claim 1 wherein:
said user interface includes a fourth subsystem for forwarding commands to said particular one of said storage processors.
13. The system of claim 12 and wherein said particular one of said storage processors includes;
a fifth sub-system for determining if any of such commands are for itself to obtain particular commands to be processed;
a sixth sub-system for processing said particular commands; and,
a seventh sub-system for forwarding said commands other than said particular commands to their respective destinations within the network.
14. The system of claim 11 wherein said information is object tree information.
US10/964,090 2001-03-03 2004-10-13 Single management point for a storage system or storage area network Expired - Lifetime US7124179B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/964,090 US7124179B1 (en) 2001-03-03 2004-10-13 Single management point for a storage system or storage area network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/798,571 US6839750B1 (en) 2001-03-03 2001-03-03 Single management point for a storage system or storage area network
US10/964,090 US7124179B1 (en) 2001-03-03 2004-10-13 Single management point for a storage system or storage area network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/798,571 Continuation US6839750B1 (en) 2001-03-03 2001-03-03 Single management point for a storage system or storage area network

Publications (1)

Publication Number Publication Date
US7124179B1 true US7124179B1 (en) 2006-10-17

Family

ID=33541707

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/798,571 Expired - Lifetime US6839750B1 (en) 2001-03-03 2001-03-03 Single management point for a storage system or storage area network
US10/964,090 Expired - Lifetime US7124179B1 (en) 2001-03-03 2004-10-13 Single management point for a storage system or storage area network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/798,571 Expired - Lifetime US6839750B1 (en) 2001-03-03 2001-03-03 Single management point for a storage system or storage area network

Country Status (1)

Country Link
US (2) US6839750B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205711A1 (en) * 2003-04-10 2004-10-14 Ishimitsu Michael Kazuo System and method for creation of an object within an object hierarchy structure
US7668924B1 (en) * 2005-09-22 2010-02-23 Emc Corporation Methods and system for integrating SAN servers
US7945756B1 (en) * 2005-03-30 2011-05-17 Emc Corporation System and method for managing a data storage system by contacting a single processor in a data storage system having more than one processor
US8433777B1 (en) 2007-09-26 2013-04-30 Emc Corporation Communication with multiple storage processors via direct connections
US8819104B1 (en) * 2007-09-26 2014-08-26 Emc Corporation Communication with multiple storage processors using network infrastructure
US8856079B1 (en) * 2012-09-28 2014-10-07 Emc Corporation Application programming interface for efficient object information gathering and listing
US9772775B2 (en) 2015-08-21 2017-09-26 International Business Machines Corporation Scalable and efficient access to and management of data and resources in a tiered data storage system

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0014414D0 (en) * 2000-06-12 2000-08-09 Business Information Publicati Electronic deposit box system
US8180872B1 (en) 2001-06-29 2012-05-15 Symantec Operating Corporation Common data model for heterogeneous SAN components
US20030084219A1 (en) * 2001-10-26 2003-05-01 Maxxan Systems, Inc. System, apparatus and method for address forwarding for a computer network
US7145914B2 (en) 2001-12-31 2006-12-05 Maxxan Systems, Incorporated System and method for controlling data paths of a network processor subsystem
US7295561B1 (en) 2002-04-05 2007-11-13 Ciphermax, Inc. Fibre channel implementation using network processors
US7379970B1 (en) 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
US7307995B1 (en) 2002-04-05 2007-12-11 Ciphermax, Inc. System and method for linking a plurality of network switches
US20030195956A1 (en) * 2002-04-15 2003-10-16 Maxxan Systems, Inc. System and method for allocating unique zone membership
US20030200330A1 (en) * 2002-04-22 2003-10-23 Maxxan Systems, Inc. System and method for load-sharing computer network switch
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US7886031B1 (en) 2002-06-04 2011-02-08 Symantec Operating Corporation SAN configuration utility
US7194538B1 (en) 2002-06-04 2007-03-20 Veritas Operating Corporation Storage area network (SAN) management system for discovering SAN components using a SAN management server
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US8019849B1 (en) * 2002-09-13 2011-09-13 Symantec Operating Corporation Server-side storage area network management interface
US7401338B1 (en) 2002-09-27 2008-07-15 Symantec Operating Corporation System and method for an access layer application programming interface for managing heterogeneous components of a storage area network
US7233984B2 (en) * 2002-11-12 2007-06-19 Microsoft Corporation Light weight file I/O over system area networks
US8060630B1 (en) 2002-11-27 2011-11-15 Symantec Operating Corporation Creating and configuring virtual fabrics in storage area networks
US7817583B2 (en) * 2003-04-28 2010-10-19 Hewlett-Packard Development Company, L.P. Method for verifying a storage area network configuration
US7885256B1 (en) * 2003-05-30 2011-02-08 Symantec Operating Corporation SAN fabric discovery
US20060059428A1 (en) * 2004-09-01 2006-03-16 Humphries Marshall L Method and system for presenting relationships
US8301739B1 (en) 2004-12-23 2012-10-30 Emc Corporation Storage system initialization utility
US20070027989A1 (en) * 2005-08-01 2007-02-01 Dot Hill Systems Corp. Management of storage resource devices
US7680905B1 (en) * 2005-09-30 2010-03-16 Emc Corporation Methods and system for viewing SAN resources
US8107467B1 (en) 2005-09-30 2012-01-31 Emc Corporation Full array non-disruptive failover
US8072987B1 (en) 2005-09-30 2011-12-06 Emc Corporation Full array non-disruptive data migration
US8549252B2 (en) * 2005-12-13 2013-10-01 Emc Corporation File based volumes and file systems
US9348530B2 (en) * 2005-12-27 2016-05-24 Emc Corporation Presentation of virtual arrays using n-port ID virtualization
US7685395B1 (en) 2005-12-27 2010-03-23 Emc Corporation Spanning virtual arrays across multiple physical storage arrays
US7697554B1 (en) 2005-12-27 2010-04-13 Emc Corporation On-line data migration of a logical/virtual storage array by replacing virtual names
US7697515B2 (en) 2005-12-27 2010-04-13 Emc Corporation On-line data migration of a logical/virtual storage array
US8583861B1 (en) 2006-06-29 2013-11-12 Emc Corporation Presentation of management functionality of virtual arrays
US7484059B1 (en) 2006-06-29 2009-01-27 Emc Corporation Full array non-disruptive migration of extended storage functionality
US7757059B1 (en) 2006-06-29 2010-07-13 Emc Corporation Virtual array non-disruptive management data migration
US8452928B1 (en) 2006-06-29 2013-05-28 Emc Corporation Virtual array non-disruptive migration of extended storage functionality
US7484056B2 (en) * 2006-06-29 2009-01-27 Emc Corporation Partitioning of a storage array into N-storage arrays using full array non-disruptive data migration
US7484057B1 (en) 2006-06-29 2009-01-27 Emc Corporation Consolidating N-storage arrays into one storage array using full array non-disruptive data migration
US8589504B1 (en) 2006-06-29 2013-11-19 Emc Corporation Full array non-disruptive management data migration
US8533408B1 (en) 2006-06-29 2013-09-10 Emc Corporation Consolidating N-storage arrays into one storage array using virtual array non-disruptive data migration
US8539177B1 (en) 2006-06-29 2013-09-17 Emc Corporation Partitioning of a storage array into N-storage arrays using virtual array non-disruptive data migration
US7925758B1 (en) 2006-11-09 2011-04-12 Symantec Operating Corporation Fibre accelerated pipe data transport
EP2118785A1 (en) * 2007-01-05 2009-11-18 Sanpulse Technologies, Inc. Storage optimization method
JP4696089B2 (en) * 2007-03-30 2011-06-08 三菱電機インフォメーションシステムズ株式会社 Distributed storage system
US9098211B1 (en) 2007-06-29 2015-08-04 Emc Corporation System and method of non-disruptive data migration between a full storage array and one or more virtual arrays
US9063895B1 (en) 2007-06-29 2015-06-23 Emc Corporation System and method of non-disruptive data migration between heterogeneous storage arrays
US9063896B1 (en) 2007-06-29 2015-06-23 Emc Corporation System and method of non-disruptive data migration between virtual arrays of heterogeneous storage arrays
US8711864B1 (en) 2010-03-30 2014-04-29 Chengdu Huawei Symantec Technologies Co., Ltd. System and method for supporting fibre channel over ethernet communication
US9654557B2 (en) * 2012-09-27 2017-05-16 Oracle International Corporation Clear in-memory business data cache across servers without restarting servers
US10430270B2 (en) 2017-12-04 2019-10-01 Bank Of America Corporation System for migrating data using dynamic feedback

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030248A1 (en) * 1999-02-19 2000-08-23 Sun Microsystems, Inc. Grammar to represent a hierarchical object-oriented database
US6671853B1 (en) * 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US20040059759A1 (en) * 2002-09-23 2004-03-25 Doan Tuan V. Persistent unique and flexible object addressing mechanism for data in a part memory and part disk environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030248A1 (en) * 1999-02-19 2000-08-23 Sun Microsystems, Inc. Grammar to represent a hierarchical object-oriented database
US6542899B1 (en) * 1999-02-19 2003-04-01 Sun Microsystems, Inc. Method and system for expressing information from an object-oriented database in a grammatical form
US6671853B1 (en) * 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US20040059759A1 (en) * 2002-09-23 2004-03-25 Doan Tuan V. Persistent unique and flexible object addressing mechanism for data in a part memory and part disk environment

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272818B2 (en) * 2003-04-10 2007-09-18 Microsoft Corporation Creation of an object within an object hierarchy structure
US20090164939A1 (en) * 2003-04-10 2009-06-25 Microsoft Corporation System and method for creation of an object within an object hierarchy structure
US20040205711A1 (en) * 2003-04-10 2004-10-14 Ishimitsu Michael Kazuo System and method for creation of an object within an object hierarchy structure
US8060822B2 (en) 2003-04-10 2011-11-15 Microsoft Corporation System and method for creation of an object within an object hierarchy structure
US8312244B1 (en) * 2005-03-30 2012-11-13 Emc Corporation System and method for managing a data storage system by contacting a single processor in a data storage system having more than one processor
US7945756B1 (en) * 2005-03-30 2011-05-17 Emc Corporation System and method for managing a data storage system by contacting a single processor in a data storage system having more than one processor
US7668924B1 (en) * 2005-09-22 2010-02-23 Emc Corporation Methods and system for integrating SAN servers
US8433777B1 (en) 2007-09-26 2013-04-30 Emc Corporation Communication with multiple storage processors via direct connections
US8819104B1 (en) * 2007-09-26 2014-08-26 Emc Corporation Communication with multiple storage processors using network infrastructure
US9344501B1 (en) * 2007-09-26 2016-05-17 Emc Corporation Communication with multiple storage processors using network infrastructure
US8856079B1 (en) * 2012-09-28 2014-10-07 Emc Corporation Application programming interface for efficient object information gathering and listing
US9772775B2 (en) 2015-08-21 2017-09-26 International Business Machines Corporation Scalable and efficient access to and management of data and resources in a tiered data storage system
US10162527B2 (en) 2015-08-21 2018-12-25 International Business Machines Corporation Scalable and efficient access to and management of data and resources in a tiered data storage system

Also Published As

Publication number Publication date
US6839750B1 (en) 2005-01-04

Similar Documents

Publication Publication Date Title
US7124179B1 (en) Single management point for a storage system or storage area network
CN100357916C (en) Multi-protocol storage appliance that provides integrated support for file and block access protocols
US7275050B2 (en) Storage system, a method of file data backup and method of copying of file data
US6640278B1 (en) Method for configuration and management of storage resources in a storage network
US7010622B1 (en) Scalable communication within a distributed system using dynamic communication trees
US6732104B1 (en) Uniform routing of storage access requests through redundant array controllers
US7260628B2 (en) Event notification in storage networks
US8180855B2 (en) Coordinated shared storage architecture
US7653682B2 (en) Client failure fencing mechanism for fencing network file system data in a host-cluster environment
US7296068B1 (en) System and method for transfering volume ownership in net-worked storage
US20030208581A1 (en) Discovery of fabric devices using information from devices and switches
US7711683B1 (en) Method and system for maintaining disk location via homeness
US8762507B1 (en) Method and system for managing an information technology system
US8140754B2 (en) Methods and apparatus for managing HDD's spin-down and spin-up in tiered storage systems
KR20080096547A (en) Virtual network storage system, network storage device and virtual method
US7469284B1 (en) Methods and apparatus for assigning management responsibilities to multiple agents
US8732381B2 (en) SAS expander for communication between drivers
US20040233921A1 (en) Virtual switch for use in fibre channel applications
US8156163B1 (en) Storage server cluster implemented in and operating concurrently with a set of non-clustered storage servers
CN101313292A (en) Peer data transfer orchestration
WO2002103574A1 (en) Enterprise storage resource management system
US7216184B2 (en) System and method for identification of devices associated with input/output paths
CN113867230B (en) Modbus remote operation control system
US8880769B2 (en) Management of target devices
US7200716B1 (en) Method and apparatus to offload operations in a networked storage system

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001

Effective date: 20200409