Abstract:
In a disaster recovery context, device operation states can he automatically changed from their expected operating states for steady-state operation as soon as a disaster recovery event is triggered. Every operating device with a first expected operating state for steady-state operation may be automatically changed to a second expected operating state when a disaster recovery event is triggered. Every operating device with the second expected operating state for steady-state operation may be automatically changed to the first expected state when a disaster recovery event is triggered.

Description:
FIELD OF THE DISCLOSURE 
       [0001]    The instant disclosure relates to software environments. More specifically, this disclosure relates to monitoring and correcting device operating states in a disaster recovery environment. 
       BACKGROUND 
       [0002]    Modern computer systems require that a variety of hardware devices exist in specified states for stable operation. Often storage drives may exist in only one of several potential states at a time. For example, the potential operating states for physical or virtual storage drives may include: Up, Down, Reserved, or Suspended. The device states may be changed by operator console commands. 
         [0003]    Often in a steady-state environment, normal system operation requires that one local set of storage drives be in an Up operating state, while another remote set of storage drives is in a Reserved operating state. The set of storage drives that is Up may be written to and read from, while the Reserved set of storage drives may only be read from, as they only exist at a remote disaster recovery location. As this system is transitioned toward a disaster recovery posture, it is necessary to precisely and rapidly swap the Up and Reserved state of each device. If this transition does not occur quickly and accurately, significant disruption in the software environment can occur. With the advent of virtual tape drives, there may be hundreds of devices, each with its own expected state. Without automation, these virtual devices would be unmanageable, as operators would have to laboriously change device states for hundreds of devices through console commands, which is time consuming and error prone. 
       SUMMARY 
       [0004]    An automated system and method for monitoring and correcting device operation state during a disaster recovery event may be accomplished by automatically transitioning the operating state for operating devices in the environment. Every operating device with a first expected operating state for steady-state operation may be automatically changed to a second expected operating state when a disaster recovery event is triggered. Every operating device with the second expected operating state for steady-state operation may be automatically changed to the first expected state when a disaster recovery event is triggered. 
         [0005]    According to one embodiment of the invention, a method may include monitoring, by a processor, an operating state for each of a plurality of data storage devices. The method may also include identifying, by the processor, one or more of the plurality of data storage devices for which the operating state is a first expected state. The method may further include identifying, by the processor, one or more of the plurality of data storage devices for which the operating state is a second expected state. The method may also include changing, by the processor, the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the first expected state to the second expected state. The method may further include changing, by the processor, the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the second expected state to the first expected state. 
         [0006]    According to another embodiment, a computer program product may include a non-transitory computer readable medium comprising instructions which, when executed by a processor of a computing system, cause the processor to perform the steps of monitoring an operating state for each of a plurality of data storage devices. The medium may also include instructions which, when executed cause the processor to perform the steps of identifying one or more of the plurality of data storage devices for which the operating state is a first expected state. The medium may further include instructions which, when executed by the processor, cause the processor to perform the steps of identifying one or more of the plurality of data storage devices for which the operating state is a second expected state. The medium may also include instructions which, when executed by the processor, cause the processor to perform the steps of changing the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the first expected state to the second expected state. The medium may also include instructions which, when executed by the processor, cause the processor to perform the steps of changing the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the second expected state to the first expected state. 
         [0007]    According to a yet another embodiment, an apparatus may include a memory, and a processor coupled to the memory. The processor may be configured to execute the steps of monitoring an operating state for each of a plurality of data storage devices. The processor may also be configured to execute the steps of identifying one or more of the plurality of data storage devices for which the operating state is a first expected state. The processor may further be configured to execute the steps of identifying one or more of the plurality of data storage devices for which the operating state is a second expected state. The processor may also be configured to execute the steps of changing the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the first expected state to the second expected state. The processor may further be configured to execute the steps of changing the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the second expected state to the first expected state. 
         [0008]    The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter that form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention, it should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. The novel features that are believed to be characteristic of the invention, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    For a more complete understanding of the disclosed system and methods, reference is now made to the following descriptions taken in conjunction with the accompanying drawings. 
           [0010]      FIG. 1  is a flow chart illustrating a method for monitoring and correcting device operating states in a disaster recovery environment, according to one embodiment of the disclosure. 
           [0011]      FIG. 2  is a flow chart illustrating a method for configuring an application to monitor and correct device operating states, according to one embodiment of the disclosure. 
           [0012]      FIG. 3  illustrates software environment, according to one embodiment of the disclosure. 
           [0013]      FIG. 4  illustrates a computer system adapted according to certain embodiments of a server and/or a user interface device for implementing embodiments of the disclosure, according to one embodiment of the disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]      FIG. 1  is a flow chart illustrating a method for monitoring and correcting device operating states in a disaster recovery environment, according to one embodiment of the disclosure. The method  100  may begin at block  102  with monitoring, by a processor, an operating state for each of a plurality of data storage devices. There may be several different operating states that each device may exist in. For example, in a Unisys Dorado system, tape drives in the system, whether physical or virtual, may exist in one of an Up, Down, Reserved, or Suspended operating state. Each device may have an expected operating state for steady-state operations. 
         [0015]    At block  104 , the method may include identifying, by the processor, one or more of the plurality of data storage devices for which the operating state is a first expected state. For example, in the Unisys Dorado system, for steady-state operations, the first expected state may be an Up operating state. At block  106 , the method may include identifying, by the processor, one or more of the plurality of data storage devices for which the operating state is a second expected state. For example, in the Unisys Dorado system, for steady-state operations, the second expected state may be a Reserved state. 
         [0016]    At block  108 , the method may include changing, by the processor, the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the first expected state to the second expected state. A disaster recovery event may be triggered before the changing at block  108  occurs. For example, in a Unisys Dorado system, this may include changing to a Reserved state the operating state for operating devices with an expected Up operating state during steady-state operations. At block  110 , the method may include changing, by the processor, the operating state for each of the one or more of the plurality of data storage devices for which the operating state is identified as the second expected state to the first expected state. A disaster recovery event may be triggered before the changing at block  110  occurs. For example, in a. Unisys Dorado system, this may include changing to an Up state the operating state for operating devices with an expected Reserved operating state during steady-state operations. 
         [0017]      FIG. 2  is a flow chart illustrating a method for configuring an application to monitor and correct device operating states in a disaster recovery environment, according to one embodiment of the disclosure. The method  200  may begin at block  202  with building into an application&#39;s pool files the devices to be monitored and the expected state for each device. What devices should be included along with their expected states may be defined through consultation with a customer automation analyst. At block  204 , the method may include writing one or more instructions to the application&#39;s code to monitor device operating states, and to correct the operating state for each device for which the operating state is different than the expected operating state. At block  206 , the method may include writing one or more instructions to the application&#39;s code to update the application&#39;s pool files to change the expected state for one or more devices after a disaster recovery event is triggered. For example, with this configuration in a Unisys Dorado system, after a disaster recovery event is triggered, the application may update the application&#39;s pool files using console keyins or menu-driven updates to change the operating state for operating devices with an expected Up operating state to an expected Reserved operating state. Additionally in a Unisys Dorado system, the application may update the application&#39;s pool files to change the operating state for operating devices with an expected Reserved operating state to an expected Up operating state. At block  208 , the method may include restarting the application. Upon restart, the expected states are read into memory, and the expected state instructions are acted upon as configured until changed or removed. 
         [0018]      FIG. 3  illustrates software environment, according to one embodiment of the disclosure. For example, the methods and software described with respect to  FIGS. 1-2  may be executed within the  FIG. 3  software environment. The software environment  300  may include an application  302  and a plurality of operating devices  304 ,  306 ,  308 , and  310 . The application  302  may be configured to monitor and correct the operating states of the operating devices  304 ,  306 ,  308 , and  310 . The application may be, for example, the Unisys Shared Object Manager Application, that has been configured with an expected state attribute, allowing the SOMA application to monitor and change the operating states for operating devices  304 ,  306 ,  308 , and  310 , as is done in method  100  described above with respect to  FIG. 1 . 
         [0019]      FIG. 4  illustrates a computer system  400  adapted according to certain embodiments of a server and/or a user interface device for implementing embodiments of the disclosure, according to one embodiment of the disclosure. For example, computer system  400  may implement each of the embodiments illustrated in  FIGS. 1-3 . The central processing unit (“CPU”)  402  is coupled to the system bus  404 . The CPU  402  may be a general purpose CPU or microprocessor, graphics processing unit (“GPU”), and/or microcontroller. The present embodiments are not restricted by the architecture of the CPU  402  so long as the CPU  402 , whether directly or indirectly, supports the operations described herein. The CPU  402  may execute the various logical instructions according to the present embodiments. 
         [0020]    The computer system  400  may also include random access memory (RAM)  408 , which may be synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), or the like. The computer system  400  may utilize RAM  408  to store the various data structures used by a software application. The computer system  400  may also include read only memory (ROM)  406  which may be PROM, EPROM, EEPROM, optical storage, or the like. The ROM may store configuration information for booting the computer system  400 . The RAM  408  and the ROM  406  hold user and system data, and both the RAM  408  and the ROM  406  may be randomly accessed. 
         [0021]    The computer system  400  may also include an input/output (I/O) adapter  410 , a communications adapter  414 , a user interface adapter  416 , and a display adapter  422 . The I/O adapter  410  and/or the user interface adapter  416  may, in certain embodiments, enable a user to interact with the computer system  400 . In a further embodiment, the display adapter  422  may display a graphical user interface (GUI) associated with a software or web-based application on a display device  424 , such as a monitor or touch screen. 
         [0022]    The I/O adapter  410  may couple one or more storage devices  412 , such as one or more of a hard drive, a solid state storage device, a flash drive, a compact disc (CD) drive, a floppy disk drive, and a tape drive, to the computer system  400 . According to one embodiment, the data storage  412  may be a separate server coupled to the computer system  400  through a network connection to the I/O adapter  410 . The communications adapter  414  may be adapted to couple the computer system  400  to a network, which may be one or more of a LAN, WAN, and/or the Internet. The user interface adapter  416  couples user input devices, such as a keyboard  420 , a pointing device  418 , and/or a touch screen (not shown) to the computer system  400 . The display adapter  422  may be driven by the CPU  402  to control the display on the display device  424 . Any of the devices  402 - 422  may be physical and/or logical. 
         [0023]    The applications of the present disclosure are not limited to the architecture of computer system  400 . Rather the computer system  400  is provided as an example of one type of computing device that may be adapted to perform the functions of a server and/or the user interface device  410 . For example, any suitable processor-based device may be utilized including, without limitation, personal data assistants (PDAs), tablet computers, smartphones, computer game consoles, and multi-processor servers. Moreover, the systems and methods of the present disclosure may be implemented on application specific integrated circuits (ASIC), very large scale integrated (VLSI) circuits, or other circuitry. In fact, persons of ordinary skill in the art may utilize any number of suitable structures capable of executing logical operations according to the described embodiments. For example, in some embodiments, aspects of the computer system  400  may be virtualized for access by multiple users and/or applications. 
         [0024]    Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the present invention, disclosure, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.