6.2.12.16 mkvolume

Create a volume or volume clone.

Purpose

The mkvolume command allows you to create a new Exascale volume, clone a volume snapshot, or directly clone an existing volume.

Syntax

To create a new empty volume:

mkvolume size --attributes vault=vault[,attribute=value]...

To create a new volume by restoring a volume backup:

mkvolume --attributes volumeBackup=volume-backup-ID,vault=vault

To clone a volume snapshot:

mkvolume --attributes volumeSnapshot=parent-snapshot-ID[,name=clone-name][,iopsProvisioned=integer-value][,iopsInherited={true|false}]

To directly clone an existing volume:

mkvolume --attributes volumeSource=parent-volume-ID[,name=clone-name][,iopsProvisioned=integer-value][,iopsInherited={true|false}]

Note:

To directly clone an existing volume, you must use Oracle Exadata System Software release 25.1.0 or later.

Command Options

The options for the mkvolume command are:

  • size: Specifies the size of the new empty volume. The size can be specified using suffixes K, KB, M, MB, G, GB, T, TB. The suffix is not case-sensitive.

    Note:

    If you intend to use the volume to support Oracle ACFS, note that ACFS requires a minimum volume size of 512 MB.
  • --attributes: Optionally specifies attributes for the volume.

    Use the describe mkvolume command to see details about the volume attributes you can set. See also Describing Resources and Attributes.

Usage Notes

The following notes apply only when the mkvolume command is used to create a new volume by restoring a volume backup.

  • The new volume contains the contents of the volume backup specified by volumeBackup=volume-backup-ID.

  • After creation, the new volume is completely separate from the volume backup and the original backup source volume. There is no on-going association between the new volume and the volume backup or its original source.

The following notes apply only when the mkvolume command is used to clone a volume.

  • When cloning a volume, either directly or using a volume snapshot, the resulting volume is a thin clone.

  • When cloning a volume snapshot, volumeSnapshot=parent-snapshot-ID identifies the volume snapshot that you want to clone.

  • When directly cloning an existing volume, volumeSource=parent-volume-ID identifies the volume that you want to clone.

  • When cloning a volume, either directly or using a volume snapshot, you can optionally specify the following attribute settings. No additional command options or attribute settings are required or permitted.

    • name=clone-name: Optionally specifies the name of the volume clone, which makes it easier for you to identify later. If not specified, a system-generated name is assigned.

    • iopsProvisioned=integer-value: Optionally specifies the I/O bandwidth provisioned for the volume clone. The I/O bandwidth is expressed as the number of I/Os per second (IOPS).

    • iopsInherited={true|false}: Optionally specifies whether the volume clone inherits I/O bandwidth from the nearest ancestor in the volume hierarchy with provisioned (not inherited) I/O bandwidth.

  • When cloning a volume, either directly or using a volume snapshot, the following describes the relationship between the iopsProvisioned and iopsInherited attribute settings:

    • If iopsProvisioned is unspecified and iopsInherited is not set to false (iopsInherited is unspecified or iopsInherited=true), then:

      • The volume clone inherits I/O bandwidth from its nearest ancestor.

      • The volume clone has the setting: iopsInherited=true.

    • If iopsProvisioned is unspecified and iopsInherited=false, then:

      • The volume clone is provisioned with unlimited iopsProvisioned.

      • The volume clone has the setting: iopsInherited=false.

    • If you specify a value for iopsProvisioned and iopsInherited is not set to true (iopsInherited is unspecified or iopsInherited=false), then:

      • The volume clone is governed by the specified iopsProvisioned value.

      • The volume clone has the setting: iopsInherited=false.

    • An error occurs if you specify a value for iopsProvisioned and iopsInherited=true. This is an invalid combination.

Examples

Example 6-176 Create a Volume

This example shows creating a volume that is 100 MB in size and located in the vault named my-volumes.

@> mkvolume 100m --attributes vault=my-volumes

Example 6-177 Create a Volume with Attribute Settings

This example shows creating a volume that is 200 MB in size and located in the vault named my-volumes. The example also includes the following specific attribute settings:

  • The volume name is set to vol2.

  • The volume is provisioned with 1000 IOPS (IOs per second).

@> mkvolume 200m --attributes vault=my-volumes,name=vol2,iopsProvisioned=1000