Asynchronous data replication between a primary computing device and one or more secondary computing devices interconnected by a long distance network. The primary computing device buffers one or more write requests in volatile memory and appends the request to a local log file and performs data write back in background. This log file is transferred and replicated to the secondary devices. The so transferred and replicated log file is subsequently applied to block level storage means of the secondary computing devices.