1. A computer-implemented method for taking a snapshot of a virtual disk, comprising: creating a first disk descriptor file for a redo log configured to store differences from a base disk and from prior redo logs in a redo-based disk hierarchy; issuing a command to a storage system to take a first copy-on-write (COW) snapshot of the virtual disk, wherein, after taking the first COW snapshot, the virtual disk comprises a COW-based disk hierarchy of logical storage volumes including at least a base logical storage volume to which inputs/outputs (IOs) are performed and a snapshot logical storage volume which is created as a read-only point-in-time copy of the virtual disk and which is associated with the first disk descriptor file for the redo log; changing the first disk descriptor file associated with the snapshot logical storage volume to be associated instead with the base logical storage volume by updating metadata in the first disk descriptor file to point to the base logical storage volume; and changing a second disk descriptor file associated with the base logical storage volume to be associated instead with the snapshot logical storage volume by updating metadata in the second disk descriptor file to point to the snapshot logical storage volume.