Windows 仮想マシンに接続されている仮想ハード ディスクを拡張する方法
適用対象: ✔️ Windows VM ✔️ フレキシブル スケール セット
Azure Marketplace からイメージをデプロイしてリソース グループに新しい仮想マシン (VM) を作成するとき、既定のオペレーティング システム (OS) ディスクは通常は 127 GiB です (一部のイメージでは既定の OS ディスク サイズが小さくなります)。 データ ディスクを VM に追加することができるので (量は選択した VM SKU によって異なります) 、アプリケーションや CPU に負荷のかかるワークロードはデータ ディスクにインストールすることをお勧めします。 OS ディスクにコンポーネントをインストールするレガシ アプリケーションをサポートしている場合や、より大きな OS ディスクを持つオンプレミスから物理 PC または VM を移行する場合は、OS ディスクの拡張が必要になることがあります。 この記事では、OS ディスク、データ ディスクのいずれかを拡張する場合について説明します。
OS ディスクの最大容量は 4,095 GiB です。 ただし、多くのオペレーティング システムは既定でマスター ブート レコード (MBR) でパーティション分割されます。 MBR では、使用可能なサイズが 2 TiB に制限されています。 2 TiB 以上必要な場合は、データディスクを作成して接続し、データストレージ用に使用します。 OS ディスクにデータを保存する必要があり、追加の領域が必要な場合は、GUID Partition Table (GPT)に変換します。 Windows デプロイでの MBR と GPT の違いについては、「Windows と GPT のよくあるご質問」を参照してください。
重要
「ダウンタイムなしで拡張する」を使用しない場合、データ ディスクを拡張するためには VM の割り当てを解除する必要があります。
既存のディスクの縮小はサポートされておらず、データが失われる場合があります。
ディスクを拡張した後、大きいディスクを利用するには、オペレーティング システム内のボリュームを拡張する必要があります。
ストライプ ボリュームのサイズを拡大することはできません。
ダウンタイムなしで拡張する
VM の割り当てを解除せずに、データ ディスクを拡張できます。 ディスクのホスト キャッシュ設定によって、VM の割り当てを解除せずにデータ ディスクを拡張できるかどうかは変わりません。
この機能には次の制限があります。
- データ ディスクでのみサポートされます。
- Standard HDD、Standard SSD、または Premium SSD ディスクが 4 TiB 以下の場合は、4 TiB を超えて拡張する前に、VM の割り当てを解除し、ディスクをデタッチします。 これらのディスクの種類のいずれかが既に 4 TiB を超えている場合は、VM の割り当てを解除してディスクをデタッチすることなく拡張できます。 これは、Premium SSD v2 または Ultra Disks には適用されません。
- 共有ディスクではサポートされていません。
- 次のいずれかをインストールして使います。
- 最新の Azure CLI
- 最新の Azure PowerShell モジュール
- Azure Portal
- または、
2021-04-01
以降の API バージョンを使用する Azure Resource Manager テンプレート。
- 一部のクラシック VM では使用できません。 このスクリプトを使用して、ダウンタイムなしで拡張できるクラシック VM SKU の一覧を取得してください。
Ultra Disk と Premium SSD v2 で拡張する
Ultra Disks と Premium SSD v2 ディスクの拡張には、次の追加の制限があります。
- ディスク上でデータのバックグラウンド コピーも行われている間は、そのディスクを拡張できません (ディスクがスナップショットからハイドレートされているときなど)。
- Ultra Disks または Premium SSD v2 ディスクに NVMe コントローラーを使用している VM をダウンタイムなしで拡張することはできません。
重要
Windows VM と Linux VM に正しいサイズが反映されるまで、最大 10 分かかります。 Linux VM の場合は、Linux 再スキャン関数を実行する必要があります。ワークロードがない Windows VM の場合は、Windows 再スキャン関数を実行する必要があります。 すぐに再スキャンできますが、10 分経っていない場合は、正しいサイズを表示するには再スキャンが必要な場合があります。
リージョン別の提供状況
Ultra Disks と Premium SSD v2 ディスクのサイズ変更は、現在、次のリージョンを除くすべての Premium SSD v2 および Ultra 対応リージョンで利用できます。
- 米国西部 2
Azure portal でマネージド ディスクのサイズを変更する
重要
「ダウンタイムなしで拡張する」の要件をディスクが満たしている場合は、手順 1 を省略できます。
Azure portal で、ディスクを拡張する仮想マシンに移動します。 [停止] を選択して VM の割り当てを解除します。
左側のメニューの [設定] で、 [ディスク] を選択します。
[ディスク名] で、拡張するディスクを選択します。
左側のメニューの [設定] で、 [Size + performance](サイズおよびパフォーマンス) を選択します。
[Size + performance](サイズおよびパフォーマンス) で、必要なディスク サイズを選択します。
警告
新しいサイズには、既存のディスク サイズより大きい値を指定する必要があります。 OS ディスクで許可される最大値は、4,095 GB です。 (VHD BLOB はこのサイズよりも大きくすることができます。ただし、OS の実行に使用できるのは、最初の 4,095 GB の領域のみです。)
ページの下部にある [サイズ変更] を選択します。
PowerShell を使用してマネージド ディスクのサイズを変更する
管理者モードで PowerShell ISE または PowerShell ウィンドウを開き、次の手順に従います。
- リソース管理モードで Microsoft Azure アカウントにサインインし、サブスクリプションを選択します。
Connect-AzAccount
Select-AzSubscription –SubscriptionName 'my-subscription-name'
- リソース グループ名と VM 名を設定します。
$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$diskName = 'my-disk-name'
- VM への参照を取得します。
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
重要
「ダウンタイムなしで拡張する」の要件をディスクが満たしている場合は、手順 4 と 6 を省略できます。
- ディスクのサイズを変更する前に VM を停止します。
Stop-AzVM -ResourceGroupName $rgName -Name $vmName
- マネージド OS ディスクへの参照を取得します。 マネージド OS ディスクのサイズを目的の値に設定し、ディスクを更新します。
$disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $diskName
$disk.DiskSizeGB = 1023
Update-AzDisk -ResourceGroupName $rgName -Disk $disk -DiskName $disk.Name
警告
新しいサイズには、既存のディスク サイズより大きい値を指定する必要があります。 OS ディスクで許可される最大値は、4,095 GB です。 (VHD BLOB はこのサイズよりも大きくすることができます。ただし、OS の実行に使用できるのは、最初の 4,095 GB の領域のみです。)
- VM の更新には数秒かかる可能性があります。 コマンドの実行が完了したら、VM を再起動します。
Start-AzVM -ResourceGroupName $rgName -Name $vmName
VM にリモート接続し、[コンピューターの管理] (または [ディスクの管理]) を開いて、新しく割り当てた領域を使用してドライブを拡張します。
オペレーティング システムでボリュームを拡張する
VM のディスクを拡張したら、OS に移動して、新しい領域を含めるようにボリュームを拡張する必要があります。 パーティションを拡張するには、いくつかの方法があります。 このセクションでは、DiskPart またはディスク マネージャーを使ってパーティションを拡張するための、RDP コネクションを使った VM への接続について説明します。
DiskPart の使用
VM のディスクを拡張したら、OS に移動して、新しい領域を含めるようにボリュームを拡張する必要があります。 パーティションを拡張するには、いくつかの方法があります。 このセクションでは、RDP 接続を使用して VM に接続し、DiskPart によりパーティションを拡張する方法について説明します。
VM への RDP 接続を開きます。
コマンド プロンプトを開き、「diskpart」と入力します。
DISKPART プロンプトで「
list volume
」と入力します。 拡張するボリュームをメモします。DISKPART プロンプトで「
select volume <volumenumber>
」と入力します。 これにより、同じディスク上の連続した空の領域に拡張する必要があるボリューム volumenumber が選択されます。DISKPART プロンプトで
extend [size=<size>]
と入力します。 これにより、選択したボリュームがメガバイト (MB) 単位の size で拡張されます。
ディスク マネージャーの使用
VM でリモート デスクトップ セッションを開始します。
[ディスクの管理] を開きます。
既存の C: ドライブ パーティションを右クリックして、[ボリュームの拡張] を選びます。
手順に従えば、容量が更新されたディスクが表示されるはずです。
クラシック VM SKU のダウンタイムなしでの拡張のサポート
クラシック VM SKU を使っている場合は、ダウンタイムなしでディスクの拡張がサポートされていない可能性があります。
次の PowerShell スクリプトを使用して、使用できる VM SKU を特定します。
Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}
foreach($vmSize in $vmSizes){
foreach($capability in $vmSize.Capabilities)
{
if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
{
$vmSize.Name
}
}
}
次のステップ
また、Azure portal を使用してディスクを接続することもできます。