A snapshot is a read-only copy of a virtual disk. Snapshots can be created quickly and initially consume little space. As data within the active virtual disk changes, the snapshot consumes more data than would otherwise be shared with the active virtual disk.
vdisk supports snapshots in a manner similar to ZFS, except that the vdisk cannot be in use during a snapshot. The user can take a snapshot of the vdisk and later rollback to that snapshot, if needed. The user can also take a snapshot and then clone that snapshot into another vdisk.
To see the images are associated with a vdisk, type:
# vdiskadm list vhd_sp vhd_sp |
Take a snapshot of the virtual disk immediately after installing it:
# vdiskadm snapshot /export/home/vdisks/vhd_sp@install |
List all images associated with the virtual disk:
# vdiskadm list /export/home/vdisks/vhd_sp vhd_sp@install vhd_sp |
The original file, vdisk.vhd, has been moved to vdisk@install.vhd. A new file that contains the differences has been created. It is named vdisk.vhd.
# ls -l vhd_sp total 2717732 -rw------- 1 root root 17408 May 11 16:41 vdisk.vhd -rw-r--r-- 1 xvm root 717 May 11 16:41 vdisk.xml -rw------- 1 root root 1390768640 May 11 16:41 vdisk@install.vhd |
The vdisk.xml file shows the added snapshot element. When additional snapshots are created, new snapshot elements will be added to the xml description. The snapshot order in the list (and shown with vdiskadm list) shows the order in which the snapshots are loaded.
# cat vhd_sp/vdisk.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE vdisk PUBLIC "-//Sun Microsystems Inc//DTD xVM Management All//EN" "file:///usr/share/lib/xml/dtd/vdisk.dtd"> <vdisk readonly="false" removable="false" cdrom="false" creation-time-epoch="1241643718" vtype="vhd" sparse="true" rwcnt="0" rocnt="0"> <name>vhd_sp</name> <version>1.0</version> <parent>none</parent> <diskprop> <filename>vhd_sp</filename> <vdfile>vdisk.vhd</vdfile> <owner>xvm</owner> <max-size>6442450944</max-size> <sectors>12582912</sectors> <description>none</description> </diskprop> <snapshot creation-time-epoch="1242081709"> <name>@install</name> <vdfile>vdisk@install.vhd</vdfile> </snapshot> </vdisk> |
Now, take another snapshot after a bfu and list the contents:
# vdiskadm snapshot /export/home/vdisks/vhd_sp@bfu # vdiskadm list /export/home/vdisks/vhd_sp vhd_sp@install vhd_sp@bfu vhd_sp |
To roll back the disk to a point right after the install:
# vdiskadm rollback -r /export/home/vdisks/vhd_sp@install # vdiskadm list /export/home/vdisks/vhd_sp vhd_sp@install vhd_sp |
The rollback operation removes vdisk.vhd and any intervening snapshot images after vdisk@install.vhd, and creates a new differences file named vdisk.vhd.
# ls -l vhd_sp total 2717732 -rw------- 1 root root 17408 May 11 16:47 vdisk.vhd -rw-r--r-- 1 xvm root 717 May 11 16:47 vdisk.xml -rw------- 1 root root 1390768640 May 11 16:47 vdisk@install.vhd |