マネージド ディスクの増分スナップショットの作成
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
増分スナップショットは、マネージド ディスクの特定の時点のバックアップであり、取得時に、最後のスナップショット以降の変更のみで構成されます。 最初の増分スナップショットは、ディスクの完全なコピーです。 後続の増分スナップショットには、最後のスナップショット以降のディスクへの差分変更のみが含まれます。 増分スナップショットからディスクを復元する場合、増分スナップショットが作成されたときのディスクのポイントインタイム バックアップを表す完全なディスクがシステムによって再構築されます。 マネージド ディスク スナップショット向けのこの機能は、スナップショットのコスト効率の向上に役立つ可能性があります。自分で選ばない限り、個々のスナップショットでディスク全体を保存する必要がないからです。 増分スナップショットは、フル スナップショットと同様、完全なマネージド ディスクまたはフル スナップショットのいずれを作成する場合にも使用できます。 フル スナップショットと増分スナップショットはどちらも、取得後すぐに使用できます。 つまり、いずれかのスナップショットを取得すると、基になるデータをすぐに読み取り、それを使用してディスクを復元できます。
増分スナップショットとフル スナップショットには、いくつかの違いがあります。 増分スナップショットでは、ディスクのストレージの種類に関係なく、常に Standard HDD ストレージが使用されますが、フル スナップショットでは Premium SSD を使用できます。 VM のデプロイをスケールアップするために Premium Storage でフル スナップショットを使用している場合は、Azure Compute Gallery の標準ストレージでカスタム イメージを使用することをお勧めします。 これは、より低コストでさらに大規模なスケールを実現するのに役立ちます。 さらに、増分スナップショットは、ゾーン冗長ストレージ (ZRS) を使用すると、信頼性が向上する可能性があります。 選択したリージョンで ZRS が使用可能な場合、増分スナップショットは ZRS を自動的に使用します。 そのリージョンで ZRS が使用できない場合、スナップショットは既定でローカル冗長ストレージ (LRS) に設定されます。 この動作をオーバーライドして手動で選ぶこともできますが、これはお勧めしません。
増分スナップショットは、使用されたサイズに対してのみ課金されます。 スナップショットの使用サイズは、Azure 利用状況レポートで見つけることができます。 たとえば、スナップショットの使用データ サイズが 10 GiB の場合、毎日の利用状況レポートには、使用量として 10 GiB/(31 日) = 0.3226 が表示されます。
制限
- 増分スナップショットは、現時点ではサブスクリプション間で移動できません。
- 現時点では、任意の時点で特定のスナップショット ファミリの最大 5 つのスナップショットの SAS URI のみを生成することができます。
- 特定のディスクの増分スナップショットを、そのディスクのサブスクリプションの外部で作成することはできません。
- 増分スナップショットを別のリソース グループに移動することはできません。 ただし、別のリソース グループまたはリージョンにコピーすることはできます。
- ディスクあたり最大 7 つの増分スナップショットを 5 分ごとに作成できます。
- 1 つのディスクに対して合計 500 の増分スナップショットを作成できます。 500 クォータの制限は、ディスクの有効期間ではなく、任意の時点に対して課せられます。 いつでもディスクの以前のスナップショットを削除して、新しいスナップショット用の領域を確保できます。
- 4-TB の境界をまたいで親ディスクのサイズを変更する際、変更の前と後に作成されたスナップショットの間の変更を取得することはできません。 たとえば、ディスクのサイズが 2 TB の場合に増分スナップショット
snapshot-a
を作成したとします。 これで、ディスクのサイズが 6 TB に増加し、別の増分スナップショットsnapshot-b
が作成されました。snapshot-a
とsnapshot-b
間の変更を取得することはできません。 サイズ変更後に作成されたsnapshot-b
の完全なコピーをダウンロードする必要があります。 その後、snapshot-b
とsnapshot-b
の後に作成されたスナップショット間の変更を取得できます。 - スナップショットからマネージド ディスクを作成すると、バックグラウンド コピー プロセスが開始されます。 このプロセスの実行中にディスクを VM にアタッチできますが、パフォーマンスへの影響が発生します。 Ultra Disks と Premium SSD v2 ディスクに対するバックグラウンド コピーの状態は、CompletionPercnet プロパティを使って確認できます。
Premium SSD v2 と Ultra Disk の増分スナップショット
Premium SSD v2 と Ultra Disk の増分スナップショットには、次の追加の制限があります。
- 論理セクター サイズが 512 のスナップショットは VHD として保存され、任意のディスクの種類を作成するために使用できます。 論理セクター サイズが 4096 のスナップショットは VHDX として保存され、Ultra Disk と Premium SSD v2 ディスクの作成にのみ使用でき、他のディスクの種類を作成するために使用することはできません。 スナップショットのセクター サイズを確認するには、「セクターのサイズを確認する」を参照してください。
- Premium SSD v2 または Ultra Disk のスナップショットから最大 5 つのディスクを同時に作成できます。
- Premium SSD v2 または Ultra Disk の増分スナップショットが作成されると、そのディスクのバックグラウンド コピー プロセスが開始されます。 バックグラウンド コピーが進行中の間は、最大 3 つの合計スナップショットを保留中にすることができます。 このプロセスは、そのディスクのこれ以上のスナップショットを作成する前に完了する必要があります。
- Premium SSD v2 または Ultra Disk の増分スナップショットは、作成後すぐに使用することはできません。 スナップショットからディスクを作成する前に、バックグラウンド コピーが完了している必要があります。 詳しくは「スナップショットの状態を確認する」を参照してください。
- ディスクの CompletionPercent プロパティが 100 に達していない間の、Premium SSD v2 ディスクまたは Ultra Disk の増分スナップショットの取得は、サポートされていません。
- Premium SSD v2 または Ultra Disk のサイズを大きくすると、バックグラウンド コピー中の増分スナップショットはすべて失敗します。
- CompletionPercent プロパティが 100 に達していないときに、スナップショットから作成された Premium SSD v2 ディスクまたは Ultra ディスクを実行中の仮想マシンにアタッチすると、ディスクのパフォーマンスに影響があります。 具体的には、ディスクのセクター サイズが 4k の場合は、読み取りが遅くなる可能性があります。 ディスクのセクター サイズが 512e の場合は、読み取りと書き込みが遅くなる可能性があります。 このバックグラウンド コピー プロセスの進行状況の追跡については、Azure PowerShell サンプルまたは Azure CLI のディスク状態の確認に関するセクションをご覧ください。
Note
通常、増分スナップショットを作成した場合、まったく変更がなければ、そのスナップショットのサイズは 0 MiB になります。 現在、論理セクター サイズが 4,096 のディスクの空のスナップショットのサイズは、通常であれば 0 MiB のところ 6 MiB になります。
増分スナップショットを作成する
Azure CLI を使用して、増分スナップショットを作成することができます。 最新バージョンの Azure CLI が必要です。 Azure CLI をインストールまたはアップデートする方法については、以下の記事を参照してください。
次のスクリプトは、特定の 1 つのディスクについて増分スナップショットを作成します。
# Declare variables
diskName="yourDiskNameHere"
resourceGroupName="yourResourceGroupNameHere"
snapshotName="desiredSnapshotNameHere"
# Get the disk you need to backup
yourDiskID=$(az disk show -n $diskName -g $resourceGroupName --query "id" --output tsv)
# Create the snapshot
az snapshot create -g $resourceGroupName -n $snapshotName --source $yourDiskID --incremental true
スナップショットの SourceResourceId
プロパティにより、同じディスクからの増分スナップショットを識別できます。 SourceResourceId
は親ディスクの Azure Resource Manager リソース ID です。
SourceResourceId
を利用し、特定のディスクに関連付けられているすべてのスナップショットの一覧を作成できます。 yourResourceGroupNameHere
を実際の値に変更します。次の例を利用すると、既存の増分スナップショットを一覧表示できます。
# Declare variables and create snapshot list
subscriptionId="yourSubscriptionId"
resourceGroupName="yourResourceGroupNameHere"
diskName="yourDiskNameHere"
az account set --subscription $subscriptionId
diskId=$(az disk show -n $diskName -g $resourceGroupName --query [id] -o tsv)
az snapshot list --query "[?creationData.sourceResourceId=='$diskId' && incremental]" -g $resourceGroupName --output table
スナップショットの状態を確認する
Premium SSD v2 または Ultra Disks の増分スナップショットは、スナップショットにデータをコピーするバックグラウンド プロセスが完了するまで、新しいディスクの作成に使用できません。
CLI または PowerShell に関するセクションを使って、ディスクからスナップショットへのバックグラウンド コピーの状態を確認することができます。
重要
Ultra Disk または Premium SSD v2 以外の種類のディスクでは、次のセクションを使っても、バックグラウンド コピー プロセスの状態を取得することはできません。 他の種類のディスクのスナップショットでは、常に 100% と報告されます。
CLI
スナップショットの状態を取得するには、2 つのオプションがあります。 特定のディスクに関連するすべての増分スナップショットの一覧とそれぞれの状態を取得することも、個々のスナップショットの状態を取得することもできます。
CLI - 増分スナップショットを一覧表示する
次のスクリプトを実行すると、特定のディスクに関連するすべてのスナップショットの一覧が返されます。 スナップショットを使用する前にその CompletionPercent
プロパティの値が 100 になっている必要があります。 yourResourceGroupNameHere
、yourSubscriptionId
、yourDiskNameHere
を実際の値に置き換えてから、スクリプトを実行してください。
# Declare variables and create snapshot list
subscriptionId="yourSubscriptionId"
resourceGroupName="yourResourceGroupNameHere"
diskName="yourDiskNameHere"
az account set --subscription $subscriptionId
diskId=$(az disk show -n $diskName -g $resourceGroupName --query [id] -o tsv)
az snapshot list --query "[?creationData.sourceResourceId=='$diskId' && incremental]" -g $resourceGroupName --output table
CLI - 個々のスナップショット
CompletionPercent
プロパティを確認して、個々のスナップショットの状態を確認することもできます。 $sourceSnapshotName
をスナップショットの名前に置き換えてから、次のコマンドを実行してください。 スナップショットを使用してディスクを復元したり、基になるデータをダウンロードするための SAS URI を生成したりする前に、プロパティの値は 100 になっている必要があります。
az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [completionPercent] -o tsv
PowerShell
スナップショットの状態を取得するには、2 つのオプションがあります。 特定のディスクに関連するすべての増分スナップショットの一覧とそれぞれの状態を取得することも、個々のスナップショットの状態を取得することもできます。
PowerShell - 増分スナップショットを一覧表示する
次のスクリプトを実行すると、バックグラウンド コピーを完了していない特定のディスクに関連するすべての増分スナップショットの一覧が返されます。 yourResourceGroupNameHere
と yourDiskNameHere
を置き換えてから、スクリプトを実行してください。
$resourceGroupName = "yourResourceGroupNameHere"
$snapshots = Get-AzSnapshot -ResourceGroupName $resourceGroupName
$diskName = "yourDiskNameHere"
$yourDisk = Get-AzDisk -DiskName $diskName -ResourceGroupName $resourceGroupName
$incrementalSnapshots = New-Object System.Collections.ArrayList
foreach ($snapshot in $snapshots)
{
if($snapshot.Incremental -and $snapshot.CreationData.SourceResourceId -eq $yourDisk.Id -and $snapshot.CreationData.SourceUniqueId -eq $yourDisk.UniqueId)
{
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
{
if($targetSnapshot.CompletionPercent -lt 100)
{
$incrementalSnapshots.Add($targetSnapshot)
}
}
}
}
$incrementalSnapshots
PowerShell - 個々のスナップショット
個々のスナップショットの CompletionPercent
プロパティを確認して、その状態を把握できます。 yourResourceGroupNameHere
と yourSnapshotName
を置き換えてから、スクリプトを実行してください。 スナップショットを使用してディスクを復元したり、基になるデータをダウンロードするための SAS URI を生成したりする前に、プロパティの値は 100 になっている必要があります。
$resourceGroupName = "yourResourceGroupNameHere"
$snapshotName = "yourSnapshotName"
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
$targetSnapshot.CompletionPercent
セクターのサイズを確認する
論理セクター サイズが 4096 のスナップショットは、Premium SSD v2 または Ultra Disk の作成にのみ使用できます。 これらは、他のディスクの種類を作成するために使用することはできません。 論理セクター サイズが 4096 のディスクのスナップショットは VHDX として保存されますが、論理セクター サイズが 512 のディスクのスナップショットは VHD として保存されます。 スナップショットは、親ディスクから論理セクター サイズを継承します。
Premium SSD v2 または Ultra Disk のスナップショットが VHDX か VHD かを確認するには、スナップショットの LogicalSectorSize
プロパティを取得します。
次のコマンドを実行すると、スナップショットの論理セクター サイズが表示されます。
az snapshot show -g resourcegroupname -n snapshotname --query [creationData.logicalSectorSize] -o tsv
次のステップ
Azure CLI または Azure PowerShell モジュールを使ってスナップショットからディスクを作成するには、次の記事を参照してください。
リージョン間で増分スナップショットをコピーする方法については、「増分スナップショットを新しいリージョンにコピーする」を参照してください。
スナップショットに関するその他の不明点については、FAQ でスナップショットに関するセクションを参照してください。
.NET を使用し、増分スナップショットの差分機能を示すサンプル コードを見る場合、増分スナップショットの差分機能で別のリージョンに Azure マネージド ディスク バックアップをコピーする方法に関するページを参照してください。