dellemc.unity.filesystem 模块 – 管理 Unity 存储系统上的文件系统

注意

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

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

要安装它,请使用:ansible-galaxy collection install dellemc.unity。您需要进一步的要求才能使用此模块,请参阅 要求 以获取详细信息。

要在 Playbook 中使用它,请指定:dellemc.unity.filesystem

dellemc.unity 1.1.0 中的新增功能

概要

  • 在 Unity 存储系统上管理文件系统包括:创建新的文件系统、修改文件系统的快照计划属性、修改文件系统属性、显示文件系统详细信息、显示文件系统快照、显示文件系统快照计划、删除与文件系统关联的快照计划、删除文件系统、创建带有配额配置的新文件系统、启用、修改和禁用复制。

要求

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

  • Dell Unity 存储设备版本 5.1 或更高版本。

  • Ansible-core 2.14 或更高版本。

  • Python 3.9、3.10 或 3.11。

  • Storops Python SDK 1.2.11。

参数

参数

注释

access_policy

字符串

文件系统的访问策略。

选择

  • "NATIVE"

  • "UNIX"

  • "WINDOWS"

cap_unit

字符串

文件系统大小的单位。如果未指定,则默认为 GB

选择

  • "GB"

  • "TB"

data_reduction

布尔值

布尔变量,指定是否启用压缩。仅对精简文件系统支持压缩。

选择

  • false

  • true

description

字符串

有关文件系统的描述。

可以通过传递空字符串 (“”) 来删除描述。

filesystem_id

字符串

文件系统的 ID。

它只能用于获取、修改或删除操作。

它与 *filesystem_name* 互斥。

filesystem_name

字符串

文件系统的名称。仅在创建操作中是强制性的。所有操作都通过 *filesystem_name* 支持。

它与 *filesystem_id* 互斥。

is_thin

布尔值

布尔变量,指定它是否是精简文件系统。

选择

  • false

  • true

locking_policy

字符串

文件系统锁定策略。这些策略选择控制是否必须遵守 NFSv4 范围锁定。

选择

  • "ADVISORY"

  • "MANDATORY"

nas_server_id

字符串

将在其上托管文件系统的 NAS 服务器的 ID。

nas_server_name

字符串

将在其上托管文件系统的 NAS 服务器的名称。

password

字符串 / 必需

Unity 管理服务器的密码。

pool_id

字符串

这是将在其中创建文件系统的池的 ID。

必须提供 *pool_name* 或 *pool_id* 才能创建新的文件系统。

pool_name

字符串

这是将在其中创建文件系统的池的名称。

必须提供 *pool_name* 或 *pool_id* 才能创建新的文件系统。

port

整数

通过该端口号与 Unity 管理服务器进行通信。

默认值: 443

quota_config

字典

配额管理配置。它包含可选参数。

cap_unit

字符串

*default_soft_limit* 和 *default_hard_limit* 大小的单位。

默认单位为 GB

选择

  • "MB"

  • "GB"

  • "TB"

default_hard_limit

整数

用户配额和树配额的默认硬限制。

如果在创建文件系统时未设置 *default_hard_limit*,则默认情况下将其设置为 0B

default_soft_limit

整数

用户配额和树配额的默认软限制。

如果在创建文件系统时未设置 *default_soft_limit*,则默认情况下将其设置为 0B

grace_period

整数

达到软限制后在配额配置中设置的宽限期。

如果在创建文件系统期间未设置 *grace_period*,则默认情况下将其设置为 7

grace_period_unit

字符串

宽限期的单位。

默认单位为

选择

  • "分钟"

  • "小时"

  • "天"

is_user_quota_enabled

布尔值

指示是否启用了用户配额。

如果在创建文件系统时未设置 *is_user_quota_enabled*,则默认情况下将其设置为 false

参数 *is_user_quota_enabled* 和 *quota_policy* 互斥。

选择

  • false

  • true

quota_policy

字符串

在配额配置中设置的配额策略。

如果在创建文件系统时未设置 *quota_policy*,则默认情况下将其设置为 FILE_SIZE

参数 *is_user_quota_enabled* 和 *quota_policy* 互斥。

选择

  • "FILE_SIZE"

  • "BLOCKS"

replication_params

字典

启用或修改复制所需的设置。

destination_pool_id

字符串

用于分配目标文件系统的池的 ID。

destination_pool_name

字符串

用于分配目标文件系统的池的名称。

new_replication_name

字符串

用于将会话重命名的复制名称。

remote_system

字典

正在配置复制的远程系统的详细信息。

如果 *replication_type* 为 remote,则应指定 *remote_system* 选项。

remote_system_host

字符串 / 必需

远程 Unity Unisphere 主机的 IP 或 FQDN。

remote_system_password

字符串 / 必需

远程 Unity Unisphere 主机的密码。

remote_system_port

整数

远程 Unity Unisphere 托管的端口。

默认值: 443

remote_system_username

字符串 / 必需

远程 Unity Unisphere 主机的用户名。

remote_system_verifycert

布尔值

布尔变量,用于指定是否验证远程 Unity Unisphere 主机的 SSL 证书。

true - 表示应验证 SSL 证书。

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

选择

  • false

  • true ← (默认)

replication_mode

字符串

复制模式。

这是创建复制会话时的必填字段。

选择

  • "synchronous"

  • "asynchronous"

  • "manual"

replication_name

字符串

复制会话的名称。

replication_type

字符串

复制类型。

选择

  • “本地”

  • “远程”

rpo

整数

系统同步源和目标 LUN 之前的最大等待时间。

如果replication_mode异步,则应指定rpo选项。

该值对于异步应在51440的范围内,对于同步应为0,对于手动应为-1

replication_state

字符串

复制的状态。

选择

  • “启用”

  • “禁用”

size

整数

文件系统的大小。

smb_properties

字典

SMB 的高级设置。它包含可选的候选变量。

is_smb_notify_on_access_enabled

布尔值

指示是否启用目录文件结构更改的通知。

选择

  • false

  • true

is_smb_notify_on_write_enabled

布尔值

指示是否在文件系统上启用了文件写入通知。

选择

  • false

  • true

is_smb_op_locks_enabled

布尔值

指示是否在文件系统上启用了机会文件锁定。

选择

  • false

  • true

is_smb_sync_writes_enabled

布尔值

指示是否在文件系统上启用了同步写入选项。

选择

  • false

  • true

smb_notify_on_change_dir_depth

整数

整数变量,确定启用通知适用的最低目录级别。

最小值是1

snap_schedule_id

字符串

这是要与文件系统关联的现有快照计划的 ID。

它与snapshot_schedule_name互斥。

snap_schedule_name

字符串

这是要与文件系统关联的现有快照计划的名称。

它与snapshot_schedule_id互斥。

state

字符串 / 必需

用于确定文件系统是否存在的状态变量。

选择

  • “不存在”

  • “存在”

supported_protocols

字符串

文件系统支持的协议。

如果 NAS 服务器是多协议,它将被 NAS 服务器配置覆盖。

选择

  • “NFS”

  • “CIFS”

  • “MULTIPROTOCOL”

tiering_policy

字符串

分层策略选择,用于确定存储资源数据如何在池中可用的层之间分配。

选择

  • “AUTOTIER_HIGH”

  • “AUTOTIER”

  • “HIGHEST”

  • “LOWEST”

unispherehost

字符串 / 必需

Unity 管理服务器的 IP 或 FQDN。

username

字符串 / 必需

Unity 管理服务器的用户名。

validate_certs

别名: verifycert

布尔值

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

true - 表示应验证 SSL 证书。

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

选择

  • false

  • true ← (默认)

注意

  • 在删除文件系统之前,需要删除与文件系统关联的 SMB 共享、NFS 导出和快照。

  • quota_config参数可用于更新默认的硬限制和软限制值,以限制可以使用的最大空间。默认情况下,它们在文件系统创建期间都设置为 0,这意味着无限制。

  • 不支持check_mode

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

示例

- name: Create FileSystem
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_name: "ansible_test_fs"
    nas_server_name: "lglap761"
    pool_name: "pool_1"
    size: 5
    state: "present"

- name: Create FileSystem with quota configuration
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_name: "ansible_test_fs"
    nas_server_name: "lglap761"
    pool_name: "pool_1"
    size: 5
    quota_config:
      grace_period: 8
      grace_period_unit: "days"
      default_soft_limit: 10
      is_user_quota_enabled: false
    state: "present"

- name: Expand FileSystem size
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_name: "ansible_test_fs"
    nas_server_name: "lglap761"
    size: 10
    state: "present"

- name: Expand FileSystem size
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_name: "ansible_test_fs"
    nas_server_name: "lglap761"
    size: 10
    state: "present"

- name: Modify FileSystem smb_properties
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_name: "ansible_test_fs"
    nas_server_name: "lglap761"
    smb_properties:
      is_smb_op_locks_enabled: true
      smb_notify_on_change_dir_depth: 5
      is_smb_notify_on_access_enabled: true
    state: "present"

- name: Modify FileSystem Snap Schedule
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "fs_141"
    snap_schedule_id: "{{snap_schedule_id}}"
    state: "{{state_present}}"

- name: Get details of FileSystem using id
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    state: "present"

- name: Delete a FileSystem using id
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    state: "absent"

- name: Enable replication on the fs
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    replication_params:
      replication_name: "test_repl"
      replication_type: "remote"
      replication_mode: "asynchronous"
      rpo: 60
      remote_system:
        remote_system_host: '0.1.2.3'
        remote_system_verifycert: false
        remote_system_username: 'username'
        remote_system_password: 'password'
      destination_pool_name: "pool_test_1"
    replication_state: "enable"
    state: "present"

- name: Modify replication on the fs
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    replication_params:
      replication_name: "test_repl"
      new_replication_name: "test_repl_updated"
      replication_mode: "asynchronous"
      rpo: 50
    replication_state: "enable"
    state: "present"

- name: Disable replication on the fs
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    replication_state: "disable"
    state: "present"

- name: Disable replication by specifying replication_name on the fs
  dellemc.unity.filesystem:
    unispherehost: "{{unispherehost}}"
    username: "{{username}}"
    password: "{{password}}"
    validate_certs: "{{validate_certs}}"
    filesystem_id: "rs_405"
    replication_params:
      replication_name: "test_replication"
    replication_state: "disable"
    state: "present"

返回值

通用返回值记录在此处,以下是此模块特有的字段

描述

changed

布尔值

资源是否已更改。

返回: 始终

示例: true

filesystem_details

字典

文件系统的详细信息。

返回: 当文件系统存在时

示例: {"access_policy": "AccessPolicyEnum.UNIX", "cifs_notify_on_change_dir_depth": 512, "cifs_share": null, "data_reduction_percent": 0, "data_reduction_ratio": 1.0, "data_reduction_size_saved": 0, "description": "", "existed": true, "folder_rename_policy": "FSRenamePolicyEnum.SMB_RENAME_FORBIDDEN", "format": "FSFormatEnum.UFS64", "hash": 8735427610152, "health": {"UnityHealth": {"hash": 8735427614928}}, "host_io_size": "HostIOSizeEnum.GENERAL_8K", "id": "fs_65916", "is_advanced_dedup_enabled": false, "is_cifs_notify_on_access_enabled": false, "is_cifs_notify_on_write_enabled": false, "is_cifs_op_locks_enabled": false, "is_cifs_sync_writes_enabled": false, "is_data_reduction_enabled": false, "is_read_only": false, "is_smbca": false, "is_thin_enabled": true, "locking_policy": "FSLockingPolicyEnum.MANDATORY", "metadata_size": 11274289152, "metadata_size_allocated": 4294967296, "min_size_allocated": 0, "name": "test_fs", "nas_server": {"id": "nas_18", "name": "test_nas1"}, "nfs_share": null, "per_tier_size_used": [6979321856, 0, 0], "pool": {"id": "pool_7", "name": "pool 7"}, "pool_full_policy": "ResourcePoolFullPolicyEnum.FAIL_WRITES", "quota_config": {"default_hard_limit": "0B", "default_soft_limit": "0B", "grace_period": "7.0 days", "id": "quotaconfig_171798760421_0", "is_user_quota_enabled": false, "quota_policy": "QuotaPolicyEnum.FILE_SIZE"}, "replication_sessions": {"current_transfer_est_remain_time": 0, "id": "***", "last_sync_time": "2022-05-12 11:20:38+00:00", "local_role": "ReplicationSessionReplicationRoleEnum.SOURCE", "max_time_out_of_sync": 60, "members": null, "name": "local_repl_new", "network_status": "ReplicationSessionNetworkStatusEnum.OK", "remote_system": {"UnityRemoteSystem": {"hash": 8735426929707}}, "replication_resource_type": "ReplicationEndpointResourceTypeEnum.FILESYSTEM", "src_resource_id": "res_66444", "src_status": "ReplicationSessionStatusEnum.OK", "status": "ReplicationOpStatusEnum.AUTO_SYNC_CONFIGURED", "sync_progress": 0, "sync_state": "ReplicationSessionSyncStateEnum.IDLE"}, "size_allocated": 283148288, "size_allocated_total": 4578148352, "size_preallocated": 2401173504, "size_total": 10737418240, "size_total_with_unit": "10.0 GB", "size_used": 1620312064, "snap_count": 2, "snaps_size": 21474869248, "snaps_size_allocated": 32768, "snapshots": [], "supported_protocols": "FSSupportedProtocolEnum.NFS", "tiering_policy": "TieringPolicyEnum.AUTOTIER_HIGH", "type": "FilesystemTypeEnum.FILESYSTEM"}

cifs_notify_on_change_dir_depth

整数

指示启用的通知适用的最低目录级别(如果有)。

返回: 成功

description

字符串

有关文件系统的描述。

返回: 成功

id

字符串

系统为文件系统生成的 ID。

返回: 成功

is_cifs_notify_on_access_enabled

布尔值

指示当用户访问文件系统时,系统是否生成通知。

返回: 成功

is_cifs_notify_on_write_enabled

布尔值

指示当文件系统被写入时,系统是否生成通知。

返回: 成功

is_cifs_op_locks_enabled

布尔值

指示是否为文件系统启用了机会文件锁定。

返回: 成功

is_cifs_sync_writes_enabled

布尔值

指示是否为文件系统启用了 CIFS 同步写入选项。

返回: 成功

is_data_reduction_enabled

布尔值

是否在此文件系统上启用了压缩。

返回: 成功

is_thin_enabled

布尔值

指示是否为此文件系统启用了精简配置。

返回: 成功

name

字符串

文件系统的名称。

返回: 成功

nas_server

字典

此文件系统托管的 NAS 服务器的详细信息。

返回: 成功

id

字符串

系统为 NAS 服务器提供的 ID。

返回: 成功

name

字符串

NAS 服务器的名称。

返回: 成功

pool

字典

此文件系统分配到的池。

返回: 成功

id

字符串

系统为池提供的 ID。

返回: 成功

name

字符串

存储池的名称。

返回: 成功

quota_config

字典

创建的文件系统的配额配置的详细信息。

返回: 成功

default_hard_limit

整数

用户配额和树配额的默认硬限制。

返回: 成功

default_soft_limit

整数

用户配额和树配额的默认软限制。

返回: 成功

grace_period

字符串

达到软限制后在配额配置中设置的宽限期。

返回: 成功

is_user_quota_enabled

布尔值

指示是否启用了用户配额。

返回: 成功

quota_policy

字符串

在配额配置中设置的配额策略。

返回: 成功

replication_sessions

字典

如果启用了复制,则为复制会话列表。

返回: 成功

id

字符串

复制会话的 ID

返回: 成功

name

字符串

复制会话的名称

返回: 成功

remote_system

字典

远程系统

返回: 成功

id

字符串

远程系统的 ID

返回: 成功

size_total_with_unit

字符串

带有实际单位的文件系统大小。

返回: 成功

snap_schedule_id

字符串

指示与文件系统关联的快照计划的 ID。

返回: 成功

snap_schedule_name

字符串

指示与文件系统关联的快照计划的名称。

返回: 成功

snapshots

列表 / 元素=字符串

此文件系统的快照列表。

返回: 成功

id

字符串

系统为文件系统快照提供的 ID。

返回: 成功

name

字符串

文件系统快照的名称。

返回: 成功

tiering_policy

字符串

应用于此文件系统的分层策略。

返回: 成功

作者

  • Arindam Datta (@dattaarindam)

  • Meenakshi Dembi (@dembim)

  • Spandita Panigrahi (@panigs7)