Create snapshot group

The create snapGroup command creates a new snapshot group and the associated repository volume.

Supported Arrays

This command applies to any individual storage array, including the E2700, E5600, E2800, E5700, EF600 and EF300 arrays, as long as all SMcli packages are installed.


To execute this command on an E2800, E5700, EF600, or EF300 storage array, you must have the Storage Admin role.


A snapshot group contains a sequence of snapshot images of an associated base volume. A snapshot group has a repository volume that is used to save data for all of the snapshot images that are part of the snapshot group.

Note: Before you create a snapshot group, make sure a volume group with free capacity is available.


create snapGroup userLabel="snapGroupName" sourceVolume="volumeName" 
[(repositoryVolume="repos_xxxx" | 
repositoryVolume=(volumeGroupName [capacity=capacityValue]) | 
repositoryVolume=(diskPoolName [capacity=capacityValue]))] 
[repositoryFullPolicy=(failBaseWrites | purgeSnapImages)] 
[rollbackPriority=(highest | high | medium | low | lowest)] 
[enableSchedule=(TRUE | FALSE)] 
[schedule (immediate | snapshotSchedule)]


Parameter Description
userLabel The name that you want to give the new snapshot group. Enclose the snapshot group identifier in double quotation marks (" ").
sourceVolume The name of the volume that you want to use as the source for your snapshot images. Enclose the source volume name in double quotation marks (" ").

The name of the repository volume that will contain the changed data of the snapshot group.

You have two options for defining the name of a repository volume:

  • Use an existing repository volume: name
  • Create a new repository volume when you run this command

The name of an existing repository volume is comprised of two parts:

  • The term "repos"
  • A four digit numerical identifier that the storage management software assigns to the repository volume name

Enclose the name of the existing repository volume in double quotation marks (" ").

If you want to create a new repository volume when you run this command you must enter the name of either a volume group or a disk pool in which you want the repository volume. Optionally, you also can define the capacity of the repository volume. If you want to define the capacity you can use these values:

  • An integer value that represents a percentage of the base volume capacity
  • A decimal fraction value that represents a percentage of the base volume capacity
  • A specific size for the repository volume. Size is defined in units of bytes, KB, MB, GB, or TB.

If you do not use the capacity option, the storage management software sets the capacity to 20 percent of the base volume capacity.

When you run this command the storage management software creates the repository volume for the snapshot volume.

repositoryFullPolicy Defines how snapshot image processing continues if the snapshot group repository volume is full. You can choose to fail I/O writes to the base volume (failBaseWrites) or delete (purge) the snapshot images (purgeSnapImages) in the repository volume. The purgeSnapImages option deletes the oldest snapshot images to free up space. The default action is purgeSnapImages.

Determines whether system resources should be allocated to the rollback operation at the expense of system performance. A value of high indicates that the rollback operation is prioritized over all other host I/O. A value of low indicates that the rollback operation should be performed with minimal impact to host I/O. The default value is medium.


The percentage of repository capacity at which you receive a warning that the snapshot group repository volume is nearing full. Use integer values. For example, a value of 70 means 70 percent. The default value is 75.


Each snapshot group can be configured to perform automatic deletion of its snapshot images to keep the total number of snapshot images in the snapshot group at or below a designated level. When this option is enabled, then any time a new snapshot image is created in the snapshot group, the system automatically deletes the oldest snapshot image in the group to comply with the limit value. This action frees repository capacity so it can be used to satisfy ongoing copy-on-write requirements for the remaining snapshot images.

enableSchedule Use this parameter to turn on or to turn off the ability to schedule a snapshot operation. To turn on snapshot scheduling, set this parameter to TRUE. To turn off snapshot scheduling, set this parameter to FALSE.


Each snapshot group name must be unique. You can use any combination of alphanumeric characters, underscore (_), hyphen (-), and pound (#) for the user label. User labels can have a maximum of 30 characters.

To create a snapshot group, you must have an associated repository volume in which you store the snapshot images. You can either use an existing repository volume or create a new repository volume. You can create the repository volume when you create the snapshot group. A snapshot group repository volume is an expandable volume that is structured as a concatenated collection of up to 16 standard volume entities. Initially, an expandable repository volume has only a single element. The capacity of the expandable repository volume is exactly that of the single element. You can increase the capacity of an expandable repository volume by attaching additional standard volumes to it. The composite expandable repository volume capacity then becomes the sum of the capacities of all of the concatenated standard volumes.

A snapshot group has a strict ordering of snapshot images based on the time that each snapshot image is created. A snapshot image that is created after another snapshot image is a successor relative to that other snapshot image. A snapshot image that is created before another snapshot image is a predecessor relative to that other one.

A snapshot group repository volume must satisfy a minimum capacity requirement that is the sum of the following:

The minimum capacity is enforcement by the controller firmware and the storage management software.

When you first create a snapshot group, it does not contains any snapshot images. When you create snapshot images, you add the snapshot images to a snapshot group. Use the create snapImage command to create snapshot images and add the snapshot images to a snapshot group.

A snapshot group can have one of these states:

You can configure each snapshot group to automatically delete the snapshot images by using the autoDeleteLimit parameter. Automatically deleting the snapshot images enables you to avoid having to routinely, manually delete the images that you do not want and that might prevent the creation of future snapshot images because the repository volume is full. When you use the autoDeleteLimit parameter it causes the storage management software to automatically delete snapshot images, starting with the oldest. The storage management software deletes snapshot images until it reaches a number of snapshot images that is equal to the number that you enter with autoDeleteLimit parameter. When new snapshot images are added to the repository volume, the storage management software deletes the oldest snapshot images until the autoDeleteLimit parameter number is reached.

The enableSchedule parameter and the schedule parameter provide a way for you to schedule creating snapshot images for a snapshot group. Using these parameters, you can schedule snapshots daily, weekly, or monthly (by day or by date). The enableSchedule parameter turns on or turns off the ability to schedule snapshots. When you enable scheduling, you use the schedule parameter to define when you want the snapshots to occur.

This table explains how to use the options for the schedule parameter:

Parameter Description
schedule Required for specifying schedule parameters.
immediate Start the operation immediately. This item is mutually exclusive with any other scheduling parameters.
When set to true, scheduling is turned on. When set to false, scheduling is turned off.
Note: The default is false.
startDate A specific date on which to start the operation. The format for entering the date is MM:DD:YY. The default is the current date. An example of this option is startDate=06:27:11.
scheduleDay A day of the week on which to start the operation. Can either be all or one or more of the following values:
  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
Note: Enclose the value in parentheses. For example, scheduleDay=(wednesday).

More than one day can be specified by enclosing the days in a single set of parentheses and separating each day with a space. For example, scheduleDay=(monday wednesday friday).

Note: This parameter is not compatible with a monthly schedule.
startTime The time of a day on which to start the operation. The format for entering the time is HH:MM, where HH is the hour and MM is the minute past the hour. Uses a 24-hour clock. For example, 2:00 in the afternoon is 14:00. An example of this option is startTime=14:27.
scheduleInterval An amount of time, in minutes, to have as a minimum between operations.

Schedule interval should not be more than 1440 (24 hours) and it should be a multiple of 30.

An example of this option isscheduleInterval=180.
endDate A specific date on which to stop the operation. The format for entering the date is MM:DD:YY. If no end date is desired, you can specify noEndDate. An example of this option is endDate=11:26:11.
timesPerDay The number of times to perform the operation in a day. An example of this option is timesPerDay=4.
timezone Specifies the time zone to be used for the schedule. Can be specified in two ways:
The time zone offset from GMT. Example: timezone=GMT-06:00.
Text String
Standard time zone text string, must be enclosed in quotes. Example:timezone="America/Chicago"
scheduleDate A day of the month on which to perform the operation. The values for the days are numerical and in the range of 1-31.
Note: This parameter is not compatible with a weekly schedule.
An example of the scheduleDate option is scheduleDate=("15").
month A specific month on which to perform the operation. The values for the months are:
  • jan - January
  • feb - February
  • mar - March
  • apr - April
  • may - May
  • jun - June
  • jul - July
  • aug - August
  • sep - September
  • oct - October
  • nov - November
  • dec - December
Note: Enclose the value in parentheses. For example, month=(jan).

More than one month can be specified by enclosing the months in a single set of parentheses and separating each month with a space. For example, month=(jan jul dec).

Use this parameter with the scheduleDate parameter to perform the operation on a specific day of the month.

Note: This parameter is not compatible with a weekly schedule.

This table explains how to use the timeZone parameter:

Timezone Name GMT offset
Etc/GMT+12 GMT-12:00
Etc/GMT+11 GMT-11:00
Pacific/Honolulu GMT-10:00
America/Anchorage GMT-09:00
America/Santa_Isabel GMT-08:00
America/Los_Angeles GMT-08:00
America/Phoenix GMT-07:00
America/Chihuahua GMT-07:00
America/Denver GMT-07:00
America/Guatemala GMT-06:00
America/Chicago GMT-06:00
America/Mexico_City GMT-06:00
America/Regina GMT-06:00
America/Bogota GMT-05:00
America/New_York GMT-05:00
Etc/GMT+5 GMT-05:00
America/Caracas GMT-04:30
America/Asuncion GMT-04:00
America/Halifax GMT-04:00
America/Cuiaba GMT-04:00
America/La_Paz GMT-04:00
America/Santiago GMT-04:00
America/St_Johns GMT-03:30
America/Sao_Paulo GMT-03:00
America/Buenos_Aires GMT-03:00
America/Cayenne GMT-03:00
America/Godthab GMT-03:00
America/Montevideo GMT-03:00
Etc/GMT+2 GMT-02:00
Atlantic/Azores GMT-01:00
Atlantic/Cape_Verde GMT-01:00
Africa/Casablanca GMT
Europe/London GMT
Atlantic/Reykjavik GMT
Europe/Berlin GMT+01:00
Europe/Budapest GMT+01:00
Europe/Paris GMT+01:00
Europe/Warsaw GMT+01:00
Africa/Lagos GMT+01:00
Africa/Windhoek GMT+01:00
Asia/Anman GMT+02:00
Asia/Beirut GMT+02:00
Africa/Cairo GMT+02:00
Asia/Damascus GMT+02:00
Africa/Johannesburg GMT+02:00
Europe/Kiev GMT+02:00
Asia/Jerusalem GMT+02:00
Europe/Istanbul GMT+03:00
Europe/Minsk GMT+02:00
Asia/Baghdad GMT+03:00
Asia/Riyadh GMT+03:00
Africa/Nairobi GMT+03:00
Asia/Tehran GMT+03:30
Europe/Moscow GMT+04:00
Asia/Dubai GMT+04:00
Asia/Baku GMT+04:00
Indian/Mauritius GMT+04:00
Asia/Tbilisi GMT+04:00
Asia/Yerevan GMT+04:00
Asia/Kabul GMT+04:30
Asia/Karachi GMT+05:00
Asia//Tashkent GMT+05:00
Asia/Calcutta GMT+05:30
Asia/Colombo GMT+05:30
Asia/Katmandu GMT+05:45
Asia/Yekaterinburg GMT+06:00
Asia/Almaty GMT+06:00
Asia/Dhaka GMT+06:00
Asia/Rangoon GMT+06:30
Asia/Novosibirsk GMT+07:00
Asia/Bangkok GMT+07:00
Asia/Krasnoyarsk GMT+08:00
Asia/Shanghai GMT+08:00
Asia/Singapore GMT+08:00
Australia/Perth GMT+08:00
Asia/Taipei GMT+08:00
Asia/Ulaanbaatar GMT+08:00
Asia/Irkutsk GMT+09:00
Asia/Tokyo GMT+09:00
Asia/Seoul GMT+09:00
Australia/Adelaide GMT+09:30
Australia/Darwin GMT+09:30
Asia/Yakutsk GMT+10:00
Australia/Brisbane GMT+10:00
Australia/Sydney GMT+10:00
Pacific/Port Moresby GMT+10:00
Australia/Hobart GMT+10:00
Asia/Vladivostok GMT+11:00
Pacific/Guadalcanal GMT+11:00
Pacific/Auckland GMT+12:00
Etc/GMT-12 GMT+12:00
Pacific/Fiji GMT+12:00
Asia/Kamchatka GMT+12:00
Pacific/Tongatapu GMT+13:00

The code string for defining a schedule is similar to these examples:

enableSchedule=true schedule startTime=14:27
enableSchedule=true schedule scheduleInterval=180
enableSchedule=true schedule timeZone=GMT-06:00
enableSchedule=true schedule timeZone="America/Chicago"

If you also use the scheduleInterval option, the firmware chooses between the timesPerDay option and the scheduleInterval option by selecting the lowest value of the two options. The firmware calculates an integer value for the scheduleInterval option by dividing 1440 by the scheduleInterval option value that you set. For example, 1440/180 = 8. The firmware then compares the timesPerDay integer value with the calculated scheduleInterval integer value and uses the smaller value.

To remove a schedule, use the delete volume command with the schedule parameter. The delete volume command with the schedule parameter deletes only the schedule, not the snapshot volume.

Minimum firmware level


7.86 adds the scheduleDate option and the month option.