powerstore_metro_volume (Resource)
This resource is used to manage metro volume replication on PowerStore. Metro replication provides synchronous replication (RPO=0) between two PowerStore clusters for disaster recovery. The resource takes an existing volume ID and configures it as a metro volume with a remote system. Running terraform destroy will end the metro configuration.
Example Usage
/*
Copyright (c) 2025 Dell Inc., or its subsidiaries. All Rights Reserved.
Licensed under the Mozilla Public License Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://mozilla.org/MPL/2.0/
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
# Commands to run this tf file : terraform init && terraform plan && terraform apply
# This resource configures metro (synchronous) replication on an existing volume.
# Metro replication provides RPO=0 (zero data loss) between two PowerStore clusters.
# The volume must already exist - use powerstore_volume resource to create it first.
# Example: Configure metro replication on an existing volume
resource "powerstore_metro_volume" "example" {
volume_id = "volume-id-here"
remote_system_id = "remote-system-id-here"
# Optional: specify a remote appliance
# remote_appliance_id = "remote-appliance-id"
# Optional: control destroy behavior
# delete_remote_volume = false
# force = false
}
Schema
Required
remote_system_id(String) Unique identifier of the remote system for metro replication. The remote system must support metro volumes.volume_id(String) Unique identifier of the existing volume to configure as a metro volume.
Optional
delete_remote_volume(Boolean) Whether to delete the remote volume when ending metro configuration. Default is false.force(Boolean) Force end metro even if the remote side has errors. Not recommended unless the remote is known to be down.is_replication_paused(Boolean) Whether the replication is paused. When set to true, replication is paused. When set to false, replication is resumed.remote_appliance_id(String) Specific remote appliance to assign the volume. If not specified, the system chooses based on space, load, and connectivity.
Read-Only
data_transfer_state(String) Current data transfer state of the replication session.id(String) Unique identifier of the metro replication session.metro_replication_session_id(String) Unique identifier of the metro replication session assigned to the volume.remote_resource_id(String) Unique identifier of the remote storage resource.state(String) Current state of the replication session.