Patent ID: 7584377

Claim:
A method of managing a write request from a first compute node in a storage area network to a mirrored storage data set having a first storage node and a second storage node in the storage area network, comprising: if there are available communication paths between the first compute node and both the first storage node and the second storage node in the mirrored data set, then executing the write request from the first compute node to both the first storage node and the second storage node using the available communication paths; if there are no available communication paths between the first compute node and the first storage node and the second storage node, then invoking an error routine; if there is an available communication path between the first compute node and only one of the first storage node and the second storage node in the mirrored data set, then: executing the write request from the first compute node to the first storage node or the second storage node via the available communication path; determining if a second compute node supports surrogate writes, wherein a surrogate write is a write performed by a node on behalf of another node; transmitting the write request from the first compute node to the second compute node determined to support surrogate writes if there is an available direct communication path from the first compute node to the second compute node and an available communication path from the second compute node through a first switch or a second switch to the first storage node or the second storage node, wherein a direct communication path is a path between two compute nodes, possibly passing through a switch, but not passing through a third compute node.