FIELD OF THE INVENTION 
     The present invention generally relates to storage area networks and in particular to a unifying abstraction for components in a storage area network that correlates the entities in a volume container. 
     BACKGROUND OF THE INVENTION 
     A storage area network is a network of storage devices or disks. A storage area network can connect one or more servers (host servers) to a centralized pool of disk storage (storage devices or storage volumes). Compared to managing many servers, each with a storage device, use of a storage area network improves system administration. 
     Although storage area network technology has proven to be useful, it would be desirable to present additional improvements. Conventional methods of managing storage area networks comprise low level primitives (i.e., machine language) that require considerable expertise in storage subsystems, networks, etc. Storage administrators frequently make mistakes in performing these operations. 
     Furthermore, storage administrators have difficulty in correlating various components such as, for example, host servers and storage devices in a storage area network. A system administrator has to perform mappings between servers and storage devices. Each server and each storage device represents an individual mapping. With many servers and many storage devices, managing issues such as consistent mapping, security, and access are very difficult to configure and maintain. 
     Conventional storage area networks lack a unifying abstraction for the entities in the storage area network. What is therefore needed is a system, a computer program product, and an associated method for automatically relating components of a storage area network in a volume container. The need for such a solution has heretofore remained unsatisfied. 
     SUMMARY OF THE INVENTION 
     The present invention satisfies this need, and presents a system, a service, a computer program product, and an associated method (collectively referred to herein as “the system” or “the present system”) for automatically relating components of a storage area network in a volume container. The present invention reduces administration required for a storage area network, improves consistency in mapping, security, and zoning, and reduces complexity in consistently replicating a logical group of storage volumes, making failure recovery easier. Consequently, the present system improves scalability of storage area networks. 
     The volume container is an abstract entity that shows a relationship between servers (interchangeably referenced herein as host servers) and storage devices (interchangeably referenced herein as storage volumes). The volume container automatically captures the assignment of storage volumes in storage subsystems to servers. The volume container further automatically captures network access control between host servers and storage subsystems such as, for example, security, zoning, etc. 
     Volume containers define a membership collection. Policies of the volume container guide operations (or rules) in a volume container; i.e., how storage volumes are allocated and how host servers are zoned to storage volumes. Consequently, the membership automatically associates access and security within the volume container. 
     Membership in a volume container by the host server or the storage volume comprises the following implications with respect to adding and removing storage volumes and host servers in the volume container. 
     Adding a storage volume to a volume container assigns the storage volume to all of the host servers in the storage container. Adding a storage volume to a volume container further zones the storage volume to all of the host servers in the volume container. 
     Adding a server to a volume container assigns the host server to all of the storage volumes in the volume container. Adding a host server to a volume container further zones all of the host servers to the storage volumes in the volume container. 
     Removal of a storage volume from a volume container removes assignments of the removed storage volume to host servers in the volume container. Removal of a storage volume from a volume container further removes zones associated with the removed storage volume. 
     Removal of a host server from a storage container removes assignments of the removed host server to storage volumes in the volume container. Removal of a host server from a volume container further removes zones associated with the removed host server. 
     A host server may belong to multiple volume containers but a storage volume can belong to at most one volume container. 
     The present system enables adding a client to a group of clients in a shared file system mounted from a storage volume. Using the volume container to define the shared file system enables automatic access by the added client. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The various features of the present invention and the manner of attaining them will be described in greater detail with reference to the following description, claims, and drawings, wherein reference numerals are reused, where appropriate, to indicate a correspondence between the referenced items, and wherein: 
         FIG. 1  is a schematic illustration of an exemplary operating environment in which a volume container system of the present invention can be used; 
         FIG. 2  is a schematic illustration of an exemplary storage area network in which host servers and storage volumes are organized into volume containers by the volume container system of  FIG. 1 ; 
         FIG. 3  is a process flow chart illustrating a method of operation of the volume container system of  FIG. 1  in generating and managing a volume container; 
         FIG. 4  is a process flow chart illustrating a method of operation of the volume container system of  FIG. 1  in establishing a mapping between host servers and storage volumes in a volume container; 
         FIG. 5  is a process flow chart illustrating a method of operation of the volume container system of  FIG. 1  in modifying a mapping of the volume container; and 
         FIG. 6  is a diagram illustrating virtualization of a storage area network using the volume container system of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The following definitions and explanations provide background information pertaining to the technical field of the present invention, and are intended to facilitate the understanding of the present invention without limiting its scope: 
     Volume Container: An abstract entity that shows a relationship between servers and storage devices. The entity captures the assignment of volumes from storage subsystems to servers. The entity further captures network access control between servers and storage subsystems such as, for example, zoning. 
       FIG. 1  portrays an exemplary overall environment (a distributed storage system  100 ) in which a system, a computer program product, and an associated method for automatically relating components of a storage area network in a volume container (the volume container system  10  or the “system  10 ”) according to the present invention may be used. System  10  comprises a software programming code or a computer program product that is typically embedded within a computer that is monitoring the storage area network. Alternatively, system  10  can be saved on a suitable storage medium such as a diskette, a CD, a hard drive, or like devices. 
     Hosts, such as a host server  1 ,  15 , through a host server N,  20 , (collectively referenced as host servers  25 ) access a storage system  30  through a network  35 . The storage system  30  comprises storage devices such as a storage volume  1 ,  40 , through a storage volume N,  45 , (collectively referenced as storage volumes  50 ). While system  10  is described in terms of network  35 , host servers  25  may also access the storage system  30  and system  10  locally rather than remotely. 
     System  10  automatically manages assignment of the host servers  25  and the storage volumes  50  into a volume container.  FIG. 2  illustrates an exemplary set of volume containers for an exemplary storage system  200 . The storage system  200  comprises the host server  1 ,  15 , a host server  2 ,  205 , and a host server  3 ,  210  (collectively referenced as host servers  25 ). The storage system  200  further comprises a storage subsystem  1 ,  215 , and a storage subsystem  2 ,  220 . The storage subsystem  1 ,  215 , comprises the storage volume  1 ,  40 , and a storage volume  2 ,  225 . The storage subsystem  2 ,  220 , comprises a storage volume  3 ,  230 , and a storage volume  4 ,  235 . The storage volume  2 ,  40 , the storage volume  2 ,  225 , the storage volume  3 ,  230 , and the storage volume  4 ,  235 , are collectively referenced as storage servers  50 . 
     System  10  automatically maps the host servers  25  and the storage servers  50  in one or more volume containers. In the example of  FIG. 2 , the host server  1 ,  15 , (HS 1 ) accesses the storage volume  1 ,  40 . The host server  2 ,  205 , (HS 2 ) accesses the storage volume  2 ,  225  and the storage volume  3 ,  230 . The host server  3 ,  210 , (HS 3 ) accesses the storage volume  4 ,  235 . System  10  groups the host servers  25  and the storage volumes  50  into volume container  1 ,  240 , and volume container  2 ,  245 , collectively referenced as volume containers  250 . 
     In  FIG. 2 , the volume container  1 ,  240 , comprises the host server  1 ,  15 , the host server  2 ,  205 , the storage volume  1 ,  40 , and the storage volume  2 ,  225 . The volume container  2 ,  245 , comprises the host server  2 ,  205 , the host server  3 ,  210 , the storage volume  3 ,  230 , and the storage volume  4 ,  235 . 
     The volume containers  250  are abstract entities that illustrate a relationship between the host servers  25  and the storage volumes  50 . This abstract entity captures the assignment of storage volumes  50  from the storage subsystem  1 ,  215 , and the storage subsystem  2 ,  220  to the host servers  25 . The volume containers  250  further capture network access control between the host servers  25  and the storage volumes  50 . Network access control comprises, for example, zoning, access, and security. 
       FIG. 3  illustrates a method  300  of system  10  in generating and managing a volume container. System  10  defines a volume container (step  305 ). System  10  automatically establishes a mapping between one or more the host servers  25  and one or more the storage volumes  50  in the volume container (step  310 , illustrated in more detail in method  400  of  FIG. 4 ). In general, each of the storage volumes  50  is assigned to one volume container. Each of the host servers  25  can be mapped to one or more volume containers. 
     System  10  monitors the volume container for changes in configuration (step  315 ). If a modification in the volume container is identified (decision step  320 ), system  10  modifies a mapping between one or more the host servers  25  and one or more the storage volumes  50  (step  325 , illustrated in more detail in method  500  of  FIG. 5 ). In the absence of modification (decision step  320 ) or after modifying the mapping (step  325 ), system  10  continues monitoring the volume container (step  315 ). 
     System  10  automatically establishes a mapping between the host servers  25  and the storage volumes  50  as illustrated by method  400  of  FIG. 4 . In the following discussion, the storage volume  1 ,  40 , generally represents individual storage volumes  50 ; the host server  1 ,  15 , generally represents individual host servers  25 . System  10  selects a storage volume such as storage volume  1 ,  40  (step  405 ). System  10  maps the host servers  25  in the volume container to the storage volume  1 ,  40 . System  10  determines whether additional storage volumes  50  remain for mapping (decision step  415 ). If yes, system  10  selects a next storage volume from the storage volumes  50  and repeats step  410  and step  415 . 
     When no storage volumes  50  remain for mapping (decision step  415 ), system  10  selects one of the host servers  25  (i.e., the host server  1 ,  15 ) (step  425 ). System  10  maps the storage volumes  50  to the selected host server, the host server  1 ,  15  (step  430 ). System  10  determines whether additional host servers  25  remain for mapping (decision step  435 ). If yes, system  10  selects a next host server from the host servers  25  and repeats step  430  and step  435 . When no host servers  25  remain for mapping (decision step  435 ), system  10  exits initial mapping (step  445 ). 
     Method  400  illustrates an exemplary order for automatically mapping the host servers  25  and the storage volumes  50 . Mapping of the storage volumes  50  (step  405  through step  420 ) may be performed after mapping of the host servers  25  (step  425  through step  440 ). Furthermore, mapping of individual volume containers  50  may be interspersed with mapping of individual host servers  25 . 
       FIG. 5  illustrates a method  500  of system  10  in automatically modifying a mapping of the volume containers. In the following discussion, the storage volume  1 ,  40 , generally represents individual storage volumes  50 ; the host server  1 ,  15 , generally represents individual host servers  25 . System  10  initiates a mapping modification (step  505 ). If a storage volume such as the storage volume  1 ,  40 , is added to the volume container (decision step  510 ), system  10  maps the host servers  25  in the volume container to the added storage volume, storage volume  1 ,  40  (step  515 ). If a host server such as the host server  1 ,  15 , is being added to the volume container (decision step  520 ), system  10  maps the storage volumes  50  in the volume container to the added host server, server  1 ,  15  (step  525 ). 
     If a storage volume such as storage volume  1 ,  40 , is being removed from the volume container (decision step  530 ), system  10  unmaps the host servers  25  in the volume container from the removed storage volume, storage volume  1 ,  40  (step  535 ). If a host server such as the host server  1 ,  15 , is being removed to the volume container (decision step  540 ), system  10  unmaps the storage volumes  50  in the volume container from the removed host server, server  1 ,  15  (step  545 ). System  10  exits mapping modification (step  550 ). 
     Method  500  illustrates an exemplary order for modifying the mapping the host servers  25  and the storage volume  50  in the volume container. The host servers  25  and the storage volumes  50  may be added or removed in any order. 
     System  10  can be used to replicate a storage area network. For example, a database system comprises a host server and a set of storage volumes. A database log, database indices, and data are distributed among a set of storage volumes. To replicate the database, the database log, database indices, and data need to be replicated as a set. By placing the host server and the set of storage volumes accessed by the database in a volume container, system  10  can easily replicate the database system by replicating the volume container. In replicating the volume container using system  10 , security and access are also replicated, reducing administrative effort and errors and aiding in disk recovery. 
       FIG. 6  illustrates a virtualized volume container  605  comprising a virtual host such as a virtual host  1 ,  610 , and a storage system such as the storage system  30 . The virtual host  1 ,  610 , comprises a virtual volume  1 ,  615 , through a virtual volume N,  620 , collectively referenced as virtual volumes  625 . The storage system  30  comprises the storage volume  1 ,  40 , through the storage volume N,  45 , collectively referenced as the storage volumes  50 . The virtual volumes  625  are mapped to the storage volumes  50  by system  10  using a mapping (or mapper)  630 . 
     System  10  provides parallel access for virtual hosts to storage systems such as the storage system  30 . System  10  enables parallel access by adding additional hosts such as virtual host  2 ,  635 , to mapping  630 . Essentially, system  10  adds virtual host  2 ,  635 , to the virtualized volume container  605 . System  10  maps virtual volumes in the virtual host  2 ,  635 , to the storage volumes  50  and maps the storage volumes  50  to the virtual volumes in the virtual host  2 ,  635 . Consequently, system  10  automatically enables consistent access, security, zones, etc. for the virtual host  2 ,  635 , when the virtual host  2 ,  635 , is added to the virtualized volume container  605 . 
     It is to be understood that the specific embodiments of the invention that have been described are merely illustrative of certain applications of the principle of the present invention. Numerous modifications may be made to a system and method for automatically relating components of a storage area network in a volume container described herein without departing from the spirit and scope of the present invention.
A volume container system automatically relates components of a storage area network in membership association of a volume container. The volume container is an abstract entity that maps a relationship between servers and storage devices. The entity captures network access control between servers and storage subsystems such as, for example, security, access, and zoning. Policies of the volume container guide operations in a volume container. The membership associates access and security within the volume container. The volume container reduces administration required for a storage area network, improves consistency in mapping, security, and zoning, and reduces complexity in consistently replicating a logical group of volumes, making failure recovery easier.