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
- This module allows for the splitting, and resynchronization of GAD pairs in a consistency group on VSP One block storage systems.
- It supports various GAD pairs operations based on the specified task level.
- For examples, go to URL https://github.com/hitachi-vantara/vspone-block-ansible/blob/main/playbooks/vsp_direct/vsp_one_gad_consistency_group.yml
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:
|
|
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: |
|
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:
|
Attributes
Attribute | Support | Description |
|---|---|---|
check_mode | Support: none | Determines if the module should run in check mode. |
Notes
Note
- Connection type
gatewaywas 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
-
- 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.
-
- After creating the secondary host group, you must manually add it to the VSM resource group.
-
- A valid WWN should be added to the host groups (primary and secondary).
-
- 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.
-
- For VSM to VSM GAD, a common VSM must be created on the primary and secondary storage systems.
-
- Add the P-VOL and host group to the VSM. Map the P-VOL to the host group.
-
- 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.
-
- Add the secondary host group to the VSM.
-
- 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: |
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: |
|
copy_pace integer |
Speed of the copy operation (1-15). Returned: success Sample: |
|
copy_progress_rate integer |
Percentage of initial copy completion. Returned: success Sample: |
|
copy_time integer |
Total seconds taken to reach PAIR status. Returned: success Sample: |
|
created_time string |
Timestamp of pair creation. Returned: success Sample: |
|
data_synchronization_rate integer |
Synchronization percentage between volumes. Returned: success Sample: |
|
failure_factor string |
Reason for GAD pair failure, if any. Returned: success Sample: |
|
io_preference string |
I/O preference settings. Returned: success Sample: |
|
local_last_updated_time string |
Timestamp of the last local update. Returned: success Sample: |
|
mirror_unit_number integer |
Mirror Unit (MU) number. Returned: success Sample: |
|
pair_operation_mode_for_blocked_quorum_disk string |
Behavior when the quorum disk is blocked. Returned: success Sample: |
|
primary_volume_differential_data_management string |
Method used for differential data management. Returned: success Sample: |
|
primary_volume_id integer |
LDEV ID of the local (primary) volume. Returned: success Sample: |
|
primary_volume_id_hex string |
Hexadecimal representation of the primary volume ID. Returned: success Sample: |
|
primary_volume_io_mode string |
Host I/O behavior (MIRROR, LOCAL, BLOCK). Returned: success Sample: |
|
primary_volume_name string |
Nickname or name assigned to the primary volume. Returned: success Sample: |
|
primary_volume_position string |
Role of the local volume (PRIMARY or SECONDARY). Returned: success Sample: |
|
primary_volume_processing_status string |
Capacity expansion status (IDLE, EXPANDING). Returned: success Sample: |
|
primary_volume_provisioning_type string |
Provisioning type (INTERNAL, VIRTUAL, or EXTERNAL). Returned: success Sample: |
|
primary_volume_status string |
Current pair status (PAIR, COPY, PSUS, etc.). Returned: success Sample: |
|
quorum_disk_id integer |
ID of the quorum disk used for the GAD pair. Returned: success Sample: |
|
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: |
|
storage_model string |
Model of the remote storage (e.g., RH20ETP). Returned: success Sample: |
|
storage_serial_number string |
Serial number of the remote storage. Returned: success Sample: |
|
secondary_volume_id integer |
LDEV ID of the volume on the remote storage system. Returned: success Sample: |
|
secondary_volume_id_hex string |
Hexadecimal representation of the secondary volume ID. Returned: success Sample: |
Collection links
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/hitachivantara/vspone_block/vsp.hv_vsp_one_gad_consistency_group_module.html