Deduplicating data

You deduplicate data using the fsdedupadm command. The fsdedupadm command performs the following functions:

Functionality

Command syntax

Enable the deduplication of a file system.

fsdedupadm enable [-c chunk_size] [-q] mount_point

Disable the deduplication of a file system.

fsdedupadm disable [-q] mount_point

Query the deduplication configuration of a file system.

fsdedupadm list mount_point|all

Start a deduplication run on a file system.

fsdedupadm start [-s] [-q] mount_point

Stop a deduplication run on a file system.

fsdedupadm stop [-q] mount_point

Query the deduplication status of a file system.

fsdedupadm status mount_point|all

Enable or disable the skipping of shared extents.

fsdedupadm skipshared {true|false} mount_point

Set the node on which the scheduled deduplication job will run.

fsdedupadm setnodelist nodelist mount_point|all

Set the deduplication schedule for a file system.

fsdedupadm setschedule time mount_point

Initiate a deduplication dry run on a file system.

fsdedupadm dryrun [-o threshold=#] mount_point

Remove the deduplication configuration file and deduplication database on a file system.

fsdedupadm remove mount_point

For more information about the keywords, see the fsdedupadm(1M) manual page.

The following example creates a file system, creates duplicate data on the file system, and deduplicates the file system.

Example of deduplicating a file system

  1. Create the file system fsvol1:
    # mkfs -t vxfs /dev/vx/rdsk/fsdg/fsvol1
  2. Mount the file system as /mnt1:
    # mount -t vxfs /dev/vx/dsk/fsdg/fsvol1 /mnt1
  3. Make a temporary directory, temp1, on /mnt1 and copy the file1 file into the directory:
    # mkdir /mnt1/temp1
    # cd /mnt1/temp1
    # cp /root/file1 .
    # /opt/VRTS/bin/fsadm -S shared /mnt1
    Mountpoint    Size(KB)    Available(KB)   Used(KB)   Logical_Size(KB) Space_Saved(KB)
              /mnt1        20971520      19335962      346609           602609        0

    The file1 file is approximately 250 MB, as shown by the output of the fsadm command.

  4. Make another temporary directory, temp2, and copy the same file, file1, into the new directory:
    # mkdir /mnt1/temp2
    # cd /mnt1/temp2
    # cp /root/file1 .
    # /opt/VRTS/bin/fsadm -S shared /mnt1
    Mountpoint  Size(KB) Available(KB) Used(KB) Logical_Size(KB) Space_Saved(KB)
    /mnt1       4194304  3588700       548740   548740           0%

    By copying the same file into temp2, you now have duplicate data. The output of the fsadm command show that you are now using twice the amount of space.

  5. Enable deduplication on the mount point /mnt1:
    # /opt/VRTS/bin/fsdedupadm enable -c 4096 /mnt1
    # /opt/VRTS/bin/fsdedupadm list /mnt1
     
    Chunksize Enabled SkipShared Schedule NodeList            Filesystem
    ---------------------------------------------------------------------
    4096      YES     True       NONE     node1               /mnt1
  6. Start a deduplication run on the mount point /mnt1:
    # /opt/VRTS/bin/fsdedupadm start /mnt1
    UX:vxfs fsdedupadm: INFO: V-3-20: 0000: deduplication is started
    on /mnt1.
  7. Check status of deduplication:
    # /opt/VRTS/bin/fsdedupadm status /mnt1
    Saving    Status    Node            Type        Filesystem
    --------------------------------------------------------------------------------
    42%       COMPLETED fsaixp702-v05   MANUAL      /mnt1
    2014/09/23 22:48:22 Begin full scan.
    2014/09/23 22:51:45 End detecting duplicates and filesystem changes.
  8. Verify that the file system was deduplicated by checking how much space you are using:
    # /opt/VRTS/bin/fsadm -S shared /mnt1
    Mountpoint    Size(KB)    Available(KB)   Used(KB)   Logical_Size(KB) Space_Saved(KB)
                 /mnt1       20971520      19335962       346609           602609        256000

    The output shows that the used space is nearly identical to when you had only one copy of the file1 file on the file system.