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レベルでのディスクの認識、最終的なファイルシステムの拡張までのプロセスを詳細に解説しました。
今後も役立つ情報を提供し続けたいと思います。