Abstract: The present invention provides methods for mirroring hard disk data of a primary server over a network to a secondary server. A virtual disk driver is provided between the operating system and the hard disk driver of the primary server. After the virtual disk driver receives a disk write request that should be mirrored, the virtual disk driver first sends a disk write request to the secondary server. The virtual disk driver then sends the disk write request to a disk drive on the primary server. In the event data residing on one server is unavailable due to a system failure, the same data would still be available on the other server. Multiple methods of synchronous and asynchronous disk mirroring are provided. The present invention provides a very low overhead and results in high performance and availability.