Patent ID: 8321722
Filing Date: 2012-11-27
Classification: G06F

Abstract:
1. A storage device including an internal network in which components located within a storage controller are connected by PCI Express, wherein the storage controller and the internal network thereof comprise: one or more root complexes that have a plurality of root ports as a whole, each root complex including one or more root ports; one or more processors connected to each root complex; a plurality of virtual hierarchies, which include a first virtual hierarchy and a second virtual hierarchy corresponding to each of the root ports; a plurality of endpoint devices which include a front-end interface endpoint device for connecting to a host device, a back-end interface endpoint device for connecting to a group of storage devices, and a cache memory interface endpoint device for connecting to a cache memory; and a switch that connects the plurality of root ports and the plurality of endpoint devices, and that configures data paths between the root ports and the endpoint devices; wherein: the front-end interface endpoint device has functions, one of which is in an active state in the first virtual hierarchy and another of which is in an inactive state in the second virtual hierarchy; the back-end interface endpoint device has functions, one of which is in an active state in the second virtual hierarchy and another of which is in an inactive state in the first virtual hierarchy; the state of the functions which the front-end interface endpoint device and the back-end interface endpoint device have is changeable between active state and inactive state; the cache memory interface endpoint device has functions, one of which is in an active state in the first virtual hierarchy and another of which is in an active state in the second virtual hierarchy; and the storage controller and the internal network transfer data in the first and second virtual hierarchies in a normal state; and further wherein, when a failure occurs in one of the data paths from one of the plurality of root ports to one of the functions which at least one of the endpoint devices has via the switch in the first virtual hierarchy, the storage controller and the internal network thereof perform a processing of switching an access source root port of the data path, a processing of changing the function belonging to the first virtual hierarchy to the inactive state in the front-end interface endpoint device and the function belonging to the second virtual hierarchy to the active state in the back-end interface endpoint device, and a processing of transferring a data in the second virtual hierarchy, as a processing for executing a data path failover, or when a failure occurs in one data path from one of the plurality of root ports to one of the functions which at least one of the endpoint devices has via the switch in the second virtual hierarchy, the storage controller and the internal network thereof perform a processing of switching an access source root port of the data path, a processing of changing the function belonging to the second virtual hierarchy to the inactive state in the back-end interface endpoint device and the function belonging to the first virtual hierarchy to the active state in the front-end interface endpoint device, and a processing of transferring a data in the first virtual hierarchy, as a processing for executing a data path failover.