DPMのデータストアとして使用しているボリュームを,他のボリュームに引っ越したい場合があります。
ボリュームの容量が足りないだけであれば,別のドライブをストレージプールに追加すればよいだけなのですが,何からの事情で,あるボリュームから新しいボリュームに完全にデータを移行して,古いボリュームは後ほど削除したいというケースです。
例えば,ドライブに割当てた容量が多すぎて使用率が低いため,少し小さいドライブを新しくアタッチし,そちらにデータを移行したいというケースがあります。
そのような場合には,DPMのコンソールから,ターゲットストレージを変更することが出来るボタンがあるのですが,この機能では,一括でデータを移行することができません。
それで,PowerShellを使えば,対象となるプロテクショングループごとに,すべてのターゲットストレージを変更することができます。
では,どのようにコードを書くことが出来るでしょうか?
PowerShellでバックアップのターゲットストレージを一括変更する
以下のコマンドを用いて,一括でターゲットストレージを変更することができます。
Import-Module DataProtectionManager
Connect-DPMServer -DPMServerName <DPM Server Name>
$PG = Get-DPMProtectionGroup
$MPG = Get-DPMModifiableProtectionGroup $PG[0] //対象のPG番号を選択する
$Vol = Get-DPMDiskStorage -Volumes
Get-DPMDatasource $MPG | ForEach-Object{
Write-host $_
Set-DPMDatasourceDiskAllocation -ProtectionGroup $MPG -Datasource $_ -TargetStorage $Vol[1] -MigrateDatasourceDataFromDPM -Verbose //対象のVol番号を選択する
}
Set-DPMProtectionGroup -ProtectionGroup $MPG -Async -Verbose
ちなみに,このコマンドを走らせている間は,対象となるプロテクショングループのバックアップは行われませんのでご注意ください。
以上,DPMにおいて,プロテクショングループのターゲットストレージをPowerShellで一括変更する方法でした。
コメント