LVMで管理しているボリュームを縮小する。
lvm2 で管理しているLVのボリュームを縮小して、容量を開放するための手順
作業手順は次のようになります。
- ターゲットのLVとそのファイルシステムを確認する
- FSを縮小する
- 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--resizefs --size -10G /dev/mapper/my-root ## 拡張 sudo lvresize--resizefs --size +10G /dev/mapper/my-root
まとめ
lvreduce を使うことでかんたんにボリュームの容量を変更できて、物理HDDのパーティションをいじるより圧倒的に楽ちんですね。
参考資料
- man resize2fs
- man lvreduce