A virtual machine fault tolerance method, wherein the method is applied to a virtual machine fault tolerance apparatus of a primary-end host in a virtual machine fault tolerance system, the virtual machine fault tolerance system further comprises a secondary-end host, a primary virtual machine runs on the primary-end host, a secondary virtual machine runs on the secondary-end host, and the method comprises: receiving a network request sent by a client, and separately sending the network request to the primary virtual machine and the secondary virtual machine, so that the primary virtual machine and the secondary virtual machine separately respond to the network request, and generate primary-end data and secondary-end data corresponding to the network request; receiving a network response data packet, wherein the network response data packet is a primary-end data packet transmitted by the primary virtual machine or a secondary-end data packet transmitted by the secondary virtual machine, the primary-end data packet comprises a part or all of the primary-end data, and the secondary-end data packet comprises a part or all of the secondary-end data; storing peer-end data of the network response data packet and comparing data of the received network response data packet with the peer-end data according to data byte order, wherein when the network response data packet is the primary-end data packet, the peer-end data is the secondary-end data, or when the network response data packet is the secondary-end data packet, the peer-end data is the primary-end data; and when the compared data is the same, generating and sending a newly created data packet to the client, wherein the newly created data packet comprises the compared data, wherein the comparing data of the network response data packet with the peer-end data according to data byte order comprises: when a byte count of the data of the network response data packet is different from a byte count of the peer-end data, determining, according to the data byte order, to-be-compared data from data whose byte count is larger, wherein the to-be-compared data is data that has a specified byte count and that is in the data whose byte count is larger, and the specified byte count is the same as a byte count of data whose byte count is smaller; and comparing the data whose byte count is smaller with the to-be-compared data according to the data byte order. receiving a network request sent by a client, and separately sending the network request to the primary virtual machine and the secondary virtual machine, so that the primary virtual machine and the secondary virtual machine separately respond to the network request, and generate primary-end data and secondary-end data corresponding to the network request; receiving a network response data packet, wherein the network response data packet is a primary-end data packet transmitted by the primary virtual machine or a secondary-end data packet transmitted by the secondary virtual machine, the primary-end data packet comprises a part or all of the primary-end data, and the secondary-end data packet comprises a part or all of the secondary-end data; storing peer-end data of the network response data packet and comparing data of the received network response data packet with the peer-end data according to data byte order, wherein when the network response data packet is the primary-end data packet, the peer-end data is the secondary-end data, or when the network response data packet is the secondary-end data packet, the peer-end data is the primary-end data; and when the compared data is the same, generating and sending a newly created data packet to the client, wherein the newly created data packet comprises the compared data, wherein the comparing data of the network response data packet with the peer-end data according to data byte order comprises: when a byte count of the data of the network response data packet is different from a byte count of the peer-end data, determining, according to the data byte order, to-be-compared data from data whose byte count is larger, wherein the to-be-compared data is data that has a specified byte count and that is in the data whose byte count is larger, and the specified byte count is the same as a byte count of data whose byte count is smaller; and comparing the data whose byte count is smaller with the to-be-compared data according to the data byte order. when a byte count of the data of the network response data packet is different from a byte count of the peer-end data, determining, according to the data byte order, to-be-compared data from data whose byte count is larger, wherein the to-be-compared data is data that has a specified byte count and that is in the data whose byte count is larger, and the specified byte count is the same as a byte count of data whose byte count is smaller; and comparing the data whose byte count is smaller with the to-be-compared data according to the data byte order.