Azure Ubuntu VMのディスクサイズをデプロイ後に拡張する方法

Azure Virtual Machines(以下、VM)を使用してUbuntu環境を構築する際、後からハードディスクサイズを拡張するための作業手順を紹介します。

経緯

GPUの使用できるIaaS環境でHuggingFaceのモデルを試していたのですが、環境構築後、パラメータファイルをロードするためのストレージ容量が不足していることが判明して拡張しました。

ところが、Azureポータル上での設定変更のみではうまくいかなかったため、ディスクを認識させるために追加でコマンド等で操作をする必要がありました。

検証環境

項目 設定
イメージ Ubuntu Server 22.04 LTS - x64 Gen2
サイズ Standard NC4as T4 v3 (4 vcpu 数、28 GiB メモリ) ※1
OSディスクサイズ 30GiB
OSディスクの種類 Standard HDD

※1:NCシリーズのデプロイにはクォーターの要求が必要です azure.microsoft.com

Azure ポータルでの設定変更

[設定]-[ディスク]からOSディスクを選択します。

その後に[設定]-[サイズおよびパフォーマンス]を開いて、OSディスクのサイズを拡張します。

VM上での設定変更

SSH接続

まず、VMにSSHで接続します。

az ssh vm --resource-group [リソースグループ名] --vm-name [VM名]--subscription [サブスクリプションID]

サイズ確認

Azure ポータルでのサイズ拡張後も、Filesystemが100%使用されている状態になっていました。

今回は事前にxrdpのGUIを入れていたのですが、この状態だとGUIからログインすることができなかったため、SSHで作業を行う必要がありました。

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G   29G     0 100% /
tmpfs            14G     0   14G   0% /dev/shm
tmpfs           5.5G   18M  5.5G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
efivarfs        128M  9.8K  128M   1% /sys/firmware/efi/efivars
/dev/sda15      105M  6.1M   99M   6% /boot/efi
tmpfs           2.8G   64K  2.8G   1% /run/user/7717716

lsblkコマンドでは次の通り、sda1の容量が上限に他知っていることが分かります。また拡張分がsdb1として認識されており、全く使用されていないことが分かります。

$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0  63.9M  1 loop /snap/core20/2264
loop1     7:1    0     4K  1 loop /snap/bare/5
loop2     7:2    0  74.2M  1 loop /snap/core22/1380
loop3     7:3    0 269.6M  1 loop /snap/firefox/4209
loop4     7:4    0 505.1M  1 loop /snap/gnome-42-2204/176
loop5     7:5    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop6     7:6    0  38.7M  1 loop /snap/snapd/21465
loop7     7:7    0    87M  1 loop /snap/lxd/28373
sda       8:0    0   128G  0 disk 
├─sda1    8:1    0  29.9G  0 part /var/snap/firefox/common/host-hunspell
│                                 /
├─sda14   8:14   0     4M  0 part 
└─sda15   8:15   0   106M  0 part /boot/efi
sdb       8:16   0   176G  0 disk 
└─sdb1    8:17   0   176G  0 part 

拡張後のディスクスペース設定

パーティションのリサイズと、ファイスのリサイズを行って結合する必要があります。

パーティションのリサイズ
sudo apt-get update
sudo apt-get install cloud-guest-utils
sudo growpart /dev/sda 1
ファイルシステムのリサイズ
sudo resize2fs /dev/sda1

改めてサイズ確認を実施します。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       124G   29G   96G  24% /
tmpfs            14G     0   14G   0% /dev/shm
tmpfs           5.5G   26M  5.5G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
efivarfs        128M  9.8K  128M   1% /sys/firmware/efi/efivars
/dev/sda15      105M  6.1M   99M   6% /boot/efi
tmpfs           2.8G   64K  2.8G   1% /run/user/7717716
tmpfs           2.8G   72K  2.8G   1% /run/user/1000
$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0     4K  1 loop /snap/bare/5
loop1     7:1    0  74.2M  1 loop /snap/core22/1380
loop2     7:2    0  63.9M  1 loop /snap/core20/2264
loop3     7:3    0 269.6M  1 loop /snap/firefox/4209
loop4     7:4    0 505.1M  1 loop /snap/gnome-42-2204/176
loop5     7:5    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop6     7:6    0  38.7M  1 loop /snap/snapd/21465
loop7     7:7    0    87M  1 loop /snap/lxd/28373
sda       8:0    0   128G  0 disk 
├─sda1    8:1    0 127.9G  0 part /var/snap/firefox/common/host-hunspell
│                                 /
├─sda14   8:14   0     4M  0 part 
└─sda15   8:15   0   106M  0 part /boot/efi
sdb       8:16   0   176G  0 disk 
└─sdb1    8:17   0   176G  0 part /mnt

sdbに割り振られていたサイズが、sda1に振り直されているのが分かります。

おわりに

Azure VMでUbuntu環境をセットアップし、その後にストレージの不足に直面した際のハードディスク拡張手順を紹介しました。

この手順を通じて、Azureポータルでの設定変更からOSレベルでのディスクの認識、最終的なファイルシステムの拡張までのプロセスを詳細に解説しました。

今後も役立つ情報を提供し続けたいと思います。

執筆担当者プロフィール
西野 佑基

西野 佑基(日本ビジネスシステムズ株式会社)

機械学習系ソリューション開発、業務Webアプリ開発、開発環境自動化などを担当。

担当記事一覧