チュートリアル - Azure CLI を使用した Azure ディスクの管理
適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
Azure Virtual Machines (VM) では、オペレーティング システム、アプリケーション、およびデータを格納するためにディスクを使用します。 VM を作成するときは、予測されるワークロードに適したディスクのサイズと構成を選択する必要があります。 このチュートリアルでは、VM ディスクのデプロイと管理方法を示します。 内容は次のとおりです。
- OS ディスクと一時ディスク
- データ ディスク
- Standard ディスクと Premium ディスク
- ディスクのパフォーマンス
- データ ディスクの接続と準備
- ディスクのスナップショット
既定の Azure ディスク
Azure 仮想マシンを作成すると、2 つのディスクが仮想マシンに自動的に接続されます。
オペレーティング システム ディスク - オペレーティング システム ディスクは、最大 2 TB までサイズを変更でき、VM のオペレーティング システムをホストします。 OS ディスクには既定で /dev/sda というラベルが付けられています。 OS ディスクのディスク キャッシュ構成は、OS パフォーマンスの向上のために最適化されています。 この構成のため、アプリケーションまたはデータ用に OS ディスクを使用しないでください。 アプリケーションとデータ用には、このチュートリアルの後半で説明するデータ ディスクを使用してください。
一時ディスク - 一時ディスクは、VM と同じ Azure ホストに配置されているソリッド ステート ドライブを使用します。 一時ディスクは、パフォーマンスが高く、一時的なデータ処理などの操作に使用される場合があります。 ただし、VM を新しいホストに移動すると、一時ディスクに格納されているデータは削除されます。 一時ディスクのサイズは VM のサイズによって決まります。 一時ディスクには /dev/sdb のラベルが付けられており、 /mnt というマウント ポイントがあります。
Azure データ ディスク
アプリケーションのインストールとデータの格納を行うために、データ ディスクを追加できます。 耐久性と応答性の高いデータ ストレージが望ましい状況では、必ず、データ ディスクを使用する必要があります。 仮想マシンのサイズによって、VM に接続できるデータ ディスクの数が決まります。
VM ディスクの種類
Azure では、2 種類のディスクを提供しています。
Standard ディスク - HDD が使用されており、高パフォーマンスでありながらコスト効率にも優れたストレージを提供します。 Standard ディスクは、コスト効率が重視される、開発およびテストのワークロードに最適です。
Premium ディスク - SSD ベースの高性能で待ち時間の短いディスクが使用されています。 実稼働ワークロードを実行する VM に最適です。 サイズ名に S を含む VM サイズでは、通常、Premium Storage がサポートされています。 たとえば、DS シリーズ、DSv2 シリーズ、GS シリーズ、FS シリーズの VM は、Premium Storage をサポートしています。 ディスク サイズを選択するときは、値を切り上げて 1 つ上の種類にします。 たとえば、ディスク サイズが 64 GB より大きく、128 GB 未満の場合、ディスクの種類は P10 です。
Premium SSD のサイズ | P1 | P2 | P3 | P4 | P6 | P10 | P15 | P20 | P30 | P40 | P50 | P60 | P70 | P80 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ディスク サイズ (GiB) | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1,024 | 2,048 | 4,096 | 8,192 | 16,384 | 32,767 |
ディスクあたりの基本プロビジョニング済み IOPS | 120 | 120 | 120 | 120 | 240 | 500 | 1,100 | 2,300 | 5,000 | 7,500 | 7,500 | 16,000 | 18,000 | 20,000 |
**ディスクあたりの拡張プロビジョニング済み IOPS | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 8,000 | 16,000 | 20,000 | 20,000 | 20,000 | 20,000 |
ディスクあたりの基本プロビジョニング済みスループット | 25 MB/秒 | 25 MB/秒 | 25 MB/秒 | 25 MB/秒 | 50 MB/秒 | 100 MB/秒 | 125 MB/秒 | 150 MB/秒 | 200 MB/s | 250 MB/秒 | 250 MB/秒 | 500 MB/秒 | 750 MB/秒 | 900 MB/秒 |
**ディスクあたりの拡張プロビジョニング済みスループット | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | 300 MB/秒 | 600 MB/秒 | 900 MB/秒 | 900 MB/秒 | 900 MB/秒 | 900 MB/秒 |
ディスクあたりの最大バースト IOPS | 3,500 | 3,500 | 3,500 | 3,500 | 3,500 | 3,500 | 3,500 | 3,500 | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* | 30,000* |
ディスクあたりの最大バースト スループット | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* |
最大バースト時間 | 30 分 | 30 分 | 30 分 | 30 分 | 30 分 | 30 分 | 30 分 | 30 分 | 無制限* | 無制限* | 無制限* | 無制限* | 無制限* | 無制限* |
予約対象 | いいえ | 番号 | 番号 | 番号 | 番号 | 番号 | 番号 | いいえ | はい (最長 1 年) | はい (最長 1 年) | はい (最長 1 年) | はい (最長 1 年) | はい (最長 1 年) | はい (最長 1 年) |
*オンデマンド バーストが有効になっているディスクにのみ適用されます。
** Performance Plus (プレビュー) が有効になっているディスクにのみ適用されます。
Premium Storage ディスクをプロビジョニングすると、Standard Storage とは異なり、対象のディスクの容量、IOPS、スループットが保証されます。 たとえば、P50 ディスクを作成した場合、対象のディスクに 4,095 GB のストレージ容量、7,500 IOPS、および 250 MB/秒のスループットがプロビジョニングされます。 アプリケーションでは、容量とパフォーマンスのすべてまたは一部を使用できます。 Premium SSD ディスクは、1 桁のミリ秒の低遅延と、前出の表に示した目標 IOPS とスループットを 99.9% の時間で提供するように設計されています。
上記の表は、ディスクあたりの最大 IOPS を割り出していますが、複数のデータ ディスクをストライピングすることによって、より高いレベルのパフォーマンスを実現できます。 たとえば、64 のデータ ディスクを Standard_GS5 VM に接続することができます。 これらの各ディスクのサイズが P30 である場合、最大 80,000 IOPS を実現できます。 VM あたりの最大 IOPS について詳しくは、「VM の種類とサイズ」をご覧ください。
Azure Cloud Shell を起動する
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。
ディスクを作成して接続する
データ ディスクの作成および接続は、VM の作成時や、既存の VM に対して実行することができます。
VM の作成時にディスクを接続する
az group create コマンドを使用して、リソース グループを作成します。
az group create --name myResourceGroupDisk --location eastus
az vm create コマンドを使用して VM を作成します。 次の例では、myVM という名前の VM を作成し、azureuser という名前のユーザー アカウントを追加します。さらに、まだ SSH キーが存在しない場合は SSH キーを生成します。 --datadisk-sizes-gb
引数は、追加のディスクを作成してこの仮想マシンに接続するように指定するために使用します。 複数のディスクを作成して接続するには、ディスク サイズ値をスペースで区切ったリストを使用します。 次の例では、どちらも 128 GB のデータ ディスクを 2 つ備えた VM が作成されます。 ディスク サイズが 128 GB であるため、両方のディスクが P10 として構成され、ディスクあたり最大 500 IOPS を実現します。
az vm create \
--resource-group myResourceGroupDisk \
--name myVM \
--image Ubuntu2204 \
--size Standard_DS2_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128
既存の VM にディスクを接続する
新しいディスクを作成して既存の仮想マシンに接続するには、az vm disk attach コマンドを使用します。 次の例では、サイズが 128 ギガバイトの Premium ディスクが作成され、最後の手順で作成した VM に接続されます。
az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--name myDataDisk \
--size-gb 128 \
--sku Premium_LRS \
--new
データ ディスクを準備する
ディスクが仮想マシンに接続されたら、そのディスクを使用するようにオペレーティング システムを構成する必要があります。 次の例は、ディスクを手動で構成する方法を示しています。 この処理は、cloud-init を使用して自動化することもできます。詳細については、後のチュートリアルで説明します。
仮想マシンとの SSH 接続を作成します。 この例の IP アドレスは、仮想マシンのパブリック IP で置き換えてください。
ssh azureuser@10.101.10.10
parted
を使用してディスクをパーティション分割します。
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
mkfs
コマンドを使用してパーティションにファイル システムを書き込みます。 partprobe
を使用して、変更を OS に認識させます。
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1
オペレーティング システムでアクセスできるように、新しいディスクをマウントします。
sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive
これで /datadrive
マウント ポイントを通じてディスクにアクセスできるようになりました。これは df -h
コマンドを実行して確認できます。
df -h | grep -i "sd"
出力には、/datadrive
に新しいドライブがマウントされていることが示されます。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 2.0G 27G 7% /
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 14G 41M 13G 1% /mnt
/dev/sdc1 50G 52M 47G 1% /datadrive
再起動後にドライブが確実に再マウントされるように、そのドライブを /etc/fstab ファイルに追加する必要があります。 これを行うには、blkid
ユーティリティを使用してディスクの UUID を取得します。
sudo -i blkid
出力には、ドライブ (この例では /dev/sdc1
) の UUID が表示されます。
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"
Note
/etc/fstab ファイルを不適切に編集すると、システムが起動できなくなる可能性があります。 編集方法がはっきりわからない場合は、このファイルを適切に編集する方法について、ディストリビューションのドキュメントを参照してください。 編集する前に、/etc/fstab ファイルのバックアップを作成することもお勧めします。
テキスト エディターで次のように /etc/fstab
ファイルを開きます。
sudo nano /etc/fstab
次のような行を /etc/fstab ファイルに追加します。 UUID 値は実際のものに置き換えてください。
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
ファイルの編集が完了したら、Ctrl+O
を使用してファイルを書き込み、 Ctrl+X
を使用してエディターを終了します。
ディスクが構成されたので、SSH セッションを閉じます。
exit
ディスクのスナップショットを作成する
ディスクのスナップショットを作成すると、特定の時点のディスクに対する読み取り専用のコピーが作成されます。 Azure VM のスナップショットは、構成に変更を加える前に、VM の状態を簡単に保存するときに役立ちます。 問題やエラーが発生した場合は、スナップショットを使用して VM を復元できます。 VM に複数のディスクがある場合は、各ディスクのスナップショットが個別に作成されます。 アプリケーション整合性のあるバックアップを取得するには、ディスクのスナップショットを作成する前に、VM を停止することを検討してください。 または、Azure Backup サービスを使用して、VM の実行中に自動的にバックアップを実行できます。
スナップショットの作成
スナップショットを作成する前に、ディスクの ID または名前が必要です。 az vm show を使用して、ディスク ID を取得します。 この例では、ディスク ID を変数に格納して、後の手順で使用できるようにしています。
osdiskid=$(az vm show \
-g myResourceGroupDisk \
-n myVM \
--query "storageProfile.osDisk.managedDisk.id" \
-o tsv)
ID を取得したので、 az snapshot create を使用してディスクのスナップショットを作成します。
az snapshot create \
--resource-group myResourceGroupDisk \
--source "$osdiskid" \
--name osDisk-backup
スナップショットからのディスクの作成
その後、az disk create を使用してこのスナップショットをディスクに変換できます。これを使用して、仮想マシンを再作成することができます。
az disk create \
--resource-group myResourceGroupDisk \
--name mySnapshotDisk \
--source osDisk-backup
スナップショットからの仮想マシンの復元
実際に仮想マシンの復旧を試すために、az vm delete を使用して既存の仮想マシンを削除します。
az vm delete \
--resource-group myResourceGroupDisk \
--name myVM
スナップショット ディスクから新しい仮想マシンを作成します。
az vm create \
--resource-group myResourceGroupDisk \
--name myVM \
--attach-os-disk mySnapshotDisk \
--os-type linux
データ ディスクの再接続
すべてのデータ ディスクを仮想マシンに再度接続する必要があります。
az disk list コマンドを使用して、データ ディスク名を見つけます。 この例では、このディスク名を datadisk
という変数に格納しています。次の手順でこの変数を使用します。
datadisk=$(az disk list \
-g myResourceGroupDisk \
--query "[?contains(name,'myVM')].[id]" \
-o tsv)
ディスクを接続するには、az vm disk attach コマンドを使用します。
az vm disk attach \
–g myResourceGroupDisk \
--vm-name myVM \
--name $datadisk
次のステップ
このチュートリアルでは、VM ディスクについて、次のようなトピックを学習しました。
- OS ディスクと一時ディスク
- データ ディスク
- Standard ディスクと Premium ディスク
- ディスクのパフォーマンス
- データ ディスクの接続と準備
- ディスクのスナップショット
次のチュートリアルに進み、VM 構成を自動化する方法について学習してください。