昨年 10 月に Ubuntu をアップグレードしたが、起動時に SWAP 領域を 1 分 30 秒探しに行ってしまうという問題が発生していることに気付いた。常時起動のサーバーのため気がつくのが遅くなってしまったが、そもそも SWAP 領域が行方不明になっていたようだ。

$ free -m
              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 を探し、削除する。

$ sudo lvscan
  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
$ sudo lvremove /dev/raytrek-vg/swap_1
  Logical volume "swap_1" successfully removed
$ sudo lvremove /dev/raytrek-vg/data
  Logical volume "data" successfully removed

3) vgreduce --removemissing にて見つからない UUID を取り除く。

$ sudo vgreduce --removemissing raytrek-vg
  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.
$ sudo vgscan
  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 である。

$ sudo lvextend -l +100%FREE /dev/raytrek-vg/root
  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 に拡張されたと表示されたので、ファイルシステムが実際に拡張されていることを確認する。

$ df -h
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 ファイルシステムの領域が拡張されていることが確認できた。

投稿日: 作成者: 774