Before creating a replicated array pair, you must configure array managers for the protected (local) and recovery (remote) SRM sites.
Configure array managers for the protected and recovery sites to enable the creation of an array pair for array-based replication (ABR). Array managers must be configured so that Site Recovery Manager (SRM) can discover replicated devices, compute datastore groups, and initiate storage operations.
Prerequisites
-
Verify that your SRM connection is authenticated against the protected (local) and recovery (remote) vCenter Server systems. This example uses the $srmConnection variable from Connect to a Local and to a Remote Site Recovery Manager (SRM) Server.
-
Verify that the SRM instances on the protected (local) and recovery (remote) sites are connected. This is known as site pairing.
-
Verify that storage replication adapters (SRAs) are installed at both sites.
-
You must have the required privileges to create array managers on the protected and recovery sites.
Procedure
- Retrieve the storage replication adapter (SRA) for the local array manager.
$localAdapter = (Invoke-SrmGetStorageAdapters -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.LocalSrmServer.Id `
-FilterProperty "Name" `
-Filter "<myAdapterName>").List[0]
- Prepare the connection parameters for the local SRA.
- Retrieve the ConnectionParamGroup object for the local SRA.
$localConnectionParamGroup = (Invoke-SrmGetStorageAdapterConnectionParams `
-PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.LocalSrmServer.Id `
-StorageAdapterId $localAdapter.Id).List[0]
- Provide values to the connection parameters, available in the $localConnectionParamGroup.ConnectionParams list.
The set of connection parameters is specific to the used SRA. This example uses parameters specific to the NetApp SRA.
($localConnectionParamGroup.ConnectionParams | where {$_.key -eq "username"}).Value = "<myNetAppUser>"
($localConnectionParamGroup.ConnectionParams | where {$_.key -eq "password"}).Value = "<myNetAppPass>"
($localConnectionParamGroup.ConnectionParams | where {$_.key -eq "VolumeInclusion"}).Value = "<myVolume>"
($localConnectionParamGroup.ConnectionParams | where {$_.key -eq "SVM Name"}).Value = "<myLocalSvmName>"
($localConnectionParamGroup.ConnectionParams | where {$_.key -eq "mgmtIP"}).Value = "<myNetAppMgmtIP>"
- Prepare the local array manager creation spec.
$localArrayManagerSpec = Initialize-SrmArrayManagerSpec -Name "<myLocalArrayManagerName>" `
-StorageAdapter $localAdapter.Id `
-ConnectionParams $localConnectionParamGroup
- Create the local array manager.
$task = Invoke-SrmCreateArrayManager -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.LocalSrmServer.Id `
-ArrayManagerSpec $localArrayManagerSpec
- Monitor the task progress.
$task = Invoke-SrmGetTaskInfo -TaskId $task.Id
$task.Status
eventually changes to SUCCESS
.
- (Optional) Retrieve the local array manager.
The Result property of the $localManagerTask object contains the ID of the created array manager.
$localManagerTask = Invoke-SrmGetTaskInfo -TaskId $task.Id
$localArrayManager = Invoke-SrmGetArrayManager -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.LocalSrmServer.Id `
-ArrayManagerId $localManagerTask.Result
- Create the remote array manager by using the same approach.
$remoteAdapter = (Invoke-SrmGetStorageAdapters -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.RemoteSrmServer.Id `
-FilterProperty "Name" `
-Filter "<myAdapterName>").List[0]
$remoteConnectionParamGroup = (Invoke-SrmGetStorageAdapterConnectionParams `
-PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.RemoteSrmServer.Id `
-StorageAdapterId $remoteAdapter.Id).List[0]
($remoteConnectionParamGroup.ConnectionParams | Where-Object {$_.key -eq "username"}).Value = "<myNetAppUser>"
($remoteConnectionParamGroup.ConnectionParams | Where-Object {$_.key -eq "password"}).Value = "<myNetAppPass>"
($remoteConnectionParamGroup.ConnectionParams | Where-Object {$_.key -eq "VolumeInclusion"}).Value = "<myVolume>"
($remoteConnectionParamGroup.ConnectionParams | Where-Object {$_.key -eq "SVM Name"}).Value = "<myRemoteSvmName>"
($remoteConnectionParamGroup.ConnectionParams | Where-Object {$_.key -eq "mgmtIP"}).Value = "myNetAppMgmtIP"
$remoteArrayManagerSpec = Initialize-SrmArrayManagerSpec -Name "<myRemoteArrayManagerName>" `
-StorageAdapter $remoteAdapter.Id `
-ConnectionParams $remoteConnectionParamGroup
$task = Invoke-SrmCreateArrayManager -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.RemoteSrmServer.Id `
-ArrayManagerSpec $remoteArrayManagerSpec
#Wait for the create array manager task to complete.
$remoteManagerTask = Invoke-SrmGetTaskInfo -TaskId $task.Id
$remoteArrayManager = Invoke-SrmGetArrayManager -PairingId $srmConnection.ConnectedPairing.PairingId `
-SrmId $srmConnection.ConnectedPairing.RemoteSrmServer.Id `
-ArrayManagerId $remoteManagerTask.Result
What to do next
Create a replicated array pair for array-based replication.