Does ESX Snapshots Use COW Or ROW?

Discussion in 'Servers' started by 4yotasan, Jan 31, 2016.

  1. 4yotasan

    4yotasan Active Member

    Joined:
    Jul 18, 2009
    Messages:
    136
    Trophy Points:
    26
    Ratings:
    +0 / 0 / -0
    COW (Copy on Write) and ROW (Redirect on Write) is explained here:
    http://searchdatabackup.techtarget....age-snapshot-technologies-for-data-protection

    COW = "As the blocks change, the original data is copied into the reserved storage capacity set aside for the snapshot prior to the original data being overwritten." Microsoft VSS use this technology.

    ROW = "...the new writes to the original volume are redirected to the storage provisioned for snapshots.". NetAPP use this technology.

    If I understand this correctly, and we play with the idea we only have one single snapshot, COW method means that the "main disk" always have the latest version. The point-in-time version are stored in snapshot area/disk. If I delete/discard a snapshot, nothing is done on the main disk.

    ...and ROW method means the snapshot area/disk contains the latest version. The main/original disk becomes the point-in-time version. If I delete/discard a snapshot, all changes in the snapshot have to be applied to the maindisk.

    We know that when vmware creates a snapshot, it actually write all changes to a delta file, which exist "beside" the main VMDK file. Reverting back to a snapshot takes seconds while deleting a snapshots takes longer time. This sounds like a Redirect On Write to me.


    But when reading vmware articles, they say they use copy-on-write:
    "The child disk, which is created with a snapshot, is a sparse disk. Sparse disks employ the copy-on-write (COW) mechanism, in which the virtual disk contains no data in places, until copied there by a write."
    Source: http://kb.vmware.com/selfservice/mi...nguage=en_US&cmd=displayKC&externalId=1015180

    This confuses me. If vmware snapshot use COW, then why does deletetion of a snapshot involves the process of comitting the changes of the delta file to the VMDK file?
     

Share This Page...