System, method and computer program product for data processing and system deployment in a virtual environment

Systems, methods, and computer program products for processing data are disclosed. A method according to one embodiment includes reading a data processing instruction locally called by a virtual work unit; optimizing the read data processing instruction; and performing data processing for the virtual work unit using the optimized data processing instruction. The step of optimizing the read data processing instruction may include one or more of: merging data processing instructions from different virtual work units for same data, and analyzing data processing instructions from different virtual work units to select suitable data processing timing. The data processing method is executed in a virtual environment.

RELATED APPLICATIONS

The present application claims priority to a Chinese Patent Application filed Jan. 29, 2010, under Appl. No. 201010104977.X, which is incorporated herein by reference.

BRIEF SUMMARY

According to one embodiment, a computer program product for processing data in a virtual environment includes a computer readable storage medium having computer readable program code embodied therewith. The computer readable program code includes computer readable program code configured to: read a data processing instruction locally called by a virtual work unit, optimize the read data processing instruction, and perform data processing for the virtual work unit using the optimized data processing instruction. The computer readable program code configured to optimize the read data processing instruction includes at least one of: merging data processing instructions from different virtual work units for same data, and analyzing data processing instructions from different virtual work units to select suitable data processing timing.

In another embodiment, a data processing system in a virtual environment includes logic adapted for reading a data processing instruction locally called by a virtual work unit, logic adapted for optimizing the read data processing instruction, and logic adapted for performing data processing for the virtual work unit using the optimized data processing instruction. The logic adapted for optimizing the read data processing instruction includes at least one of: logic adapted for merging data processing instructions from different virtual work units for same data, and logic adapted for analyzing data processing instructions from different virtual work units to select suitable data processing timing.

According to another embodiment, a data processing method in a virtual environment includes reading a data processing instruction locally called by a virtual work unit, optimizing the read data processing instruction, and performing data processing for the virtual work unit using the optimized data processing instruction. Optimizing the read data processing instruction includes at least one of: merging data processing instructions from different virtual work units for same data, and analyzing data processing instructions from different virtual work units to select suitable data processing timing.

In another embodiment, a method for deploying a data processing system in a virtual environment includes deploying a data processing system call interface in a virtual machine in a virtualization environment, the system call interface being adapted for triggering a locally called data processing instruction, deploying a data processing driver in a virtual machine management platform in the virtualization environment, the data processing driver being adapted for reading the data processing instruction triggered by the system call interface, and deploying a data processing instruction optimizer in the virtualization environment, the optimizer being adapted for optimizing the data processing instruction read by the deployed data processing driver.

DETAILED DESCRIPTION

The following description discloses several preferred embodiments of systems, methods, and computer program products for performing data backup or data recovery operations in a virtual environment.

In view of the drawbacks recited previously, a data processing method in a virtualization environment, according to one embodiment, may efficiently avoid considerable consumption of virtual network resources. In another embodiment, a data processing method in a virtualization environment is capable of avoiding redundant data backup or data recovery of a plurality of virtualization work units.

According to one embodiment, a data processing method in a virtual environment includes reading a data processing instruction locally called by a virtual work unit, optimizing the read data processing instruction, and performing data processing for the virtual work unit using the optimized data processing instruction.

According to another embodiment, the data processing is data backup processing, and the data processing instruction is a data backup instruction. Performing data processing for a virtual work unit using the optimized data processing instruction includes reading data to be backed up from a shared storage of the virtual work unit and writing the read data to be backed up to a backup storage medium.

According to yet another embodiment, the data processing is data recovery processing, and the data processing instruction is a data recovery instruction. Performing data processing for virtual work unit using the optimized data processing instruction includes reading data to be recovered from a backup storage and writing the read data to be recovered to a shared storage of the virtual work unit.

In another embodiment, a data processing system in a virtual environment includes a module adapted for reading a data processing instruction locally called by a virtual work unit, a module adapted for optimizing the read data processing instruction, and a module adapted for performing data processing for the virtual work unit using the optimized data processing instruction.

In yet another embodiment, the data processing is data backup processing, and the data processing instruction is a data backup instruction. The module adapted for performing data processing for the virtual work unit using the optimized data processing instruction is configured to read data to be backed up from a shared storage of the virtual work unit, and to write the read data to be backed up to a backup storage medium.

According to another embodiment, the data processing is data recovery processing, and the data processing instruction is a data recovery instruction. The module adapted for performing data processing for the virtual work unit using the optimized data processing instruction is configured to read data to be recovered from a backup storage medium, and to write the read data to be recovered to a shared storage medium of the virtual work units.

In another embodiment, a method for deploying a data processing system in a virtualization environment includes deploying a data processing system call interface in a virtual machine in a virtualization environment, the system call interface being for triggering a locally called data processing instruction, deploying a data processing driver in a virtual machine management platform in a virtualization environment, the data processing driver being for reading the data processing instructions triggered by the system call interface, and deploying a data processing instruction optimizer in a virtualization environment, the optimizer being for optimizing the data processing instruction read by the deployed data processing driver.

In one approach, the data processing system call interface is a data backup system call interface, the data processing instruction is a data backup instruction, the data processing driver is a data backup driver, and the data processing instruction optimizer is a data backup instruction optimizer.

In another approach, the data processing system call interface is a data recovery system call interface, the data processing instruction is a data recovery instruction, the data processing driver is a data recovery driver, and the data processing instruction optimizer is a data recovery instruction optimizer.

According to the various embodiments and approaches described herein, when the virtual work units (virtual machines) perform a data processing operation, each virtual work unit does not need to perform a data processing operation through a virtual network, thereby preventing the virtual work units from competing for virtual network resources and from excessive consumption of these resources. Additionally, a suitable optimization policy may be selected to optimize the read data processing instructions, as desired, so as to further achieve a technical effect of avoiding degradation of system performance caused by redundant data processing and excessive competition on the virtual environment or virtual system operation resources.

Now referring toFIG. 3, a storage system300is shown according to one embodiment. Note that some of the elements shown inFIG. 3may be implemented as hardware and/or software, according to various embodiments. The storage system300may include a storage system manager312for communicating with a plurality of media on a higher storage tier302and a lower storage tier306. The higher storage tier302preferably may include one or more random access and/or direct access media304, such as hard disks in hard disk drives (HDDs), nonvolatile memory (NVM), solid state memory in solid state drives (SSDs), etc., and/or others noted herein. The lower storage tier306may preferably include one or more sequential access media308, such as magnetic tape in tape drives, optical media, etc., and/or others noted herein. Additional storage tiers316may include any combination of storage memory media. The storage system manager312may communicate with the storage media304,308on the higher and lower storage tiers302,306through a network310, such as a storage area network (SAN), as shown inFIG. 3. The storage system manager312may also communicate with one or more host systems (not shown) through a host interface314, which may or may not be a part of the storage system manager312. The storage system manager312and/or any other component of the storage system300may be implemented in hardware and/or software, and may make use of a processor (not shown) for executing commands of a type known in the art, such as a central processing unit (CPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc. Of course, any arrangement of a storage system may be used, as will be apparent to those of skill in the art upon reading the present description.

According to some embodiments, the storage system (such as300) may include logic adapted to receive a request to open a data set, logic adapted to determine if the requested data set is stored to a lower storage tier306of a tiered data storage system300in multiple associated portions, logic adapted to move each associated portion of the requested data set to a higher storage tier302of the tiered data storage system300, and logic adapted to assemble the requested data set on the higher storage tier302of the tiered data storage system300from the associated portions.

FIG. 4is a structural diagram of a conventional system400for performing data backup or data recovery operations in a virtual environment, according to the prior art. The system400comprises virtual machines401-1to401-3, a virtual machine shared storage medium402, a virtual network403, a virtual machine hypervisor404, a storage pool405, and physical hardware406.FIG. 4shows a detailed data flow with a data backup operation, as an example. In other words, virtual machines401-1to401-3are to back up data in the shared storage402to the storage pool405. The storage pool405may be a remote storage device connected to the physical hardware406on which the virtual machines401-1and401-3reside through a network, such as Ethernet. Specifically, each of the virtual machines401-1and401-3read data to be backed up from the shared storage402through the virtual network403which is constructed on the virtual machine hypervisor404, and then back up the data to be backed up to the storage pool405, likewise through the virtual network403and the physical Ethernet. In other words, when the virtual machines read and back up the data to be backed up, it utilizes the virtual network403, which will occupy considerable virtual network resources (for example, virtual network card, virtual router, etc). Further, a plurality of virtual machines will compete for precious virtual network resources, causing degradation of system performance. Moreover, each virtual machine, when backing up data, is unaware of whether the same data is backed up by another virtual machine, and there is no mechanism to analyze the data to be backed up of each virtual machine so as to avoid repetitive data backup that may cause wasting of storage space in the storage pool405and undue occupation of network transfer resources (including virtual network resources and physical network resources) for transferring repetitive data. It should be noted that the data flow in the system400as shown inFIG. 4is described with respect to data backup operation. When a virtual machine performs a data recovery operation, the system may have a similar structure, just with the data flow reversed.

FIG. 5is a flow chart of a data processing method in a virtual environment according to one embodiment. The term “data processing” herein may include data backup and data recovery operations. Those skilled in the art may understand that data backup may refer to a virtual machine backing up data content in a shared storage medium (which may be a hardware storage device shared by a plurality of virtual machines) to other storage media, for example, a remote memory storage pool coupled to a physical machine on which the virtual machine resides through an Ethernet connection, as an example. On the contrary, data recovery refers to a virtual machine recovering data content stored in a storage medium for backup to a shared storage medium of the virtual machine.

In operation501, a data processing instruction which is called locally by a virtual work unit (similar to the virtual machine as shown inFIG. 4) is read. The read locally called data processing instruction may be a data processing instruction generated by a backup client in the virtual work unit (“a virtual work unit” herein may be understood as having a same or similar meaning as technical terms such as “a virtual machine,” “a virtual work station,” etc.) by adding an application programming interface (API) interface to the virtual machine so as to increase hypercall. Hypercall is a basic mechanism for implementing a system call by a virtual machine system or a virtual environment. To add a corresponding hypercall based on the type of data processing, only three steps are executed for adding a new virtual machine system call: registering a new system call number, updating a system call table, and adding a new function. Those skilled in the art should understand that a plurality of methods may be adopted to add a new system call in a virtual machine, and the embodiments described herein are not limited to these three steps described above. The method in which a new system call is added in a virtual environment may depend on, among other things, a particular embodiment of the virtual environment, a requirement of a user of a virtual machine, etc. Any method in which a new system call (e.g., hypercall) is added falls within the scope of the present invention. The reason for adding a new system call (hypercall) is that the data processing instruction generated by a hypercall will be a locally called instruction which is transferred through a virtual machine hypervisor, without needing to send a data processing request to a shared storage medium via a virtual network or transferring the data to be processed via the virtual network. In this way, precious virtual network resources are saved.

In one embodiment, each virtual machine may be added as an API interface for a hypercall, such that each virtual machine sends a data processing instruction via a local call. Those skilled in the art should understand, dependent on different specific virtual environments, an API interface for hypercall may be defined in a virtual machine in many different ways, and the capability of triggering a locally called data processing instruction (including data backup and data recovery) through the hypercall interface is an objective of using a hypercall, according to some approaches. The locally called data processing instruction is transferred via the virtual machine hypervisor, and then is read at operation501.

It should be further noted that the data processing instruction may be read in several ways. According to one embodiment, the data processing instruction may be read in a predetermined interval, for example, every 15 seconds, every 10 seconds, every 5 seconds, etc. According to another embodiment, the data processing instruction may be read based on a predetermined number of instructions, for example, every 20 pieces of data processing instructions, every 10 pieces, every 5 pieces, etc. Any way in which the locally called data processing instruction is read falls within the scope of the present invention, according to various embodiments.

A data backup instruction at least comprises three kinds of information, in one approach: information on data to be backed up, information on backup storage destination, and information on backup policy. An example for data processing instructions according to one embodiment may be: Backup(“/usr/lib/*”, “9.186.63.121:/archive”, “full”), wherein “backup” indicates that these data processing instructions are to perform data backup operations, “9.186.63.121:/archive” indicates a backup storage destination, and “full” indicates that the backup policy is “full backup” (possible backup policies may further include differential backup, incremental backup, etc.). It should be noted that the specific form of data processing instructions or hypercall is related to a specific embodiment of a virtual environment. Any form or format by which a data processing instruction or hypercall is expressed falls within the scope of the present invention.

In operation502, the read data processing instruction is optimized. It should be noted that since there are typically a plurality of virtual machines in a virtual environment, it is possible that a plurality of data processing instructions from a plurality of virtual machines are read at operation501. Accordingly, optimization may also be performed with respect to the plurality of data processing instructions from a plurality of virtual machines at operation502. Of course, those skilled in the art should understand that if there is only one virtual machine or there is only one virtual machine that sends a data processing instruction, the data processing instruction may also be read at operation501, and be optimized at operation502.

Further, “optimization” may be performed based on a plurality of optimization policies. According to an optimization policy in one embodiment, the data processing instructions on same data from different virtual work units may be merged. That is, if it is determined through analysis that a plurality of data processing instructions sent from different virtual work units involve processing the same data content (for example, some parts of the data contents to be backed up by a plurality of virtual work units are the same), then the parts involving same data content in these data processing instructions are merged, thereby avoiding repetitive data processing operations on same data content.

According to an optimization policy in another embodiment, data processing instructions from different virtual work units may be analyzed so as to select a suitable data processing timing. That is, if the virtual environment or virtual system is processing other operations and occupying considerable system resources when the virtual work unit sends the data processing instruction through hypercall, then the data processing operation for the virtual work unit is suspended and will be performed at a selected suitable timing, in one example. In this way, excessive competition on operation resources in a virtual environment may be avoided.

According to a another optimization policy in one embodiment, the read data processing instruction may not be processed, and may be directly taken as an optimized data processing instruction to perform data processing operation for the virtual work unit. In other words, according to one embodiment, it is also an optimization policy that the read data processing instruction is not processed and directly used to perform data processing operation for the virtual work unit. The plurality of possible optimization policies as set forth above are presented only for illustrating a technical solution, according to various embodiments, more clearly, without limiting the optimization or optimization policies possible in the scope of the invention. Any optimization policy falls within the scope of the present invention.

In operation503, the optimized data processing instruction is utilized to perform data processing for the virtual work unit. According to one embodiment, the data processing may refer to data backup. According to another embodiment, the data processing may refer to data recovery. These two embodiments are described in detail with reference toFIGS. 6 and 7.

With method500as shown inFIG. 5, when a virtual work unit (virtual machine) is performing data processing operation, the data processing operation is uniformly performed for virtual work units by reading the data processing instruction which are locally called by the virtual work units, without performing data processing operations by respective work units through a virtual network, respectively, thereby preventing virtual work units from competing on and excessively consuming virtual network resources. Meanwhile, a suitable optimization policy may be selected to optimize a read data processing instruction as desired so as to further achieve a technical effect of avoiding degradation of system performance due to redundant data processing and excessive competition on the virtual environment or virtual system operation resource.

FIG. 6is a flow chart of a data processing method600in a virtual environment according to one embodiment. Specifically,FIG. 6shows a flow chart of a data processing method600in a case where data processing comprises data backup processing.

Operation601corresponds to operation501inFIG. 5, and in operation601ofFIG. 6, a locally called data backup instruction is read. Operation602and603, correspond to step502inFIG. 5. In operation602ofFIG. 6, the read data backup instruction is sent to an optimizer.

It should be noted that specific optimization may be implemented by an individual optimizer or implemented by a module or mechanism adapted for reading the locally called data processing instructions. Depiction of “optimizer” at operation602and603is only for depicting embodiments more clearly, and it does not mean that the optimizer is a different module or mechanism from the module or mechanism adapted for reading the locally called data backup instructions in operation601, from the module or mechanism adapted for reading the locally called data processing instructions in operation501inFIG. 5, or from the module or mechanism adapted for reading the locally called data recovery instructions in operation701ofFIG. 7. In other words, operations602and603inFIG. 6are not necessary steps, according to several embodiments. If the module or mechanism adapted for reading data processing instructions locally called by a virtual work unit is the same module or mechanism adapted for performing optimization, then operations602and603are unnecessary.

Next, operation604and605correspond to operation503inFIG. 5. At operation604inFIG. 6, the data to be backed up is read based on the optimized data backup instruction. According to one embodiment, the data to be backed up of a virtual work unit refer to data in a shared storage medium of the virtual machine. At operation605, the read data to be backed up is written to a backup storage medium.

According to one approach, backup storage medium may be a remote storage device communicating with a physical machine (physical hardware) on which the virtual work units reside through a network, such as Ethernet. According to another embodiment, the backup storage medium may be a plug-pull portable storage device communicating with a physical machine (physical hardware) on which the virtual work units reside through a communication interface, such as USB interface, “Firewire” 1394 interface, an optical driver, etc. Those skilled in the art should understand that the backup storage medium merely represents a destination for backing up data, and any form of storage medium, device, recipient, etc., may be used, as long as it becomes a destination for the data to be backed up.

With method600as shown inFIG. 6, when a virtual work unit (virtual machine) is performing a data backup operation, the data backup operation is uniformly performed for the virtual work unit by reading data backup instructions locally called by the virtual work unit, without performing data backup operations by respective work unit through a virtual network, respectively, thereby preventing virtual work units from competing on and excessively consuming virtual network resources. Meanwhile, a suitable optimization policy may be selected to optimize a read data backup instruction as desired so as to further achieve a technical effect of avoiding degradation of system performance due to redundant data backup and excessive competition on the virtual environment or virtual system operation resource.

FIG. 7is a flow chart of a data processing method700in a virtual environment according to another embodiment. Specifically,FIG. 7shows a flow chart of a data processing method700in a case where data processing comprises data recovery processing. Operation701corresponds to operation501ofFIG. 5and operation601ofFIG. 6. At operation701ofFIG. 7, a data recovery instruction as locally called by a virtual work unit is read. Operation702and operation703correspond to operation502inFIG. 5. At operation702inFIG. 7, the read data recovery instruction is sent to an optimizer. Likewise, specific optimization may be implemented by an individual optimizer or implemented by a module or mechanism adapted for reading the locally called data processing instructions. Depiction of “optimizer” at operation702and operation703is only for describing embodiments more clearly. Therefore, similar to the above depiction ofFIG. 6, operation702and operation703inFIG. 7are also mandatory operations in the case where data processing comprises data recovery.

Operation704and operation705correspond to operation503inFIG. 5. At operation704inFIG. 7, the data to be recovered is read according to the optimized data recovery instruction. According to one embodiment, the data to be recovered of virtual work units refers to data stored in the backup storage medium. At operation705, the read data to be recovered is written to a shared storage medium of the virtual work unit. Accordingly, compared withFIG. 6, the difference of respective operations inFIG. 7lies mainly in data flow. The data flow in the data backup method ofFIG. 6is from a shared storage medium of the virtual work unit to a backup storage medium, while the data flow in the data backup method ofFIG. 7is from a backup storage medium to a shared storage medium of the virtual work unit.

With method700as shown inFIG. 7, when a virtual work unit (virtual machine) is performing a data recovery operation, the data recovery operation is uniformly performed for a virtual work unit by reading data recovery instructions locally called by the virtual work units, without performing data recovery operations by a respective work unit through a virtual network, respectively, thereby preventing virtual work units from competing on and excessively consuming virtual network resources, in preferred embodiments. Meanwhile, a suitable optimization policy may be selected to optimize the read data recovery instructions as desired so as to further achieve a technical effect of avoiding degradation of system performance due to redundant data recovery and excessive competition on the virtual environment or virtual system operation resources, in most approaches.

FIG. 8is a structural diagram of a data processing system800in a virtual environment, according to one embodiment. The system800comprises an instruction reading module or mechanism801adapted for reading data processing instructions locally called by a virtual work unit, an instruction optimizing module or mechanism802adapted for optimizing the read data processing instructions, and a data processing module or mechanism803adapted for performing corresponding data processing operations for the virtual work units by using the optimized data processing instructions. Those skilled in the art may understand that the system800as a whole may correspond to method400as shown inFIG. 4. Referring again toFIG. 8, specifically, the instruction reading module or mechanism801, instruction optimizing module or mechanism802, and data processing module or mechanism803may be understood to correspond to operations401,402, and403ofFIG. 4, respectively.

FIG. 9is a structural diagram of a system900for performing data backup or data recovery operations in a virtual environment according to another embodiment. The system900comprises instruction reading module or mechanism901, instruction sending module or mechanism902, optimized instruction receiving module or mechanism903, to-be-processed data reading module or mechanism904, and data processing module or mechanism905.

The instruction reading module or mechanism901may be understood to correspond to operation601ofFIG. 6or operation701ofFIG. 7, and may be adapted for reading data processing instructions locally called by the virtual work unit. Referring again toFIG. 9, the instruction sending module or mechanism902may be understood to correspond to operation602ofFIG. 6or operation702ofFIG. 7, and may be adapted for sending the read data processing instructions to the optimizer. Referring once again toFIG. 9, the optimized instruction module or mechanism903may be understood to correspond to operation603ofFIG. 6or operation703ofFIG. 7, and may be adapted for receiving the optimized data processing instructions from the optimizer. It should be noted that from the above depiction with reference toFIGS. 6-7and9, it is seen that the instruction sending module or mechanism902and optimized instruction receiving module or mechanism903are not mandatory elements.

The to-be-processed data reading module or mechanism904may be understood to correspond to operation604ofFIG. 6or operation704ofFIG. 7, and may be adapted for reading the data to be processed according to the optimized data processing instructions. Referring again toFIG. 9, according to one embodiment, the data processing instructions may be data backup instructions, thus the to-be-processed data reading module or mechanism904reads the data to be backed up of virtual work units from a shared storage medium of the virtual work units. Correspondingly, the data processing module or mechanism905writes the data to be backed up to the backup storage medium. According to another embodiment, the data processing instructions may be data recovery instructions, thus the to-be-processed data reading module or mechanism904reads the data to be recovered from the virtual work units. Correspondingly, the data processing module or mechanism905writes the data to be recovered to the shared storage medium of virtual work units.

FIG. 10is a detailed architecture diagram of a data backup system1000in a virtual environment according to one embodiment, with Xen API as an example. The system1000comprises virtual machine A, virtual machine B, and virtual machine C, as indicated by1001-A to1001-C, respectively, which correspond to virtual work units. However, any number of virtual machines may be used, and the invention is not limited to only three machines, as 1, 5, 10, 50, etc., virtual machines and/or virtual work units may be used, in various embodiments. Each virtual work unit comprises a backup client and a backup Hycall. The backup Hycall is just the hypercall as mentioned above, in some approaches. A client operation system and an application running thereon are referred to as a domain, wherein a privileged domain Dom0is responsible for managing other virtual machines, for example, creating, destroying, suspending, recovery, etc. Other non-privileged virtual domains are referred as DomU, where1001-A to1001-C inFIG. 10may be regarded as three DomU. Domain1002as shown inFIG. 10is a privileged domain Dom0. All data flow to or from the virtual machines must go through the privileged domain Dom01002which is an agent for the virtual machines to access read hardware. The shared storage medium1003as shown inFIG. 10is a storage space, comprising one or more storage media, shared by respective virtual machines1001-A to1001-C. The backup storage medium1004is the backup destination comprising one or more backup media where the virtual machines1001-A to1001-C back up data in the shared storage medium. As mentioned above, backup storage medium1004may either be a remote storage device communicating with the physical hardware1008on which the virtual machines reside through the Ethernet, a portable storage device, etc.

The system as shown inFIG. 10further comprises a backup optimizer1005located in the privileged domain Dom01002, a virtual machine hypervisor1007, a backup driver1006in the virtual machine hypervisor1007, and real physical hardware1008on which the virtual machines reside. It should be noted that the virtual machine hypervisor1007is essentially a virtual machine management platform, which may also be referred as a virtual machine manager (VMM) or virtual machine management platform, in some virtual environments. In other words, a layer of virtual machine manager or virtual machine monitor is set up on a real hardware platform, and then the client operation system of the virtual machines may be started by the virtual machine manager or virtual machine monitor. The flow for the system1000for implementing a virtual machine data backup operation as shown inFIG. 10is specified as follows.

Firstly, users of virtual machines1001-A to1001-C decide to perform backup operation to the data of the three virtual machines, and then backup metadata of the three virtual machines are read from the shared storage medium1003in the three virtual machines, respectively. “Backup metadata” refers to the data for describing data to be backed up. For example, backup metadata may comprise the following information: backup destination, backup type (full backup, differential backup, incremental backup, etc.), etc. Backup metadata may be pre-defined and stored by a user of each virtual machine, which may be either stored in the shared storage medium1003or stored wherever it may be accessed. Alternatively, backup metadata may be directly transferred to the Hycall (i.e., a backup hypercall of each virtual machine inFIG. 10) as a parameter when the user determines that it is to be backed up, as long as the backup client in the virtual machine can access or be aware of the operation.

Whether to pre-define backup metadata and where to store the backup metadata may depend on a specific embodiment, which does not constitute a limitation to the scope of the present invention.FIG. 10merely depicts the technical solution with an example that the backup metadata information is stored in the shared storage medium1003. The backup client of the virtual machines inFIG. 10, after reading the backup metadata, immediately issues a locally called data backup instruction to the virtual machine hypervisor1007via the backup Hycall in the virtual machine, in one approach. The method of adding a backup Hycall to each virtual machine and performing a local Hycall has been introduced in detail in the above depiction with reference toFIGS. 2-3, according to one embodiment, which will not be detailed here. The local called instruction as shown inFIG. 10is transmitted via a virtual machine system call, instead of being transmitted by virtual network Vnet, such that the local system call only occupies very few system resources compared to transmitting backup data via the virtual network.

Next, the backup driver1006reads, according to a predetermined rule, the data backup instructions called locally by the three virtual machines, where the predetermined rule may be reading regularly, reading every certain number of instructions, reading in any other predetermined manner, etc. Then, the backup driver1006sends the read data backup instructions to the backup optimizer1005in the privileged domain1002, where the backup optimizer performs optimization processing on the data backup instructions. It should be noted that the backup optimizer1005being in the privileged domain1002is only an embodiment for the sake of providing a better interactive interface, such that the use may easily insert an optimization backup policy and algorithm in his favor. In fact, the backup driver1006and backup optimizer1005may also be in a particular virtual machine (DomU) to work. Further, the backup driver1006and the backup optimizer1005may also be integrated into one, e.g., the backup driver1006per se has a function of optimizing the read data backup instructions.

It should be further noted that as mentioned in the description with reference toFIGS. 2-3, there may be a varied of policies for “optimization”, including merging redundant backup data, selecting a suitable backup time, etc. Besides, the backup driver1006inFIG. 10may perform data backup operation for the virtual machines by utilizing the data backup instructions, without performing any processing on the read data backup instructions, which is also a special optimization policy.

Continuously with the system architecture ofFIG. 10as an example, after the backup optimizer1005completes optimization to the data backup instructions, it sends the optimized data backup instructions to the backup driver1006. With the optimized data backup instructions, the backup driver1006reads the data to be backed up from the shared storage1003, and then writes the read data to be backed up to the backup storage1004, thereby completing the data backup operation of virtual machines1001-A to1001-C. For the sake of simplicity,FIG. 10only shows a backup storage medium1004. In fact, each virtual machine may set its own different storage destination. That is to say, there may be a plurality of different backup storage media1004. It is through the virtual network Vnet that the backup driver1006reads the data to be backed up from the shared storage medium1003, while it is through the virtual network Vnet and a real physical network that the backup driver1006writes the data to be backed up to the backup storage medium1004(if the backup storage medium1004is a remote storage medium). The relationship between the virtual network Vnet and the real physical network may be understood as the virtual machines being in connection and communication with the real physical network via the Vnet.

From system1000ofFIG. 10and the above description, it is seen that different from a conventional data backup system as shown inFIG. 4, the virtual machines1001-A to1001-C inFIG. 10do not need considerable data reading to be backed up through the virtual network and physical network and then writing the data to be backed up to the backup storage through the virtual network and physical network.

Instead, with the system1000ofFIG. 10, since a data backup request of a virtual machine directly issues a data backup instruction via a local call, the data transferred to each virtual machine through the network is only limited to very little data backup metadata information. The subsequent data to be backed up is directly intercepted by the backup driver1006which directly writes to the backup storage1004, without entering into each virtual machine through the virtual network. In this way, considerable virtual network resources are saved, potential network congestion phenomenon occurring during a data backup operation is prevented, and the system performance and operation efficiency are increased. Meanwhile, since the backup driver1006may read data backup instructions for each virtual machine, it may optimize these instructions comprehensively based on an optimization policy, thereby achieving a plurality of technical effects of improving system running efficiency and saving system storage resources, such as preventing possible redundant backup, selecting a suitable backup timing, etc.

It should be further noted thatFIG. 10shows a data flow with data backup operations as an example and the description of such has been provided above. Those skilled in the art should note that the same system architecture may be used for data recovery operations, just with a reverse data flow (from the backup storage1004to the shared storage1003), and a similar technical effect may also be achieved.

Though the system1000ofFIG. 10shows an embodiment of a data backup operation system in a virtualization environment, those skilled in the art may deploy a system similar to that as shown inFIG. 10in a conventional virtualization environment. Deployment operations may include deploying a data processing system call interface in a virtual machine in a conventional virtualization environment, the system call interface being for triggering locally called data processing instructions, deploying a data processing driver in a virtualization management platform in a virtualization environment, the data processing driver being for reading data processing instructions triggered by the system call interface, deploying a data processing instruction optimizer in a virtualization environment, the optimizer being for optimizing data processing instructions read by the deployed data processing driver. These deployment operations have no sequence requirement. By virtue of these deployment operations, a data processing service that may save network resources and storage resources and improve system performance as mentioned above may be provided on the basis of a conventional virtualization environment. According to one embodiment, data processing refers to data backup. According to another embodiment, data processing refers to data recovery.