チュートリアル: Azure CLI を使用した Virtual Machine Scale Sets のディスクの作成および使用
仮想マシン スケール セットでは、ディスクを使用して、仮想マシン (VM) インスタンスのオペレーティング システム、アプリケーション、データを格納します。 スケール セットを作成および管理するときは、予測されるワークロードに適したディスクのサイズと構成を選択する必要があります。 このチュートリアルでは、VM ディスクの作成方法と管理方法について説明します。 このチュートリアルで学習する内容は次のとおりです。
- OS ディスクと一時ディスク
- データ ディスク
- Standard ディスクと Premium ディスク
- ディスクのパフォーマンス
- データ ディスクの接続および準備
Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。
前提条件
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- この記事では、Azure CLI のバージョン 2.0.29 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
既定の Azure ディスク
ほとんどの VM SKU には、スケーリングが発生したときに自動的に作成され、仮想マシン スケール セット インスタンスに追加される一時ローカル ディスクが含まれています。 ただし、一時ディスクを使用しない SKU も使用できます。 その場合、スケーリング操作によって、一時ディスクが自動的に作成され、新しく作成されたインスタンスに追加されることはありません。 一時ディスクを使用する VM SKU と使用しない VM SKU の詳細については、「ローカル一時ディスクを持たない Azure VM のサイズ」を参照してください。
オペレーティング システム ディスク - オペレーティング システム ディスクは、最大 2 TB までサイズを変更でき、VM インスタンスのオペレーティング システムをホストします。 既定では、OS ディスクには、Linux の場合は /dev/sda、Windows の場合は C: というラベルが付けられます。 OS ディスクのディスク キャッシュ構成は、OS パフォーマンスの向上のために最適化されています。 この構成では、OS ディスクでアプリケーションやデータをホストしないでください。 アプリケーションとデータには、この記事の後半で説明するデータ ディスクを使用してください。
一時ディスク - 一時ディスクは、VM インスタンスと同じ Azure ホストに配置されているソリッド ステート ドライブを使用します。 一時ディスクは高パフォーマンスのディスクであり、一時的なデータ処理などの操作に使用される場合があります。 ただし、VM インスタンスを新しいホストに移動すると、一時ディスクに格納されているデータはすべて削除されます。 VM インスタンスのサイズによって、一時ディスクのサイズが決まります。
Azure データ ディスク
アプリケーションをインストールしたり、データを保存したりする必要がある場合は、データ ディスクをさらに追加できます。 耐久性と応答性の高いデータ ストレージが望ましい状況では、必ず、データ ディスクを使用する必要があります。 各データ ディスクの最大容量は 4 TB です。 VM インスタンス サイズによって、接続できるデータ ディスクの数が決まります。 VM vCPU ごとに、2 つのデータ ディスクを仮想マシンあたり絶対最大数の 64 個のディスクまで接続できます。
VM ディスクの種類
Azure では、2 種類のディスクを提供しています。
Standard ディスク
Standard Storage は HDD または SSD でサポートされ、コスト効率の高いストレージとパフォーマンスが提供されます。 Standard ディスクは、コスト効率の高い開発およびテスト ワークロードに最適です。
Premium ディスク
Premium ディスクは、SSD ベースの高性能で待機時間の短いディスクによってサポートされています。 これらのディスクは、運用ワークロードを実行している VM に適しています。 Premium Storage は、DS シリーズ、DSv2 シリーズ、GS シリーズ、FS シリーズの VM をサポートしています。 詳しくは、「Azure マネージド ディスクの種類」をご覧ください。
ディスクを作成して接続する
ディスクは、スケール セットの作成時に作成および接続できます。また、既存のスケール セットに対してディスクを作成および接続することもできます。
API バージョン 2019-07-01
時点では、storageProfile.osDisk.diskSizeGb プロパティを使用して、Virtual Machine Scale Sets の OS ディスクのサイズを設定できます。 プロビジョニング後、領域全体を活用するために、ディスクの拡張またはパーティション再分割を行う必要がある場合があります。 OS でボリュームを拡張する方法の詳細については、Windows に関する記事または Linux に関する記事を参照してください。
スケール セットの作成時にディスクを接続する
まず、az group create コマンドでリソース グループを作成します。 この例では、myResourceGroup という名前のリソース グループが eastus リージョンに作成されます。
az group create --name myResourceGroup --location eastus
az vmss create コマンドを使用して、Virtual Machine Scale Sets を作成します。 次の例では、myScaleSet という名前のスケール セットを作成し、SSH キーを存在しない場合に生成します。 --data-disk-sizes-gb
パラメーターを使用して 2 つのディスクを作成します。 1 つ目のディスクのサイズは 64 GB で、2 つ目のディスクは 128 GB です。
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128
すべてのスケール セット リソースと VM インスタンスを作成して構成するには数分かかります。
既存のスケール セットにディスクを接続する
既存のスケール セットの各インスタンスに追加ディスクをアタッチすることもできます。 az vmss disk attach を使用して別のディスクを追加するには、前の手順で作成したスケール セットを使用します。 次の例では、別の 128 GB のディスクをアタッチします。
az vmss disk attach \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--size-gb 128
また、スケール セット内の個々のインスタンスにデータ ディスクを追加したい場合は、az vm disk attach を使用します。
az vm disk attach \
--vm-name myScaleSet_Instance1 \
--resource-group myResourceGroup \
--size-gb 30 \
--name disk_name \
--new
接続されているディスクの一覧表示
スケール セットに接続されているディスクに関する情報を表示するには、az vmss show と virtualMachineProfile.storageProfile.dataDisks に対するクエリを使います。
az vmss show \
--resource-group myResourceGroup \
--name myScaleSet \
--query virtualMachineProfile.storageProfile.dataDisks
ディスク サイズ、ストレージ層、および LUN (論理ユニット番号) に関する情報が表示されます。 次の出力例では、スケール セットに接続されている 3 つのデータ ディスクの詳細を出力します。
[
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 64,
"lun": 0,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 1,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 2,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
}
]
ディスクを取り外す
特定のディスクが不要になったら、スケール セットから切断することができます。 ディスクは、スケール セット内のすべての VM インスタンスから削除されます。 スケール セットからディスクを切断するには、az vmss disk detach を使用し、ディスクの LUN を指定します。 LUN は、前のセクションの az vmss show の出力に表示されています。 次の例では、スケール セットから LUN 2 を切断します。
az vmss disk detach \
--resource-group myResourceGroup \
--name myScaleSet \
--lun 2
az vm disk detach を使用して、個々のインスタンスからディスクをデタッチすることもできます。
az vm disk detach \
--vm-name myScaleSet_Instance1
--name disk_name
リソースをクリーンアップする
スケール セットとディスクを削除するには、az group delete を使用して、リソース グループとそのすべてのリソースを削除します。 --no-wait
パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。 --yes
パラメーターは、別のプロンプトを表示せずにリソースの削除を確定します。
az group delete --name myResourceGroup --no-wait --yes
次のステップ
このチュートリアルでは、Azure CLI を使用してスケール セットのディスクを作成して使用する方法について学習しました。
- OS ディスクと一時ディスク
- データ ディスク
- Standard ディスクと Premium ディスク
- ディスクのパフォーマンス
- データ ディスクの接続および準備
次のチュートリアルに進み、スケール セットの VM インスタンスにカスタム イメージを使用する方法を学習してください。