Server backup method and backup system using the method

A server backup method and a backup system using the server backup method are provided. The server backup method includes continuously collecting a plurality of dirty pages during a running operation and determining a backup start time point according to a quantity of the collected dirty pages. The server backup method also includes suspending the running operation according to the backup start time point and executing a backup snapshot operation to generate a data backup snapshot corresponding to the dirty pages, and executing a backup transmission operation to transmit the data backup snapshot.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the priority benefit of Taiwan application serial no. 104141993, filed on Dec. 14, 2015. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.

TECHNICAL FIELD

The disclosure relates to a server backup method for a virtual machine (VM) featuring a fault tolerance (FT) mechanism and a backup system using the server backup method.

BACKGROUND

In recent years, the rapid development of internet and the rise of cloud computing lead to the increasing demands of corporations for information services, and therefore the virtual machine (VM) with satisfactory computing capabilities has been extensively applied in various solutions. For instance, a great number of servers with the VMs are combined through internet, so as to create an integrate computer that is characterized by high-speed computing capabilities and large storage capacity and has gained popularity among the corporations.

To prevent massive loss caused by machine halt or data loss resulting from server failure, a virtual fault tolerance (FT) mechanism may be applied to timely switch to another server and provide services without interruption when a server providing the services fails.FIG. 1is a schematic diagram illustrating a time delay caused by a virtual FT mechanism. With reference toFIG. 1, a backup cycle of a VM with the FT mechanism can be separated into four phases: a running operation, a backup snapshot operation, a backup transmission operation, and an output operation. If a work load request from a user is received in the first three phases and an output for the user's request is generated, the output is temporarily stored in a buffer memory and is sent out in the last phase, i.e., the output operation. That is to say, in the system featuring the virtual FT mechanism, all of the outputs to the user's request are neither released nor transmitted to the user until the first three phases are completed. Thereby, in the system featuring the virtual FT mechanism, an additional delay time is caused. When processing a work load request being sensitive to the time delay, e.g., online games or real-time trading, the response time of the system cannot be guaranteed; what is more, the issue of internet disconnection or transaction failure may arise accordingly. Hence, a method of controlling the delay time in a system featuring the virtual FT mechanism is required for satisfying such work load requests.

SUMMARY

The disclosure provides a server backup method and a backup system using the server backup method, so as to effectively control a work load delay time in a VM featuring an FT mechanism.

In an exemplary embodiment, a server backup method is provided, and the method includes: continuously collecting a plurality of dirty pages during a running operation and determining a backup start time point according to a quantity of the collected dirty pages; suspending the running operation according to the backup start time point and executing a backup snapshot operation to generate a data backup snapshot corresponding to the dirty pages; and executing a backup transmission operation to transmit the data backup snapshot.

In an exemplary embodiment, a backup system that includes a first server and a second server is provided. The first server runs a first VM, and the first VM continuously collects a plurality of dirty pages during a running operation and determines a backup start time point according to a quantity of the collected dirty pages. The second server runs a second VM and couples to the first server through a bus. The first VM suspends the running operation according to the backup start time and executes a backup snapshot operation to generate a data backup snapshot corresponding to the dirty pages and executes a backup transmission operation to transmit the data backup snapshot to the second VM.

In view of the above, the server backup method and the backup system using the method provided in the exemplary embodiments may be applied to dynamically adjust the amount of the collected dirty pages and determine the backup start time point according to the amount of the collected dirty pages and the time of transmitting the collected dirty pages, so as to effectively control the delay time resulting from the FT mechanism of the VM.

DETAILED DESCRIPTION OF DISCLOSED EMBODIMENTS

In order to control the work load delay time in a virtual machine (VM) with the fault tolerance (FT) mechanism, the backup start time point is dynamically adjusted in the disclosure, so as to keep the delay time to be within a predetermined range.

FIG. 2Aillustrates a structure of a backup system according to an exemplary embodiment, andFIG. 2Bis a block diagram illustrating a backup system according to an exemplary embodiment. Note thatFIG. 2AandFIG. 2Bserve to explain the disclosure and should not be construed as limitations to the disclosure.

With reference toFIG. 2AandFIG. 2B, the backup system100includes a first server110and a second server120, the first server110includes a processing device112, a buffer memory114, a communication device116, and a first VM118, and a second server120includes a processing device122, a buffer memory124, a communication device126, and a second VM128.

The processing device112is coupled to the buffer memory114and the communication device116and configured to control the overall operation of the first server110. The processing device112is, for instance, a central processing unit (CPU).

The buffer memory114is configured to temporarily store command executed by the processing device122or data. For instance, the buffer memory114may be a dynamic random access memory (DRAM) or a static random access memory (SRAM), which should not be construed as a limitation to the disclosure. Namely, the buffer memory114may also be another appropriate memory.

The communication device116is configured to establish network connection with other external device through a cable or in a wireless manner. For instance, the first server110may be communicated with the second server120through the communication device116.

The processing device122, the buffer memory124, and the communication device126are similar to the processing device112, the buffer memory114, and the communication device116, and therefore no further explanation is provided hereinafter.

The first server110and the second server120may run one or more VMs, so as to provide different services. For instance, the first VM118is operated on the first server110, and the second VM128is operated on the second server120. It should be understood that two servers and two VMs are provided in the present exemplary embodiments, which should however not be construed as limitations to the disclosure. The backup system100may include two or more servers, and each server may run one or more VMs. The backup system100further includes a third server configured to run at least one VM (i.e., the third VM), for instance.

A bus130is configured to provide a route for the server to transmit data; for instance, the first server110and the second server120may transmit data to be processed or accessed by each other through the bus130. In the present exemplary embodiment, the bus130complies with a peripheral component interconnect express (PCIe) standard. Nevertheless, it should be understood that the disclosure is not limited thereto, and the bus130may also comply with other standards.

As to the operation of the operating system of the server, pages are applied to manage the memory. If the first VM118needs to revise data in a certain record, the first VM118reads the page having the data from a hard disk, copies the page to the buffer memory114, and revises the record in the page. At this time, the page stored in the buffer memory114is different from the corresponding page in the hard disk, and therefore the revised page in the buffer memory114is a so-called “dirty page”.

FIG. 3is a schematic diagram of executing a VM according to an exemplary embodiment.

With reference toFIG. 3, the backup cycle of the VM with the FT mechanism may be separated into four phases: a running operation302, a backup snapshot operation304, a backup transmission operation306, and an output operation308. In general, the first VM118adds data to the hard disk or revises or accesses the data in the hard disk according to a request command from a user during the running operation302. For instance, in the running operation302, the first VM118temporarily stores the dirty page and response information in response to the user into the buffer memory114. After the backup snapshot operation304is executed, the dirty page obtained from the running operation302may be backed up, so as to generate a data backup snapshot; besides, after the backup snapshot operation304is completed, the first VM resumes executing the running operation302. For instance, a running time of the backup snapshot operation304is approximately 1 millisecond (ms)˜2 ms. In the backup cycle, the running time of the backup snapshot operation304is relatively short and thus may be deemed as having a fixed value in the present exemplary embodiment. The first VM118transmits the data backup snapshot to the second VM128during the backup transmission operation306, so as to complete data backup. When the second server120acts as the backup server of the first server110and the backup system100includes plural first servers110, the second VM128may simultaneously support the first VMs118of the first servers110, i.e., the second server120may act as the backup server of plural first servers110. After the transmission of the data backup snapshot, since the data backup snapshot corresponding to the dirty page is already backed up in the second VM128, the second VM128run by the second server120may timely take over the task of the first VM118run by the first server110and provide corresponding services if the first server110is damaged and can no longer provide any service. When the backup system100further includes the third server, note that the second VM128also executes the backup snapshot operation304and the backup transmission operation306, so as to transmit the data backup snapshot to the VM (e.g., the third VM) run by the third server, thereby further enhancing the reliability of the backup mechanism provided herein. During the output operation308, response information in response to the user is output. For instance, the first VM118or the second VM128executes the output operation308to transmit the response information to an electronic apparatus. The backup transmission operation306is mainly executed to transmit the dirty page, and thus the processing time of the backup transmission operation306is changed according to the data volume of the transmitted dirty page. As such, the backup system100provided herein controls the delay time according to the quantity of the collected dirty pages and the processing time of the backup transmission operation306. To clearly describe the operation of the backup system100and the VMs therein, an exemplary embodiment is provided below with reference toFIG. 3,FIG. 4A, andFIG. 4B.

FIG. 4Ais a flow chart illustrating a server backup method according to an exemplary embodiment, andFIG. 4Bis a flow chart illustrating a method of determining a backup start time point according to an exemplary embodiment.

With reference toFIG. 3andFIG. 4A, in step S401, the first VM118continuously collects a plurality of dirty pages during the running operation302and determines a backup start time point Tbkaccording to the quantity of the collected dirty pages. In step S403, the first VM118suspends the running operation302according to the backup start time point Tbkand executes the backup snapshot operation304to generate the data backup snapshot corresponding to the dirty pages; in step S405, the first VM118executes the backup transmission operation306to transmit the data backup snapshot to the second VM128. So far, a backup cycle is completed. If the user in the backup cycle issues a request command to the first VM118at the time point t1through the electronic apparatus140, the first VM118further executes a processing operation according to the request command, so as to obtain response information corresponding to the request command. In a backup system having the VMs that are not characterized by the FT mechanism, after the first VM118receives the request command from the electronic apparatus140at the time point t1and executes the processing operation according to the request command to obtain the response information corresponding to the request command, the first VM118may then transmit the response information to the electronic apparatus140at the time point t2. By contrast, in the backup system having the VMs that are characterized by the FT mechanism, in order to successfully back up all of the dirty pages in the second VM128, the first VM118temporarily stores the response information in the buffer memory114; after the first VM118completely executes the backup snapshot operation304and the backup transmission operation306, the first VM118executes the output operation308to transmit the response information to the electronic apparatus140at the time point t3. The response time from the time point t1to the time point t2is fixed, and thus the period from the time point t2to the time point t3is defined as the delay time310. However, the disclosure is not limited thereto; in another exemplary embodiment, the delay time310may be a period from the time point t1to the time point t3.

In the disclosure, the delay time310is controlled to be within a certain range, so as to ensure that the response time of the backup system100can satisfy the work load requirement that is sensitive to the time delay. In the present exemplary embodiment, the first VM118sets a predetermined delay and determines the backup start time point Tbkaccording to the predetermined delay, a running time Taof the running operation302, a snapshot time Tbof generating the data backup snapshot corresponding to the dirty pages, and a predetermined transmission time Tcof transmitting the data backup snapshot. Here, the determined backup start time point Tbkallows the sum of the running time Ta, the snapshot time Tb, and the predetermined transmission time Tcto be equal to or shorter than the predetermined delay.

With reference toFIG. 4AandFIG. 4B, in step S401, the first VM118at a time point of collecting the dirty pages executes step S401-1and determines whether the sum of the running time Taof the running operation302, the snapshot time Tbof generating the data backup snapshot corresponding to the dirty pages, and the predetermined transmission time Tcof transmitting the data backup snapshot is shorter than the predetermined delay. If the sum of the running time Taof the running operation302, the snapshot time Tbof generating the data backup snapshot corresponding to the dirty pages, and the predetermined transmission time Tcof transmitting the data backup snapshot is shorter than the predetermined delay, the first VM118continuously collects other dirty pages in step S401-3and again performs the step S401-1at another time point after collecting more dirty pages. By contrast, if the sum of the running time Taof the running operation302, the snapshot time Tbof generating the data backup snapshot corresponding to the dirty pages, and the predetermined transmission time Tcof transmitting the data backup snapshot is longer than or equal to the predetermined delay, the first VM118applies the time point as the backup start time point in step S401-5and continuously performs step S403.

In the present exemplary embodiment, the predetermined transmission time Tcis estimated according to the data volume of the dirty pages collected in the backup cycle, the transmission amount of the dirty pages collected in the previous backup cycle, and a time of transmitting the previously collected dirty pages. For instance, the first VM118calculates a backup transmission speed according to the transmission amount of the previously collected dirty pages and the time of transmitting the previously collected dirty pages and then calculates the predetermined transmission time Tcof transmitting the data backup snapshot according to the backup transmission speed and the data volume of the dirty pages collected in the backup cycle.

For instance, if the first VM118sets the predetermined delay as 10 ms, the transmission amount of the previously collected dirty pages is 200 dirty pages, and the time of transmitting the 200 dirty pages is 4 ms, the first VM118obtains the backup transmission speed of transmitting 50 dirty pages in 1 ms. Here, the snapshot time Tbcorresponding to the backup snapshot operation304is assumed to be 1 ms. If the first VM118in the running operation302collects 100 dirty pages in 2 ms, the first VM118determines that there are 7 ms left for transmitting dirty pages after the snapshot time Tb(i.e., 1 ms) is subtracted and further calculates that 2 ms are required for transmitting the 100 dirty pages according to the backup transmission speed. Namely, the sum (i.e., 5 ms) of the running time Ta(i.e., 2 ms), the snapshot time Tb(i.e., 1 ms), and the predetermined transmission time Tc(i.e., 2 ms) is shorter than the predetermined delay (i.e., 10 ms), and thus the first VM118continuously collects other dirty pages. Given that the first VM118further collects 50 dirty pages in 4 ms (i.e., 6 ms have been spent on collecting the dirty pages, and 150 dirty pages in total have been collected), the first VM118determines that there are 3 ms left for transmitting dirty pages after the snapshot time Tb(i.e., 1 ms) is subtracted and further calculates that 3 ms are required for transmitting the 150 dirty pages according to the backup transmission speed. At this time, the sum (i.e., 10 ms) of the running time Ta(i.e., 6 ms), the snapshot time Tb(i.e., 1 ms), and the predetermined transmission time Tc(i.e., 3 ms) is equal to the predetermined delay (i.e., 10 ms), and thus the first VM118applies the current time point (i.e., the time point at which the running operation302has been executed for 6 ms) as the backup start time point Tbk.

In another example, the first VM118may also determine whether the residual time is enough to transmit the collected dirty pages at the time of generating each dirty page. If the first VM118in the running operation302collects 99 dirty pages in 7 ms, the first VM118determines that there are 2 ms left for transmitting dirty pages after the snapshot time Tb(i.e., 1 ms) is subtracted and further calculates that 1.98 ms are required for transmitting the 99 dirty pages according the backup transmission speed. Although the residual 2 ms are sufficient to transmit 100 dirty pages, the first VM118determines that the residual time may be less than 2 ms and is apparently not sufficient to transmit 100 dirty pages if one dirty page is further collected. Hence, the first VM118applies the time point (i.e., the time point at which the running operation302has been executed for 7 ms) as the backup start time point Tbk. At this time, the sum (i.e., 9.98 ms) of the running time Ta(i.e., 7 ms), the snapshot time Tb(i.e., 1 ms), and the predetermined transmission time Tc(i.e., 1.98 ms) is shorter than the predetermined delay (i.e., 10 ms).

According to the present exemplary embodiment, note that the predetermined transmission time Tcof transmitting the data backup snapshot is estimated according to the quantity of the dirty pages, which should however not be construed as a limitation in the disclosure. The predetermined transmission time Tcmay also be estimated according to the actual transmission speed of the dirty pages (i.e., hereinafter referred to as the compression rate). For instance, in another exemplary embodiment, the predetermined transmission time Tcis estimated according to the data volume of the dirty pages collected in the backup cycle, the compression rate corresponding to the dirty pages collected in the backup cycle, the transmission amount of the dirty pages collected in the previous backup cycle, and a time of transmitting the previously collected dirty pages. Similarly, the first VM118also calculates the backup transmission speed according to the transmission amount of the previously collected dirty pages and the time of transmitting the previously collected dirty pages. The difference lies in that the first VM118provided in the present exemplary embodiment further calculates the compression rate corresponding to the dirty pages according to the data volume of at least parts of the dirty pages collected in the backup cycle and an actual transmission amount of the at least parts of the dirty pages. That is, the compression rate is the ratio of the actual updated data volume of the collected dirty pages to the quantity of the collected dirty pages. The first VM118then calculates the predetermined transmission time Tcof transmitting the data backup snapshot according to the backup transmission speed, the data volume of the dirty pages, and the compression rate corresponding to the dirty pages.

It is assumed that the first VM118sets the predetermined delay as 10 ms and obtains the backup transmission speed of transmitting 50 dirty pages in 1 ms. In this example, the first VM118calculates the compression rate as long as 10 dirty pages are collected. For instance, the data volume of each dirty page is 4 k, the data volume of the updated data in the 10 dirty pages is 12 k in total, and thus the compression rate corresponding to the 10 dirty pages is 30%. If the first VM118collects 30 dirty pages, and if the compression rate corresponding to every 10 of the 30 dirty pages remains at 30%, the first VM118assumes that the compression rate corresponding to every 10 dirty pages collected thereafter remains at 30% as well. Note that the frequency of calculating the compression rate is not limited in the disclosure; for instance, in another exemplary embodiment, the quantity of the dirty pages collected at the time point of calculating the compression rate corresponding to the collected dirty pages may be more than or less than 10.

If the first VM118in the running operation302collects 450 dirty pages in 6 ms, the first VM118determines that there are 3 ms left for transmitting dirty pages after the snapshot time Tb(i.e., 1 ms) is subtracted and further calculates the data volume (600 k, i.e., 150 dirty pages) of the actual updated data in the 450 dirty pages according to the compression rate corresponding to the dirty pages. The first VM118then further calculates that 3 ms are required for transmitting the 150 dirty pages according to the backup transmission speed. That is, the sum (i.e., 10 ms) of the running time Ta(i.e., 6 ms), the snapshot time Tb(i.e., 1 ms), and the predetermined transmission time Tc(i.e., 3 ms) is equal to the predetermined delay (i.e., 10 ms), and thus the first VM118applies the current time point (i.e., the time point at which the running operation302has been executed for 6 ms) as the backup start time point Tbk.

Particularly, if the first VM118collects 30 dirty pages and the compression rate corresponding to every 10 of the 30 dirty pages is 30%, 40%, and 50%, respectively, the first VM118assumes that the compression rate corresponding to every 10 dirty pages collected thereafter gradually increases. For instance, the first VM118assumes that the compression rate corresponding to the next 10 dirty pages is 60%. If the first VM118in the running operation302collects 70 dirty pages in 8 ms, the first VM118determines that there is 1 ms left for transmitting dirty pages after the snapshot time Tb(i.e., 1 ms) is subtracted and further calculates the data volume (168 k, 40*(0.3+0.4+05+0.6+0.7+0.8+0.9)) of the actual updated data in the 70 dirty pages according to the compression rate corresponding to the dirty pages. The first VM118then further calculates that 0.84 ms is required for transmitting 168 k of data (equivalent to 42 dirty pages) according to the backup transmission speed. Although the residual 1 ms is sufficient to transmit 50 dirty pages, the first VM118determines that the residual time may be less than 1 ms and is apparently not sufficient to transmit 50 dirty pages if the data volume equivalent to 8 more dirty pages is further collected. Hence, the first VM118applies the time point (i.e., the time point at which the running operation302has been executed for 8 ms) as the backup start time point Tbk. At this time, the sum (i.e., 9.84 ms) of the running time Ta(i.e., 8 ms), the snapshot time Tb(i.e., 1 ms), and the predetermined transmission time Tc(i.e., 0.84 ms) is shorter than the predetermined delay (i.e., 10 ms). In another exemplary embodiment, the compression rate corresponding to every 10 collected dirty pages may gradually decreases. For instance, the first VM118may collect 30 dirty pages, and the compression rate corresponding to every 10 of the 30 dirty pages may be 50%, 40%, and 30%, respectively.

If the VM executes a large volume of input/output operations, e.g., if compiling a kernel or writing a large file into the hard disk, the backup transmission time cannot be estimated; namely, in the backup transmission operation306, the operation of transmitting the data backup snapshot is affected by other input/output operations, such that the data backup snapshot cannot be transmitted to another VM within the predetermined transmission time Tc. A VM manager divides an interrupt process in half, i.e., the top half and the bottom half. In the top half of the interrupt process, tasks corresponding to a interrupt request are received; in the bottom half of the interrupt process, the tasks are scheduled to be performed, so as to sequentially perform the large volume of input/output operations. At this time, since the interrupt process is still being activated, the central processing unit (CPU) can receive an interrupt request. That is to say, the bottom half of process can be interrupted. The VM manager schedules the input/output operations into the interrupt process in order to prevent the input/output operations from occupying the CPU for a long time, which may lead to the fact that other important tasks cannot be executed. However, if the input/output operation corresponding to the backup transmission operation306is also scheduled into the interrupt process, the input/output operation corresponding to the backup transmission operation306and other input/output operations run by the first VM118may be mutually affected, or the input/output operation corresponding to the backup transmission operation306may be interrupted. Thereby, the backup transmission time is extended, and thus the overall delay time cannot be controlled. In view of the above, in another exemplary embodiment, the first VM118may configure an independent thread to execute the backup transmission operation306, so as to ensure that the data backup snapshot corresponding to the dirty pages can be transmitted to the second VM128within the predetermined transmission time Tc. For instance, the first VM118may configure a first thread to execute the backup transmission operation306and configure a second thread to execute the processing operation, the running operation302, the backup snapshot operation304, and the output operation308. Besides, the first VM118decides that a priority of the first thread is higher than a priority of the second thread. Thereby, the operation of transmitting the data backup snapshot corresponding to the dirty pages in the backup transmission operation306is not influenced by other input/output operations and is thus not interrupted, and the data backup snapshot corresponding to the dirty pages can certainly be transmitted to the second VM128within the predetermined transmission time Tc, so as to effectively control the delay time310.

In the disclosure, the backup system100transmits the large amount of data through the transmission control protocol (TCP); however, applying the TCP to the VM having the FT mechanism leads to the significant amount of time delay.FIG. 5Ais a schematic diagram illustrating mass data transmission through a TCP, andFIG. 5Bis a schematic diagram illustrating mass data transmission through the TCP with fault tolerance. With reference toFIG. 5A, TCP is a highly reliability packet exchange protocol for providing the reliability data stream transmission service among hosts. In order to prevent loss of the packets, each packet receives a serial number issued under the TCP, so as to ensure that the packets sent to the user's electronic apparatus are sequentially received. The user's electronic device then sends an acknowledgement message (ack) corresponding to the successfully received packet. If the server at the transmitting end does not receive any acknowledgement message within the reasonable delay time, the corresponding data packet is deemed as a lost packet and is thus re-transmitted. For instance, as shown inFIG. 5A, when the server transmits a large file or a large amount of data, the server firstly sends a sequence packet SEQ; after the server receives the acknowledgement message ACK1, the server starts to transmit response information corresponding to the request command of the user. The server may, for instance, transmit a portion of the response information DATA1-DATA100to the user, and after the user's electronic device receives the portion of response information DATA1-DATA100and sends an acknowledgement message ACK2back to the server, the server continues to transmit the next portion of response information DATA101-DATA200to the user's electronic device. Said operation will be repeatedly performed until the response information is completely transmitted.

With reference toFIG. 5B, the response information in response to the user's request command is output to the user's electronic device in the output operation308after the backup is completed (i.e., after the running operation302, the backup snapshot operation304, and the backup transmission operation306are completed); therefore, as shown inFIG. 5B, if the backup is not completed, although the server receives the acknowledgement message ACK2, the server does not send out the response information DATA101-DATA200, and thus the user's electronic device does not send out the acknowledgement message ACK3. That is, even though the time for transmitting the response information DATA201-DATA300to the user's electronic device is sufficient, the server end does not transmit the response information DATA201-DATA300, which leads to significant time delay.

FIG. 6is a block diagram illustrating a backup system according to another exemplary embodiment andFIG. 7is a schematic diagram illustrating an operation of a proxy server according to another exemplary embodiment.

With reference toFIG. 6, in order to resolve the issue of significant time delay caused by applying the TCP to the VM having the FT mechanism, the backup system100provided herein may be further equipped with a proxy server600a. The first server110may further include a hypervisor610, and the proxy server600aand the first VM118are operated on the hypervisor610. Here, the hypervisor610is an intermediate software layer between a physical host (e.g., the first server110) and an operating system and is also referred to as a virtual machine monitor (VMM). For instance, the hypervisor610manages the hardware resource in the first server110, so as to properly allocate the hardware resource to the first VM118. For instance, the CPU in the first server110can be allocated to the first VM118through the operating system of the first server110, such that the first VM118is able to directly utilize the physical CPU allocated to the first VM118and provide relevant services. Besides, the proxy server600ais a computer system or another network terminal providing the proxy service and allows one network terminal (e.g., the electronic apparatus140) to indirectly connect another network terminal (e.g., the first server110) through the proxy service. In the present exemplary embodiment, the proxy server600aincludes a processing device602, a buffer memory604, and a communication device606. Similarly, the processing device602is configured to control the overall operation of the proxy server600a, and the buffer memory604is configured to temporarily store the data transmitted between the user end and the server end (e.g., the first server110). The network connection between the proxy server600and the electronic apparatus140is established by the communication device606through a network60, and the internal data are transmitted through the hypervisor610between the proxy server600and the first VM118run by the first server110. The network60is a wireless network complying with the wireless fidelity (Wi-Fi) standard, for instance; however, the disclosure is not limited thereto. In another exemplary embodiment, the network60may be a worldwide interoperability for microwave access (WiMAX) network, a long term evolution (LTE) network, or any other type of wireless network, for instance.

In the present exemplary embodiment, the proxy server600asubstitutes the user's electronic apparatus140to send the acknowledgement message to the first VM118run by the server end before the backup is completed, such that the first VM118is able to sequentially send each portion of the response information to the proxy server600ain advance and temporarily store each portion of the response information in the buffer memory604. Thereby, after the backup is completed, the proxy server600acan immediately transmit the response information to the user's electronic apparatus140. The first server110and the second server120transmit data to be processed or accessed by each other via the bus130through another independent network, such that the data transmission between the first server110and the second server120is not interrupted. Besides, in the present exemplary embodiment, the second server120acts as the proxy server of the first server110, and thus the second server120is usually not employed to provide services to the user end. If, however, the first server110is no longer able to provide services to the user end, and the second VM128run on the second server120takes over the task of the first VM118run on the first server110and provides corresponding services to the user end, the second server120starts to communicate with the proxy server. Here, the proxy server belonging to the second server120may also be connected to the electronic apparatus140through its communication device via the network60, for instance.

With reference toFIG. 7, during the backup transmission operation306run by the first VM118, if the proxy server600areceives one portion (i.e., the first portion) of the response information DATA101-DATA200from the first VM118, the proxy server600atransmits an acknowledgement message ACK3(i.e., the first acknowledgement message ACK3) in response to the first portion of the response information DATA101-DATA200. After receiving the first acknowledgement message ACK3, the first VM118further transmits another portion (i.e., the second portion) of the response information DATA201-DATA300to the proxy server600a, and the proxy server600athen transmits another acknowledgement message ACK4(i.e., the second acknowledgement message) in response to the second portion of the response information DATA201-DATA300. After the backup transmission operation306is completed, the proxy server600atransmits the first portion of the response information (i.e., DATA101-DATA200) and the second portion of the response information (i.e., DATA201-DATA300) to the electronic apparatus140. That is, after the backup is completed, the proxy server600amay send out the response information DATA101-DATA300at a time in no need of waiting for the user's electronic apparatus140to send back the first acknowledgement message ACK3; thereby, the significant time delay caused by applying the TCP to the VM having the FT mechanism may be lessened.

In the present exemplary embodiment, the proxy server600ais configured to substitute the user end to transmit the acknowledgment message to the server before the backup of the first server110to the second server120is completed; in addition, if the first server110at the server is no longer able to provide services to the user end, the proxy server belonging to the second server120may be connected to the electronic apparatus140by its communication device through the network60, so as to timely take over the task of the first server110and provide corresponding services to the user end. Hence, if the backup of the first server110to the second server120is not completed, the proxy server600aof the first server110is required to notify the proxy server of the second server120of the current data transmission status, and the data temporarily stored in the buffer memory604of the proxy server600aare backed up in the proxy server of the second server120.

FIG. 8A-FIG. 8CandFIG. 9A-FIG. 9Bare schematic diagrams illustrating an operation of a proxy server according to still another exemplary embodiment.FIG. 8A-FIG. 8Cillustrate the operation of the proxy server600aof the first server110and the operation of the proxy server600bof the second server120when the server transmits the response information in response to the request command of the user end;FIG. 9A-FIG. 9Billustrate the operation of the proxy server600aof the first server110and the operation of the proxy server600bof the second server120when the user end transmits information to the server end. For illustrative purposes, the first server110and the second server120shown inFIG. 8A-FIG. 8CandFIG. 9A-FIG. 9Bmerely include the first VM118, the proxy server600a, the second VM128, and the proxy server600b. With reference toFIG. 8A, if the proxy server600areceives the sequence packet SEQ of the response information DATA201-DATA300from the first VM118, and only the sequence packet SEQ of the response information DATA1-DATA100is transmitted by the proxy server600ato the electronic apparatus140, the proxy server600abacks up the current data transmission status in the proxy server600bof the second server120. Thereby, the proxy server600bis able to learn that the proxy server600ahas received the sequence packet SEQ of the response information DATA201-DATA300and has transmitted the sequence packet SEQ of the response information DATA1-DATA100to the electronic apparatus140.

With reference toFIG. 8BandFIG. 8C, if the proxy server600aintends to transmit the response information DATA101-DATA300to the electronic apparatus140at a time, the proxy server600asequentially transmits the sequence packet SEQ of the response information DATA101-DATA200and the sequence packet SEQ of the response information DATA201-DATA300to the electronic apparatus140. Therefore, as shown inFIG. 8B, the proxy server600abacks up the response information DATA101-DATA300in the proxy server600bbefore transmitting the sequence packet SEQ of the response information DATA101-DATA200; for instance, the response information DATA101-DATA300is stored into the buffer memory of the proxy server600b. Thereby, inFIG. 8C, if the first server110is no longer able to provide services to the user end, the proxy server600bof the second server120may start to sequentially transmit the sequence packet SEQ of the response information DATA101-DATA200and the sequence packet SEQ of the response information DATA201-DATA300to the electronic apparatus140, so as to complete the transmission of the response information DATA101-DATA300.

With reference toFIG. 9A, in the event that the user end transmits the data to the server end, if the proxy server600aof the first server110receives the sequence packet SEQ of the response information DATA1-DATA100from the electronic apparatus140, the proxy server600abacks up the sequence packet SEQ of the response information DATA1-DATA100in the proxy server600bof the second server120; for instance, the sequence packet SEQ of the response information DATA1-DATA100is stored in the buffer memory of the proxy server600b. When the proxy server600aof the first server110backs up the sequence packet SEQ of the response information DATA1-DATA100in the proxy server600bof the second server120, the proxy server600atransmits the sequence packet SEQ of the response information DATA1-DATA100to the first VM118.

InFIG. 9B, if the first server110is no longer able to provide services to the user end, the first VM118of the first server110is unable to send to the electronic apparatus140an acknowledgement message corresponding to the successfully received packet (i.e., the sequence packet SEQ of the response information DATA1-DATA100). The electronic apparatus140does not receive any acknowledgement message within the reasonable delay time, the electronic apparatus140re-transmits the sequence packet SEQ of the response information DATA1-DATA100to the second server120, and the proxy server600bof the second server120determines that the sequence packet SEQ of the response information DATA1-DATA100is already stored in the buffer memory of the proxy server600band thus takes over the task executed by the proxy server600aof the first server110. For instance, the proxy server600btransmits the acknowledgement message in response to the sequence packet SEQ of the response information DATA1-DATA100to the electronic apparatus140and transmits the response information DATA1-DATA100stored in the buffer memory of the proxy server600bto the second VM128. If inFIG. 9Bthe first server110can keep on providing services to the user end, it is not necessary for the proxy server600bto transmit the sequence packet SEQ of the response information DATA1-DATA100to the second VM128.

To sum up, the server backup method and the backup system using the method as provided in the exemplary embodiments of the disclosure can be applied to dynamically determine the backup start time point through estimating the time of transmitting the collected dirty pages, so as to control the delay time within the predetermined range and further effectively prevent the services provided in response to the work load request sensitive to the time delay from being terminated because of the excessive time delay. Moreover, the user's experience of operating the service provided by a VM featuring a FT mechanism can also be improved. Besides, an independent thread is configured to execute the backup transmission operation according to an exemplary embodiment of the disclosure, so as to ensure that the data backup snapshot corresponding to the dirty pages can be transmitted to another VM within the predetermined transmission time. In another aspect, the backup system provided herein is equipped with the proxy server that can substitute the user's electronic apparatus to send the acknowledgement message to the VM at the server end, so as to lessen the significant time delay caused by the applying the TCP to the VM having the FT mechanism.