1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AzureStorage(RA-GRS)のセカンダリからPowerShellでblob複製(リージョン障害時の対処方法)

Posted at

概要

Azure Storage の停止が発生した場合の対処方法の「オプション 2: セカンダリ リージョンからデータをコピーする」をPowerShellで実現する。

前提条件

  • 複製元ストレージアカウントがRA-GRS構成
  • 複製先ストレージアカウントは事前に作成

動作確認環境

項目 バージョン
PowerShell 5.1.14409.1005
AzurePowerShell 5.1.1

スクリプト

# 変数定義
$SrcStorageName = "複製元ストレージアカウント名"
$SrcStorageSubName = "複製元ストレージアカウントが所属するサブスクリプション名"
$SrcStorageRgName = "複製元ストレージアカウントが所属するリソースグループ名"

$DestStorageName = "複製先ストレージアカウント名"
$DestStorageSubName = "複製先ストレージアカウントが所属するサブスクリプション名"
$DestStorageRgName = "複製先ストレージアカウントが所属するリソースグループ名"

# Azure ログイン
Login-AzureRmAccount

# 複製元(セカンダリ)コンテキスト作成
Select-AzureRmSubscription -SubscriptionName $SrcStorageSubName | Out-Null
$SrcStorageKey = (Get-AzureRmStorageAccountKey -storageaccountname $SrcStorageName -ResourceGroupName $SrcStorageRgName).Value[0]
$SrcContextString = "AccountName=" + $SrcStorageName + ";AccountKey=" + $SrcStorageKey + ";BlobEndpoint=https://" + $SrcStorageName + "-secondary.blob.core.windows.net;"
$SrcContext = New-AzureStorageContext -ConnectionString $SrcContextString

# 複製先コンテキスト作成
Select-AzureRmSubscription -SubscriptionName $DestStorageSubName | Out-Null
$DestStorageKey = (Get-AzureRmStorageAccountKey -storageaccountname $DestStorageName -ResourceGroupName $DestStorageRgName).Value[0]
$DestContext = New-AzureStorageContext -StorageAccountName $DestStorageName -StorageAccountKey $DestStorageKey

# 複製元と同名のコンテナを複製先ストレージに作成 
Get-AzureStorageContainer -Context $SrcContext | New-AzureStorageContainer -Context $DestContext | Out-Null

# データ複製
$Containar = Get-AzureStorageContainer -Context $SrcContext
foreach($c in $Containar.name){
  Get-AzureStorageBlob -Container $c -Context $SrcContext | Start-AzureStorageBlobCopy -DestContainer $c -DestContext $DestContext | Get-AzureStorageBlobCopyState -WaitForComplete | Out-Null
}

参考

Azure Storage:概要
Azure Storage:リージョン障害が発生した場合の対処方法
Azure Storage:地理冗長 (GRS) のリージョン障害時の挙動について
Azure Storage での AzurePowerShell の使用

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?