チュートリアル: Azure PowerShell を使用して仮想マシン スケール セットのディスクを作成および使用する

Virtual Machine Scale Sets では、VM インスタンスのオペレーティング システム、アプリケーション、およびデータを格納するためにディスクを使用します。 スケール セットを作成および管理するときは、予測されるワークロードに適したディスクのサイズと構成を選択する必要があります。 このチュートリアルでは、VM ディスクの作成方法と管理方法について説明します。 このチュートリアルで学習する内容は次のとおりです。

  • OS ディスクと一時ディスク
  • データ ディスク
  • Standard ディスクと Premium ディスク
  • ディスクのパフォーマンス
  • データ ディスクの接続および準備

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

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

既定の Azure ディスク

スケール セットが作成またはスケーリングされると、2 つのディスクが各 VM インスタンスに自動的に接続されます。

オペレーティング システム ディスク - オペレーティング システム ディスクは、最大 2 TB までサイズを変更でき、VM インスタンスのオペレーティング システムをホストします。 OS ディスクには既定で /dev/sda というラベルが付けられています。 OS ディスクのディスク キャッシュ構成は、OS パフォーマンスの向上のために最適化されています。 この構成では、OS ディスクでアプリケーションやデータをホストしないでください。 アプリケーションとデータには、この記事の後半で説明するデータ ディスクを使用してください。

一時ディスク - 一時ディスクは、VM インスタンスと同じ Azure ホストに配置されているソリッド ステート ドライブを使用します。 これらは高パフォーマンスのディスクであり、一時的なデータ処理などの操作に使用される場合があります。 ただし、VM インスタンスを新しいホストに移動すると、一時ディスクに格納されているデータはすべて削除されます。 一時ディスクのサイズは VM インスタンスのサイズによって決まります。 一時ディスクには /dev/sdb のラベルが付けられており、 /mnt というマウント ポイントがあります。

Azure データ ディスク

アプリケーションをインストールしたりデータを保存したりする必要がある場合は、データ ディスクをさらに追加できます。 耐久性と応答性の高いデータ ストレージが望ましい状況では、必ず、データ ディスクを使用する必要があります。 各データ ディスクの最大容量は 4 TB です。 VM インスタンス サイズによって、接続できるデータ ディスクの数が決まります。 各 VM vCPU に、2 つのデータ ディスクを接続できます。

VM ディスクの種類

次の表では、使用するディスクの種類を決定する場合に役立つように、5 種類のディスクを比較しています。

Ultra Disk Premium SSD v2 Premium SSD Standard SSD Standard HDD
ディスクの種類 SSD SSD SSD SSD HDD
シナリオ SAP HANA やトップ レベルのデータベース (たとえば SQL や Oracle) などの I/O 集約型のワークロードと、その他のトランザクションが多いワークロード。 低遅延および高い IOPS とスループットが常に要求される、運用および高パフォーマンスのワークロード 運用環境のワークロードやパフォーマンスに影響されやすいワークロード Web サーバー、あまり使用されていないエンタープライズ アプリケーション、および開発/テスト バックアップ、重要ではない、不定期に起こるアクセス
最大ディスク サイズ 65,536 GiB 65,536 GiB 32,767 GiB 32,767 GiB 32,767 GiB
最大スループット 4,000 MB/秒 1,200 MB/秒 900 MB/秒 750 MB/秒 500 MB/秒
最大 IOPS 160,000 80,000 20,000 6,000 2,000、3,000*
OS ディスクとして使用できるか いいえ 番号 イエス イエス はい

* Performance Plus (プレビュー) が有効になっているディスクにのみ適用されます。

さまざまなディスクの種類の大まかな違いと、ワークロード要件に影響を与える要因を特定する方法を説明するビデオについては、「Azure Disk Storage と Elastic SAN を使用してストレージ オプションをブロックする」を参照してください。

ディスクを作成して接続する

ディスクは、スケール セットの作成時に作成および接続できます。また、既存のスケール セットに対してディスクを作成および接続することもできます。

API バージョン 2019-07-01 時点では、storageProfile.osDisk.diskSizeGb プロパティを使用して、Virtual Machine Scale Sets の OS ディスクのサイズを設定できます。 プロビジョニング後、領域全体を活用するために、ディスクの拡張またはパーティション再分割を行う必要がある場合があります。 OS でボリュームを拡張する方法の詳細については、Windows に関する記事または Linux に関する記事を参照してください。

スケール セットの作成時にディスクを接続する

New-AzVmss を使用して仮想マシン スケール セットを作成します。 メッセージが表示されたら、VM インスタンスのユーザー名とパスワードを入力します。 個々の VM インスタンスにトラフィックを分散するために、ロード バランサーも作成されます。 ロード バランサーには、TCP ポート 80 上のトラフィックを分散するルールだけでなく、TCP ポート 3389 上のリモート デスクトップ トラフィックと TCP ポート 5985 上の PowerShell リモート処理を許可するルールも含まれています。

-DataDiskSizeGb パラメーターを使用して 2 つのディスクを作成します。 1 つ目のディスクのサイズは 64 GB、2 つ目のディスクは 128 GB です。 メッセージが表示されたら、スケール セット内の VM インスタンス用の自分の管理者資格情報を指定します。

New-AzResourceGroup -Name "myResourceGroup" -Location "East US"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -OrchestrationMode "Flexible" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -DataDiskSizeInGb 64,128

すべてのスケール セット リソースと VM インスタンスを作成して構成するには数分かかります。

既存のスケール セットにディスクを接続する

既存のスケール セットにディスクを接続することもできます。 前の手順で作成したスケール セットを使用して別のディスクを追加するには、Add-AzVmssDataDisk を使用します。 次の例では、128 GB の追加ディスクが既存のスケール セットに接続されます。

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -CreateOption Empty `
  -Lun 2 `
  -DiskSizeGB 128

# Update the scale set to apply the change
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

また、スケール セット内の個々のインスタンスにデータ ディスクを追加したい場合は、Add-AzVmssVMDataDisk を使用します。

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId 1
Add-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -LUN 2 -DiskSizeInGB 1 -CreateOption Empty -StorageAccountType Standard_LRS
Update-AzVmssVM -VirtualMachineScaleSetVM $VirtualMachine

接続されているディスクの一覧表示

スケール セットに接続されているディスクに関する情報を表示するには、次のように Get-AzVmss を使用します。

Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"

VirtualMachineProfile.StorageProfile プロパティの下に、DataDisks の一覧が表示されます。 ディスク サイズ、ストレージ層、および LUN (論理ユニット番号) に関する情報が表示されます。 次の出力例では、スケール セットに接続されている 3 つのデータ ディスクの詳細を出力します。

DataDisks[0]                            :
  Lun                                   : 0
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 64
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[1]                            :
  Lun                                   : 1
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS
DataDisks[2]                            :
  Lun                                   : 2
  Caching                               : None
  CreateOption                          : Empty
  DiskSizeGB                            : 128
  ManagedDisk                           :
    StorageAccountType                  : PremiumLRS

ディスクを取り外す

特定のディスクが不要になったら、スケール セットから切断することができます。 ディスクは、スケール セット内のすべての VM インスタンスから削除されます。 スケール セットからディスクを切断するには、Remove-AzVmssDataDisk を使用し、ディスクの LUN を指定します。 LUN は、前のセクションの Get-AzVmss の出力に表示されています。 次の例では、スケール セットから LUN 3 を切断します。

# Get scale set object
$vmss = Get-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet"

# Detach a disk from the scale set
Remove-AzVmssDataDisk `
  -VirtualMachineScaleSet $vmss `
  -Lun 2

# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -VirtualMachineScaleSet $vmss

また、スケール セット内の個々のインスタンスからデータ ディスクを削除したい場合は、Remove-AzVmssVMDataDisk を使用します。

$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "c91dfbd9"
Remove-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -Lun 2
Update-AzVmssVM -VirtualMachineScaleSetVM -VM $VirtualMachine

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

スケール セットとディスクを削除するには、Remove-AzResourceGroup を使用して、リソース グループとそのすべてのリソースを削除します。 -Force パラメーターは、追加のプロンプトを表示せずにリソースの削除を確定します。 -AsJob パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

次のステップ

このチュートリアルでは、Azure PowerShell を使用してスケール セットのディスクを作成して使用する方法について学習しました。

  • OS ディスクと一時ディスク
  • データ ディスク
  • Standard ディスクと Premium ディスク
  • ディスクのパフォーマンス
  • データ ディスクの接続および準備

次のチュートリアルに進み、スケール セットの VM インスタンスにカスタム イメージを使用する方法を学習してください。