1. A cluster storage system comprising: a shared storage comprising a plurality of storage devices; a first site comprising: a first plurality of nodes for providing data-access service to the shared storage, each node configured for: producing write logs for received write requests; communicating the write logs to a first global write-log device; and the first global write-log device configured for: receiving and storing write logs received from the first plurality of nodes; communicating the write logs from the first plurality of nodes to a second global write-log device at a second site; and detecting a failure of a node in the first plurality of nodes; and a second site comprising: a second plurality of nodes for providing data-access service to the shared storage, each node configured for: producing write logs for received write requests; communicating the write logs to the second global write-log device; the second global write-log device configured for: receiving and storing write logs received from the second plurality of nodes; and receiving and storing write logs received from the first global write-log device, wherein the first plurality of nodes comprises a primary node and the second plurality of nodes comprises a first partner node configured for resuming data-access services of the primary node upon failure of the primary node, and upon detection of failure of the primary node by the first global write-log device, the second global write-log device is configured for providing the write logs of the primary node to the first partner node.