dellemc.powerflex.dellemc_powerflex_storagepool (1.1.1) — module

Managing Dell EMC PowerFlex storage pool

| "added in version" 1.0.0 of dellemc.powerflex"

Authors: Arindam Datta (@dattaarindam) <ansible.team@dell.com>, P Srinivas Rao (@srinivas-rao5) <ansible.team@dell.com>

preview | supported by community

Install collection

Install with ansible-galaxy collection install dellemc.powerflex:==1.1.1


Add to requirements.yml

  collections:
    - name: dellemc.powerflex
      version: 1.1.1

Description

Dell EMC PowerFlex storage pool module includes getting the details of storage pool, creating a new storage pool, and modifying the attribute of a storage pool.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

- name: Get the details of storage pool by name
  dellemc.powerflex.dellemc_powerflex_storagepool:
    gateway_host: "{{gateway_host}}"
    username: "{{username}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    storage_pool_name: "sample_pool_name"
    protection_domain_name: "sample_protection_domain"
    state: "present"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Get the details of storage pool by id
  dellemc.powerflex.dellemc_powerflex_storagepool:
    gateway_host: "{{gateway_host}}"
    username: "{{username}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    storage_pool_id: "abcd1234ab12r"
    state: "present"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a new storage pool by name
  dellemc.powerflex.dellemc_powerflex_storagepool:
    gateway_host: "{{gateway_host}}"
    username: "{{username}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    storage_pool_name: "ansible_test_pool"
    protection_domain_id: "1c957da800000000"
    media_type: "HDD"
    state: "present"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Modify a storage pool by name
  dellemc.powerflex.dellemc_powerflex_storagepool:
    gateway_host: "{{gateway_host}}"
    username: "{{username}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    storage_pool_name: "ansible_test_pool"
    protection_domain_id: "1c957da800000000"
    use_rmcache: True
    use_rfcache: True
    state: "present"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Rename storage pool by id
  dellemc.powerflex.dellemc_powerflex_storagepool:
    gateway_host: "{{gateway_host}}"
    username: "{{username}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    storage_pool_id: "abcd1234ab12r"
    storage_pool_new_name: "new_ansible_pool"
    state: "present"

Inputs

    
port:
    default: 443
    description:
    - Port number through which communication happens with PowerFlex gateway host.
    required: false
    type: int

state:
    choices:
    - present
    - absent
    description:
    - State of the storage pool.
    required: true
    type: str

password:
    description:
    - The password of the PowerFlex gateway host.
    required: true
    type: str

username:
    description:
    - The username of the PowerFlex gateway host.
    required: true
    type: str

media_type:
    choices:
    - HDD
    - SSD
    - TRANSITIONAL
    description:
    - Type of devices in the storage pool.
    type: str

verifycert:
    choices:
    - true
    - false
    default: true
    description:
    - Boolean variable to specify whether or not to validate SSL certificate.
    - True - Indicates that the SSL certificate should be verified.
    - False - Indicates that the SSL certificate should not be verified.
    required: false
    type: bool

use_rfcache:
    description:
    - Enable/Disable RFcache on a specific storage pool.
    type: bool

use_rmcache:
    description:
    - Enable/Disable RMcache on a specific storage pool.
    type: bool

gateway_host:
    description:
    - IP or FQDN of the PowerFlex gateway host.
    required: true
    type: str

storage_pool_id:
    description:
    - The id of the storage pool.
    - It is auto generated, hence should not be provided during creation of a storage
      pool.
    - Mutually exclusive with storage_pool_name.
    type: str

storage_pool_name:
    description:
    - The name of the storage pool.
    - If more than one storage pool is found with the same name then protection domain
      id/name is required to perform the task.
    - Mutually exclusive with storage_pool_id.
    type: str

protection_domain_id:
    description:
    - The id of the protection domain.
    - During creation of a pool, either protection domain name or id must be mentioned.
    - Mutually exclusive with protection_domain_name.
    type: str

storage_pool_new_name:
    description:
    - New name for the storage pool can be provided.
    - This parameter is used for renaming the storage pool.
    type: str

protection_domain_name:
    description:
    - The name of the protection domain.
    - During creation of a pool, either protection domain name or id must be mentioned.
    - Mutually exclusive with protection_domain_id.
    type: str

Outputs

changed:
  description: Whether or not the resource has changed.
  returned: always
  sample: 'false'
  type: bool
storage_pool_details:
  contains:
    id:
      description: ID of the storage pool under protection domain.
      type: str
    mediaType:
      description: Type of devices in the storage pool.
      type: str
    name:
      description: Name of the storage pool under protection domain.
      type: str
    protectionDomainId:
      description: ID of the protection domain in which pool resides.
      type: str
    protectionDomainName:
      description: Name of the protection domain in which pool resides.
      type: str
    useRfcache:
      description: Enable/Disable RFcache on a specific storage pool.
      type: bool
    useRmcache:
      description: Enable/Disable RMcache on a specific storage pool.
      type: bool
  description: Details of the storage pool.
  returned: When storage pool exists
  sample:
    addressSpaceUsage: Normal
    addressSpaceUsageType: DeviceCapacityLimit
    backgroundScannerBWLimitKBps: 3072
    backgroundScannerMode: DataComparison
    bgScannerCompareErrorAction: ReportAndFix
    bgScannerReadErrorAction: ReportAndFix
    capacityAlertCriticalThreshold: 90
    capacityAlertHighThreshold: 80
    capacityUsageState: Normal
    capacityUsageType: NetCapacity
    checksumEnabled: false
    compressionMethod: Invalid
    dataLayout: MediumGranularity
    externalAccelerationType: None
    fglAccpId: null
    fglExtraCapacity: null
    fglMaxCompressionRatio: null
    fglMetadataSizeXx100: null
    fglNvdimmMetadataAmortizationX100: null
    fglNvdimmWriteCacheSizeInMb: null
    fglOverProvisioningFactor: null
    fglPerfProfile: null
    fglWriteAtomicitySize: null
    fragmentationEnabled: true
    id: e0d8f6c900000000
    links:
    - href: /api/instances/StoragePool::e0d8f6c900000000
      rel: self
    - href: /api/instances/StoragePool::e0d8f6c900000000 /relationships/Statistics
      rel: /api/StoragePool/relationship/Statistics
    - href: /api/instances/StoragePool::e0d8f6c900000000 /relationships/SpSds
      rel: /api/StoragePool/relationship/SpSds
    - href: /api/instances/StoragePool::e0d8f6c900000000 /relationships/Volume
      rel: /api/StoragePool/relationship/Volume
    - href: /api/instances/StoragePool::e0d8f6c900000000 /relationships/Device
      rel: /api/StoragePool/relationship/Device
    - href: /api/instances/StoragePool::e0d8f6c900000000 /relationships/VTree
      rel: /api/StoragePool/relationship/VTree
    - href: /api/instances/ProtectionDomain::9300c1f900000000
      rel: /api/parent/relationship/protectionDomainId
    mediaType: HDD
    name: pool1
    numOfParallelRebuildRebalanceJobsPerDevice: 2
    persistentChecksumBuilderLimitKb: 3072
    persistentChecksumEnabled: true
    persistentChecksumState: Protected
    persistentChecksumValidateOnRead: false
    protectedMaintenanceModeIoPriorityAppBwPerDeviceThresholdInKbps: null
    protectedMaintenanceModeIoPriorityAppIopsPerDeviceThreshold: null
    protectedMaintenanceModeIoPriorityBwLimitPerDeviceInKbps: 10240
    protectedMaintenanceModeIoPriorityNumOfConcurrentIosPerDevice: 1
    protectedMaintenanceModeIoPriorityPolicy: limitNumOfConcurrentIos
    protectedMaintenanceModeIoPriorityQuietPeriodInMsec: null
    protectionDomainId: 9300c1f900000000
    protectionDomainName: domain1
    rebalanceEnabled: true
    rebalanceIoPriorityAppBwPerDeviceThresholdInKbps: null
    rebalanceIoPriorityAppIopsPerDeviceThreshold: null
    rebalanceIoPriorityBwLimitPerDeviceInKbps: 10240
    rebalanceIoPriorityNumOfConcurrentIosPerDevice: 1
    rebalanceIoPriorityPolicy: favorAppIos
    rebalanceIoPriorityQuietPeriodInMsec: null
    rebuildEnabled: true
    rebuildIoPriorityAppBwPerDeviceThresholdInKbps: null
    rebuildIoPriorityAppIopsPerDeviceThreshold: null
    rebuildIoPriorityBwLimitPerDeviceInKbps: 10240
    rebuildIoPriorityNumOfConcurrentIosPerDevice: 1
    rebuildIoPriorityPolicy: limitNumOfConcurrentIos
    rebuildIoPriorityQuietPeriodInMsec: null
    replicationCapacityMaxRatio: 32
    rmcacheWriteHandlingMode: Cached
    sparePercentage: 10
    useRfcache: false
    useRmcache: false
    vtreeMigrationIoPriorityAppBwPerDeviceThresholdInKbps: null
    vtreeMigrationIoPriorityAppIopsPerDeviceThreshold: null
    vtreeMigrationIoPriorityBwLimitPerDeviceInKbps: 10240
    vtreeMigrationIoPriorityNumOfConcurrentIosPerDevice: 1
    vtreeMigrationIoPriorityPolicy: favorAppIos
    vtreeMigrationIoPriorityQuietPeriodInMsec: null
    zeroPaddingEnabled: true
  type: complex