hitachivantara.vspone_block.vsp.hv_vsp_one_gad_consistency_group module – Manages GAD pairs in a consistency group on VSP One block storage systems.

Note

This module is part of the hitachivantara.vspone_block collection (version 4.8.1).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install hitachivantara.vspone_block. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: hitachivantara.vspone_block.vsp.hv_vsp_one_gad_consistency_group.

New in hitachivantara.vspone_block 4.8.0

Synopsis

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 3.9

Parameters

Parameter

Comments

connection_info

dictionary / required

Information required to establish a connection to the storage system.

address

string / required

IP address or hostname of the storage system.

api_token

string

Token used to operate on locked resources.

connection_type

string

Type of connection to the storage system.

Choices:

  • "direct" ← (default)

password

string

Password for authentication. This is a required field.

username

string

Username for authentication. This is a required field.

secondary_connection_info

dictionary / required

Information required to establish a connection to the secondary storage system.

address

string / required

IP address or hostname of the secondary storage.

api_token

string

Value of the lock token to operate on locked resources.

password

string

Password for authentication. This field is required for secondary storage connection if api_token is not provided.

username

string

Username for authentication. This field is required for secondary storage connection if api_token is not provided.

spec

dictionary / required

Specification for the GAD consistency group task.

consistency_group_ids

list / elements=integer / required

List of consistency group IDs.

Each consistency group ID must be an integer in the range 0 to 1023 (inclusive).

continue_io_volume

string

The volume to continue I/O on during the suspend operation.

Specifies which volume should remain active for I/O while suspending.

Valid values are PRIMARY or SECONDARY. Case insensitive.

copy_pace

integer

The copy pace for the resync operation.

Higher values indicate faster copy speed.

Valid values are integers from 1 to 15.

Default: 3

io_preference_mode

string

The I/O preference mode for the resync operation.

Determines how I/O is handled during the resync process.

Valid values are KEEP_CURRENT_SETTING, DISABLED, or PRIMARY_ENABLED. Case insensitive.

state

string

The level of the GAD consistency group task.

Choices:

  • "present" ← (default)

  • "absent"

  • "suspended"

  • "resynced"

Attributes

Attribute

Support

Description

check_mode

Support: none

Determines if the module should run in check mode.

Notes

Note

  • Connection type gateway was removed starting from version 3.4.0. Please use an earlier version if you require this connection type.

  • Ansible modules use a technology called copy group to manage all remote replication pair types (GAD, TC, HUR). Therefore, replication pairs created by tools that do not use copy group technology are not compatible with the Ansible modules. As a result, replication pairs created without copy group technology cannot be managed by the Ansible modules.

  • This module supports Fibre Channel, iSCSI, NVMe Fibre Channel, and NVMe TCP-based GAD pairs.

  • For GAD single server, cluster, and crosspath configurations

    1. Before managing a GAD pair through Ansible Direct Connect, you must register (or pair) the source and target storage systems in the source storage’s API server. This step is required because Ansible uses REST API calls on the backend. If you skip this step—especially if you are unfamiliar with Hitachi’s REST API—you will encounter errors when managing a GAD pair through Ansible. For instructions, see Manage remote storage registration.

    1. After creating the secondary host group, you must manually add it to the VSM resource group.

    1. A valid WWN should be added to the host groups (primary and secondary).

    1. Before executing the GAD playbook, make sure that remote paths and the quorum disk are configured correctly as mentioned in the User Guide for GAD.

    1. For VSM to VSM GAD, a common VSM must be created on the primary and secondary storage systems.

    1. Add the P-VOL and host group to the VSM. Map the P-VOL to the host group.

    1. After adding a P-VOL to the VSM, the virtual ID of the P-VOL becomes the ‘GAD Reserve’ or 65534. Hence, update the virtual ID of the P-VOL using the Update volume with virtual ldev task from the LDEV playbook. The P-VOL’s physical and virtual ID must match.

    1. Add the secondary host group to the VSM.

    1. If the P-VOL is unnamed, the S-VOL will be assigned a name in the format smrha-[ldev_id]. If the P-VOL has a name, the S-VOL should use the same name. (Here, smrha stands for Storage Module Red Hat Ansible.)

Examples

- name: Suspend GAD pairs using consistency group Ids
  hitachivantara.vspone_block.vsp.hv_gad:
    state: "suspended"
    connection_info:
      address: storage1.company.com
      username: "username"
      password: "password"
    secondary_connection_info:
      address: storage2.company.com
      username: "admin"
      password: "secret"
    spec:
      consistency_group_ids: [0, 1]
      continue_io_volume: "PRIMARY"

- name: Resync GAD pairs using consistency group Ids
  hitachivantara.vspone_block.vsp.hv_gad:
    state: "swap_resync"
    connection_info:
      address: storage2.company.com
      username: "username"
      password: "password"
    secondary_connection_info:
      address: storage1.company.com
      username: "admin"
      password: "secret"
    spec:
      consistency_group_ids: [0, 1]
      copy_pace: 10
      io_preference_mode: "KEEP_CURRENT_SETTING"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

count

integer

The number of GAD pairs retrieved and stored in ansible_facts.

Returned: success

Sample: 2

gad_pairs

list / elements=dictionary

List of dictionaries containing detailed GAD pair properties.

Returned: always

consistency_group_id

integer

ID of the consistency group the pair belongs to.

Returned: success

Sample: 2

copy_pace

integer

Speed of the copy operation (1-15).

Returned: success

Sample: 3

copy_progress_rate

integer

Percentage of initial copy completion.

Returned: success

Sample: -1

copy_time

integer

Total seconds taken to reach PAIR status.

Returned: success

Sample: 0

created_time

string

Timestamp of pair creation.

Returned: success

Sample: "2024-10-01T10:00:00Z"

data_synchronization_rate

integer

Synchronization percentage between volumes.

Returned: success

Sample: 100

failure_factor

string

Reason for GAD pair failure, if any.

Returned: success

Sample: "NONE"

io_preference

string

I/O preference settings.

Returned: success

Sample: "DISABLED"

local_last_updated_time

string

Timestamp of the last local update.

Returned: success

Sample: "2024-10-01T10:05:00Z"

mirror_unit_number

integer

Mirror Unit (MU) number.

Returned: success

Sample: 0

pair_operation_mode_for_blocked_quorum_disk

string

Behavior when the quorum disk is blocked.

Returned: success

Sample: "QUORUMLESS"

primary_volume_differential_data_management

string

Method used for differential data management.

Returned: success

Sample: "HIERARCHICAL"

primary_volume_id

integer

LDEV ID of the local (primary) volume.

Returned: success

Sample: 244

primary_volume_id_hex

string

Hexadecimal representation of the primary volume ID.

Returned: success

Sample: "00:00:F4"

primary_volume_io_mode

string

Host I/O behavior (MIRROR, LOCAL, BLOCK).

Returned: success

Sample: "MIRROR"

primary_volume_name

string

Nickname or name assigned to the primary volume.

Returned: success

Sample: "GadTest"

primary_volume_position

string

Role of the local volume (PRIMARY or SECONDARY).

Returned: success

Sample: "PRIMARY"

primary_volume_processing_status

string

Capacity expansion status (IDLE, EXPANDING).

Returned: success

Sample: "IDLE"

primary_volume_provisioning_type

string

Provisioning type (INTERNAL, VIRTUAL, or EXTERNAL).

Returned: success

Sample: "VIRTUAL"

primary_volume_status

string

Current pair status (PAIR, COPY, PSUS, etc.).

Returned: success

Sample: "PAIR"

quorum_disk_id

integer

ID of the quorum disk used for the GAD pair.

Returned: success

Sample: 22

remote_connection_id

dictionary

Information about the remote storage system connection.

Returned: success

path_group_id

integer

ID of the path group used for the connection.

Returned: success

Sample: 0

storage_model

string

Model of the remote storage (e.g., RH20ETP).

Returned: success

Sample: "RH20ETP"

storage_serial_number

string

Serial number of the remote storage.

Returned: success

Sample: "70041"

secondary_volume_id

integer

LDEV ID of the volume on the remote storage system.

Returned: success

Sample: 55

secondary_volume_id_hex

string

Hexadecimal representation of the secondary volume ID.

Returned: success

Sample: "00:00:37"

Authors

  • Hitachi Vantara LTD (@hitachi-vantara)