Abstract:
A computer system includes a support system that report events, faults, and failures to a master virtual server. While the support system may be accessed and used by a multitude of virtual servers, only the master virtual server can manage the support system. The support system include a master lock register, a heartbeat timer, and a digital processing device (“processor”). Upon initialization and if the master lock register is empty, a virtual server asserts ownership over the support system by writing its identification into the master lock register, becoming the master virtual server. The master virtual server transmits periodic heartbeats to the support system to communicate that it is still viable and in control. If the heartbeat timer expires without communication from the master virtual server, the processor clears the master lock register and transmits a broadcast message inviting all connected virtual servers to attempt to assert control.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     This invention is related in general to the field of data storage systems. In particular, the invention consists of a system for managing computer support systems.  
         [0003]     2. Description of the Prior Art  
         [0004]     In  FIG. 1 , a computer storage system  10  includes host servers (“hosts”)  12 , data processing servers  14 , a data storage system  16 , and various support systems  18  such as power supplies  18   a , batteries  18   b , fans  18   c , and temperature sensors  18   d . Each data processing server  14  may include a plurality of processing devices grouped into a processing cluster (“cluster”)  20  and may be substantially identical and redundant. Imposed upon the physical components of the computer storage system  10  may be a multitude of virtualized storage servers referred to as images  22  as shown in  FIG. 2 . Each image  22  typically resides on two or more clusters. In the event of a cluster failure, however, an image  22  can failover to the remaining clusters.  
         [0005]     The support systems  18  are hardware devices that provide services other than data storage. Each image  22  typically has access to and can use these devices. Additionally, these support devices  18  may have the ability to generate reports related to events, faults, and failures. However, only one image  22  should own each support system  18 , i.e., be responsible for accepting these reports, for responding to the events, faults, and failures, and for managing these support systems. The owning image is referred to as the master image. However, each image may access the services of the support systems. Accordingly, it would be desirable to have a system for establishing ownership over a support system  18  while allowing other images to access the support system.  
         [0006]     One approach is to provide a separate set of support systems  18  for each hardware image. However, this approach is extremely expensive as multiple devices are necessary and each may be dramatically underutilized. Therefore, it is desirable to have a system for establishing ownership over a support system  18  that is efficient and economical.  
         [0007]     Another approach is to utilize a static multi-tiered architecture that allows one image to own the hardware while other images access the devices through the owning image via image-to-image communication. However, a problem occurs if the image  22  tasked with managing the support systems  18  fails, precluding use of the support systems  18  by the other viable images. Accordingly, it is desirable to have a system for dynamically establishing ownership over support systems  18 .  
         [0008]     In a traditional dynamic system, a system user can establish a master image. Subsequently, if the master image fails or is taken off-line, the system user can establish a different master image. However, this approach requires active intervention on the part of a system user. If the system user is not immediately available, the support systems  18  will go unmanaged and all images may be precluded from accessing the support systems. Therefore, it is desirable to have a dynamic system for establishing a master image that does not require active intervention by a system user.  
         [0009]     A predetermined hierarchy of dynamic ownership allows ownership to pass from one image to another without intervention by a system user. A default profile may be established including a primary master image with associated secondary master images. However, this profile must be modified each time a hierarchy of images changes. Accordingly, it is desirable to have a system of dynamic ownership that is itself established dynamically.  
         [0010]     In U.S. Pat. No. 5,5,53,287, Bailey et al. disclose a computer system for switchably connecting an input/output (“I/O”) device to a host via a channel subsystem in connection with means for dynamically managing I/O connectivity. Bailey&#39;s invention includes a centralized control lock associated with hardware resources. However, no resources are provided for identifying which image is responsible for managing each hardware resource. It is desirable to have a master lock that identifies the owning image.  
         [0011]     In U.S. patent application 2003/0120743 A1, Coatney et al. disclose a system for implementing ownership including writing ownership information to a predetermined area of a device. However, no provision has been made to ensure that a master image remains viable. In other words, if a master image assumes ownership over a support system  18  and then fails, the support system may be unaware of the failure of the master image. Normally, this situation would require that a new master image be selected through image-to-image communication. This requires that the images be aware of each other. However, it is sometimes desirable to have independent systems on common hardware, precluding the use of image-to-image communication. Accordingly, it is desirable to have a system for establishing a master image that does not require image-to-image communication, is scalable, and does not require system user intervention, failover profiles, or significant downtime.  
       SUMMARY OF THE INVENTION  
       [0012]     The invention disclosed herein utilizes a master lock register that can be accessed by each virtualized server (“image”) within a computer system. A master lock register may reside within each support system or on a device responsible for monitoring a plurality of support systems. When an image is established, it accesses the master lock register to ascertain if a master lock has already been allocated. If not, the image writes its identification (“ID”) to the master lock register, becoming the master image. As long as the image&#39;s ID remains in the master lock register, the image owns the support systems associated with the master lock register. Multiple requests for the master lock are serialized by the master lock register and only one device can assert its ID.  
         [0013]     While each image in the computer system may access and use the support system, only the master image is responsible for receiving reports related to support system events, faults, and failures. Additionally, only the master image may manage the associated support system.  
         [0014]     In order to ensure that the support system is actively managed, the master image must send a periodic message (“heartbeat”) to the support system. Any form of regular communication between the master image and the support system may serve as a heartbeat. Along with the master lock register, the support system includes a heartbeat timer and a digital processing device (“processor”). If the heartbeat timer expires due to lack of communication by the master image, the processor clears the master lock registers and transmits a broadcast message indicating that the support system needs a new master image. This broadcast message triggers each connected image to attempt to posses the master lock, just as they would do during initialization. This allows for ownership to dynamically pass from one image to another without image-to-image communication, system user intervention, failover profiles, and significant downtime between ownership.  
         [0015]     The master lock may also be periodically polled by all images to check for ownership. This allows the support system to clear the master lock when it fails to receive a heartbeat message and precludes the need to transmit a broadcast message.  
         [0016]     Various other purposes and advantages of the invention will become clear from its description in the specification that follows and from the novel features particularly pointed out in the appended claims. Therefore, to the accomplishment of the objectives described above, this invention comprises the features hereinafter illustrated in the drawings, fully described in the detailed description of the preferred embodiments and particularly pointed out in the claims. However, such drawings and description disclose just a few of the various ways in which the invention may be practiced.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  is a block diagram illustrating a computer storage system including host servers, data processing servers, data storage devices, and a support system.  
         [0018]      FIG. 2  is a block diagram illustrating the computer storage system of  FIG. 1  with a plurality of virtualized servers (“images”).  
         [0019]      FIG. 3  is a block diagram of a computer storage system according to the invention including a master lock register, a heartbeat timer, and a digital processing device (“processor”).  
         [0020]      FIG. 4  is a flow chart illustrating a dynamic owner algorithm.  
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0021]     This invention is based on the idea of using a master lock register, a heartbeat timer, and a digital processing device to dynamically establish ownership of one or more support services in a computer system. The invention disclosed herein may be implemented as a method, apparatus or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware or computer readable media such as optical storage devices, and volatile or non-volatile memory devices. Such hardware may include, but is not limited to, field programmable gate arrays (“FPGAs”), application-specific integrated circuits (“ASICs”), complex programmable logic devices (“CPLDs”), programmable logic arrays (“PLAs”), microprocessors, or other similar processing devices.  
         [0022]     Referring to figures, wherein like parts are designated with the same reference numerals and symbols,  FIG. 3  is a block diagram illustrating a computer storage system  110  that includes host servers (“hosts”)  112 , data processing servers  114 , a data storage system  116 , and a support system  118 . The data storage system may be a multitude of individual data storage devices such as hard disk drives, optical drives, and tape-cartridge drives. Each data processing server  114  may include a plurality of processing devices grouped into a processing cluster (“cluster”)  120  and may be substantially identical and redundant. The processing devices may be micro-processors, general-purpose central processing units (“CPUs”), or programmable logic devices such as FPGAs, CPLDs, PLAs, or ASICs.  
         [0023]     The support services  118  include a master lock register  124 , a heartbeat timer  126 , and a digital processing device (“processor”)  128 . The master lock register  124  may be a memory location within a memory device or a register within the processor  128 . The heartbeat timer  126  may be a hardware device including an internal clock signal or may also by a logical construct within the processor. The processor  128  may be a micro-controller, a general purpose CPU, or a programmable logic device such as an FPGA, CPLD, PLA, or ASIC.  
         [0024]     Imposed upon the physical components of the computer storage system  110  is a multitude of virtualized storage servers referred to as images  122 . Each image  122  typically resides on two or more clusters. In the event of a cluster failure, however, an image  122  can failover to the remaining clusters. Failover can be expanded to independent servers, or non-server devices. Any sort of complex array of systems, whether the systems are low level simple HW devices or complex enterprise-level servers, can make use of this system to coordinate master status.  
         [0025]     The support system  118  is a hardware device that provide services other than data storage. In this embodiment of the invention, the support system  118  is a power controller card connected to a power supply  118   a  and a battery  118   b . Alternatively, the support system could be an input/output device, an operator panel, a remote power switch, a fan device, or a fan sense card. Support systems need not be power-related. For example, a service console could be an example of a supporting device which should only be owned by one of multiple devices at any given.  
         [0026]     Each support system can have its own independent master lock which is individually maintained, or the master lock can be maintained in a roll up device. For example, the master lock for an entire power system can be maintained in a power controller card, and the system that owns that lock owns the entire power system. In another embodiment, individual resources can have their own master lock and can be obtained independently. A classic example of this dichotomy is that a master lock could be implemented in each fan, or in a fan sense card representing a number of fans. The power controller cards ownership represents an ownership of the power system at large. Choice of implementation is dependent on the devices used, and the system complexity.  
         [0027]     Each image  122  typically has access to and can use these devices. Additionally, the support system  118  generates reports related to events, faults, and failures. However, only one image  122  may own each support system  118 , i.e., be responsible for accepting these reports, for responding to the events, faults, and failures, and for managing these support systems. The owning image is referred to as the master image  122   a . The invention may also be implemented in a stand-alone support device. For example, a support service device  18   c  includes its own master lock register  124 , heartbeat timer  126 , and processor  128 . Indeed, the master lock can be owned by one device, multiple devices but synchronized (you own one you own them all), or multiple non-synchronized devices (each image can lock each device independently)  
         [0028]     The process of dynamically establishing a master image is illustrated by the dynamic owner algorithm  200  of  FIG. 4 . Each master lock register  124  can be accessed by each image  122 . When an image  122  is initialized, it examines the master lock register  124  in step  202  to ascertain if a master lock has already been allocated. If not, the image writes its identification (“ID”) to the master lock register in step  204 , becoming the master image. As long as the image&#39;s ID remains in the master lock register, the image owns the support systems associated with the master lock register. Multiple requests for the master lock are serialized by the master lock register and only one device can assert its ID. This approach works well when images are differently configured with resources such as CPUs, memory, or bandwidth.  
         [0029]     Systems can be designed such that one image has priority or precedence in getting the lock. For example, a first image may get first chance at the lock and the others only get to try if the first image is unsuccessful. All images other than the first image are treated equally and have equal opportunity to own the master lock. This design works well for systems where each image is identical or near identical.  
         [0030]     While each image in the computer system may access and use the support system, only the master image is responsible for receiving reports related to support system events, faults, and failures. Additionally, only the master image may manage the associated support system, i.e., manage the repair or replacement of the support system. In order to ensure that the support system is actively managed, the master image sends a periodic message (“heartbeat”) to the support system in step  206 . In one implementation, a specific heartbeat message would be required so that the supporting system can determine that the master image is aware of the need to maintain the master lock. In another implementation, any form of regular communication between the master image and the support system may serve as a heartbeat. The second approach would be preferred in cases where the performance hit in doing the extra heartbeat message is undesired, but the former approach is preferred for systems where there is very infrequent communication, or where simplicity of target support devices is a priority.  
         [0031]     Along with the master lock register, the support system includes a heartbeat timer and a digital processing device (“processor”), ASIC, microcontroller, or common central processor.  
         [0032]     If the heartbeat timer expires due to lack of communication by the master image, the processor clears the master lock registers and transmits a broadcast message indicating that the support system need a new master image in step  208 . This broadcast message triggers each connected image to attempt to posses the master lock, just as they would do during initialization. Alternatively, all non-master images capable of becoming a master image may be required to poll the status of the master lock and look for lock vacancy. The former approach reduces overhead at the image, the latter approach reduces overhead and complexity at the support device. This broadcast message or detection of a vacant lock by one non-master image would trigger images to attempt to posses the master lock, just as they would do during initialization. This allows for ownership to dynamically pass from one image to another without image-to-image communication, system user intervention, failover profiles, and significant downtime between ownership.  
         [0033]     There are instances where an image might detect the vacant lock, but choose not to attempt to contend for the master lock. For example, if there is ongoing service or maintenance being done on an image, that image may determine that it is not capable or appropriate to obtain the master lock at this point. Likewise, if an image is being currently deactivated, it would not want to take the lock because it would soon be vacating the lock as well. Devices should seek to churn the lock as infrequently as possible in systems where the overhead inherent in lock arbitration is an issue. Optionally, systems can detect and track the arbitration progress of the master lock. For example, one implementation would have each image tracking how many times the lock is vacated, or how long the lock remains vacant, and, when appropriate, a service or maintenance action might be requested, initiated, or suggested when the lock has remained free too long or been in a prolonged state or repeated arbitration.  
         [0034]     Those skilled in the art of making computer support systems may develop other embodiments of the present invention. However, the terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.