A data flow migration method, comprising: when it is determined to start migration between a source virtual machine and a target virtual machine, determining a silent time used for processing data flow migration, wherein a virtual machine monitor that manages the source virtual machine does not execute a migration operation within the silent time; receiving, within the silent time, a packet that comprises a data flow identifier and is sent by a switching node; and sending the packet to the target virtual machine according to the data flow identifier that is comprised in the received packet and a data flow migration policy; wherein the sending the packet to the target virtual machine according to the data flow identifier that is comprised in the received packet and a data flow migration policy comprises: determining whether the data flow identifier comprised in the received packet exists in a first data flow status table, wherein the first data flow status table comprises a data flow identifier of a data flow being processed by the source virtual machine; and sending the packet to the target virtual machine when a result of the determining is that the data flow identifier comprised in the received packet does not exist in the first data flow status table; wherein the method further comprises: sending the packet to the source virtual machine when a result of the determining is that the data flow identifier comprised in the received packet exists in the first data flow status table. when it is determined to start migration between a source virtual machine and a target virtual machine, determining a silent time used for processing data flow migration, wherein a virtual machine monitor that manages the source virtual machine does not execute a migration operation within the silent time; receiving, within the silent time, a packet that comprises a data flow identifier and is sent by a switching node; and sending the packet to the target virtual machine according to the data flow identifier that is comprised in the received packet and a data flow migration policy; wherein the sending the packet to the target virtual machine according to the data flow identifier that is comprised in the received packet and a data flow migration policy comprises: determining whether the data flow identifier comprised in the received packet exists in a first data flow status table, wherein the first data flow status table comprises a data flow identifier of a data flow being processed by the source virtual machine; and sending the packet to the target virtual machine when a result of the determining is that the data flow identifier comprised in the received packet does not exist in the first data flow status table; determining whether the data flow identifier comprised in the received packet exists in a first data flow status table, wherein the first data flow status table comprises a data flow identifier of a data flow being processed by the source virtual machine; and sending the packet to the target virtual machine when a result of the determining is that the data flow identifier comprised in the received packet does not exist in the first data flow status table; wherein the method further comprises: sending the packet to the source virtual machine when a result of the determining is that the data flow identifier comprised in the received packet exists in the first data flow status table.