A path switching method, comprising: determining, by a controller, an active path and at least one standby path of a data flow, wherein the active path and each of the at least one standby path have a same source switch and a same destination switch; delivering, by the controller, a flow table to a standby path switch, wherein the standby path switch is on one of the at least one standby path and is not on the active path, so that after the data flow is switched from the active path to the one of the at least one standby path, the standby path switch forwards the data flow according to the flow table, wherein the flow table comprises an indication indicating that when there is no hit of a flow entry in the flow table, the flow table is not to be deleted; and delivering, by the controller, a path group table to each failover switch, wherein the path group table comprises an identifier of the active path and standby port information, so that when detecting, according to the identifier of the active path, that the active path encounters a failure, each failover switch performs path switching according to the standby port information, wherein the failover switch is a switch that is on the active path and that is on each of the at least one standby path, the failover switch is not the destination switch, the failover switch has at least one standby port, an active port of the failover switch corresponds to the active path, and each standby port of the failover switch corresponds to one standby path; wherein after the delivering, by the controller, a path group table to each failover switch, the method further comprises: sending, by the controller, a test instruction packet to the source switch, to instruct each failover switch on the active path to detect whether the active path encounters a failure, wherein the test instruction packet comprises: the identifier of the active path, a detection period, and a failure determining period quantity M. determining, by a controller, an active path and at least one standby path of a data flow, wherein the active path and each of the at least one standby path have a same source switch and a same destination switch; delivering, by the controller, a flow table to a standby path switch, wherein the standby path switch is on one of the at least one standby path and is not on the active path, so that after the data flow is switched from the active path to the one of the at least one standby path, the standby path switch forwards the data flow according to the flow table, wherein the flow table comprises an indication indicating that when there is no hit of a flow entry in the flow table, the flow table is not to be deleted; and delivering, by the controller, a path group table to each failover switch, wherein the path group table comprises an identifier of the active path and standby port information, so that when detecting, according to the identifier of the active path, that the active path encounters a failure, each failover switch performs path switching according to the standby port information, wherein the failover switch is a switch that is on the active path and that is on each of the at least one standby path, the failover switch is not the destination switch, the failover switch has at least one standby port, an active port of the failover switch corresponds to the active path, and each standby port of the failover switch corresponds to one standby path; wherein after the delivering, by the controller, a path group table to each failover switch, the method further comprises: sending, by the controller, a test instruction packet to the source switch, to instruct each failover switch on the active path to detect whether the active path encounters a failure, wherein the test instruction packet comprises: the identifier of the active path, a detection period, and a failure determining period quantity M.