はじめに
EC2のDeep Learning AMI (Ubuntu)を使って開発をすることが多くなり、詰まったところをメモ程度に残します。
デフォルトの75GBでは絶対に容量が足りない
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 499264 0 499264 0% /dev
tmpfs tmpfs 101444 3324 98120 4% /run
/dev/xvda1 ext4 76171508 75792680 362444 100% /
tmpfs tmpfs 507212 0 507212 0% /dev/shm
tmpfs tmpfs 5120 0 5120 0% /run/lock
tmpfs tmpfs 507212 0 507212 0% /sys/fs/cgroup
/dev/loop1 squashfs 18304 18304 0 100% /snap/amazon-ssm-agent/1068
/dev/loop0 squashfs 16896 16896 0 100% /snap/amazon-ssm-agent/784
/dev/loop2 squashfs 93312 93312 0 100% /snap/core/6531
/dev/loop3 squashfs 91648 91648 0 100% /snap/core/6818
/dev/loop4 squashfs 89984 89984 0 100% /snap/core/5742
tmpfs tmpfs 101444 0 101444 0% /run/user/1000
/dev/xvda1がメインのボリュームですが、インスタンスを建てたときにすでに容量がほぼいっぱいになっています。
$ conda create -n new_env --clone pytorch_p36
などで新しい仮想環境をつくっただけでも途中で容量がいっぱいになります。
インスタンスを立てる際のボリューム設定
ここがデフォルトでは75GBになっているので、適宜必要な値を入力します。自分は100GBで作成しました。
インスタンスを建ててしまった後の対応
サイドバーのボリュームを選択後にインスタンスを選び、アクションからボリュームの変更でサイズを変更します。
$ lsblk
で確認しても反映されていないことが確認されます。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
└─xvda1 202:1 0 75G 0 part /
loop0 7:0 0 16.5M 1 loop /snap/amazon-ssm-agent/784
loop1 7:1 0 17.9M 1 loop /snap/amazon-ssm-agent/1068
loop2 7:2 0 91.1M 1 loop /snap/core/6531
loop3 7:3 0 89.4M 1 loop /snap/core/6818
loop4 7:4 0 87.9M 1 loop /snap/core/5742
以下のコマンドを打ちます。
$ sudo growpart /dev/xvda 1
するとボリュームのパーティションが変更されます。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
└─xvda1 202:1 0 100G 0 part /
loop0 7:0 0 16.5M 1 loop /snap/amazon-ssm-agent/784
loop1 7:1 0 17.9M 1 loop /snap/amazon-ssm-agent/1068
loop2 7:2 0 91.1M 1 loop /snap/core/6531
loop3 7:3 0 89.4M 1 loop /snap/core/6818
loop4 7:4 0 87.9M 1 loop /snap/core/5742
次にファイルシステムに拡張になります。
$ df -h
で確認すると、まだ75GBのままです。
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 3.3M 96M 4% /run
/dev/xvda1 73G 73G 0 100% /
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/loop1 18M 18M 0 100% /snap/amazon-ssm-agent/1068
/dev/loop0 17M 17M 0 100% /snap/amazon-ssm-agent/784
/dev/loop2 92M 92M 0 100% /snap/core/6531
/dev/loop3 90M 90M 0 100% /snap/core/6818
/dev/loop4 88M 88M 0 100% /snap/core/5742
tmpfs 100M 0 100M 0% /run/user/1000
そこで以下のコマンドでファイルの拡張を行います。
$ sudo resize2fs /dev/xvda1
もう一度確認すると100GBになっているはずです。
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 3.3M 96M 4% /run
/dev/xvda1 97G 73G 25G 75% /
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/loop1 18M 18M 0 100% /snap/amazon-ssm-agent/1068
/dev/loop0 17M 17M 0 100% /snap/amazon-ssm-agent/784
/dev/loop2 92M 92M 0 100% /snap/core/6531
/dev/loop3 90M 90M 0 100% /snap/core/6818
/dev/loop4 88M 88M 0 100% /snap/core/5742
tmpfs 100M 0 100M 0% /run/user/1000
これで仮想環境作っても容量不足になりません。