Solaris ZFS Administration Guide

ProcedureHow to Manage Automatic ZFS Snapshots

  1. Start a privileged shell, if running an OpenSolaris release. Otherwise, become a privileged user.


    user@opensolaris:-$ pfexec bash
    #

    In this example, the bash shell is selected. You can choose to use any shell with the pfexec command. If you support multiple versions of the SolarisTM OS, use the standard su root command. The su command works on all Solaris versions.

  2. Enable the Time Slider service, which is disabled by default.

    You can enable or disable these services from the command line or from the System->Preferences->Time Slider Setup menu. From this menu, you can also customize which ZFS file systems to snapshot and adjust the file system capacity setting for when snapshots are removed.

  3. Review the default automatic snapshot service instances that are started when the Time Slider service is enabled.


    # svcs | grep auto-snapshot
    online       Oct_22   svc:/system/filesystem/zfs/auto-snapshot:frequent
    online       Oct_22   svc:/system/filesystem/zfs/auto-snapshot:hourly
    online       Oct_22   svc:/system/filesystem/zfs/auto-snapshot:weekly
    online       Oct_22   svc:/system/filesystem/zfs/auto-snapshot:monthly
    online       Oct_22   svc:/system/filesystem/zfs/auto-snapshot:daily
  4. Confirm that automatic snapshots are created.

    For example:


    # zfs list -t snapshot
    NAME                                                   USED  AVAIL  REFER  MOUNTPOINT
    rpool@zfs-auto-snap:weekly-2008-11-13-15:39            0      -     46.5K  -
    rpool@zfs-auto-snap:daily-2008-11-13-15:39             0      -     46.5K  -
    rpool@zfs-auto-snap:hourly-2008-11-13-15:39            0      -     46.5K  -
    rpool@zfs-auto-snap:frequent-2008-11-13-15:39          0      -     46.5K  -
    rpool/ROOT@zfs-auto-snap:weekly-2008-11-13-15:39       0      -     18K  -
    rpool/ROOT@zfs-auto-snap:daily-2008-11-13-15:39        0      -     18K  -
    rpool/ROOT@zfs-auto-snap:hourly-2008-11-13-15:39       0      -     18K  -
    rpool/ROOT@zfs-auto-snap:frequent-2008-11-13-15:39     0      -     18K  -
    .
    .
    .
  5. Disable or enable specific automatic snapshot services for the top-level dataset and all descendent datasets from the command line.

    For example:


    # zfs set com.sun:auto-snapshot=false rpool
    # zfs set com.sun:auto-snapshot=true rpool/ROOT/opensolaris
  6. Choose to only take snapshots under a given schedule for a dataset and all direct descendent datasets from the command line.

    For example:


    # zfs set com.sun:auto-snapshot=false rpool/export
    # zfs set com.sun:auto-snapshot:weekly=true rpool/export
  7. Change the frequency of a given snapshot schedule from the command line.

    For example:


    # svccfg -s svc:/system/filesystem/zfs/auto-snapshot:frequent setprop zfs/period = 30
    # svccfg -s svc:/system/filesystem/zfs/auto-snapshot:frequent refresh
    # svcadm restart svc:/system/filesystem/zfs/auto-snapshot:frequent
  8. Disable automatic snapshot services for the swap and dump volumes, from the command line, if necessary.

    For example:


    # zfs set com.sun:auto-snapshot=false rpool/dump
    # zfs set com.sun:auto-snapshot=false rpool/swap
  9. Remove a range of unwanted snapshots, from the command line, if necessary.

    For example, remove all automatic snapshots in the bash shell, as follows:


    for s in `zfs list -H -o name -t snapshot | grep @zfs-auto-snap`; 
    do zfs destroy $s; done