CLI でスナップショットからマネージド ディスクを作成する (Linux)

この記事では、スナップショットからマネージド ディスクを作成するための 2 つのAzure CLI スクリプトを提供します。 1 つ目のスクリプトではプラットフォームマネージド キーを使用してマネージド ディスクを作成し、2 つ目のスクリプトはカスタマー マネージド キーを使用してマネージド ディスクを作成します。 それぞれのスナップショットから OS ディスクとデータ ディスクを作成した後、ディスクを使用して VM を作成したり、既存の VM にデータを復元したりすることができます。

Azure アカウントをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。

  • CLI リファレンス コマンドをローカル環境で実行したい場合は、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。

    • 初回使用時に求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。

    • インストールされているバージョンと依存ライブラリを調べるには、az version を実行します。 最新バージョンにアップグレードするには、az upgrade を実行します。

スナップショットからマネージド ディスクを作成する

Azure Cloud Shell を起動する

Azure Cloud Shell は無料のインタラクティブ シェルです。これを使って、この記事の手順を行うことができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用するように構成されています。

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。

Cloud Shell が開いたら、環境で Bash が選択されていることを確認します。 後続のセッションでは、Bash 環境で Azure CLI を使用します。[コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けます。その後、Enter キーを押してそれを実行します。

Azure にサインインする

Cloud Shell は、サインインした最初のアカウントで自動的に認証されます。 別のサブスクリプションを使ってサインインするには、次のスクリプトを使用し、subscriptionId をご使用の Azure サブスクリプション ID に置き換えます。

Azure アカウントをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

詳細については、アクティブなサブスクリプションの設定または対話形式のログインに関する記事をご覧ください。

プラットフォーム マネージド キーを使用したディスク

このスクリプトを使用して、プラットフォームマネージド キーを使用してマネージド ディスクを作成します。 サブスクリプション、リソース グループ、ソース スナップショット、新しいディスク名、ディスク サイズ、ストレージの種類を指定します。 Premium SSD v2 と Ultra Disk の場合は、可用性ゾーンも提供します。 このスクリプトは、サブスクリプションを設定し、スナップショット リソース ID を取得し、スナップショットから同じ場所にマネージド ディスクを作成します。

#Provide the subscription Id of the subscription where you want to create Managed Disks
subscriptionId="<subscriptionId>"

#Provide the name of your resource group
resourceGroupName=myResourceGroupName

#Provide the name of the snapshot that will be used to create Managed Disks
snapshotName=mySnapshotName

#Provide the name of the new Managed Disks that will be create
diskName=myDiskName

#Provide the size of the disks in GB. It should be greater than the VHD file size.
diskSize=128

#Provide the storage type for Managed Disk. Acceptable values are Standard_LRS, Premium_LRS, PremiumV2_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, and StandardSSD_ZRS.
storageType=Premium_LRS

#Required for Premium SSD v2 and Ultra Disks
#Provide the Availability Zone you'd like the disk to be created in, default is 1
zone=1

#Set the context to the subscription Id where Managed Disk will be created
az account set --subscription $subscriptionId

#Get the snapshot Id 
snapshotId=$(az snapshot show --name $snapshotName --resource-group $resourceGroupName --query [id] -o tsv)

#Create a new Managed Disks using the snapshot Id
#Note that managed disk will be created in the same location as the snapshot
#If you're creating a Premium SSD v2 or an Ultra Disk, add "--zone $zone" to the end of the command
az disk create --resource-group $resourceGroupName --name $diskName --sku $storageType --size-gb $diskSize --source $snapshotId

カスタマー マネージド キーを使用したディスク

このスクリプトを使用して、カスタマー マネージド キーを使用してマネージド ディスクを作成します。 サブスクリプション、リソース グループ、スナップショット、および新しいディスク値に加えて、ターゲット ディスク暗号化セットとそのリソース グループを指定します。 このスクリプトは、スナップショットとディスク暗号化セットの情報を取得し、指定されたディスク暗号化セットを使用してスナップショットからマネージド ディスクを作成します。

#Provide the subscription Id of the subscription where you want to create managed disks
subscriptionId="<subscriptionId>"

#Provide the name of your resource group
resourceGroupName=myResourceGroupName

#Provide the name of the snapshot that will be used to create managed disks
snapshotName=mySnapshotName

#Provide the name of the new managed disks that will be create
diskName=myDiskName

#Provide the name of the target disk encryption set
diskEncryptionSetName=myName

#Provide the target disk encryption set resource group
diskEncryptionResourceGroup=myGroup

#Required for Premium SSD v2 and Ultra Disks
#Provide the Availability Zone you'd like the disk to be created in, default is 1
zone=1

#Set the context to the subscription Id where managed disk will be created
az account set --subscription $subscriptionId

#Get the snapshot ID
snapshotId=$(az snapshot show --name $snapshotName --resource-group $resourceGroupName --query [id] -o tsv)

#Get the disk encryption set ID
diskEncryptionSetId=$(az disk-encryption-set show --name $diskEncryptionSetName --resource-group $diskEncryptionResourceGroup --query [id] -o tsv)

#Create a new managed disk using the snapshot ID
#The managed disk is created in the same location as the snapshot
#If you're creating a Premium SSD v2 or an Ultra Disk, add "--zone $zone" to the end of the command
az disk create -g $resourceGroupName -n $diskName --source $snapshotId --disk-encryption-set $diskEncryptionSetId

パフォーマンスへの影響 - バックグラウンド コピー プロセス

スナップショットからマネージド ディスクを作成すると、バックグラウンド コピー プロセスが開始されます。 このプロセスの実行中は VM にディスクをアタッチできますが、バックグラウンド コピーが完了するまで、待ち時間が長くなり、IOPS とスループットが低下し、パフォーマンスへの影響が生じます (4k ディスクでは読み取りに影響し、512e では読み取りと書き込みの両方に影響が生じます)。 Ultra Disks と Premium SSD v2 の場合は、次のコマンドを使用して completionPercent プロパティを確認します。 バックグラウンド コピーは、値が 100に達すると完了します。

重要

Ultra Disk または Premium SSD v2 以外の種類のディスクでは、次のセクションを使っても、バックグラウンド コピー プロセスの状態を取得することはできません。 その他の種類のディスクでは常に 100% と報告されます。

subscriptionId=yourSubscriptionID
resourceGroupName=yourResourceGroupName
diskName=yourDiskName
az account set --subscription $subscriptionId
az disk show -n $diskName -g $resourceGroupName --query [completionPercent] -o tsv

リソースをクリーンアップする

次のコマンドを実行して、リソース グループとそのグループに含まれるすべてのリソースを削除します。

az group delete --name myResourceGroupName

Azure CLI コマンド リファレンス

スクリプトでは、次のAzure CLI コマンドを使用してマネージド ディスクを作成し、バックグラウンド コピー プロセスを監視し、リソースをクリーンアップします。

コマンド Notes
az account set マネージド ディスクが作成されるサブスクリプションを設定します。
az snapshot showコマンドを使用してスナップショットを表示します。 ソース スナップショット リソース ID を取得します。
az disk-encryption-set show コマンドは、ディスク暗号化セットの詳細を表示します。 カスタマー マネージド キーを持つディスクのターゲット ディスク暗号化セット情報を取得します。
az disk create コマンドは、Azureディスクを作成します。 ソース スナップショットからマネージド ディスクを作成します。
az disk show コマンドを使用して、ディスクの詳細情報を表示します。 Premium SSD v2 と Ultra Disk のバックグラウンド コピー完了率を取得します。
az グループ削除 リソース グループとそのリソースを削除します。

次のステップ

マネージド ディスクを OS ディスクとして接続することで仮想マシンを作成する

Azure CLI の詳細については、Azure CLI のドキュメントのページをご覧ください。

その他の仮想マシンとマネージド ディスクの CLI サンプル スクリプトは、Azure Linux VM のドキュメントにあります。