Showing the difference between a data and a nodata Storage Checkpoint

The following example shows the difference between data Storage Checkpoints and nodata Storage Checkpoints.

Note:

A nodata Storage Checkpoint does not contain actual file data.

To show the difference between Storage Checkpoints

  1. Create a file system and mount it on /mnt0, as in the following example:
    # mkfs -t vxfs /dev/vx/rdsk/dg1/test0
    version 10 layout
    134217728 sectors, 67108864 blocks of size 1024, log size 65536 blocks
    rcq size    4096 blocks
    largefiles  supported
    maxlink     supported 
    size  65536 blocks, largefiles supported
    # mount -t vxfs /dev/vx/dsk/dg1/test0 /mnt0
  2. Create a small file with a known content, as in the following example:
    # echo "hello, world" > /mnt0/file
  3. Create a Storage Checkpoint and mount it on /mnt0@5_30pm, as in the following example:
    # fsckptadm create ckpt@5_30pm /mnt0
    # mkdir /mnt0@5_30pm
    # mount -t vxfs -o ckpt=ckpt@5_30pm \
      /dev/vx/dsk/dg1/test0:ckpt@5_30pm  /mnt0@5_30pm
  4. Examine the content of the original file and the Storage Checkpoint file:
    # cat /mnt0/file
    hello, world
    # cat /mnt0@5_30pm/file
    hello, world
  5. Change the content of the original file:
    # echo "goodbye" > /mnt0/file
  6. Examine the content of the original file and the Storage Checkpoint file. The original file contains the latest data while the Storage Checkpoint file still contains the data at the time of the Storage Checkpoint creation:
    # cat /mnt0/file
    goodbye
    # cat /mnt0@5_30pm/file
    hello, world
  7. Unmount the Storage Checkpoint, convert the Storage Checkpoint to a nodata Storage Checkpoint, and mount the Storage Checkpoint again:
    # umount /mnt0@5_30pm
    # fsckptadm -s set nodata ckpt@5_30pm /mnt0
    # mount -t vxfs -o ckpt=ckpt@5_30pm \
    /dev/vx/dsk/dg1/test0:ckpt@5_30pm /mnt0@5_30pm
  8. Examine the content of both files. The original file must contain the latest data:
    # cat /mnt0/file
    goodbye

    You can traverse and read the directories of the nodata Storage Checkpoint; however, the files contain no data, only markers to indicate which block of the file has been changed since the Storage Checkpoint was created:

    # ls -l /mnt0@5_30pm/file
    -rw-r--r--   1 root     other 13 Jul 13 17:13 \
    # cat /mnt0@5_30pm/file
    cat: /mnt0@5_30pm/file: Input/output error