A method for replicating data to one or more online storage clouds comprising: providing a data replication cluster comprising at least a first host node and at least a first online storage cloud, wherein said first host node is connected to said first online storage cloud via a network and comprises a server, a cloud array application and a local cache (80, 80a, 80b) and wherein said local cache (80, 80a, 80b) comprises a buffer and a first storage volume and wherein said first storage volume comprises data cached in one or more buffer blocks of said local cache's (80, 80a, 80b) buffer; entering a first request by a user to "write" data in said first storage volume; receiving said first request by said server; identifying said first storage volume's internal structure and initiating processing of said first request; verifying, by the cloud array application, first authorization of said user to "write" data in said first storage volume, and upon approval of said first authorization, passing said first request to said local cache (80, 80a, 80b); verifying, by said local cache (80, 80a, 80b), second authorization of said user to "write" data in a specific region of said first storage volume to which the first request that" writes" data is directed; upon approval of said second authorization, determining if a specific extent of the first request to which the "write" data is directed exists in said local cache's (80, 80a, 80b) buffer for receiving said "write" data; upon confirmation that said specific extent exists in said local cache's (80, 80a, 80b) buffer, storing said "write" data in said extent, wherein said extent comprises said one or more buffer blocks of said local cache's (80, 80a, 80b) buffer; requesting authorization to perform cache flush of the cached first storage volume data to said first online storage cloud; upon receiving approval of said authorization, encrypting said cached first storage volume data in each of said one or more buffer blocks with a data private key; assigning metadata comprising at least a unique identifier to each of said one or more buffer blocks; encrypting said metadata with a metadata private key; transmitting said one or more buffer blocks with the encrypted first storage volume data to said first online storage cloud; creating a sequence of updates of said metadata, encrypting said sequence with said metadata private key; and transmitting said sequence of metadata updates to said first online storage cloud. providing a data replication cluster comprising at least a first host node and at least a first online storage cloud, wherein said first host node is connected to said first online storage cloud via a network and comprises a server, a cloud array application and a local cache (80, 80a, 80b) and wherein said local cache (80, 80a, 80b) comprises a buffer and a first storage volume and wherein said first storage volume comprises data cached in one or more buffer blocks of said local cache's (80, 80a, 80b) buffer; entering a first request by a user to "write" data in said first storage volume; receiving said first request by said server; identifying said first storage volume's internal structure and initiating processing of said first request; verifying, by the cloud array application, first authorization of said user to "write" data in said first storage volume, and upon approval of said first authorization, passing said first request to said local cache (80, 80a, 80b); verifying, by said local cache (80, 80a, 80b), second authorization of said user to "write" data in a specific region of said first storage volume to which the first request that" writes" data is directed; upon approval of said second authorization, determining if a specific extent of the first request to which the "write" data is directed exists in said local cache's (80, 80a, 80b) buffer for receiving said "write" data; upon confirmation that said specific extent exists in said local cache's (80, 80a, 80b) buffer, storing said "write" data in said extent, wherein said extent comprises said one or more buffer blocks of said local cache's (80, 80a, 80b) buffer; requesting authorization to perform cache flush of the cached first storage volume data to said first online storage cloud; upon receiving approval of said authorization, encrypting said cached first storage volume data in each of said one or more buffer blocks with a data private key; assigning metadata comprising at least a unique identifier to each of said one or more buffer blocks; encrypting said metadata with a metadata private key; transmitting said one or more buffer blocks with the encrypted first storage volume data to said first online storage cloud; creating a sequence of updates of said metadata, encrypting said sequence with said metadata private key; and transmitting said sequence of metadata updates to said first online storage cloud.