Backups using application maps

Methods and systems are described for generating graphical maps showing the backup degrees of data modules located across one or more client computers in a network, and directing backup and recovery operations for those data modules. According to one embodiment, the backup system sends information requests to the client computers, and receives in response the backup degrees of the data modules contained by the client computers. The backup system then generates and displays the graphical map. The backup system then can direct backup and recovery operations by sending operation requests to the client computers and updating the graphical map when necessary. Other embodiments are also described and claimed.

FIELD OF THE INVENTION

Embodiments of the present invention relate generally to computer networks and computer backups. More particularly, embodiments of the invention relate to generating and displaying graphical maps of backup statuses, and directing backup and recovery operations from those graphical maps.

BACKGROUND

Organizations are increasingly deploying large networks and network-based applications to support internet and intranet technologies. These networks connect multiple machines, and often, many of these machines have multiple data modules that are important to the running of the network or the network-based application. A key benefit of adopting such large networks and network-based applications are scalability of resources, accessibility, and improved reliability of operations. It is often difficult, however, to use existing backup systems to view the configurations of all of the machines connected to the network, or to view the backup status of all of the data modules located on those machines.

One approach to viewing these configurations of multiple machines and the backup statuses of their data modules is to check the configuration of each machine individually, and the backup status of each data module on each machine individually. Handling the viewing of this information separately for each machine is resource intensive, difficult to perform concurrently, and becomes unwieldy from a management perspective as the number of machines in the network increases.

DETAILED DESCRIPTION

Various modifications and changes can be made to the embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

The embodiments can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes can be altered within the scope of the invention.

Reference in the specification to a “data module” means one or more data files or data file locations (such as file directories) stored on a client computer that have been collectively assigned a data module name. A data file can be any type of data file, such as a document file, an image file, an audio file, a video file, a multimedia file, a database or other data structure, a program source code file, an executable program file, a website front-end or back-end component file, a markup file, or any other type of data file that can be stored in a non-transitory computer readable medium.

Reference in the specification to “backup operations” or “backup and recovery operations” means a wide array of operations that can include but are not limited to backing up data or recovering backed up data. These terms can also refer, for example, to destructively rolling back to a previously backed up state, purging or deleting backups, editing a backup retention and expiration policy, cloning a backup, staging (cloning to another device) a backup, renaming or otherwise editing metadata for a backup, receiving or sending a report or notification relating to the status of a backup operation, searching for specific data, and searching for a specific backup. This list of possible backup operations is exemplary and not intended to be exhaustive.

The embodiments deal generally with grouping one or more data modules into a consistency group. The embodiments also deal generally with running a backup or recovery operation over all of the data modules in a consistency group.

FIG. 1is a diagram of one embodiment of a set of networked client computers to be backed up, and a backup system. The embodiment ofFIG. 1illustrates a plurality of client computers123. Each client computer of the set of client computers123can be any type of client computer, such as a server, a personal computer (e.g., desktops, laptops, and tablets), a virtual machine, a “thin” client, a personal digital assistant (PDA), a Web appliance, a gaming device, a media player, a mobile phone (e.g., Smartphone), or any other machine with similar capabilities. InFIG. 1, the client computers123are connected to a network121. Network121can be any type of network, such as a local area network (LAN), a wide area network (WAN) such as Internet, a corporate intranet, a metropolitan area network (MAN), a storage area network (SAN), a bus, or a combination thereof, wired and/or wireless.

In addition to the client computers123, the network121is also shown to connect to main server101and storage node127. In other embodiments, the network121can be connected to other systems as well.

The embodiment ofFIG. 1illustrates the main server101as connected to the network121. The main server101can be any type of device, such as a server, a personal computer (e.g., desktops, laptops, and tablets), a virtual machine, a “thin” client, a personal digital assistant (PDA), a Web appliance, a gaming device, a media player, a mobile phone (e.g., Smartphone), or any other machine with similar capabilities. In some embodiments, the main server101executes a profiler221to send requests to and receives information messages from client computers123. This is diagrammed further inFIG. 2andFIG. 3a. In some embodiments, the main server101executes a backup system213. Embodiments of the main server101are described in more detail in reference toFIG. 2.

The embodiment ofFIG. 1illustrates the management console111as connected to the main server101. The management console111is a component that is capable of displaying an output from a user, and can also be capable of receiving an input from a user. In some embodiments, inputs can be gathered through a user interface. In some embodiments, the management console111is the origin of requests to direct backup and recovery operations over one or more data modules (as described inFIG. 3b). In some embodiments, the management console111is where the graphical map401is displayed (as described in Block331ofFIG. 3aand as illustrated inFIGS. 4a-4dandFIGS. 5a-5b). InFIG. 1, the management console111is connected to the main server101. This connection can be through any type of network such as a local area network (LAN), a wide area network (WAN) such as Internet, a corporate intranet, a metropolitan area network (MAN), a storage area network (SAN), a bus, or a combination thereof, wired and/or wireless. In one embodiment, the management console111is connected to the main server101through the network121.

The management console111can be any type of device, such as a server, a personal computer (e.g., desktops, laptops, and tablets), a virtual machine, a “thin” client, a personal digital assistant (PDA), a Web appliance, a file server, a gaming device, a network device, a media player, a mobile phone (e.g., Smartphone), or any other machine with similar capabilities. In one embodiment, the management console111is not a separate machine from the main server101, but instead is simply one or more hardware components of the main server that are configured to direct input into the main server101and/or display output from the main server101. These components can include, but are not limited to, a keyboard, a virtual keyboard, a mouse, a touchpad, a tilt wheel, a scroll ball, a trackball, a pointing stick, a joystick, a wheel, one or more physical switches, a touchscreen, computer monitor, a television screen, a touch screen, tactile electronic display, a Braille screen, a Cathode ray tube (CRT), a Storage tube, a Bistable display, Electronic paper, Vector display, Flat panel display, Vacuum fluorescent display (VF), Light-emitting diode (LED) displays, Electroluminescent display (ELD), Plasma display panels (PDP), Liquid crystal display (LCD), Organic light-emitting diode displays (OLED), a projector, a Head-mounted display, a punchcard, a printer, any other input or output device, or any combination thereof.

In another alternate embodiment, the input capabilities of the management console111are entirely non-existant. In this embodiment and in other embodiments, the origin of requests to direct backup and recovery operations over one or more data modules (as described inFIG. 3b) can instead be one of the client computers123or an automated scheduling software or hardware unit within the main console101.

The embodiment ofFIG. 1also illustrates the backup storage node127as connected to the network121. The backup storage node127is where the backups created by the processes described in the present invention are stored. Backup storage node127can be a storage server used for any of various different purposes, such as to provide multiple users with access to shared data and/or to back up mission critical data. Backup storage node127can be, for example, a file server (e.g., an appliance used to provide NAS capability), a block-based storage server (e.g., used to provide SAN capability), a unified storage device (e.g., one which combines NAS and SAN capabilities), a nearline storage device, a direct attached storage (DAS) device, a tape backup device, or essentially any other type of data storage device. Backup storage node127can have a distributed architecture, or all of its components can be integrated into a single unit. Backup storage node127can be implemented as part of an archive and/or backup storage system such as a de-duplication storage system available from EMC® Corporation of Hopkinton, Mass.

The machine or machines that make up backup storage node127can include one or more storage or memory units, including hard disk drives, optical drives, tape drives, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), Redundant Arrays of Independent Disks (RAID), flash memory, magneto-optical memory, holographic memory, memristor-based memory, bubble memory, magnetic drum, memory stick, Mylar® tape, smartdisk, thin film memory, zip drive, or similar storage or memory hardware.

The backup storage node127can include hardware or software modules that conduct backup functions such as deduplication. In one embodiment, backup storage node127can include a deduplication storage module that is configured to segment a data file to be stored in the backup storage node127into multiple segments according to a variety of segmentation policies or rules. Such a deduplication storage module can be a hardware or software module, and is configured to stores a segment in a storage unit if the segment has not been previously stored in the storage unit. Data stored in the storage units can be stored in a compressed form (e.g., lossless compression: Huffman coding, Lempel-Ziv Welch coding; delta encoding: a reference to a segment plus a difference; subsegmenting: a list of subsegments or references to subsegments, etc.). Different storage units within the backup storage node127can use different compression methods (e.g., main or active storage unit from other storage units, one storage unit from another storage unit, etc.).

In another alternate embodiment, the backup storage node127can be a cloud computing network storage system. In another alternate embodiment, the backup storage node127can not exist as a separate machine or set of machines connected via the network121, but the backups can instead be stored on a storage unit located on the main server101, on the management console111, or on the client machines123.

The embodiment ofFIG. 1illustrates that each of the data modules125are located on one of the clients123. For a data module to be “located on” or “contained on” a client means that that the data module consists of one or more data files or data file locations (such as file directories) stored on that particular client computer that have been collectively assigned a data module name. The data module name and the information about which data files or data file locations it corresponds to on that client computer can be stored on the client computer as well, in one embodiment. In another embodiment, this information can instead be stored on the main server101. In particular,FIG. 6aandFIG. 6billustrate embodiments in which this information is stored through the profiler221in a profile information store227, described in further detail in reference toFIG. 2. In another embodiment, this information can be stored on the management console11l, on the backup storage node127, or on another machine connected to the network121that is not pictured inFIG. 1.

In the embodiment ofFIG. 1, the following data module assignments are illustrated. Data module1(a)141is located on client computer1131, Data module2(a)151and Data module2(b)153are both located on client computer2133, Data module3(a)161and Data module3(b)163are both located on virtual client computer3135.

The client computers123can be physical computers, such as physical client computer1131and client computer2133. Alternately, the client computers123can be virtual machines, such as virtual client computer135. Alternately, the client computers123can be a collection of client computers including both physical client computers and virtual client computers, as illustrated inFIG. 1.

Not every client computer in the network must contain a data module, though each of the client computers123illustrated in the embodiment ofFIG. 1are illustrated as containing at least one. In an alternate embodiment, a client computer can exist that does not have a data module. A client computer can also have more than one data module. For example, physical client computer2133is depicted as containing both data module2(a)151and data module2(b)153; similarly, virtual client computer3135is depicted as containing both data module3(a)161and data module3(b)163. In the case of virtual client computers, both the virtual client computer and the physical client computer that it is run from can have their own separate data modules. For instance, virtual client computer3135contains two data modules, and is illustrated as being run from physical client computer2133, which itself contains two data modules.

In one embodiment, the client computers123can be collection of servers that work in concert to support an application that runs on the Internet or that runs on an intranet. For example, the application could be an application based on Sharepoint, Oracle, VDI, SAP, Exchange, SQL server, or similar applications. Each client computer of the client computers123can have a particular function in supporting this application, such as an SQL server, a web front-end server, a central administration server, an index server, a database server, an application server, a gateway server, a broker server, an active directory server, a terminal server, a virtualization services server, a virtualized server, a file server, a print server, an email server, a security server, a connection server, a search server, a license server, any other machine with similar functionality, or any combination thereof. The client computers123can also include machines other than those listed.

Each client computer of the client computers123can store any form of data files and can run any form of application that may need to be backed up. The data modules of the client computers can include any type of data file, such as a database (such as a configuration database, a content database, a search database, etc.) or other data structure, a program source code file, an executable program file, an application service (such as a web application service, a search service, a central admin service, a managed metadata service, a state service, a usage and health service, a user profile service, a web analytics service, a performance service, a workflow service, etc.), a website front-end or back-end component file, a markup file, a configuration file, or any other type of data file. As previously noted, the data file can also be a document file, an image file, an audio file, a video file, a multimedia file, or any other type of data file that can be stored in a non-transitory computer readable medium. The data module can also be a full machine backup, as illustrated in data module441ofFIGS. 4a, 4b, 4c, 4d, 5a, and5b.

FIG. 2is a diagram of one embodiment of the main server101. The main server includes, but is not limited to, a network interface205, a memory207, and a processor203that is coupled to the network interface205and the memory207. In alternate embodiments, the main server101can contain other hardware components as well.

The network interface205can be a wired interface (such as a bus or port), a wireless interface, or a combination of the two. The network interface205is configured at least to connect to the network121. In other embodiments, the network interface205can be configured to connect to other networks as well.

The memory207can include one or more storage or memory units, including hard disk drives, optical drives, tape drives, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), Redundant Arrays of Independent Disks (RAID), flash memory, magneto-optical memory, holographic memory, memristor-based memory, bubble memory, magnetic drum, memory stick, Mylar® tape, smartdisk, thin film memory, zip drive, or similar storage or memory hardware.

In one embodiment, the processor203can be configured to execute a backup system213. In one embodiment, the backup system213is a centralized backup software system, such as the NetWorker® software available from EMC® Corporation of Hopkinton, Mass. The backup system213can alternately be a centralized file-viewing or file-mapping system. The backup system213is capable of interacting with the network interface205. In one embodiment, the backup system213is also capable of interacting with the management console111directly. In some embodiments, the backup system213is not executed from the main server101. For instance, the backup system213can be executed from management console111, the backup storage node127, or one of the client computers123.

In some embodiments, the backup system213includes or interfaces with a profiler221. The profiler221is configured to gather data about the client computers123and their data modules125. In one embodiment, the profiler221is configured to send information requests to client computers123requesting backup degree regarding their data modules, and is further configured to receive information messages from the client computers containing that backup degree. This process is described in more detail in blocks301and311ofFIG. 3a. In some embodiments, the profiler221then periodically polls the client computers123for changes in set of client computers123, such as the addition or removal of a client computer from the network, or for changes in the set of data modules125, such as the creation, movement, editing, or deletion of a data module.

In some embodiments, the profiler221includes or interfaces with a profile information store227. The profiler221uses the profile information store227to store information that the profiler221gathers from the information messages described in Block311ofFIG. 3a, which for each data module includes at least a data module name, the backup degree relating to the data module identified by the data module name, and the client computer name identifying the client computer on which the data module identified by the data module name is located. One embodiment of this is depicted inFIG. 6a. In some embodiments, the profiler221also gathers additional client computer information from these information messages, and also stores it in the profile information store227. One embodiment of the profile information store227including this information is depicted inFIG. 6b, with the additional client computer information located under column631.

The profile information store227can be a database, a table, a list, a matrix, an array, an arraylist, a tree, a hash, a flat file, an image, a queue, a heap, a memory, a stack, a set of registers, or any data structure that can hold data about one or more entities. Two embodiments of the profile information store227are provided inFIG. 6aandFIG. 6b.

In some embodiments, the profile information store227is stored in the memory207, or some other storage unit, of the main server101. In other embodiments, the consistency group information store227is not located on the main server101. For instance, the profile information store227can be located on the management console111, the backup storage node127, or one of the client computers123. In some embodiments, the consistency group manager223and the consistency group information store227are not located on the same machine.

In some embodiments, the backup system213includes or interfaces with a mapper223. The mapper223is configured to generate a graphical map401of the data gathered by the profiler221. In one embodiment, the graphical map401includes a graphical representation of each client computer of the one or more client computers, a graphical representation of each data module of the one or more data modules on each client computer, a graphical representation of which client computers contain which data modules, and a graphical representation of each data module's backup degree, wherein the graphical representation of each data module's backup degree is graphically correlated to the graphical representation of the data module that the backup degree describes. This process is described in more detail in Block321ofFIG. 3a. In some embodiments, the mapper223is also configured to graphically correlate a graphical representation of additional client computer information gathered by the profiler221to the graphical representation of the client computer. In some embodiments, the mapper223periodically updates the graphical map401if the profiler221detects a change in the client computers123or the data modules125, or if the director225completes an operation that changes the backup degree for one or more of the data modules125.

In some embodiments, the backup system213includes or interfaces with a director225. The director225is configured to direct a backup or recovery operation over one or more of the data modules125. In one embodiment, the director225operates by receiving an incoming operation request indicating that one of the data modules is to be backed up to a predetermined degree, and sending a data module operation request to the client computer containing the data module, the data module operation request indicating that the data module is to be backed up to the predetermined degree. This process is described in more detail inFIG. 3b. In some embodiments, the mapper223is configured to then update the graphical map401to reflect the changed backup degree of the data module, as described in Block371ofFIG. 3b. Further, in some embodiments, the director225can receive the incoming operation request for every data module contained on all of the one or more client computers connected to the network that is not backed up to the predetermined degree, as in Block381ofFIG. 3b.

In some embodiments, the profiler221, mapper223, and director225are executed from the processor203of the main server101. In other embodiments, at least one of these is not executed from the main server101. For instance, at least one of these can be executed from management console111, the backup storage node127, or one of the client computers123. In some embodiments, the backup system213is executed from a separate machine than one or more of the profiler221, mapper223, and director225is executed from. In some embodiments, all or some of the profiler221, mapper223, and director225can be executed on different machines.

FIG. 3ais a flow chart of one embodiment of a process for the creation of a graphical map401by the backup system213. The graphical map creation process begins with the profiler221sending an information request to each client computer of the one or more client computers123, the information request requesting a backup degree for each data module of the one or more data modules on the client computer, the backup degree describing the degree to which the data module is backed up (Block301). In some embodiments (not illustrated inFIG. 3a), the profiler221's information request also requests additional client computer information from the client computers123. The additional client computer information can include, but is not limited to, information regarding one of whether a client backup service is properly installed on the client computer, whether the client computer is properly configured for the client backup service to function, or whether the client backup service is updated to a predetermined version.

The client backup service can be a software or hardware module executed by one or more of the client computers123. This client backup service can any software or hardware module that allows a client to perform a backup or recovery operation over one or more of the data modules that it contains. In one embodiment, the client backup service can be a NetWorker® Application Module (such as the NetWorker® Module for Microsoft® Applications, the NetWorker® Module for Databases and Applications, the NetWorker® Module for SAP®, or the NetWorker® Module for MediTech®) available from EMC® Corporation of Hopkinton, Mass. In another embodiment, the client backup service can be any software or hardware module with similar functionality. In some embodiments, the client backup service can be executed from a different machine, such as the main server101, the management console111, or the backup storage node127, so long as it is still capable of performing backup and recovery operations over data modules located on one or more of the client computers123.

The graphical map creation process continues when the profiler221receives an information message from each client computer of the one or more client computers123, wherein each information message contains the backup degree for each data module of the one or more data modules on the client computer (Block311). The profiler221then uses the profile information store227to store information that the profiler221gathers from the information messages described in Block311ofFIG. 3a, which for each data module includes at least a data module name, the backup degree relating to the data module identified by the data module name, and the client computer name identifying the client computer on which the data module identified by the data module name is located. One embodiment of this is depicted inFIG. 6a.

As previously noted, in some embodiments, the profiler221also gathers additional client computer information from these information messages, and also stores it in the profile information store227. One embodiment of the profile information store227including this information is depicted inFIG. 6b, with the additional client computer information located under column631. The additional client computer information can include, but is not limited to, information regarding one of whether a client backup service is properly installed on the client computer, whether the client computer is properly configured for the client backup service to function, or whether the client backup service is updated to a predetermined version.

The graphical map creation process continues when the mapper223generates a graphical map401, wherein the graphical map401includes a graphical representation of each client computer of the one or more client computers123, a graphical representation of each data module of the one or more data modules on each client computer, a graphical representation of which client computers contain which data modules, and a graphical representation of each data module's backup degree, wherein the graphical representation of each data module's backup degree is graphically correlated to the graphical representation of the data module that the backup degree describes (Block321). Several embodiments of such a graphical map401are illustrated inFIGS. 4a, 4b, 4c, and 4d. The graphical representation of each data module's backup degree can take many forms, including, but not limited to, a percentage number, a pie chart, a color along a spectrum of colors, a bar graph, a rating along a predetermined minimum and maximum rating continuum, text, or any other numerical or graphical representation of the degree to which the corresponding data module is backed up. Several embodiments of such graphical representations of the backup degree are illustrated inFIGS. 4a, 4b, 4c, and4d.

For the graphical representation of each data module's backup degree to be “graphically correlated” to the graphical representation of the data module means that a correlation between the two graphical representations can be logically inferred based on a graphical orientation of the two graphical representations with respect to each other. For instance, the graphical correlation can be that the graphical representation of each data module's backup degree is overlaid over the graphical representation of each data module, as illustrated inFIGS. 4a, 4b, 4c, 4d, 5a, and 5b. In other embodiments (not illustrated in figures), this graphical correlation can take the form of one graphical representation displayed next to the other graphical representation, a line or arrow or shape linking the two graphical representations, a footnote or footnote-like icon linking one graphical representation to another that is displayed elsewhere, text denoting a correlation between one graphical representation and the other, or any other graphical manner of correlating one graphical representation with another graphical representation.

In some embodiments, the graphical map creation process continues when the mapper223checks whether the information messages received by the Profiler also contain additional client computer information, such as whether a client backup service is properly installed on the client computer, whether the client computer is properly configured for the client backup service to function, or whether the client backup service is updated to a predetermined version (Block325). If the information messages do not contain additional client computer information, then the mapper223continues with the process to Block331.

If information messages do contain additional client computer information, then the mapper223further generates a graphical representation of each unit of the additional client computer information, and graphically correlates the graphical representation of each unit of the additional client computer information with the graphical representation of the client computer that it describes (Block327). The graphical representation of each unit of the additional client computer information can take many forms, including, but not limited to, a percentage number, a pie chart, a color along a spectrum of colors, a bar graph, a rating along a predetermined minimum and maximum rating continuum, text, a modification of links between graphical representations in the existing graphical map401, or any other possible numerical or graphical representations of additional server information. Several embodiments of such graphical representations of the additional client computer information of the backup degree are illustrated inFIGS. 5aand 5b. In other embodiments, the graphical representations of the additional client computer information can take forms more similar the graphical representations of the backup degrees illustrated inFIGS. 4a, 4b, 4c, and 4d, or can take other forms not listed here that would reasonably convey the additional client computer information in the context of the graphical map401.

The graphical map creation process continues when the mapper223displays the graphical map401(Block331). In one embodiment, this occurs by the mapper223sending the generated graphical map401to the management console111, where the map is displayed on or through the management console Ill's output hardware. In another embodiment, the mapper223can instead display the graphical map401on or through output hardware of the main server101, the backup storage node127, or one of the client computers123. In another embodiment, the mapper223does not display the graphical map401at all.

In some embodiments, the graphical map creation process “restarts” periodically. This means that once the mapper223generates and/or displays the graphical map401, the profiler221can periodically send the same information requests, or slightly different information requests, to see if any changes have occurred to any of the client computers123or data modules125, or to see if any client computers or data modules have been added or removed (Block301). The profiler221can once again store any changes by modifying the existing data in the profile information store227(Block311). The mapper223can then generate an updated graphical map401incorporating any changes noted by the profiler221(Block321). The mapper223can then display the updated graphical map401(Block331).

FIG. 3bis a flow chart of one embodiment of a process for directing a backup operation to be performed over one or more data modules by the backup system213. The graphical map creation process begins with the director225receiving an incoming operation request indicating that one of the data modules is to be backed up to a predetermined degree (Block341). In one embodiment, the predetermined degree is 100%, so that once the data module is backed up to the predetermined degree, the data module is fully backed up. In another embodiment, the predetermined degree can be lower than 100%. If this is the case, the incoming operation request can specify that the backup of the data module must stop at the predetermined degree, or it alternately can specify that the predetermined degree is a minimum acceptable degree of backup and that the backup can continue after reaching the predetermined degree.

In one embodiment, this incoming operation request originates from the management console111. The incoming operation request can specifically be the result of a user interface interaction on the management console111. In one embodiment, the graphical map401can contain a button next to the graphical representation of a data module, and can send the incoming operation request when the button is clicked. In an alternate embodiment, the button can be replaced by a pull-down menu option, such as from a right click menu. In another alternate embodiment, the user interface interaction can be text-based, as in a command line console, or can be the result of some other menu, button, radio button, check box, or similar user interface module. In other embodiments, the incoming operation request originates instead from the backup storage node127, one of the client computers123, or an internal hardware or software module within the main server101, such as an automated timer module.

As previously noted, in some embodiments, the profiler221will have gathered additional client computer information from the information messages described inFIG. 3a, and as used by the mapper in Block325and Block327. If the additional client computer information is available either through the profile information store227or the generated graphical map401, then the incoming operation request of Block341can also direct that an operation be performed relating to one or more of the additional client computer information categories. In one embodiment, the incoming operation request can direct that a client computer backup software be installed or that the installation be repaired. In another embodiment, the incoming operation request can direct that a client computer backup software be upgraded or downgraded to a predetermined version of the client computer backup software. In another embodiment, the incoming operation request can direct that a client computer be configured in some manner so that the client computer backup software can properly function. If the additional client computer information includes other categories of information, then the incoming operation request can also request operations related to those categories. In some embodiments, the incoming operation request directs only a backup operation or an operation relating to one or more additional client computer information categories. In other embodiments, the incoming operation request can direct both a backup operation and an operation relating to one or more additional client computer information categories.

The backup operation process continues with the director sends a data module operation request to the client computer containing the data module, the data module operation request indicating that the data module is to be backed up to the predetermined degree (Block351). In one embodiment, the predetermined degree is 100%, so that once the data module is backed up to the predetermined degree, the data module is fully backed up. In another embodiment, the predetermined degree can be lower than 100%. If this is the case, the data module operation request can specify that the backup of the data module must stop at the predetermined degree, or it alternately can specify that the predetermined degree is a minimum acceptable degree of backup and that the backup can continue after reaching the predetermined degree.

As previously noted, in some embodiments, the incoming operation request can also direct that an operation be performed relating to one or more of the additional client computer information categories. If this is the case, then the data module operation request can also include a client computer operation request, the client computer operation request indicating that an operation relating to the client computer's additional client computer information is to be performed. In one embodiment, the client computer operation request can direct that a client computer backup software be installed or that the installation be repaired. In another embodiment, the client computer operation request can direct that a client computer backup software be upgraded or downgraded to a predetermined version of the client computer backup software. In another embodiment, the client computer operation request can direct that a client computer be configured in some manner so that the client computer backup software can properly function. If the additional client computer information includes other categories of information, then the client computer operation request can also request operations related to those categories.

In some embodiments, the backup operation process then continues with the director receiving a data module operation completion message indicating that the data module is backed up to the predetermined degree (Block361). In one embodiment, the origin of this data module operation completion message is the client computer that received the data module operation request.

If the data module operation request included a client computer operation request, the director can also receive a client computer operation completion message indicating that the operation relating to the client computer's additional client computer information has been performed. In one embodiment, the client computer operation completion message is received alongside or as part of the data module operation completion message. In another embodiment, these are received separately, if, for instance, the data module operation completes at a different time than the client computer operation completes.

In some embodiments, the director225never receives a data module operation completion message indicating that the data module is backed up to the predetermined degree.

In some embodiments, the backup operation process then continues with the mapper223updating the graphical representation of the data module's backup degree to reflect that the data module is backed up to the predetermined degree (Block371). In some embodiments, the entire graphical map401is generated anew during this process. In other embodiments, only the backup degrees that changed during the backup operation process are updated and the remainder of the graphical map401is kept the same.

As previously noted, in some embodiments, the director225also receives a client computer operation completion message during the process of Block361. If this is the case, then the mapper223can also update the graphical representation of the client computer's additional client computer information to reflect that the operation relating to the client computer's additional client computer information has been performed.

In some embodiments, the mapper223does not update the graphical map401once it is generated.

In some embodiments, the backup operation process then continues with the director receiving the incoming operation request for every data module contained on all of the one or more client computers connected to the network that are not backed up to the predetermined degree (Block381). In one embodiment, these incoming operation requests are received sequentially one after the other. In another embodiment, these incoming operation requests are all received in parallel, or substantially concurrently in a cluster. In another embodiment, this cluster of incoming operation requests are sent as one larger incoming operation request indicating that every data module contained on all of the one or more client computers connected to the network that is not backed up to the predetermined degree is to be backed up to the predetermined degree. All of these embodiments can be treated the same way. WhileFIG. 3b(particularly the arrow385) illustrates the backup system receiving the incoming operation requests and performing them in sequence, these can alternately be performed concurrently.

In some embodiments, the incoming operation request or requests may indicate that the backup operation or operation relating to the additional client computer information is to be performed over the set of all client computers connected to the network that are not backed up to the predetermined degree. In some embodiments, the director225can receive incoming operation requests for only a subset of the set of all client computers connected to the network that are not backed up to the predetermined degree. In other embodiments, the director225is prohibited from receive incoming operation requests at all, or is limited from receiving more than a predetermined number of incoming operation requests at a time.

In one embodiment, these incoming operation request or requests originate from the management console111. The incoming operation requests can specifically be the result of a user interface interaction on the management console111. In one embodiment, the graphical map401can contain a button next to the graphical map401, and can send the incoming operation requests when the button is clicked. In an alternate embodiment, the button can be replaced by a pull-down menu option, such as from a right click menu. In another alternate embodiment, the user interface interaction can be text-based, as in a command line console, or can be the result of some other menu, button, radio button, check box, or similar user interface module. In other embodiments, the incoming operation requests originate instead from the backup storage node127, one of the client computers123, or an internal hardware or software module within the main server101, such as an automated timer module.

The flow diagram ofFIG. 3billustrates one embodiment the process of the director225receiving an incoming operation request relating to a backup operation, having that backup operation performed, and having the mapper update the graphical representation of relevant data modules' backup degrees. However, in an alternate embodiment, the incoming operation request may indicate instead or additionally that an operation relating to one or more categories of additional client computer information is to be performed over one of the client computers (analogous to Block341). For example, the incoming operation request can direct that a client computer backup software be installed or that the installation be repaired, or that a client computer backup software be upgraded or downgraded to a predetermined version of the client computer backup software, or that a client computer be configured in some manner so that the client computer backup software can properly function. The director then sends a client computer operation request to the client computer described by the additional client computer information, the client computer operation request indicating that the operation relating to the additional client computer information is to be performed over the client computer (analogous to Block351). In some embodiments, the director225can then receive a client computer operation completion message indicating that the operation relating to the additional client computer information has been performed over the client computer (analogous to Block361). In some embodiments, the mapper223can then update the graphical representation of the client computer's additional client computer information to reflect that the operation relating to the additional client computer information has been performed over the client computer (analogous to Block371). In some embodiments, the director227receives the incoming operation request for every client computer connected to the network that does not match a predetermined standard set for the particular category of the additional client computer information in which the operation was requested (analogous to Block381). The origins of incoming operation requests relating to additional client computer information can be one of the machines that may be the origins of incoming operation requests relating to backup operations. Likewise, multiple incoming operation requests relating to additional client computer information can be treated the same way as multiple incoming operation requests relating to backup operations. In some embodiments, incoming operation requests relating to additional client computer information are sent and considered separately from incoming operation requests relating to backup operations. In other embodiment, they may be sent or considered together.

While the flow diagrams inFIG. 3aandFIG. 3bshow a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments can perform the operations in a different order, combine certain operations, overlap certain operations, etc.).

FIG. 4ais one embodiment of the graphical map401wherein the graphical representation of each data module's backup degree is displayed as one of a collection of status icons, wherein each status icon represents a predetermined degree to which the data module is backed up.

In one embodiment, the graphical map401displays a graphical representation403of the network121including a logical network name identifying the network121. This is the case with the embodiments pictured inFIGS. 4a, 4b, 4c, 4d, 5a, and 5b. In one embodiment, the graphical map401can further include graphical representations of the client computers123. InFIGS. 4a, 4b, 4c, 4d, 5a, and 5b, the nodes411,413,415, and417are graphical representations of the client computers123attached to an exemplary network identified by the logical network name in node403. In one embodiment, the graphical map401can further include graphical representations of the data modules125contained by the client computers123. InFIGS. 4a, 4b, 4c, 4d, 5a, and 5bthe nodes421,431,441,451,461, and471are graphical representations of the data modules125contained by the client computers123. In the embodiments pictured inFIGS. 4a, 4b, 4c, 4d, 5a, and 5b, each of the graphical representations of the data modules125is graphically correlated to the graphical representations of the client computers that contain them.

In the embodiments pictured inFIGS. 4a, 4b, 4c, 4d, 5a, and 5b, the graphical representation of each data module's backup degree is graphically correlated with the graphical representation of the data module that it describes, by overlaying the graphical representation of each data module's backup degree over the graphical representation of the data module that it describes. In other embodiments (not illustrated in figures), this graphical correlation can take the form of one graphical representation displayed next to the other graphical representation, a line or arrow or shape linking the two graphical representations, a footnote or footnote-like icon linking one graphical representation to another that is displayed elsewhere, text denoting a correlation between one graphical representation and the other, or any other graphical manner of correlating one graphical representation with another graphical representation.

InFIG. 4a, the graphical representation of each data module's backup degree is displayed as one of a collection of status icons, specifically icons423,433,443,453,463, and473. Status icon423is graphically correlated with the data module graphical representation421. Status icon433is graphically correlated with the data module graphical representation431. Status icon443is graphically correlated with the data module graphical representation441. Status icon453is graphically correlated with the data module graphical representation451. Status icon463is graphically correlated with the data module graphical representation461. Status icon473is graphically correlated with the data module graphical representation471.

InFIG. 4a, each status icon represents a predetermined degree to which the data module is backed up. In one embodiment, there can be three predetermined degrees. For instance, inFIG. 4a, a smiley face icon, such as icons423,463, and473, can indicate that the corresponding data module is mostly backed up. A circle icon, such as icon443, can indicate that the corresponding data module is partially but not mostly backed up. A crossed out circle icon, such as icons433and453, can indicate that the corresponding data module is not backed up at all, or only backed up a very small amount. In other embodiments, different icons can be used, icons can have different meanings, and a different number of icons can be used.

FIG. 4bis one embodiment of the graphical map401wherein the graphical representation of each data module's backup degree is displayed as an overlaid percentage of the degree to which the data module is backed up.

Percentage425is graphically correlated with the data module graphical representation421. Percentage435is graphically correlated with the data module graphical representation431. Percentage445is graphically correlated with the data module graphical representation441. Percentage455is graphically correlated with the data module graphical representation451. Percentage465is graphically correlated with the data module graphical representation461. Percentage475is graphically correlated with the data module graphical representation471.

FIG. 4cis one embodiment of the graphical map401wherein the graphical representation of each data module's backup degree is displayed as an overlaid pie graph of the degree to which the data module is backed up.

Pie chart427is graphically correlated with the data module graphical representation421. Pie chart437is graphically correlated with the data module graphical representation431. Pie chart447is graphically correlated with the data module graphical representation441. Pie chart457is graphically correlated with the data module graphical representation451. Pie chart467is graphically correlated with the data module graphical representation461. Pie chart477is graphically correlated with the data module graphical representation471.

In one embodiment, a pie chart can use a darker color to include the backup degree in a similar manner as the percentage ofFIG. 4b. In another embodiment, it can instead use a lighter color. In one embodiment, the pie charts can be two dimensional. In another embodiment, they can be three dimensional. In this sense, the pie charts ofFIG. 4care merely intended to be illustrative, and not limitations.

FIG. 4dis one embodiment of the graphical map401wherein the graphical representation of each data module's backup degree is displayed as an overlaid rating along a predetermined minimum and maximum rating continuum, the rating representing the degree to which the data module is backed up.

Rating429is graphically correlated with the data module graphical representation421. Rating439is graphically correlated with the data module graphical representation431. Rating449is graphically correlated with the data module graphical representation441. Rating459is graphically correlated with the data module graphical representation451. Rating469is graphically correlated with the data module graphical representation461. Rating479is graphically correlated with the data module graphical representation471.

In one embodiment, a rating system can use stars. In one embodiment, darker stars can indicate each data module's backup degree in a similar manner as the pie chart, but in increments. In another embodiment, the darker and lighter stars can have their roles reversed. In another embodiment, a different shape, such as hearts, diamonds, circles, squares, or triangles, can be used. In another embodiment, a numerical rating can be used. Such a numerical rating can include decimals or fractions, and can be over a range of numbers (e.g., a 1-to-5 rating, or a 1-to-100 rating). In another embodiment, the rating can be displayed in the form of a bar graph, allowing for a similar graphical representation as the stars inFIG. 4d, but along a more continuous continuum.

FIG. 5ais one embodiment of the graphical map401ofFIG. 4a, wherein the graphical representation of the additional client computer information is displayed as an overlaid status icon. This can be the result of the profiler221receiving an information message from a client computer that includes additional client computer information, as previously mentioned in regards to Block311ofFIG. 3a.

In the embodiment pictured inFIG. 5a, the graphical representation of each client computer's additional client computer information is graphically correlated with the graphical representation of the client computer that it describes, by overlaying the graphical representation of each client computer's additional client computer information over the graphical representation of the client computer that it describes. In other embodiments (not illustrated in figures), this graphical correlation can take the form of one graphical representation displayed next to the other graphical representation, a line or arrow or shape linking the two graphical representations, a footnote or footnote-like icon linking one graphical representation to another that is displayed elsewhere, text denoting a correlation between one graphical representation and the other, or any other graphical manner of correlating one graphical representation with another graphical representation.

InFIG. 5a, the graphical representation of each client computer's additional client computer information is displayed as one of a collection of dark status icons, specifically icons511,513,515, and517. Status icon511is graphically correlated with the client computer graphical representation411. Status icon513is graphically correlated with the client computer graphical representation413. Status icon515is graphically correlated with the client computer graphical representation415. Status icon517is graphically correlated with the client computer graphical representation417.

InFIG. 5a, each dark status icon represents a possible status or degree of at least one category of additional client computer information. In one embodiment, there can be two predetermined statuses. For instance, inFIG. 5a, a dark circle icon, such as icons511,513, and517, can indicate that the corresponding client computer has its client computer backup software properly installed, while a dark “X” icon, such as icon515, can indicate that the corresponding client computer does not have its client computer backup software properly installed. In an alternate embodiment, the dark circle icon can indicate that the corresponding client computer is property configured for the client computer backup software to function, while a dark “X” icon can indicate that the corresponding client computer is not property configured for the client computer backup software to function. In an alternate embodiment, the dark circle icon can indicate that the corresponding client computer has a predetermined version of the client computer backup software installed, while a dark “X” icon can indicate that the corresponding client computer does not have a predetermined version of the client computer backup software installed. In other embodiments, different icons can be used, icons can have different meanings, and a different number of icons can be used.

FIG. 5bis one embodiment of the graphical map401ofFIG. 4a, wherein the graphical representation of the additional client computer information is displayed by modifying the graphical representation of the client computer's connection to the network. InFIG. 5b, there is a dotted line525connecting the graphical representation of the network403to the graphical representation of client computer415(“Web Front End”). The dotted line525continues, also connecting the graphical representation of client computer415(“Web Front End”) to the graphical representation of its data node451(“Search Index”). The graphical representations of the other computers in the graphical map401are connected to the graphical representation of the network403and the graphical representations of their data modules with solid lines (see lines521,523, and527).

In one embodiment, the dotted line525represents that the client computer represented by the graphical representation415(“Web Front End”) does not have its client computer backup software properly installed, while the other client computers do. In another embodiment, the dotted line525represents that the client computer represented by the graphical representation415(“Web Front End”) is not property configured for the client computer backup software to function, while the other client computers are. In another embodiment, the dotted line525represents that the client computer represented by the graphical representation415(“Web Front End”) does not have a predetermined version of the client computer backup software installed, while the other client computers do. In other embodiments, different types of lines can be used, more variety of dotted or embossed lines can be used to represent different categories of additional client computer information, different lines can have different meanings, and different graphical correlations other than lines can be used.

The various embodiments of the graphical map401depicted inFIGS. 4a, 4b, 4c, 4d, 5a, and 5bto be regarded in an illustrative rather than a restrictive sense. The graphical representations in each of the figures are exemplary and not intended as a requirement for every graphical map401. Various modifications and changes can be made to the embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims.

FIG. 6ais one embodiment of the profile information store227that does not include additional client computer information. The profile information store227is used by the profiler221when it receives an information message from each client computer of the one or more client computers123during the process described by Block311ofFIG. 3a. In one embodiment, the data from these information messages can be stored in a structure that includes a “Data Module Name” column603that stores data identifying the data module that is the subject of the information message, a “Backup Degree” column605that stores data listing the backup degree of the data module, and a “Client Computer Name” column601identifying the client computer that contains the data module.

FIG. 6bis one embodiment of the profile information store227that includes additional client computer information. As previously noted, in some embodiments, the profiler221also gathers additional client computer information from these information messages, and also stores it in the profile information store227during the process described by Block311ofFIG. 3a. One embodiment of the profile information store227including this information is depicted inFIG. 6b, with the additional client computer information located under an “Additional Client Computer Information” column631. This column is then split into separate columns representing three categories of additional client computer information.

In one embodiment, the “Additional Client Computer Information” column631includes a “Client backup service properly installed?” sub-column621that identifies if the client computer identified under the “Client Computer Name” column611has the client backup service properly installed or not. In one embodiment, the “Additional Client Computer Information” column631includes a “Client computer properly configured for client backup service to function?” sub-column621that identifies if the client computer identified under the “Client Computer Name” column611is properly configured for client backup service to function or not. In one embodiment, the “Additional Client Computer Information” column631includes a “Server backup software version” sub-column621that identifies what version, if any, of the client backup service is installed on the client computer identified under the “Client Computer Name” column611. The data from these columns can then be used by the mapper223while generating the graphical map401, as exemplified inFIG. 5aandFIG. 5b.

The embodiments of the profile information store227depicted inFIG. 6aandFIG. 6bare to be regarded in an illustrative rather than a restrictive sense. The graphical representations in each of the figures are exemplary (and match up with the examples illustrated inFIGS. 4a, 4b, 4c, 4d, 5a, and 5bfor ease of understanding) and not intended as a requirement for every embodiment of the profile information store227. Various modifications and changes can be made to the embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims.

Embodiments of the invention also relate to an apparatus for performing the operations herein. Such a computer program is stored in a non-transitory computer readable medium. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable)

medium includes a machine (e.g., a computer) readable storage medium (e.g., read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices).

The processes or methods depicted in the preceding figures can be performed by processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), software (e.g., embodied on a non-transitory computer readable medium), or a combination of both. Although the processes or methods are described above in terms of some sequential operations, it should be appreciated that some of the operations described can be performed in a different order. Moreover, some operations can be performed in parallel rather than sequentially.

Embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of embodiments of the invention as described herein.

In the foregoing specification, embodiments of the invention have been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.