Patent ID: 7457871

Claim:
Apparatus for identifying a failed component in a system comprising application servers, storage servers and a switch fabric, said switch fabric having first ports coupled to said application servers to receive requests to access storage managed by said storage servers, second ports coupled to third ports of said storage servers to forward the access requests to said storage servers and receive responses from said storage servers, and internal switches to interconnect said first ports to second ports to pass said requests and responses through said switch fabric, said apparatus comprising: means for receiving from each of said application servers records of its own attempts to communicate with said storage servers via said switch fabric, each of said records indicating one of said third ports and one of said storage servers for each of said communication attempts; and means for determining from said records if any of said communications was successful to one of said storage servers, and if not, determining that said one storage server may have failed, and if so, determining that said one storage server is active and determining from said records if any of said communications was successful to each of said third ports of said one storage server, and if not, determining that said each third port of said one storage server may have failed, and if so, determining that said each third port of said one storage server is active; and wherein each of said records also indicates one of said first ports and one of said switches for said each communication attempt, and further comprising: means for determining from said records if any of said communications was successful to each of said switches leading to said each third port of said one storage server, and if not, determining that said each switch may have failed, and if so, determining that said each switch is active and determining from said records if any of said communications was successful to each of said first ports connected to said each switch leading to said one storage server, and if not, determining that said each first port connected to said each switch leading to said one storage server or a connection between one of said application servers and said each first port connected to said each switch leading to said one storage server may have failed, and if so, determining that said each first port connected to said each switch leading to said one storage server is active.