- man lvm
- man lvextend
- man lvreduce
- man resize2fs
あんましlvm使わないので勉強。実験した環境
VG Name | vg_hoge | |
LV Name | lv_home | |
LV Size | 400.00 GiB | |
device | /dev/vg_hoge/lv_home |
ext4(ext3も?)拡大はオンライン(マウントしたまま)で変更可能。縮小はアンマウントが必要。
準備
色々確認しておく
# tune2fs -l /dev/vg_hoge/lv_home # vgs # lvs # lvdisplay # df -h
縮小する (lvreduce)
400Gから300Gに変更。順番としては、まずファイルシステム上でサイズを変更してから、パーティションのサイズを変更する。
1. umount する
# umount /home
2. fsckする
これをせずにresize2fs を実行すると、"Please run 'e2fsck -f /dev/vg_hoge/lv_home' first." と怒られる。
# fsck.ext4 -f /dev/vg_hoge/lv_home e2fsck 1.41.12 (17-May-2010) 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 /dev/vg_hoge/lv_home : 19/26214400 files (0.0% non-contiguous), 27910434/104857600 blocks
3. resize2fs でファイルシステムを縮小
# resize2fs /dev/mapper/vg_svxxx-lv_home 300G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/mapper/vg_svxxx-lv_home to 78643200 (4k) blocks. The filesystem on /dev/mapper/vg_svxxx-lv_home is now 78643200 blocks long.
4. lvreduce でパーティションを縮小
# lvreduce -L 300G /dev/vg_svxxx/lv_home WARNING: Reducing active logical volume to 300.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv_home? [y/n]: y Reducing logical volume lv_home to 300.00 GiB Logical volume lv_home successfully resized
5. 再マウントして確認
# mount /home # df -h # vgs # lvs # lvdisplay # tune2fs -l /dev/vg_hoge/lv_home
拡大する (lvextend)
300Gから400Gに拡大する。拡大はオンラインのまま可能。縮小の時と順番が逆になって、パーティションを拡大してから、ファイルシステムを拡大する。
1. lvextendで拡
大する
# lvextend -L 400G /dev/vg_hoge/lv_home Extending logical volume lv_home to 400.00 GiB Logical volume lv_home successfully resized
2. resize2fs でファイルシステムを拡大
# resize2fs /dev/vg_hoge/lv_home 400G resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg_hoge/lv_home is mounted on /home; on-line resizing required old desc_blocks = 19, new_desc_blocks = 25 Performing an on-line resize of /dev/vg_hoge/lv_home to 104857600 (4k) blocks. The filesystem on /dev/vg_hoge/lv_home is now 104857600 blocks long.
resize2fs 中に別のターミナルでdfしていると、sizeが徐々に拡大していくことがわかる。
3. 確認
# df -h # vgs # lvs # tune2fs -l /dev/vg_hoge/lv_home