演習 - VM ディスクのサイズの変更

完了

いくつかのアップロード ファイルの大きさを小さく見積もったために、アップロード ディスクの領域が不足しているとしましょう。 領域を、64 GB から 128 GB の 2 倍にすることを決定しました。

ここでは、前のユニットで学習した手順を実践します。

データ ディスクのサイズを変更する

ディスクのサイズを変更するには、ディスクの ID または名前が必要です。 ここでは、名前 (uploadDataDisk1) は既にわかっています。 しかし、わからない場合や、他人がディスクを作成した場合は、az disk list を実行して名前を見つけることができます。

  1. az disk list コマンドを実行し、リソース グループのマネージド ディスクの一覧を出力します。 同じリソース グループに VM が複数ある場合、この一覧には他のディスクも含まれる場合があります。

    az disk list \
      --query '[*].{Name:name,Gb:diskSizeGb,Tier:sku.tier}' \
      --output table
    

    uploadDataDisk1 という名前のディスクがあります。

    Name                                                        Tier
    ----------------------------------------------------------  -------
    support-web-vm01_OsDisk_1_a7c59897dfda42dfab2edf4933e713a6  Premium
    uploadDataDisk1                                             Premium
    
  2. 次の az vm deallocate のコマンドを実行し、VM を停止し、割り当てを解除します。 このコマンドは VM を削除はしませんが、VM を仮想ディスクが変更できる状態にします。

    az vm deallocate --name support-web-vm01
    
  3. az disk update コマンドを実行し、ディスクのサイズを 128 GB に変更します。

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. az vm start コマンドを実行し、VM を再起動します。

    az vm start --name support-web-vm01
    

    しかしながら、まだ完了ではありません。 VM 上のオペレーティング システムは、追加の領域をまだ使用できません。 この状況には、次のセクションで対処します。

ディスク パーティションを拡張する

最後の手順では、利用可能な領域を OS に伝えます。 既に行ったパーティション分割とフォーマットの手順と同様に、このプロセスは、物理的なオンプレミス ディスクを拡張するために従うプロセスと同一です。

  1. VM に対して固定のパブリック IP アドレスを予約することも可能ですが、VM は割り当てが解除され再起動されたときに、既定で新しいパブリック IP アドレスを受け取ります。 次の az vm show コマンドを実行し、Bash 変数を VM の新しいパブリック IP アドレスに変更します。

    ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] -o tsv)
    
  2. 以前実行したように、VM で SSH を使用し lsblk を実行し、現在の状態を理解します。

    ssh azureuser@$ipaddress lsblk
    

    ディスク sdc/sdc1 のサイズがまだ 64 GB であることを確認できます。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sdc       8:32   0  128G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    
  3. ディスクの初期化のために既に行ったのと同様に、次の az vm extension set コマンドを実行し、利用者を手助けするための事前作成済み Bash スクリプトを実行することで VM 上の OS に新しい領域が利用可能であることを通知します。

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/resize-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./resize-data-disk.sh"}'
    

    コマンドを実行しながら、必要に応じて、別のブラウザー タブで Bash スクリプトを調べることができます。

    まとめると、スクリプトでは次のことが行われます。

    • ディスク /dev/sdc1 のマウントを解除します。
    • パーティション 1 のサイズを 128 GB に変更します。
    • パーティションの整合性を確認します。
    • ファイル システムのサイズを変更します。
    • ドライブ /dev/sdc1 をマウント ポイント /uploads にマウントし直します。
  4. 構成を確認するには、VM で再度 SSH を使用し lsblk を実行します。

    ssh azureuser@$ipaddress lsblk
    

    今回は、ディスク sdc/sdc1 が拡張され、増やしたディスク サイズに対応できることをご確認いただけます。

    NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0     7G  0 disk 
    └─sdb1    8:17   0     7G  0 part /mnt
    sdc       8:32   0   128G  0 disk 
    └─sdc1    8:33   0 119.2G  0 part /uploads
    sda       8:0    0    30G  0 disk 
    ├─sda14   8:14   0     4M  0 part 
    ├─sda15   8:15   0   106M  0 part /boot/efi
    └─sda1    8:1    0  29.9G  0 part /
    
  5. 最終的な検証手順として SSH 経由で VM でオペレーティング システムの df ユーティリティを実行し、OS でそれを正しく表示できることを証明します。

    ssh azureuser@$ipaddress df -h
    

    ドライブのサイズが 128 GB であることを確認できます。

    Filesystem      Size  Used Avail Use% Mounted on
    udev            1.7G     0  1.7G   0% /dev
    tmpfs           345M  9.3M  335M   3% /run
    /dev/sda1        29G  1.9G   28G   7% /
    tmpfs           1.7G     0  1.7G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup
    /dev/sda15      105M  3.2M  102M   3% /boot/efi
    /dev/sdb1       6.8G   16M  6.4G   1% /mnt
    /dev/sdc1       118G   60M  112G   1% /uploads
    tmpfs           345M     0  345M   0% /run/user/1000