昨年 10 月に Ubuntu をアップグレードしたが、起動時に SWAP 領域を 1 分 30 秒探しに行ってしまうという問題が発生していることに気付いた。常時起動のサーバーのため気がつくのが遅くなってしまったが、そもそも SWAP 領域が行方不明になっていたようだ。
total used free shared buff/cache available
Mem: 31985 1454 24845 36 5685 30028
Swap: 0 0 0
メモリが 32GB 搭載されているため、ディストリビューションのインストール時に 32GB 分の SWAP 領域を自動的に確保されていた。ところが OS のメジャーアップデート時に SWAP 領域の UUID が変化してしまったらしく、その UUID を見つけられないという問題であったようだ。ところが /etc/fstab で SWAP 領域の UUID なんて指定していないし、そもそも SWAP なんて不要じゃねということで 32GB 分の領域を開放してファイルシステムを拡張することにした。
LVM をいじるのもずいぶん久しぶりなので時間がかかってしまった。備忘のためまとめると手順は次の通りである。
1) /etc/fstab から swap の行を削除する。
2) lvscan で inactive な LV を探し、削除する。
WARNING: Couldn't find device with uuid YqLai4-8IS3-IH6J-AVhC-aT8J-K6Bx-NhsPYV.
WARNING: Couldn't find device with uuid lFevnx-QjZ8-s6UV-JHRP-e7or-uALX-yihdld.
WARNING: Couldn't find device with uuid H44rh5-bUlF-1f2c-XRkP-YgSD-kQfL-yJVUL4.
WARNING: Couldn't find device with uuid Qu4RXt-5hDq-1UlB-Gdto-OHol-POwk-o8XYGa.
WARNING: Couldn't find device with uuid C24m3Z-0bsZ-Hd0T-KlbL-yxmQ-AO30-z9Rok3.
WARNING: VG raytrek-vg is missing PV YqLai4-8IS3-IH6J-AVhC-aT8J-K6Bx-NhsPYV (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV lFevnx-QjZ8-s6UV-JHRP-e7or-uALX-yihdld (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV H44rh5-bUlF-1f2c-XRkP-YgSD-kQfL-yJVUL4 (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV Qu4RXt-5hDq-1UlB-Gdto-OHol-POwk-o8XYGa (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV C24m3Z-0bsZ-Hd0T-KlbL-yxmQ-AO30-z9Rok3 (last written to /dev/mapper/sdd_crypt).
ACTIVE '/dev/raytrek-vg/root' [<87.06 GiB] inherit
inactive '/dev/raytrek-vg/swap_1' [31.94 GiB] inherit
inactive '/dev/raytrek-vg/data' [<10.01 TiB] inherit
Logical volume "swap_1" successfully removed
$ sudo lvremove /dev/raytrek-vg/data
Logical volume "data" successfully removed
3) vgreduce --removemissing にて見つからない UUID を取り除く。
WARNING: Couldn't find device with uuid YqLai4-8IS3-IH6J-AVhC-aT8J-K6Bx-NhsPYV.
WARNING: Couldn't find device with uuid lFevnx-QjZ8-s6UV-JHRP-e7or-uALX-yihdld.
WARNING: Couldn't find device with uuid H44rh5-bUlF-1f2c-XRkP-YgSD-kQfL-yJVUL4.
WARNING: Couldn't find device with uuid Qu4RXt-5hDq-1UlB-Gdto-OHol-POwk-o8XYGa.
WARNING: Couldn't find device with uuid C24m3Z-0bsZ-Hd0T-KlbL-yxmQ-AO30-z9Rok3.
WARNING: VG raytrek-vg is missing PV YqLai4-8IS3-IH6J-AVhC-aT8J-K6Bx-NhsPYV (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV lFevnx-QjZ8-s6UV-JHRP-e7or-uALX-yihdld (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV H44rh5-bUlF-1f2c-XRkP-YgSD-kQfL-yJVUL4 (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV Qu4RXt-5hDq-1UlB-Gdto-OHol-POwk-o8XYGa (last written to [unknown]).
WARNING: VG raytrek-vg is missing PV C24m3Z-0bsZ-Hd0T-KlbL-yxmQ-AO30-z9Rok3 (last written to [unknown]).
WARNING: Couldn't find device with uuid YqLai4-8IS3-IH6J-AVhC-aT8J-K6Bx-NhsPYV.
WARNING: Couldn't find device with uuid lFevnx-QjZ8-s6UV-JHRP-e7or-uALX-yihdld.
WARNING: Couldn't find device with uuid H44rh5-bUlF-1f2c-XRkP-YgSD-kQfL-yJVUL4.
WARNING: Couldn't find device with uuid Qu4RXt-5hDq-1UlB-Gdto-OHol-POwk-o8XYGa.
WARNING: Couldn't find device with uuid C24m3Z-0bsZ-Hd0T-KlbL-yxmQ-AO30-z9Rok3.
Wrote out consistent volume group raytrek-vg.
Found volume group "raytrek-vg" using metadata type lvm2
$ sudo pvscan
PV /dev/mapper/sda5_crypt VG raytrek-vg lvm2 [119.00 GiB / 31.94 GiB free]
Total: 1 [119.00 GiB] / in use: 1 [119.00 GiB] / in no VG: 0 [0 ]
$ sudo lvscan
ACTIVE '/dev/raytrek-vg/root' [<87.06 GiB] inherit
4) 上記のように警告メッセージが解消して綺麗になるので、あとは論理ボリュームを拡張し、ファイルシステムもそれにあわせて拡張すれば OK である。
Size of logical volume raytrek-vg/root changed from <87.06 GiB (22287 extents) to 119.00 GiB (30464 extents).
Logical volume raytrek-vg/root successfully resized.
$ sudo resize2fs /dev/raytrek-vg/root
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/raytrek-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 6, new_desc_blocks = 8
The filesystem on /dev/raytrek-vg/root is now 31195136 (4k) blocks long.
5) root が 119.00 GiB に拡張されたと表示されたので、ファイルシステムが実際に拡張されていることを確認する。
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.9M 3.2G 1% /run
/dev/mapper/raytrek--vg-root 117G 65G 52G 56% /
tmpfs 16G 54M 16G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 230M 115M 109M 52% /boot
/dev/mapper/sdc_crypt 3.6T 2.2T 1.3T 63% /mnt/sdc
/dev/mapper/sdd_crypt 2.7T 1.5T 1.2T 57% /mnt/sdd
tmpfs 3.2G 16K 3.2G 1% /run/user/1000
SWAP 領域を削除したことによる空き容量を利用して root ファイルシステムの領域が拡張されていることが確認できた。