Kernel swapping systems and methods for recovering a network device

In certain embodiments, a method is disclosed for recovering a failed client device in a network. The method includes booting a failed one of a plurality of client devices in the network with a generic image having a generic kernel usable with each of the plurality of client devices. The method further includes downloading, using said generic kernel, from at least one backup server an abbreviated kernel uniquely associated with the failed client device, the abbreviated kernel comprising substantially less data than an original kernel of the failed client device immediately prior to failure of the failed client device, the abbreviated kernel comprising a boot kernel image and at least one device driver. The method includes swapping the abbreviated kernel with the generic kernel; restoring, using said abbreviated kernel, remaining backup data from the at least one backup server to the failed client device; and rebooting the failed client device.

BACKGROUND

The present disclosure relates to data recovery and, in particular, to recovery systems and methods for a computer network having multiple client devices.

2. Description of the Related Art

Computers have become an integral part of business operations such that many banks, insurance companies, brokerage firms, financial service providers, and a variety of other businesses rely on computer networks to store, manipulate, and display information that is constantly subject to change. Oftentimes, the success or failure of an important transaction may turn on the availability of information that is both accurate and current. Accordingly, businesses worldwide recognize the commercial value of their data and seek reliable, cost-effective ways to protect the information stored on their computer networks.

As can be appreciated, serious errors or system failures, such as a hard drive crash or motherboard replacement, can be catastrophic if computer systems and their data is not protected. To protect their data, some administrators create a disc image in a format defined by the International Organization for Standardization (ISO) (hereinafter referred to as an “ISO image”) that contains the entire system kernel and device drivers for a specific client computing device having a unique set of hardware and software settings. In the case of a disaster, this ISO image can be loaded, booted and used to recover or rebuild the particular failed system by reinstalling the operating system and device drivers.

Each ISO image, however, is specific to a client device and can represent a rather large image. For instance, in a LINUX environment, such images can be on the order of a gigabyte (GB). Thus, in business enterprises having hundreds or thousands of client devices, the resources needed to store and update the ISO images for all the client devices can be extensive and costly.

SUMMARY

In view of the foregoing, a need exists for improved backup and recovery systems and methods for a computer network environment. For instance, there is a need for a recovery solution that does not require a full ISO image to be generated and stored for each client device on a network to protect such devices and/or data from being lost in an unanticipated failure.

Certain embodiments of the invention are provided for complete system recovery including a generic solution that can be used for any one of a plurality of different network computing devices. For instance, certain inventive solutions utilize a multi-step process for performing complete system recovery. First, a generic image is used to boot a failed client system. Second, an abbreviated or minimum kernel is retrieved from a backup server and swapped for the standard kernel of the generic image. Finally, the minimum kernel is used to obtain the remaining backup data of the client device to complete the system recovery.

In certain embodiments, a method is disclosed for recovering a failed client device in a computer network. The method includes booting a failed one of a plurality of client computing devices in a computer network with a generic image having a generic kernel usable with each of the plurality of client computing devices. The method further includes downloading, using said generic kernel, from at least one backup server an abbreviated kernel uniquely associated with the failed client computing device, the abbreviated kernel comprising substantially less data than an original kernel of the failed client computing device immediately prior to failure of the failed client computing device, the abbreviated kernel comprising a boot kernel image and at least one device driver. The method also comprises swapping the abbreviated kernel with the generic kernel; restoring, using said abbreviated kernel, remaining backup data from the at least one backup server to the failed client computing device; and rebooting the failed client computing device.

In certain embodiments, a data recovery system is disclosed comprising a plurality of client computing devices and at least one backup server in network communication with the plurality of client computing devices. The at least one backup server stores for each of the plurality of client computing devices at least one abbreviated kernel uniquely associated with the corresponding client computing device. Each abbreviated kernel comprises substantially less data than an original kernel of the corresponding client computing device and includes a boot kernel image and at least one device driver. The data recovery system also includes a storage medium comprising a generic image having a standard kernel usable to boot each of the plurality of client computing devices, wherein the generic image enables a failed client computing device of the plurality of client computing devices to: (1) download from the at least one backup server the abbreviated kernel corresponding to the failed client computing device, and (2) swap the downloaded abbreviated kernel with the standard kernel.

A system is disclosed for recovering a failed client device, the system comprises means for booting a failed one of a plurality of client computing devices in a computer network, said means for booting storing a generic image having a generic kernel usable with each of the plurality of client computing devices. The system also includes means for storing at least one abbreviated kernel for each of the plurality of client computing devices, each abbreviated kernel comprising substantially less data than an original kernel of the corresponding client computing device and including a boot kernel image and at least one device driver. The system further includes means for downloading from said storing means a selected one of the plurality of abbreviated kernels that is uniquely associated with the failed client computing device; and means for swapping the selected abbreviated kernel with the generic kernel and restoring remaining backup data from said storing means to the failed client computing device.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

As will be seen from the disclosure herein, certain embodiments of systems and methods are provided for improving backup and recovery of client devices in a computer network environment. For instance, certain embodiments of the invention include a recovery solution that does not require a full ISO image to be created for each client device on the network to protect such devices and/or data from being lost in an unanticipated failure.

In certain embodiments, a multi-step process is performed to recover a failed client device. First, a generic boot image having a standard kernel usable with multiple client devices is used to boot the failed client system. Next, an abbreviated or minimum kernel specific to the failed client device is obtained from a backup server and swapped with the standard kernel of the generic image. Finally, the minimum kernel is used to obtain the remaining backup data of the client device to perform a complete system recovery.

The features of the systems and methods will now be described with reference to the drawings summarized above. Throughout the drawings, reference numbers are re-used to indicate correspondence between referenced elements. The drawings, associated descriptions, and specific implementation are provided to illustrate embodiments of the invention and not to limit the scope of the disclosure.

FIG. 1illustrates a block diagram of a recovery system100according to certain embodiments of the invention. In certain embodiments, the system100allows for the complete recovery of one or more failed client devices without requiring a customized boot-up disk for each client device. Rather, the system100can execute a multi-stage recovery process that utilizes a generic image for all client devices to download an abbreviated or minimum kernel that is swapped for a standard kernel of the generic image. The minimum kernel is then configured to obtain the remainder of the backed up client data (e.g., libraries, utilities, applications) to perform a complete recovery of the failed client system.

As shown, the system100comprises a plurality of client devices102a,102band102c(collectively “102”) that communicate with a backup server104via a network106. Each of the client devices102comprises a computing device configured to manipulate, generate or otherwise process data. In certain embodiments, the client device102comprises a desktop computer. In other embodiments, the client device102can comprise a server, a workstation, a virtual machine, a laptop, a notebook, a personal computer, a smartphone, a PDA, combinations of the same or the like.

The backup server104comprises one or more destination devices for storing backup data relating to the client devices102. For instance, in certain embodiments, the backup server104comprises and/or communicates with a plurality of storage devices in network communication with each other and coupled to the network106. In such embodiments, the backup server104can comprise one or more storage manager devices and/or storage controller devices that direct the storage and retrieval of backup data. U.S. Pat. No. 7,389,311, issued Jun. 17, 2008, which provides additional details of systems and methods for directing control of backup operations in a network system such as the recovery system100, is hereby incorporated herein by reference in its entirety to be considered part of this specification.

More particularly, in certain embodiments, the backup server104comprises one or more storage devices that include any type of media capable of storing data, such as backup data sent from one or more client devices102. For example, such storage devices may comprise magnetic storage (such as a disk or a tape drive) or other type of mass storage. In certain embodiments, the backup server can comprise a network attached storage device (NAS) or a storage area network (SAN).

In yet other embodiments, the storage devices may be implemented as one or more storage “volumes” that include physical storage disks defining an overall logical arrangement of storage space. For instance, disks within a particular volume may be organized as one or more groups of redundant array of independent (or inexpensive) disks (RAID). In certain embodiments, either or both of the storage devices may include multiple storage devices of the same or different media.

The illustrated network106advantageously comprises any means for communicating data between two or more systems or components. It certain embodiments, the network106comprises a computer network. For example, the network106may comprise a public network such as the Internet, virtual private network (VPN), token ring or TCP/IP based network, wide area network (WAN), local area network (LAN), an intranet network, point-to-point link, a wireless network, cellular network, wireless data transmission system, two-way cable system, interactive kiosk network, satellite network, broadband network, baseband network, combinations of the same or the like.

As shown, client device102afurther comprises a kernel108aand device drivers110a, client device102bfurther comprises a kernel108band device drivers110b, and client device102cfurther comprises a kernel108cand device drivers110c. In certain embodiments of the invention, the kernels108of the client devices102are associated with a LINUX operating system, and each kernel108reflects a customized configuration for the particular client device102and its applications, hardware, and other system resources. For example, in certain embodiments, the kernel108can reach a size of approximately one GB or more.

Each kernel108further comprises device drivers110that are associated with the particular client device102. Such device drivers110generally provide means for higher level computer programs executing on the client device102to interact with the hardware resources and/or peripheral devices associated with the client device102.

The backup server104provides means for storing data used to recover a failed client device102. In particular, the backup server104comprises backup data112for each of the client devices102. For instance, such backup data112can be obtained from the client devices102based on a job schedule maintained by the backup server104or other management device, or such backups can be performed based on user preferences, on an as-needed basis or the like.

The backup data112comprises a plurality of abbreviated kernels114that correspond to the kernels108of each of the client devices102. Such abbreviated kernels114differ, however, from the complete kernels108in that they contain a reduced or minimum amount of data needed to initiate recovery of the associated client system102.

In certain embodiments, the abbreviated kernel114comprises a basic kernel image and select ones of the device drivers110needed to recover a failed client system102. For example, in certain embodiments, the abbreviated kernel114comprises a network device driver for initiating communication with the backup server104to obtain other backup data112of the failed client device102. The abbreviated kernel may further include, without limitation, device drivers for an Integrated Drive Electronics (IDE) bus, Small Computer Systems Interface (SCSI) interfaces or SCSI-based drives or other peripheral components, Ethernet cards, cluster services, graphical video cards, combinations of the same or the like. In certain embodiments, the abbreviated kernel114can be updated with each backup operation of the client device102and/or can be modified whenever changes are detected to the kernel108of the client system102.

In certain embodiments, the abbreviated kernel114does not comprise other non-critical data, such as libraries, utilities or other applications. For instance, in certain embodiments, the abbreviated kernel114does not comprise sufficient information to boot up the client device102. As such, the abbreviated kernel114advantageously comprises a minimum or substantially reduced size in comparison with the associated complete kernel108. For instance, in certain embodiments, the abbreviated kernel114can comprise a size of between approximately 30 megabytes (MB) and approximately 250 MB. As can be appreciated, in certain embodiments, the abbreviated kernel114can be less than one-fourth the size of a corresponding full kernel, less than one-tenth the size of the corresponding full kernel, or even less than one-twentieth the size of the corresponding full kernel.

The backup data112on the backup server104further comprises, for example, utilities116, libraries118and applications120of each of the client systems102. For instance, the utilities116can comprise configuration utilities, resource and/or performance management utilities, virus software, network management utilities, volume management utilities, disk management utilities, software configuration management utilities, storage installer utilities, package manager utilities, security configuration manager utilities (e.g., SELinux) combinations of the same or the like. Moreover, libraries118can comprise dynamic link libraries (DLLs) and/or statically linked libraries (e.g., .afiles).

The applications120may comprise, for example, software applications that interact with a user to process data and may include, for example, database applications (e.g., Oracle, DB2, or Sybase applications), word processors, spreadsheets, financial applications, management applications, e-commerce applications, browsers, combinations of the same or the like. For example, in certain embodiments, the applications120may comprise one or more of the following, without limitation: Web servers such as Apache Tomcat, mail clients such as Thunderbird or Evolution, office applications such as Open Office Suite, or other applications such as Lotus Notes.

It will also be understood that the backup data112can comprise other information not specifically illustrated inFIG. 1that is backed up for the client devices102. For instance, the backup data112can comprise configuration information, files, folders, and other information that is backed up from the client devices102. Moreover, although the different types of data (e.g., utilities116, libraries118, applications120, etc.) are illustrated for exemplary purposes as being grouped together, it will be understood that data from each client device102can be stored together in one or more storage locations.

The recovery system100further comprises a generic image122having a standard boot ISO image usable to boot any of the client devices102following a system or device failure. In certain embodiments, the generic image122comprises a standard SUSE LINUX image available from Novell, Inc. (Waltham, Mass.) capable of booting any LINUX client. For instance, in certain embodiments, the generic image122is stored on an optical disc, such as a compact disc (CD) or digital versatile disc (DVD). In yet other embodiments, the generic image122can be stored on other types of bootable media, such as a universal serial bus (USB) flash drive, a memory card, a hard drive or the like.

Because the generic image122can be used for any of the client devices102, the image122is generally larger than the abbreviated kernel114. For instance, the generic image122can be of a size on the order of one GB. The generic image122can comprise, for example, a generic SUSE Linux image, comprising device drivers for displays, keyboards, mice, network cards, storage devices, or combinations of the same and the like. The generic image122may also comprise software configured to assist in the retrieval of the backed up kernel during a recovery process, for example. However, due to the substantially constant nature of the generic image122, such an image can be provided once during the lifetime of the client device102, in certain embodiments.

As discussed in more detail below, the generic image122comprises enough information to enable a failed client device102to boot up and download from the backup server104the abbreviated kernel114that corresponds to the failed client device102. For instance, the generic image122can be used to detect the client device's hard drive in order to store data and to initialize an Ethernet or other network communication in order to go online. Once the abbreviated kernel114is obtained, the abbreviated kernel114is swapped for the standard kernel associated with the generic image122.

FIG. 2illustrates a flow chart of an exemplary embodiment of a recovery process200for a failed client device in a network system. The process200advantageously performs recovery of the failed client device without requiring the entire kernel of the client device to be backed up beforehand. For exemplary purposes, the recovery process200will be described herein with reference to the components of the recovery system100ofFIG. 1.

The process200begins after a failure of a client device102has been detected. For instance, a user or system administrator can determine that the client device102has experienced a failure or other loss of data. At Block205, the client device102is booted up using the generic image122. In certain embodiments, the user or system administrator loads the optical disc containing the generic image122and boots the client device102. During this step, the client device102executes under the direction of the standard kernel associated with the generic image122. In certain embodiments, booting from the generic image122at least enables detection and recognition of the client device's hard drive for storage of data and initiates an Ethernet or other network connection to establish communication with the backup server104.

At Block210, the client device102downloads from the backup server104the abbreviated kernel114for the particular client device102. In certain embodiments, the user or other individual enters the name or other identification of the client device102that is being recovered in order to download the appropriate abbreviated kernel114. In yet other embodiments, the appropriate abbreviated kernel114is automatically downloaded based on information provided by the client device102, such as an internet protocol (IP) address, a media access control (MAC) address or the like.

Once the abbreviated kernel114is downloaded, the kernel114is swapped with the standard kernel of the generic image122(Block215). In certain embodiments, the client device102executes a “kexec.exe” command to perform the swap. In certain embodiments, the change in the kernel execution from the standard kernel to the abbreviated kernel114represents a total kernel swap, which can include kernel address space and/or device drivers.

Once the client device102is executing under the control of the abbreviated kernel114, the remaining device drivers, utilities116, libraries118and applications120are downloaded from the client system (Block220). At Block225, the recovery process200ends with the rebooting of the client device102.

FIG. 3illustrates a flow chart of another embodiment of a recovery process300usable by the recovery system100ofFIG. 1. Like the process200, the recovery process300advantageously performs recovery of the client device without requiring the entire kernel of the client device to be backed up beforehand. For exemplary purposes, the recovery process300will be described herein with reference to the components of the recovery system100ofFIG. 1. Moreover, steps or acts of the process300that have been described with respect to the process200ofFIG. 2will not necessarily be re-described in detail.

The process300begins at Block305by detecting a failure or malfunction of at least one of a plurality of client devices102on a network system. For example, in certain embodiments, the detection comprises an automatic detection by a network device, such as a storage management module. In yet other embodiments, a user or system administrator can determine that the client device102has experienced a failure or other loss of data.

At Block310, the process300receives the bootable generic image122. In certain embodiments, the generic image122is stored on an optical disc and can be used with multiple ones of the plurality of client devices102. In yet other embodiments, the generic image122is maintained on other memory, such as a bootable USB drive or the like. At Block315, the client device102is booted up using the generic image122, which includes a standard kernel that enables detection and recognition of the client device's hard drive for storage of data, initiates an Ethernet or other network connection to establish communication with the backup server104and/or enables communication through one or more user interface devices.

Once the network connection is established, the client device102queries the backup server104for a listing of abbreviated kernels114stored on the backup server104that are associated with the client device102. For instance, the backup server104may comprise a plurality of abbreviated kernels114associated with past backups of the client device102. In certain embodiments, the query process is initiated by the user entering a client device name, IP address or other unique identification information.

At Block325, the backup server104provides an indication of the stored abbreviated kernels114. In certain embodiments, the client device102displays the indication to the user via a user interface for selection of a particular abbreviated kernel114by the user. At Block330, the user selects the abbreviated kernel114to be downloaded from the backup server104. In certain embodiments, the selection is made via a graphical user interface, such as via a drop down list, a selection window or the like. In certain embodiments, the most recently-backed up abbreviated kernel114is designated as the default abbreviated kernel absent selection by the user of another abbreviated kernel. For instance, in certain embodiments, the default abbreviated kernel can be automatically downloaded absent user instructions to the contrary.

Once the selected abbreviated kernel114is downloaded from the backup server104to the client device102(Block335), the abbreviated kernel114is swapped with the standard kernel of the generic image122, as discussed above (Block340). At Block345, under the operation of the downloaded abbreviated kernel114, the remaining device drivers, utilities, libraries and other data are downloaded from the backup server104to the client device102to enable a complete system recovery as of the time of the most recent backup. At Block350, the process300is finalized with a reboot of the client device102.

In certain embodiments of the invention, data backup systems and methods may be used in a modular storage management system, embodiments of which are described in more detail in U.S. Pat. No. 7,035,880, issued Apr. 5, 2006, which is hereby incorporated herein by reference in its entirety. For example, the data recovery system may be part of a storage operation cell that includes combinations of hardware and software components directed to performing storage operations on electronic data. Exemplary storage operation cells usable with embodiments of the invention include CommCells as embodied in the QNET storage management system and the QINETIX storage management system by CommVault Systems, Inc. (Oceanport, N.J.), and as further described in U.S. Pat. No. 7,454,569, issued Nov. 18, 2008, which is hereby incorporated herein by reference in its entirety. In yet other embodiments, the data backup is performed according to one or more migration and/or information lifecycle management (ILM) policies.

Systems and modules described herein may comprise software, firmware, hardware, or any combination(s) of software, firmware, or hardware suitable for the purposes described herein. Software and other modules may reside on servers, workstations, personal computers, computerized tablets, PDAs, and other devices suitable for the purposes described herein. Software and other modules may be accessible via local memory, via a network, via a browser, or via other means suitable for the purposes described herein. Data structures described herein may comprise computer files, variables, programming arrays, programming structures, or any electronic information storage schemes or methods, or any combinations thereof, suitable for the purposes described herein. User interface elements described herein may comprise elements from graphical user interfaces, command line interfaces, and other interfaces suitable for the purposes described herein.

Embodiments of the invention are also described above with reference to flow chart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flow chart illustrations and/or block diagrams, and combinations of blocks in the flow chart illustrations and/or block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the acts specified in the flow chart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the acts specified in the flow chart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the acts specified in the flow chart and/or block diagram block or blocks.

In addition, methods and functions described herein are not limited to any particular sequence, and the acts or blocks relating thereto can be performed in other sequences that are appropriate. For example, described acts or blocks may be performed in an order other than that specifically disclosed, or multiple acts or blocks may be combined in a single act or block.