System and method for distributed-agent backup of virtual machines
A distributed agent for backup and restoration of virtual machines collects backup data and meta-data. The distributed agent includes an agent inside a virtual machine and an agent outside the virtual machine. The two kinds of agents communicate with each other to collect data of different types used to backup and restore virtual machines.
1. A computer implemented method for consistent data backup of a virtual machine with one or more installed applications using an inside backup agent running inside the virtual machine and an outside backup agent running outside the virtual machine, the method comprising:
the outside backup agent initiating a backup process for a target virtual machine containing a system object specified in a backup task;
the inside backup agent installed on the target virtual machine receiving a notification that the outside backup agent running outside of the target virtual machine is ready to create a backup copy of the virtual machine;
the inside backup agent collecting meta-data, wherein meta-data defines a data structure and state of the system object for a definite system state of the target virtual machine;
the outside backup agent receiving notification that meta-data is collected on the target virtual machine;
the outside backup agent creating a backup copy of the target virtual machine for the definite system state;
consolidating backup copy and meta-data related to the target virtual machine into a consistent backup copy;
wherein the inside backup agent stores only file-system metadata and files required for availability of the one or more installed applications; and
wherein the inside backup agent requires fewer system resources than are required by the outside backup agent.
2. The method of claim 1 , wherein the system object is an application.
3. The method of claim 1 , wherein the system object is a file.
4. The method of claim 1 , wherein the system object is an application container.
5. The method of claim 1 , wherein the system object is a user system profile.
6. The method of claim 1 , wherein the second backup agent is running on a dedicated virtual machine or physical server.
7. The method of claim 1 , wherein the backup task further includes a predefined condition for initiating the backup process.
8. The method of claim 7 , wherein a predefined condition is one of a timestamp and a system event.
9. The method of claim 1 , further comprising freezing of the system object before meta-data collecting.
10. A system for storing a consistent data backup, the system comprising:
(a) a processor with a host running a guest virtual machine having one or more installed applications;
(b) a storage medium outside the guest virtual machine for storing a snapshot of the guest virtual machine;
(c) an outside backup agent installed outside the guest virtual machine and configured to make the snapshot of the guest virtual machine;
(d) an inside backup agent installed inside the guest virtual machine and configured to collect metadata defining a data structure, and a system object state;
(e) wherein the inside and outside backup agents are configured to communicate with each other;
(g) wherein the outside backup agent is configured to issue commands to the inside backup agent and the inside backup agent collects metadata upon command from the outside backup agent;
(h) wherein metadata collected by the inside backup agent is linked with the snapshot made by the first backup agent;
(i) wherein the inside backup agent stores only file-system metadata and files required for availability of one or more installed applications of the guest virtual machine; and
(j) wherein the inside backup agent requires fewer system resources than are required by the outside backup agent.
11. The system of claim 10 wherein the metadata collected by the inside backup agent is stored in a different location than the snapshot made by the outside backup agent.