Another way to assign a time-based schedule for compression and deduplication to a volume using CLI is to use policies. Policies provide more flexibility, more granularity, and simpler management across multiple volumes. Policies are assigned to FlexVol volumes or an Infinite Volume, not individual data constituents. If you require different policies for different data constituents, contact NetApp Customer Success Services for assistance. Once a policy is assigned to a volume, to make changes you simply need to change the policy and the update will happen automatically to all volumes assigned to the policy.
Policies also allow the ability to set a duration and starting in clustered Data ONTAP 8.2 the ability to assign volume efficiency priority of either best-effort or background. The ability to set a duration adds the ability to not only assign a start time but also an end time. This can be extremely beneficial for many customers such as:
Customers who have a significant amount of new data and only a short window to complete compression/deduplication
Customers who have many scheduled activities that they don’t want to have occur in parallel
Customers with many volumes who all want to run compression/deduplication and want to give each equal time to run during a set window
There are a maximum of three steps to create a policy and assign it to a volume: create a cron job schedule, create an efficiency policy, and assign the efficiency policy to a volume.
The following walks you through the three steps individually. If you already have a cron job schedule or a policy created that meets your needs, skip to step 3.
Step 1: Create a Cron Job Schedule in the Cluster
The first step to set up a policy is to determine that you have a cron job schedule that exists for any time-based policies you want to create. Cron job schedules are created at the cluster level. You can use preexisting cron job schedules or create your own using the command job schedule cron create.
This job schedule will determine the frequency of and start times for running the job. Here is an example of how to create a job cron schedule that runs every Sunday at 6:05 p.m.
Cluster1::> job schedule cron create -name sun605 -dayofweek Sunday -hour 18 -minute 5
To view the current cron job schedules:
Cluster1::> job schedule cron show Name Type Description
--- --- --- 5min cron @:00,:05,:10,:15,:20,:25,:30,:35,:40,:45,:50,:55 8hour cron @2:15,10:15,18:15
daily cron @0:10 hourly cron @:05 weekly cron Sun@0:15 WEmidnight cron Sun,Fri,Sat@0:00 sun605 cron Sun@18:05
Notice that you can create cron job schedules at a more granular level than compression/deduplication schedules. Here you are able to include minutes in the schedule rather than only hours.
42 NetApp Data Compression and Deduplication Deployment and Implementation Guide for Clustered Data ONTAP
Step 2: Create an Efficiency Policy for the Vserver
The next step to set up an efficiency schedule for compression and deduplication is to determine that you have an efficiency policy that meets your needs or to create one. Efficiency policies are created at the Vserver level. You can create, delete, modify, or view efficiency policies with the volume efficiency policy command. Here is the usage syntax.
Cluster1::> volume efficiency policy ? (volume efficiency policy)
create Create an efficiency policy delete Delete an efficiency policy modify Modify an efficiency policy
show Show efficiency policies
Here is an example of creating an efficiency policy that will run compression/deduplication every Sunday at 6:05 p.m. for 8 hours using the priority background.
Cluster1::> volume efficiency policy create vserver vsone policy Sun6pm -schedule sun605 -enabled true -duration 8 -comment "Run every Sun at 6:05 pm for 8 hrs" –qos-policy background
To see the efficiency policies you have on your cluster you can use the show option.
Cluster1::> volume efficiency policy show Job Duration QoS
Vserver Policy Name Schedule (Hours) Policy Enabled Comment --- --- --- --- --- --- ---
vsone Everyday daily 4 best-effort true Run daily at 00:10 am for 4 hours vsone Sun6pm sun605 8 background true Run every Sun at 6:05 pm for 8 hrs vsone Every8hrs 8hour 1 best-effort true Run every 8 hrs starting 2:15 for 1 hr vsone Weekends WEmid - background true Run Fri at midnight until complete
Notice that again there is more control with a policy in that you can include a stop time/duration.
Cluster1::job schedule> delete Sun605pm
Error: command failed: Cannot delete job schedule. Schedule referenced by 0 volume Snapshot policy entries, 0 SnapMirror entries, 0 antivirus on-demand entries, 1 SIS policy entries, and 0 configuration backup settings. Remove references to schedule first.
Note: A scheduled job cannot be deleted if it is referenced by a volume efficiency policy. It does not matter if there are no volumes configured with this policy.
43 NetApp Data Compression and Deduplication Deployment and Implementation Guide for Clustered Data ONTAP
Cluster1::job schedule> cron modify -name defaultEfficiencySched -hour 5
Warning: Schedule in use by 0 volume Snapshot policy entries, 0 SnapMirror entries, 0 antivirus on-demand entries, 1 SIS policy entries, and 0 configuration backup settings. This change will affect the schedule of all referenced entities. Continue with modify? {y|n}:
Note: Since changes to a policy will take immediate effect on all volumes assigned to the policy, a warning will be given if an attempt is made to modify a job cron schedule referenced by an efficiency policy.
Step 3: Assign an Efficiency Policy to a Volume
The final step to set up an efficiency policy for compression and deduplication is to assign the efficiency policy to volumes.
To add or modify an efficiency policy for a volume, use this syntax.
Cluster1::> volume efficiency modify -vserver vsone -volume vol4 -policy Sun605pm Cluster1::> volume efficiency modify -vserver vsone -volume vol5 -policy Sun605pm
You can assign multiple volumes within the same Vserver to use the same policy.
Here is the syntax to see the current efficiency policy or schedule that is assigned to each volume.
Cluster1::> volume efficiency show -fields policy, schedule vserver volume policy schedule
--- --- --- ---
vsone vol1 - -
vsone vol2 - auto@50
vsone vol3 - Fri@0
vsone vol4 Sun605pm -
vsone vol5 Sun605pm -
In summary you can have either a schedule or a policy assigned to a volume. You can still run
compression/deduplication manually regardless of what schedule or policy is assigned. Policies provide the following extra benefits over a compression/deduplication schedule.
Minutes: Add the ability to schedule at a particular minute, not just on the hour.
Stop Times: Add the ability to include duration so you can schedule not only a start time but also a stop time. If compression/deduplication doesn’t complete in the specified duration it will stop, create a checkpoint, and continue at the next scheduled time.
Volume efficiency priority: Starting in clustered Data ONTAP 8.2 you have the ability to assign a priority of either best-effort or background to a volume efficiency operation.
Simpler Management: Allows one simple change to a policy to change multiple volumes rather than having to modify each volume individually.
44 NetApp Data Compression and Deduplication Deployment and Implementation Guide for Clustered Data ONTAP
Note: NetApp recommends setting volumes with a volume efficiency priority of background be scheduled to run at different times than volumes with a volume efficiency priority of best-effort.
Typically volumes associated with the best-effort priority require volume efficiency operations to run at specific times to make sure maximum effort is put into achieving savings. Volumes associated with background priority are typically those where performance is of utmost
importance and savings can be opportunistic, and so savings will be attempted when there are available resources, but there is no guarantee about how quickly this will occur. Given this and given that you can only have a maximum of eight volume efficiency operations running in parallel, it is important to schedule these two types of volume efficiency operations to run at separate times. This will help avoid the situation where volumes associated with best-effort priority are queued for long periods of time while the volumes associated with background priority continue to run.