昨年 10 月に Ubuntu をアップグレードしたが、起動時に SWAP 領域を 1 分 30 秒探しに行ってしまうという問題が発生していることに気付いた。常時起動のサーバーのため気がつくのが遅くなってしまったが、そもそも SWAP 領域が行方不明になっていたようだ。
1 2 3 4 | $ 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 を探し、削除する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ 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 |
1 2 3 4 | $ 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 を取り除く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ 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. |
1 2 3 4 5 6 7 | $ 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 である。
1 2 3 4 5 6 7 8 | $ 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 に拡張されたと表示されたので、ファイルシステムが実際に拡張されていることを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 | $ 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 ファイルシステムの領域が拡張されていることが確認できた。