System Administration Guide: Devices and File Systems
Previous Next

Creating and Deleting UFS Snapshots

When you use the fssnap command to create a UFS snapshot, observe how much disk space the backing-store file consumes. The backing-store file initially uses no space, and then it grows quickly, especially on heavily used systems. Make sure that the backing-store file has enough space to expand. Or, limit its size with the -o maxsize=n [k,m,g] option, where n [k,m,g] is the maximum size of the backing-store file.


Caution - If the backing-store file runs out of space, the snapshot might delete itself, which causes the backup to fail. Check the /var/adm/messages file for possible snapshot errors.


You can also specify a directory for the backing-store path, which means a backing store file is created in the directory specified. For example, if /var/tmp is specified for the backing-store path, the following backing-store file is created.

/var/tmp/snapshot0

If you created one large root (/) file system instead of creating separate file systems for /export/home, /usr, and so on, you will be unable to create a snapshot of those separate file systems. For example, this system does not have a separate file system for /usr as indicated under the Mounted on column:

# df -k /usr
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c0t0d0s0    3618177 2190002 1391994    62%    /

If you attempt to create a snapshot for the /usr file system, you will see a message similar to the following:

# fssnap -F ufs -o bs=/snaps/usr.back.file /usr
snapshot error: Invalid backing file path

This message indicates that you cannot have the backing store file on the same file system as the file system being snapped, which is the case for the /usr file system, in this example.

For more information, see the fssnap_ufs(1M) man page.

Creating a Multiterabyte UFS Snapshot

Creating a multiterabyte UFS snapshot is identical to creating a snapshot for a smaller UFS file system. The only difference is that multiple backing store files are created for each 512 Gbytes of file system space.

Keep the following key points in mind when creating a snapshot for a file system that is larger than 512 Gbytes:

  • Multiple backing store files are created.

    • If you specify a backing store file name when the snapshot is created, then the subsequent backing store file names will be interated based on the file name that you specify. The subsequent backing-store files will have the same name, but with the suffixes .2, .3, and so on.

    • If you only specify a backing store file destination (or directory) and not a backing store file name, then multiple backing store file names will be created and iterated with the suffixes .2, .3, and so on.

  • The fssnap -i command only reports the first backing store file name even if multiple backing store files have been created. However, the reported backing-store length is the combined sizes of all the backing store files for the snapshot.


    Note - Backing-store files are sparse files. The logical size of a sparse file, as reported by the ls command, is not the same as the amount of space that has been allocated to the sparse file, as reported by the du command.


  • After you have backed up the snapshot or you would just like to remove the snapshot, you will have to remove the backing store files manually if you did not use the unlink option when the snapshot was created.

For an example of creating a snapshot for a file system that is larger than 512 Gbytes, see Example 26-2.

For more information, see fssnap_ufs(1M).

How to Create a UFS Snapshot

  1. Become superuser or assume an equivalent role.
  2. Make sure that the file system has enough disk space for the backing-store file.
    # df -k 
  3. Make sure that a backing-store file of the same name and location does not already exist.
    # ls /backing-store-file
  4. Create the UFS snapshot.
    # fssnap -F ufs -o bs=/backing-store-file /file-system

    Note - The backing-store file must reside on a different file system than the file system that is being captured using UFS snapshots.


  5. Verify that the snapshot has been created.
    # /usr/lib/fs/ufs/fssnap -i /file-system
Example 26-1 Creating a UFS Snapshot

The following example shows how to create a snapshot of the /usr file system. The backing-store file is /scratch/usr.back.file. The virtual device is /dev/fssnap/1.

# fssnap -F ufs -o bs=/scratch/usr.back.file /usr
/dev/fssnap/1

The following example shows how to limit the backing-store file to 500 Mbytes.

# fssnap -F ufs -o maxsize=500m,bs=/scratch/usr.back.file /usr 
/dev/fssnap/1
Example 26-2 Creating a Multiterabyte UFS Snapshot

The following example shows how to create a snapshot of a 1.6 Tbyte UFS file system.

# fssnap -F ufs -o bs=/var/tmp /data2
/dev/fssnap/0
# /usr/lib/fs/ufs/fssnap -i
Snapshot number               : 0
Block Device                  : /dev/fssnap/0
Raw Device                    : /dev/rfssnap/0
Mount point                   : /data2
Device state                  : idle
Backing store path            : /var/tmp/snapshot0
Backing store size            : 0 KB
Maximum backing store size    : Unlimited
Snapshot create time          : Fri Sep 10 13:13:02 2004
Copy-on-write granularity     : 32 KB
# ls /var/tmp
snapshot0    snapshot0.2  snapshot0.3  snapshot0.4

How to Display UFS Snapshot Information

You can display the current snapshots on the system by using the fssnap -i option. If you specify a file system, you see detailed information about that file system snapshot. If you don't specify a file system, you see information about all of the current UFS snapshots and their corresponding virtual devices.


Note - Use the UFS file system-specific fssnap command to view the extended snapshot information as shown in the following examples.


  1. Become superuser or assume an equivalent role.
  2. List all current snapshots.

    For example:

    # /usr/lib/fs/ufs/fssnap -i
    Snapshot number               : 0
    Block Device                  : /dev/fssnap/0
    Raw Device                    : /dev/rfssnap/0
    Mount point                   : /export/home
    Device state                  : idle
    Backing store path            : /var/tmp/home.snap0
    Backing store size            : 0 KB
    Maximum backing store size    : Unlimited
    Snapshot create time          : Thu Jul 01 14:50:38 2004
    Copy-on-write granularity     : 32 KB
  3. Display detailed information about a specific snapshot.

    For example:

    # /usr/lib/fs/ufs/fssnap -i /export
    Snapshot number               : 1
    Block Device                  : /dev/fssnap/1
    Raw Device                    : /dev/rfssnap/1
    Mount point                   : /export
    Device state                  : idle
    Backing store path            : /var/tmp/export.snap0
    Backing store size            : 0 KB
    Maximum backing store size    : Unlimited
    Snapshot create time          : Thu Jul 01 15:03:22 2004
    Copy-on-write granularity     : 32 KB

Deleting a UFS Snapshot

When you create a UFS snapshot, you can specify that the backing-store file is unlinked. An unlinked backing-store file is removed after the snapshot is deleted. If you don't specify the -o unlink option when you create a UFS snapshot, you must manually delete the backing-store file.

The backing-store file occupies disk space until the snapshot is deleted, whether you use the -o unlink option to remove the backing-store file or you manually delete the file.

How to Delete a UFS Snapshot

You can delete a snapshot either by rebooting the system or by using the fssnap -d command. When you use this command, you must specify the path of the file system that contains the UFS snapshot.

  1. Become superuser or assume an equivalent role.
  2. Identify the snapshot to be deleted.
    # /usr/lib/fs/ufs/fssnap -i
  3. Delete the snapshot.
    # fssnap -d /file-system
    Deleted snapshot 1.
  4. If you did not use the -o unlink option when you created the snapshot, manually delete the backing-store file.
    # rm /file-system/backing-store-file
Example 26-3 Deleting a UFS Snapshot

The following example shows how to delete a snapshot and assumes that the -o unlink option was not used.

# fssnap -i
    0    /export/home
    1    /export
   # fssnap -d /usr
 Deleted snapshot 1.
# rm /var/tmp/export.snap0
Previous Next