dellemc.powerflex.storagepool 模块 – 管理 Dell PowerFlex 存储池

注意

此模块是 dellemc.powerflex 集合 (版本 2.5.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install dellemc.powerflex。您需要其他要求才能使用此模块,请参阅 需求 获取详细信息。

要在 playbook 中使用它,请指定:dellemc.powerflex.storagepool

dellemc.powerflex 1.0.0 中的新增功能

概要

  • Dell PowerFlex 存储池模块包括获取存储池详细信息、创建新的存储池以及修改存储池属性。

需求

执行此模块的主机需要以下要求。

  • Dell PowerFlex 存储系统版本 3.6 或更高版本。

  • PyPowerFlex 1.12.0。

参数

参数

注释

cap_alert_thresholds

字典

设置触发容量使用警报的阈值。

警报阈值是在扣除定义的备用容量后,根据每个存储池容量计算得出的。

critical_threshold

整数

将触发严重优先级警报的存储池非备用容量阈值,以百分比表示。

high_threshold

整数

将触发高优先级警报的存储池非备用容量阈值,以百分比表示。

此值必须低于 *critical_threshold*。

enable_fragmentation

布尔值

启用/禁用特定存储池的碎片整理。

选项

  • false

  • true

enable_rebalance

布尔值

启用/禁用特定存储池上的重新平衡。

选项

  • false

  • true

enable_rebuild

布尔值

启用/禁用特定存储池的重建。

选项

  • false

  • true

enable_zero_padding

布尔值

启用/禁用特定存储池上的零填充。

选项

  • false

  • true

hostname

别名:gateway_host

字符串 / 必填

PowerFlex 主机的 IP 或 FQDN。

media_type

字符串

存储池中设备的类型。

选项

  • "HDD"

  • "SSD"

  • "TRANSITIONAL"

parallel_rebuild_rebalance_limit

整数

设置存储池的重建/重新平衡并行限制。

password

字符串 / 必填

PowerFlex 主机的密码。

persistent_checksum

字典

启用/禁用特定存储池的持久校验和。

builder_limit

整数

校验和构建过程的带宽限制,单位为 KB/s。

有效范围是 1024 到 10240。

默认值: 3072

enable

布尔值

启用/禁用持久校验和。

选项

  • false

  • true

validate_on_read

布尔值

读取数据时验证校验和。

选项

  • false

  • true

port

整数

与 PowerFlex 主机通信的端口号。

默认值: 443

protected_maintenance_mode_io_priority_policy

字典

设置存储池的保护维护模式 I/O 优先级策略。

bw_limit_per_device

整数

保护维护模式迁移 I/O 的最大带宽,单位为每秒每设备 KB。

有效范围是 1024 到 1048576。

concurrent_ios_per_device

整数

每个设备的最大并发保护维护模式迁移 I/O 数量。

有效范围是 1 到 20。

policy

字符串

保护维护模式的 I/O 优先级策略。

unlimited 保护维护模式 IOPS 不受限制

limitNumOfConcurrentIos 将允许的并发保护维护模式迁移 I/O 数量限制为为 *concurrent_ios_per_device* 定义的值。

favorAppIos 始终将允许的并发保护维护模式迁移 I/O 数量限制为为 *concurrent_ios_per_device* 定义的值。

如果应用程序 I/O 正在进行,还应将保护维护模式迁移 I/O 的带宽限制为为 *bw_limit_per_device* 定义的限制。

选项

  • "unlimited"

  • "limitNumOfConcurrentIos" ← (默认)

  • "favorAppIos"

protection_domain_id

字符串

保护域的 ID。

在创建池期间,必须提及保护域名称或 ID。

与 *protection_domain_name* 互斥。

protection_domain_name

字符串

保护域的名称。

在创建池期间,必须提及保护域名称或 ID。

与 *protection_domain_id* 互斥。

rebalance_io_priority_policy

字典

设置存储池的重新平衡 I/O 优先级策略。

bw_limit_per_device

整数

重新平衡 I/O 的最大带宽,单位为每秒每设备 KB。

有效范围是 1024 到 1048576。

concurrent_ios_per_device

整数

每个设备的最大并发重新平衡 I/O 数量。

有效范围是 1 到 20。

policy

字符串

用于重新平衡 I/O 优先级的策略。

unlimited 重新平衡 I/O 不受限制。

limitNumOfConcurrentIos 限制允许的并发重新平衡 I/O 数量。

当应用程序I/O正在进行时,favorAppIos 限制重新平衡I/O的数量和带宽。

选项

  • "unlimited"

  • "limitNumOfConcurrentIos"

  • "favorAppIos" ← (默认)

rep_cap_max_ratio

整数

设置存储池的复制日志容量。

rmcache_write_handling_mode

字符串

设置存储池的RM缓存写入处理模式。

直通 写入跳过缓存,仅存储在存储中。

缓存 写入同时存储在缓存和存储中(默认值)。

仅对大小为4k字节倍数的I/O执行缓存。

选项

  • "Cached" ← (默认)

  • "Passthrough"

spare_percentage

整数

设置特定存储池的备用百分比。

state

字符串 / 必填

存储池的状态。

选项

  • "present"

  • "absent"

storage_pool_id

字符串

存储池的ID。

它是自动生成的,因此在创建存储池时不应提供。

storage_pool_name互斥。

storage_pool_name

字符串

存储池的名称。

如果找到多个具有相同名称的存储池,则需要保护域ID/名称才能执行任务。

storage_pool_id互斥。

storage_pool_new_name

字符串

可以提供存储池的新名称。

此参数用于重命名存储池。

timeout

整数

连接终止后的时间。

以秒为单位。

默认值: 120

use_rfcache

布尔值

启用/禁用特定存储池上的RFcache。

选项

  • false

  • true

use_rmcache

布尔值

启用/禁用特定存储池上的RMcache。

选项

  • false

  • true

username

字符串 / 必填

PowerFlex主机的用户名。

validate_certs

别名:verifycert

布尔值

布尔变量,用于指定是否验证SSL证书。

true - 表示应验证SSL证书。

false - 表示不应验证SSL证书。

选项

  • false

  • true ← (默认)

vtree_migration_io_priority_policy

字典

设置特定存储池的V-Tree迁移的I/O优先级策略。

bw_limit_per_device

整数

V-Tree迁移I/O的最大带宽,单位为每秒每设备KB。

有效范围是1024到25600。

concurrent_ios_per_device

整数

每个设备并发V-Tree迁移I/O的最大数量。

有效范围是1到20

policy

字符串

保护维护模式的 I/O 优先级策略。

limitNumOfConcurrentIos 将允许的并发V-Tree迁移I/O的数量限制为concurrent_ios_per_device(默认值)。

favorAppIos 始终将允许的并发V-Tree迁移I/O的数量限制为为concurrent_ios_per_device定义的数量。

如果应用程序I/O正在进行,还应将V-Tree迁移I/O的带宽限制为为bw_limit_per_device定义的限制。

选项

  • "limitNumOfConcurrentIos"

  • "favorAppIos"

注释

注意

  • TRANSITIONAL媒体类型仅在修改期间受支持。

  • 支持check_mode

  • 名为“dellemc.powerflex”的集合中存在的模块旨在支持Dell PowerFlex存储平台。

示例

- name: Get the details of storage pool by name
  dellemc.powerflex.storagepool:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    storage_pool_name: "sample_pool_name"
    protection_domain_name: "sample_protection_domain"
    state: "present"

- name: Get the details of storage pool by id
  dellemc.powerflex.storagepool:
    hostname: "{{hostname}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    storage_pool_id: "abcd1234ab12r"
    state: "present"

- name: Create a new Storage pool
  dellemc.powerflex.storagepool:
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    validate_certs: "{{ validate_certs }}"
    storage_pool_name: "{{ pool_name }}"
    protection_domain_name: "{{ protection_domain_name }}"
    cap_alert_thresholds:
      high_threshold: 30
      critical_threshold: 50
    media_type: "TRANSITIONAL"
    enable_zero_padding: true
    rep_cap_max_ratio: 40
    rmcache_write_handling_mode: "Passthrough"
    spare_percentage: 80
    enable_rebalance: false
    enable_fragmentation: false
    enable_rebuild: false
    use_rmcache: true
    use_rfcache: true
    parallel_rebuild_rebalance_limit: 3
    protected_maintenance_mode_io_priority_policy:
      policy: "unlimited"
    rebalance_io_priority_policy:
      policy: "unlimited"
    vtree_migration_io_priority_policy:
      policy: "limitNumOfConcurrentIos"
      concurrent_ios_per_device: 10
    persistent_checksum:
      enable: false
    state: "present"

- name: Modify a Storage pool by name
  dellemc.powerflex.storagepool:
    hostname: "{{ hostname }}"
    username: "{{ username }}"
    password: "{{ password }}"
    validate_certs: "{{ validate_certs }}"
    storage_pool_name: "{{ pool_name }}"
    protection_domain_name: "{{ protection_domain_name }}"
    storage_pool_new_name: "pool_name_new"
    cap_alert_thresholds:
      high_threshold: 50
      critical_threshold: 70
    enable_zero_padding: false
    rep_cap_max_ratio: 60
    rmcache_write_handling_mode: "Passthrough"
    spare_percentage: 90
    enable_rebalance: true
    enable_fragmentation: true
    enable_rebuild: true
    use_rmcache: true
    use_rfcache: true
    parallel_rebuild_rebalance_limit: 6
    protected_maintenance_mode_io_priority_policy:
      policy: "limitNumOfConcurrentIos"
      concurrent_ios_per_device: 4
    rebalance_io_priority_policy:
      policy: "favorAppIos"
      concurrent_ios_per_device: 10
      bw_limit_per_device: 4096
    vtree_migration_io_priority_policy:
      policy: "limitNumOfConcurrentIos"
      concurrent_ios_per_device: 10
    persistent_checksum:
      enable: true
      validate_on_read: true
      builder_limit: 1024
    state: "present"

返回值

常见的返回值已在此处记录,以下是此模块独有的字段

描述

changed

布尔值

资源是否已更改。

返回:始终

示例: false

storage_pool_details

字典

存储池的详细信息。

返回:存储池存在时

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, "statistics": {"BackgroundScannedInMB": 3466920, "activeBckRebuildCapacityInKb": 0, "activeEnterProtectedMaintenanceModeCapacityInKb": 0, "aggregateCompressionLevel": "Uncompressed", "atRestCapacityInKb": 1248256, "backgroundScanCompareErrorCount": 0, "backgroundScanFixedCompareErrorCount": 0, "bckRebuildReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "bckRebuildWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "capacityAvailableForVolumeAllocationInKb": 369098752, "capacityInUseInKb": 2496512, "capacityInUseNoOverheadInKb": 2496512, "capacityLimitInKb": 845783040, "compressedDataCompressionRatio": 0.0, "compressionRatio": 1.0, "currentFglMigrationSizeInKb": 0, "deviceIds": [], "enterProtectedMaintenanceModeCapacityInKb": 0, "enterProtectedMaintenanceModeReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "enterProtectedMaintenanceModeWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "exitProtectedMaintenanceModeReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "exitProtectedMaintenanceModeWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "exposedCapacityInKb": 0, "failedCapacityInKb": 0, "fwdRebuildReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "fwdRebuildWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "inMaintenanceCapacityInKb": 0, "inMaintenanceVacInKb": 0, "inUseVacInKb": 184549376, "inaccessibleCapacityInKb": 0, "logWrittenBlocksInKb": 0, "maxCapacityInKb": 845783040, "migratingVolumeIds": [], "migratingVtreeIds": [], "movingCapacityInKb": 0, "netCapacityInUseInKb": 1248256, "normRebuildCapacityInKb": 0, "normRebuildReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "normRebuildWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "numOfDeviceAtFaultRebuilds": 0, "numOfDevices": 3, "numOfIncomingVtreeMigrations": 0, "numOfVolumes": 8, "numOfVolumesInDeletion": 0, "numOfVtrees": 8, "overallUsageRatio": 73.92289, "pendingBckRebuildCapacityInKb": 0, "pendingEnterProtectedMaintenanceModeCapacityInKb": 0, "pendingExitProtectedMaintenanceModeCapacityInKb": 0, "pendingFwdRebuildCapacityInKb": 0, "pendingMovingCapacityInKb": 0, "pendingMovingInBckRebuildJobs": 0, "persistentChecksumBuilderProgress": 100.0, "persistentChecksumCapacityInKb": 414720, "primaryReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "primaryReadFromDevBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "primaryReadFromRmcacheBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "primaryVacInKb": 92274688, "primaryWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "protectedCapacityInKb": 2496512, "protectedVacInKb": 184549376, "provisionedAddressesInKb": 2496512, "rebalanceCapacityInKb": 0, "rebalanceReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "rebalanceWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "rfacheReadHit": 0, "rfacheWriteHit": 0, "rfcacheAvgReadTime": 0, "rfcacheAvgWriteTime": 0, "rfcacheIoErrors": 0, "rfcacheIosOutstanding": 0, "rfcacheIosSkipped": 0, "rfcacheReadMiss": 0, "rmPendingAllocatedInKb": 0, "rmPendingThickInKb": 0, "rplJournalCapAllowed": 0, "rplTotalJournalCap": 0, "rplUsedJournalCap": 0, "secondaryReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "secondaryReadFromDevBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "secondaryReadFromRmcacheBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "secondaryVacInKb": 92274688, "secondaryWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "semiProtectedCapacityInKb": 0, "semiProtectedVacInKb": 0, "snapCapacityInUseInKb": 0, "snapCapacityInUseOccupiedInKb": 0, "snapshotCapacityInKb": 0, "spSdsIds": ["abdfe71b00030001", "abdce71d00040001", "abdde71e00050001"], "spareCapacityInKb": 84578304, "targetOtherLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "targetReadLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "targetWriteLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "tempCapacityInKb": 0, "tempCapacityVacInKb": 0, "thickCapacityInUseInKb": 0, "thinAndSnapshotRatio": 73.92289, "thinCapacityAllocatedInKm": 184549376, "thinCapacityInUseInKb": 0, "thinUserDataCapacityInKb": 2496512, "totalFglMigrationSizeInKb": 0, "totalReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "totalWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "trimmedUserDataCapacityInKb": 0, "unreachableUnusedCapacityInKb": 0, "unusedCapacityInKb": 758708224, "userDataCapacityInKb": 2496512, "userDataCapacityNoTrimInKb": 2496512, "userDataReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "userDataSdcReadLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "userDataSdcTrimLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "userDataSdcWriteLatency": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "userDataTrimBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "userDataWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "volMigrationReadBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "volMigrationWriteBwc": {"numOccured": 0, "numSeconds": 0, "totalWeightInKb": 0}, "volumeAddressSpaceInKb": "922XXXXX", "volumeAllocationLimitInKb": "3707XXXXX", "volumeIds": ["456afc7900XXXXXXXX"], "vtreeAddresSpaceInKb": 92274688, "vtreeIds": ["32b1681bXXXXXXXX"]}, "useRfcache": false, "useRmcache": false, "vtreeMigrationIoPriorityAppBwPerDeviceThresholdInKbps": null, "vtreeMigrationIoPriorityAppIopsPerDeviceThreshold": null, "vtreeMigrationIoPriorityBwLimitPerDeviceInKbps": 10240, "vtreeMigrationIoPriorityNumOfConcurrentIosPerDevice": 1, "vtreeMigrationIoPriorityPolicy": "favorAppIos", "vtreeMigrationIoPriorityQuietPeriodInMsec": null, "zeroPaddingEnabled": true}

id

字符串

保护域下存储池的ID。

返回:成功

mediaType

字符串

存储池中设备的类型。

返回:成功

name

字符串

保护域下存储池的名称。

返回:成功

protectionDomainId

字符串

池所在的保护域的ID。

返回:成功

protectionDomainName

字符串

池所在的保护域的名称。

返回:成功

statistics

字典

存储池的统计详细信息。

返回:成功

capacityInUseInKb

字符串

存储池的总容量。

返回:成功

deviceIds

列表 / 元素=字符串

存储池的设备ID。

返回:成功

unusedCapacityInKb

字符串

存储池的未用容量。

返回:成功

useRfcache

布尔值

启用/禁用特定存储池上的RFcache。

返回:成功

useRmcache

布尔值

启用/禁用特定存储池上的RMcache。

返回:成功

作者

  • Arindam Datta (@dattaarindam)

  • P Srinivas Rao (@srinivas-rao5)

  • Trisha Datta (@trisha-dell)