.

Volumes

An application instance is a namespace for logical volumes. Within the context of an application instance, you can create and implement the storage according to your needs. The applications volumes set of commands allows you to create, edit, list, and delete volumes in the context of an application instance.

Creating a logical volume

A logical volume (virtual disk) is a set of blocks viewed by the operating environment as a single disk-like storage unit. Typically, logical volumes get their blocks from physical drives. In the S1 system, logical volumes get their blocks from pools. First, you need to define pools; and then you allow the pools to use the physical drives (approve drives for pools). Thus, pools get their storage from physical disks and provide this storage (blocks) to the volumes. When you create a logical volume, you must specify an application instance for the logical volume. To list all application instances, run the applications list command. To create new logical volume, pick one application instance and use the applications volumes create command.

Notice: We use the terms volume and logical volume interchangeably.

Usage:

applications volumes create --application=<app_name>
    --volume=<vol_name>
	--capacity=<capacity>
	--pools=<pname…> --n=<n> --k=<k>
	[(--metadataPools=<mt_name…> --metadataN=<n…> --metadataK=<k…>)]
	[(--tierPools=<tname…> --tierN=<n…> --tierK=<k…>)]
	[(--tierSizes=<tierCapacity…> --evacuationThresholds=<percent…> --lowerThresholds=<percent…>)]
	[--groupedVolume=<name> | --cgid=<numbers> | (--encryptionKey=<encryptionKey> [--saveEncryptedRecoveryKey])]
	[--sectorSize=<sectorSize>]
	[--log2StrideSectors=<numbers>]
	[--snapshotCapacity=<capacity>]
	[--enableSnapone]
	[--disableSpaceReclamation]

Options

The applications volumes create usage pattern is long. It has six required options and 18 optional options.

Required

Options and arguments Description
--application=<app_name> To specify app instance for the volume. An application instance is a namespace for volumes. Within the app instance, volumes must have a unique name.
--volume=<vol_name> To name of the newly created volume. Replace <vol_name> with a name of your choice.
--capacity=<capacity> To set volume capacity. Replace <capacity> with a number appended with a storage unit (MB, GB, TB, PB)
--pools=<pname…> To list pools for the volume storage. Replace <pname…> with a list of pools.
--n=<n> To fragment the volume data. Replace <n> with the number of fragments; the value <n> must be in powers of two, namely 1,2,4,8,…
--k=<k> To specify redundancy level, namely, the number of simultaneous drive failures that the logical volume can sustain before losing data. Replace <k> with a numerical value for the redundancy level.

Notice:

  • You can list all the available app instances with the applications list command.
  • You can create a new application instance with the applications create command.

Optional

Metadata options
Options and arguments Description
--metadataPools=<mt_name…> To save volume metadata. Replace <mt_name…> with a list of metadata pools. The metadata of the volume will save in the list of metadata pools.
--metadataN=<n…> To specify the number of fragments; for each pool in the list of metadata pools. Replace <n> with numbers of fragments; each of the numbers of fragments must be a power of two, namely 1,2,4,8…
--metadataK=<k…> To specify the number of simultaneous drive failures that each metadata storage can sustain before losing data. Replace <k> with a numerical value for the redundancy level.
Tiering options:
  • A pool can be on the upper tier if all its approved volumes are SSD drives.
  • When setting an upper tier, all of the drives already specified in the --pool option will be on the lower tier.
Options and arguments Description
--tierPools=<tname…> To create upper tiers for the volume, replace <tname…> with a list of pools (list of upper tiers). List the pools in ascending order of performance, where each pool is a higher tier than its predecessor. For example, if A0 is the positional argument of option --pools and we have --tierPools A1 A2 A3, then A1 is a higher than A0, A2 is a higher tier of A1, and A3 is a higher tier of A2.
--tierN=<n…> To specify the number of data fragments for each pool in the list of upper tiers. Replace <n…> with numerical values for the number of fragments for the corresponding pools in the list of upper tiers (the list of pools specified in the --tierPools option). All numerical values must be in powers of two (1,2,4,8, etc.).
--tierK=<k…> To specify the redundancy level, namely, the number of simultaneous drive failures that each pool in the list of upper tiers can sustain before losing data. Replace <k…> with a list of numerical values for the redundancy level of each pool in the list (list of upper tiers).
--tierSizes=<tierCapacity…> To set tier cache capacity for each of the pools in the list of upper tiers (as specified in the --tierPools option). Replace <tiercapacity> with numbers (appended with KB, MB, GB,…) that correspond to the pools in the list of upper tiers.
--evacuationThresholds=<percent…> To set the maximum threshold for each pool in the list of upper tiers. When the maximum threshold is exceeded, the volume moves data to a lower tier (previous pool in the list of upper tiers). Replace <percent…> with a list of numerical values between one and 100 (appended with %) to set the maximum threshold value of each pool in the list.
--lowerThresholds=<percent…> To set minimum threshold value for each pool in the list of upper tiers . When reaching the minimum threshold, the pools stop moving data to a lower tier. Replace <percent> with a list of numerical values between one and 100, appended with % to set the minimum threshold value of each pool in the list.
Map a volume to existing Consistency groups

A consistency group (CG) is a collection of volumes that forms a single storage entity (sharing the same data retention: primary and redundant data). The S1 system generates consistency groups automatically; users cannot create or delete consistency groups. When creating a new volume, you may specify whether to map it to an existing consistency group. If you map a newly created volume to a consistency group, the system does not create a new consistency group for the logical volume. If you do not add volume to a CG, the system automatically creates a new consistency group for this volume. Once the logical volume is assigned to a CG, the assignment becomes immutable.
To map a newly created volume to an existing consistency group, use either the --groupedVolume option or the --cgid option.

Notice: An S1 system with no volumes has no consistency groups. Thus, when you create your first volume, do not use the --groupedVolume or the --cgid options.

Options and arguments Description
--groupedVolume=<name> To map a volume to a consistency group (CG), replace <name> with an already existing CG name.
--cgid=<numbers> To map a volume to a consistency group, replace <number> with the consistency group id.
Encrypting a Volume

NOTICE: Encrypting your volume is optional and must be handled with great care. If you opt to encrypt your volume and lose the volume encryption key, you will not be able to use your logical volume.

S1 supports both software-based encryption and self-encrypting drives (SED). If you use SED, every time you reboot, S1 will ask you for your SED key.
IMPORTANT:
If you do not supply S1 with the SED key, you will not be able to use any of the volumes or CGs that use this drive.
For instance, you may have five different logical volumes spread on the same six drives. If one of these drives uses SED encryption and you don’t supply S1 with its SED key, then you cannot use any of these five volumes.

Unlike SED encryption, S1 software-based encryption allows you to encrypt per volume. Using standard encryption algorithms, you can encrypt a single logical volume with a volume encryption key of your choice. Volume encryption is optional. If you encrypt a logical volume, make sure that you save the volume encryption key. You will be asked for the volume encryption key every time S1 boots. If you fail to supply S1 with the volume encryption key, you won’t be able to use that one volume.

To prevent losing a volume due to losing the volume-encryption-key, StorOne offers you an option to store your volume encryption key safely with StorOne. This way, StorOne can help you to recover a volume encryption key when needed. When you use the --saveEncryptedRecoveryKey option, your volume-encryption-key is encrypted with StorOne’s public key and stored in your S1 management relay station database.

Options and arguments Description
--encryptionKey=<encryptionKey> To encrypt the volume with a volume-encryption-key, replace <encrptionKey> with an encryption key of your choice.
--saveEncryptedRecoveryKey To store your encryption key with StorOne. Use this option if you want to store your volume-encryption-key with StorOne.

Notice: When you encrypt a volume V0, you encrypt its consistency group (CG). Hence, any volume you add to this consistency group will be encrypted. The encryption key is the key you used when creating volume V0.

Sector size
Options and arguments Description
--sectorSize=<sectorSize> To set the sector size of the volume; replace <sectorsize> with either 512 bytes or 4KB. If storing on an ESX server, use 512 bytes; on any other storage platform, use 4KB.
--log2StrideSectors=<numbers> To set a striped volume, replace <number> with the stripe unit (chunk size) in bytes.
Snapshots and space reclamation
  • The --snapshotCapacity option allows you to set a soft capacity threshold limit on your volume snapshot storage. When your snapshot storage exceeds the soft threshold limit, you will receive warning notices and alerts in your email. Unlike a hard capacity limit, which you cannot exceed. A soft capacity threshold limit only warns the user.
  • The --enableSnapone option activates StorOne vSnap technology on the volume. vSnap technology stores significantly more snapshots in the same storage capacity. vSnap tiers old snapshots automatically, saving storage resources without impacting performance. Having more snapshots on the same storage capacity reduces the risk of data loss. vSnap snapshots are redirect-on-write (ROW) policy-based snapshots. They are invisible to any external application until specifically restored. Hence, vSnap snapshots are more protected from ransomware and malware attacks.
Options and arguments Description
--snapshotCapacity=<capacity> To set a soft capacity threshold limit on your snapshot storage. Replace <capacity> with a number appended with a storage unit (MB, GB, TB, PB) to set the soft capacity threshold limit on your volume snapshots.
--enableSnapone To enable SnapONE on the volume.
--disableSpaceReclamation To disable space reclamation (UNMAP) support for the volume.

Examples

  1. To create a volume videos on application instance training with a capacity of 500GB over a pool sales with n=16 data fragments and k=3 data redundancy, run

    applications volumes create --application training --volume videos  --capacity 500GB --pools sales --n=16 --k=3 
    

    In this example, volume videos has not mapped to any consistency group. Thus, S1 automatically creates a new consistency group for volume videos.

  2. Create a volume emails with the following configuration:

    • Application instance: --application=archives
    • Volume capacity: --capacity=100GB
    • Volume created over two pools, HR and sales, where:
      • For pool HR with n=4 data fragments and k=1 data redundancy.
      • For pool sales with n=8 data fragments and k=3 data redundancy.
    • Pools for upper tiers speed1, speed2, and speed3:
      where:
      • For upper tier pool speed1, tierN=2 data fragments and tierK=1 data redundancy with --tierSizes=10GB, with --evacuationThresholds=70% and --lowerThresholds=5%.
      • For upper tier pool speed2, tierN=16 data fragments and tierK=3 data redundancy with --tierSizes=5GB, with --evacuationThresholds=75% and --lowerThresholds=10%.
      • For upper tier pool speed3, tierN=4 data fragments and tierK=1 data redundancy, and --tierSizes=2GB, with --evacuationThresholds=80% and --lowerThresholds=15%
    • The volume is mapped to (an already existing) consistency group id 600.
    applications volumes create --application emails --volume archives --capacity 100GB --pools HR sales --n 4 8 --k 1 3 --tierPools speed1 speed2 speed3 --tierN 2 16 4 --tierK 1 3 1 --tierSizes 10GB 5GB 2GB --evacuationThresholds 70% 75% 80% --lowerThresholds 5% 10% 15% --cgid 600   
    

Edit a volume

You can change the configurations of existing volumes with the applications volume edit command.

Usage

applications volumes edit --application=<app_name> --volume=<vol_name> [--newname=<new_vol_name> --capacity=<capacity> --snapshotCapacity=<capacity> --tierSizes=<tierCapacity…> --evacuationThresholds=<percentage…> --lowerThresholds=<percentage…> (--enableSnapone | --disableSnapone) (--enableSpaceReclamation | --disableSpaceReclamation)]

Options

Options and arguments Description
--application=<app_name> To specify the application instance, replace <app_name> with the name of the app instance of the volume.
--volume=<vol_name> To specify the volume, replace <vol_name> with the name of the volume you want to edit.
--newname=<new_vol_name> To change the name of the volume. Replace <new_vol_name> with a name of your choice.
--capacity=<capacity> To edit volume capacity, replace <capacity> with a number appended with a storage unit (MB, GB, TB, PB).
--snapshotCapacity=<capacity> To edit the soft capacity threshold of your snapshot storage, replace <capacity> with a number appended with a storage unit (MB, GB, TB, PB).
--tierSizes=<tierCapacity…> To edit tier cache capacity for each of the pools in the upper tiers, replace <tiercapacity…> with a list of numerical storage units (appended with KB, MB, GB,…) that corresponds to the list of --tierPools.
--evacuationThresholds=<percent…> To edit the maximum threshold for each pool in the list of upper tiers. When the maximum threshold exceeded, the volume moves data to a lower tier (previous pool in the list of upper tiers). Replace <percent…> with a list of numerical values between one and 100 (appended with %) to set the maximum threshold value of each pool in the list.
--lowerThresholds=<percent…> To edit the minimum threshold value for each pool in the list of upper tiers. When reaching the minimum threshold, the pools stop moving data to a lower tier. Replace <percent…> with a list of numerical values (one for each volume in the tier) between one and 100, appended with % to set the minimum threshold value of each pool in the list.
--enableSnapone To enable SnapONE on the volume. SnapONE is a snapshot based on Vsnap technology that allows you to save more snapshots in the same space.
--disableSnapone To disable SnapONE on the volume. SnapONE is a snapshot based on Vsnap technology that allows you to save more snapshots in the same space.
--enableSpaceReclamation To enable space reclamation (UNMAP) support for the volume.
--disableSpaceReclamation To disable space reclamation (UNMAP) support for the volume.

Examples

In the following examples, we edit the volume archives mapped to application instance emails.

  1. To rename the existing volume archives to active and to change its capacity to 800GB, run:

    applications volumes edit --application emails --volume archives --rename active --capacity 800GB
    
  2. To change the capacity of the existing volume archives to 3TB and to disable SnapONE, run:

    applications volumes edit --application emails --volume archives  --capacity 3TB --disableSnapone 
    
  3. Assuming that the existing volume archives is tiered between three pools, consider the following list of changes:

    • Change the capacity of the volume to 10TB
    • Change tier sizes to 10GB, 4GB, and 2GB.
    • Enable SnapONE.
    • Enable space reclamation. To apply the above changes on the existing volume archives, run:
    applications volume edit --application emails --volume archives --capacity 10TB --tiersizes 10GB 4GB 2GB 
        --enableSpaceReclamation --enableSnapone 
    

List volumes

To list volumes, use the applications volumes list command.

Usage:

applications volumes list [--application=<app_inst> --volume=<vol>] [--basic] [--cg] [--snapshot]
[--connectivity] [--capacity] [--fs] [--rep] [--vms]

Options:

Options and arguments Description
--application=<app_inst> To list only volumes from the specified app instance, replace <app_inst> with the application instance.
--volume=<vol> To list only the specified volume, replace <vol> with a volume name.
--basic To display only volume names and their ids.
--cg To display the volume consistency group within the context of the app instance.
--snapshot To display the point in time (PIT) (of the volume snapshots).
--connectivity To display the connectivity status of the volume.
--capacity To display volume statistics (capacity usage for User Data, Upper Tier, Retention, vRAID)
--fs To display file system information (“Mount State” and “Replication Metadata)
--rep To display information about volume replication.
--vms To display information about VMware virtual machines within the context of the app instance.

Examples

  1. To list all volumes, run:

    applications volumes list
    
  2. To list volumes from the emails application, run:

    applications volumes list --application emails
    
  3. To list only the name and id of volume SR, run:

    applications volumes list --volume SR --basic
    

Delete a volume

To delete a volume, use the applications volumes delete command.

Usage:

applications volumes delete --application=<app_name> --volume=<vol_name> [--force]

Options:

Options and arguments Description
--application=<app_name> To specify the app instance mapped to the volume you want to delete.
--volume=<vol_name> To specify the name of the volume that you want to delete.
--force To delete without prompting for confirmation.

Examples

  1. To delete volume speed that mapped to application instance archive, run:
     applications volumes delete --application archive --volume speed 
    
  2. To delete volume speed that mapped to application instance archive without prompting for confirmation, run:
     applications volumes delete --application archive --volume speed 
    
Last updated on 7 Dec 2022
Published on 9 Dec 2022