1. A method for performing storage writes in a mirrored virtual machine system, the method comprising: a secondary virtual machine receiving, during running of an application, a state of a primary virtual machine, wherein the primary virtual machine runs on a first physical machine and the secondary virtual machine runs on a second physical machine, wherein the state of the primary virtual machine is captured by checkpointing, and wherein the primary virtual machine is configured to write updates to data of a first block of disk storage and concurrently write the updates to the data to a write buffer on the secondary virtual machine; storing an existing copy of the data to a rollback buffer for the secondary virtual machine; in response to the primary virtual machine writing one or more updates to the first block, the secondary virtual machine simultaneously receiving, from the first virtual machine, a write to the write buffer that includes the one or more updates to the first block; in response to the secondary virtual machine determining that one or more victim blocks are to be elected from the rollback buffer, the secondary virtual machine notifying the primary virtual machine of an end to the data writes to the write buffer for the one or more victim blocks of data, wherein in response to the primary virtual machine receiving the notification of the end to the data writes to the write buffer for the one or more victim blocks of data, the primary virtual machine reverts to standard disk writes for the one or more victim blocks at the next checkpoint; in response to identifying a next checkpoint in the application: merging the data of the write buffer into the rollback buffer; and clearing the write buffer; and in response to detecting a failover: writing a copy of the rollback buffer to the disk storage; and continuing execution of the application on the secondary virtual machine from a last checkpoint.