それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LVMのlvreduce でファイルシステム(ext)を縮小する(lvresizeについても)

LVMで管理しているボリュームを縮小する。

lvm2 で管理しているLVのボリュームを縮小して、容量を開放するための手順

作業手順は次のようになります。

  1. ターゲットのLVとそのファイルシステムを確認する
  2. FSを縮小する
  3. lv を縮小する

resize2fs はlvreduceの後でも先でもいいが、ボリュームサイズの変更の前にやるほうが無難

現在のファイルシステムとボリューム名を確認しておく。

$ sudo mount /dev/mapper/sample01-lv01 mnt
$ df -h mnt
ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/mapper/sample01-lv01    60G   44M   28G    1% /home/takuya/mnt
$ sudo umount /dev/mapper/sample01-lv01

ファイルシステムをリサイズする。

今回はext4 だったので、resize2fs を掛けていく。

ファイルシステムをチェックして
$ sudo e2fsck -f  /dev/mapper/sample01-lv01
e2fsck 1.42.12 (29-Aug-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
リサイズする。

今回は60GB→30GB

takuya@:~$ sudo resize2fs /dev/mapper/sample01-lv01 30G
resize2fs 1.42.12 (29-Aug-2014)
Resizing the filesystem on /dev/mapper/sample01-lv01 to 7864320 (4k) blocks.
The filesystem on /dev/mapper/sample01-lv01 is now 7864320 (4k) blocks long.
リサイズできたのを確認

mount とかで確認

LV を縮小する

$ sudo lvreduce sample01/lv01 -L 30G
  WARNING: Reducing active logical volume to 30.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
  Size of logical volume sample01/lv01 changed from 60.00 GiB (15360 extents) to 30.00 GiB (7680 extents).
  Logical volume lv01 successfully resized

2022-12-15 追記 lvresize を使う

いちどに沢山の量をリサイズすると、上記の方法ではうまくいかない。

そこで、lvresize を使ったほうが早い また、処理が2回はめんどくさい。上記の手順を一度に終える次のコマンドが安全で確実、
さらに、+/- を使って増分減分を指定できるので便利。

## 縮小
sudo lvresize -v --resizefs --size -10G /dev/mapper/my-root
## 拡張
sudo lvresize -v --resizefs --size +10G /dev/mapper/my-root

まとめ

lvreduce を使うことでかんたんにボリュームの容量を変更できて、物理HDDのパーティションをいじるより圧倒的に楽ちんですね。

2023-05-02

タイポ修正

参考資料

  • man resize2fs
  • man lvreduce