powermax_storagegroup (Resource)

Resource for managing StorageGroups in PowerMax array. PowerMax storage groups are a collection of devices that are stored on the array. An application, a server, or a collection of servers use them.

Example Usage

/*
Copyright (c) 2023 Dell Inc., or its subsidiaries. All Rights Reserved.

Licensed under the Mozilla Public License Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://mozilla.org/MPL/2.0/


Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

# Available actions: Create, Update (name, compression, host_io_limit, workload, slo, srp_id, volume_ids), Delete and Import an existing storage group from the PowerMax Array.
# After `terraform apply` of this example file it will create a new storage group with the name set in `name` attribute on the PowerMax

# PowerMax storage groups are a collection of devices that are stored on the array.
# An application, a server, or a collection of servers use them.
resource "powermax_storagegroup" "test" {

  # Attributes which are able to be modified after create (name, compression, host_io_limit, workload, slo, srp_id, volume_ids)

  # Required the name of the new storage group
  name = "terraform_sg"

  # Required The Srp to be associated with the Storage Group. If you dont want an SRP the srp_id can be set to 'None'
  srp_id = "SRP_1"

  # Optional the service level of the storage group
  slo = "Gold"

  # Optional enable or disable compression on the storage group (Default to disabled)
  compression = false

  # Optional the workload of the storage group
  workload = "workload"

  # Optional Set Host I/O limits for the specified storage sroup
  host_io_limit = {
    # The MBs per Second Host IO limit for the specified storage group, NOLIMIT means no limits
    host_io_limit_io_sec = "1000"
    # The IOs per Second Host IO limit for the specified storage group , NOLIMIT means no limits
    host_io_limit_mb_sec = "1000"
    # The dynamic distribution type which can be "Never","Always" or "OnFailure"
    dynamic_distribution = "Never"
  }

  # Optional a list of volume ids to be added to the storage groups
  volume_ids = ["0008F"]
}

# After the execution of above resource block, a PowerMax storage group has been created at PowerMax array.
# For more information about the newly created resource use the `terraform show` command to review the current state

Schema

Required

  • name (String) The name of the storage group. Only alphanumeric characters, underscores ( _ ), and hyphens (-) are allowed. (Update Supported)
  • srp_id (String) The Srp to be associated with the Storage Group. If you dont want an SRP the srp_id can be set to ‘None’. (Update Supported)

Optional

  • compression (Boolean) States whether compression is enabled on storage group. (Update Supported)
  • host_io_limit (Object) Host IO limit of the storage group. (Update Supported) (see below for nested schema)
  • num_of_vols (Number) The number of volumes associated with the storage group
  • slo (String) The service level associated with the storage group. (Update Supported)
  • volume_ids (List of String) The IDs of the volume associated with the storage group. Only pre-existing volumes are considered here. (Update Supported)
  • workload (String) The workload associated with the storage group. (Update Supported)

Read-Only

  • cap_gb (Number) The capacity of the storage group
  • child_storage_group (List of String) The child storage group(s) associated with the storage group
  • compression_ratio (String) States whether compression is enabled on storage group
  • compression_ratio_to_one (Number) Compression ratio numeric value of the storage group
  • device_emulation (String) The emulation of the volumes in the storage group
  • id (String) The ID of the storage group
  • maskingview (List of String) The masking views associated with the storage group
  • num_of_child_sgs (Number) The number of child storage groups associated with the storage group
  • num_of_masking_views (Number) The number of masking views associated with the storage group
  • num_of_parent_sgs (Number) The number of parent storage groups associated with the storage group
  • num_of_snapshot_policies (Number) The number of snapshot policies associated with the storage group
  • num_of_snapshots (Number) The number of snapshots associated with the storage group
  • parent_storage_group (List of String) The parent storage group(s) associated with the storage group
  • service_level (String) The service level associated with the storage group
  • slo_compliance (String) The service level compliance status of the storage group
  • snapshot_policies (List of String) The snapshot policies associated with the storage group
  • tags (String) The tags associated with the storage group
  • type (String) The storage group type
  • unprotected (Boolean) States whether the storage group is protected
  • unreducible_data_gb (Number) The amount of unreducible data in Gb.
  • uuid (String) Storage Group UUID
  • vp_saved_percent (Number) VP saved percentage figure

Nested Schema for host_io_limit

Optional:

  • dynamic_distribution (String)
  • host_io_limit_io_sec (String)
  • host_io_limit_mb_sec (String)

Import

Import is supported using the following syntax:

# Copyright (c) 2023 Dell Inc., or its subsidiaries. All Rights Reserved.

# Licensed under the Mozilla Public License Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#     http://mozilla.org/MPL/2.0/


# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# The command is
# terraform import powermax_storagegroup.test <id>
# Example:
terraform import powermax_storagegroup.test terraform_sg
# after running this command, populate the name field in the config file to start managing this resource