목차 |
---|
타겟 디스크 정보
마운트 없이 정보 확인
코드 블럭 |
---|
# modprobe nbd max_part=8 # qemu-nbd --connect=/dev/nbd2virt-filesystems -l -h --all -a disk.qcow2 #Name lsblk /dev/nbd2 NAME Type MAJ:MIN RM SIZEVFS RO TYPE MOUNTPOINT nbd2 Label MBR Size Parent /dev/sda device 43:32 0 - 500G 0 disk ├─nbd2p1 - - 500G - /dev/sda1 43:33 0 1Mpartition 0- part ├─nbd2p2 - - 43:341.0M /dev/sda /dev/sda2 0 1G 0 part └─nbd2p3 partition - - - 43:35 1.0G 0 445.6G/dev/sda /dev/sda3 0 part └─ubuntu--vg-ubuntu--lv 253:3 0 200G partition 0 lvm #- pvdisplay /dev/nbd2p3 --- Physical volume --- PV Name - 446G /dev/sda /dev/sda3 /dev/nbd2p3 VG Name pv - ubuntu-vg PV Size - - 446G - /dev/ubuntu-vg 445.62 GiB / not usable 0 # lvdisplay ubuntu-vg --- Logical volume --- LV Path- - - 446G /dev/sda3 /dev/ubuntu-vg/ubuntu-lv lv LV Name - ubuntu-lv VG Name - ubuntu200G /dev/ubuntu-vg /dev/sda1 LV Size filesystem unknown - 200.00 GiB # file -L -s /dev/ubuntu-vg/ubuntu-lv1.0M - /dev/ubuntu-vg/ubuntu-lv: Linux rev 1.0 ext4 filesystem data, ... (needs journal recovery) (extents) (64bit) (large files) (huge files) # mount sda2 filesystem ext4 - - 1.0G - /dev/ubuntu-vg/ubuntu-lv /mnt # df -h /mnt Filesystem filesystem ext4 - - 200G - |
NBD 연결 후 정보 확인
NBD로 VM 이미지를 장치로 등록 후, NBD 장치를 마운트 하여 정보 확인
코드 블럭 |
---|
# modprobe nbd max_part=8 # qemu-nbd --connect=/dev/nbd2 disk.qcow2 # lsblk /dev/nbd2 NAME Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv 196G 26G 161G 14% /mnt # umount /mnt # e2fsck -f /dev/ubuntu-vg/ubuntu-lv e2fsck 1.45.6 (20-Mar-2020) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nbd2 43:32 0 500G 0 disk ├─nbd2p1 43:33 0 1M 0 part ├─nbd2p2 43:34 0 1G 0 part └─nbd2p3 43:35 0 445.6G 0 part └─ubuntu--vg-ubuntu--lv 253:3 0 200G 0 lvm # pvdisplay /dev/nbd2p3 --- Physical volume --- PV Name /dev/nbd2p3 VG Name ubuntu-vg PV Size 445.62 GiB / not usable 0 # lvdisplay ubuntu-vg --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv LV Name ubuntu-lv VG Name ubuntu-vg LV Size 200.00 GiB # file -L -s /dev/ubuntu-vg/ubuntu-lv /dev/ubuntu-vg/ubuntu-lv: Linux rev 1.0 ext4 filesystem ... # mount /dev/ubuntu-vg/ubuntu-lv /mnt # df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv 196G 26G 161G 14% /mnt # umount /mnt |
NBD 해제하기
LVM을 inactive 시킨 후 NBD 장치 disconnect
코드 블럭 |
---|
# lvchange -an /dev/ubuntu-vg/ubuntu-lv
# vgchange -an ubuntu-vg
0 logical volume(s) in volume group "ubuntu-vg" now active
# lvscan
inactive '/dev/ubuntu-vg/ubuntu-lv' ...
# qemu-nbd --disconnect /dev/nbd2 |
디스크 크기 줄이기
LVM 크기 줄이기
마운트 된 장치가 없는 것을 확인
e2fsck(파일시스템 체크) → resize2fs(파일시스템 크기감소) → lvreduce(LVM 크기 감소)
코드 블럭 |
---|
# e2fsck -f /dev/ubuntu-vg/ubuntu-lv
e2fsck 1.45.6 (20-Mar-2020)
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/ubuntu-vg/ubuntu-lv: 479453/13107200 files (0.1% non-contiguous), 7712317/52428800 blocks
# resize2fs /dev/ubuntu-vg/ubuntu-lv 28G
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/ubuntu-vg/ubuntu-lv to 7340032 (4k) blocks.
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7340032 (4k) blocks long.
# lvreduce -L 28G /dev/ubuntu-vg/ubuntu-lv
WARNING: Reducing active logical volume to 28.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce ubuntu-vg/ubuntu-lv? [y/n]: y
Size of logical volume ubuntu-vg/ubuntu-lv changed from 200.00 GiB (51200 extents) to 28.00 GiB (7168 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized. |
VM 디스크 축소
qemu-img create (새로운 VM 디스크를 마련) → (virt-resize --resize-force /dev/sda3=29G) 파티션 축소
축소할 파티션 용량(29GB)은 위에서 줄인 LVM 파티션 용량(28GB)보다 크게 잡아야 함.
VM 디스크 용량(32GB)은 파티션 용량의 합보다 크게 (1MB/sda1+1GB/sda2+29GB/sda3) 잡아야 함.
코드 블럭 |
---|
# qemu-img create -f qcow2 tmp.qcow2 32G
Formatting 'tmp.qcow2', fmt=qcow2 size=34359738368 cluster_size=65536 lazy_refcounts=off refcount_bits=16
# virt-resize --no-extra-partition --resize-force /dev/sda3=29G disk.qcow2 tmp.qcow2
[ 0.0] Examining disk.qcow2
**********
Summary of changes:
/dev/sda1: This partition will be left alone.
/dev/sda2: This partition will be left alone.
/dev/sda3: This partition will be resized from 445.6G to 29.0G.
The LVM PV on /dev/sda3 will be expanded using the ‘pvresize’ method.
There is a surplus of 2.0G. The surplus space will be ignored.
Run a partitioning program in the guest to partition this extra space if you want.
**********
[ 2.1] Setting up initial partition table on tmp.qcow2
[ 12.8] Copying /dev/sda1
[ 12.8] Copying /dev/sda2
[ 13.8] Copying /dev/sda3
[ 41.5] Expanding /dev/sda3 using the ‘pvresize’ method
Resize operation completed with no errors. Before deleting the old disk,
carefully check that the resized disk boots and works correctly.
# virt-filesystems -l -h --all -a tmp.qcow2
Name Type VFS Label MBR Size Parent
/dev/sda device - - - 32G -
/dev/sda1 partition - - - 1.0M /dev/sda
/dev/sda2 partition - - - 1.0G /dev/sda
/dev/sda3 partition - - - 29G /dev/sda
/dev/sda3 pv - - - 29G -
/dev/ubuntu-vg vg - - - 29G /dev/sda3
/dev/ubuntu-vg/ubuntu-lv lv - - - 28G /dev/ubuntu-vg
/dev/sda1 filesystem unknown - - 1.0M -
/dev/sda2 filesystem ext4 - - 1.0G -
/dev/ubuntu-vg/ubuntu-lv filesystem ext4 - - 28G -
# ls -alh tmp.qcow2
20G tmp.qcow2 |
디스크 크기 늘리기
코드 블럭 |
---|
# qemu-img create -f qcow2 new.qcow2 100G Formatting 'new.qcow2', fmt=qcow2 size=107374182400 cluster_size=65536 lazy_refcounts=off refcount_bits=16 # virt-resize --expand /dev/sda3 --LV-expand /dev/ubuntu-vg/ubuntu-lv tmp.qcow2 new.qcow2 [ 0.0] Examining tmp.qcow2 ********** Summary of changes: /dev/sda1: This partition will be left alone. /dev/sda2: This partition will be left alone. /dev/sda3: This partition will be resized from 29.0G to 99.0G. The LVM PV on /dev/sda3 will be expanded using the ‘pvresize’ method. /dev/ubuntu-vg/ubuntu-lv: This logical volume will be expanded to maximum size. The filesystem ext4 on /dev/ubuntu-vg/ubuntu-lv will be expanded using the ‘resize2fs’ method. ********** [ 2.2] Setting up initial partition table on new.qcow2 [ 12.9] Copying /dev/sda1 [ 12.9] Copying /dev/sda2 [ 13.9] Copying /dev/sda3 [ 41.2] Expanding /dev/sda3 using the ‘pvresize’ method [ 41.2] Expanding /dev/ubuntu-vg/ubuntu-lv using the ‘resize2fs’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly. # virt-filesystems -l -h --all -a new.qcow2 Name Type VFS Label MBR Size Parent /dev/sda1 filesystem unknown - - 1.0M - /dev/sda2 filesystem ext4 - - 1.0G - /dev/ubuntu-vg/ubuntu-lv filesystem ext4 - - 99G - /dev/ubuntu-vg/ubuntu-lv lv - - - 99G /dev/ubuntu-vg /dev/ubuntu-vg vg - - - 99G /dev/sda3 /dev/sda3 pv - - - 99G - /dev/sda1 partition - - - 1.0M /dev/sda /dev/sda2 partition - - - 1.0G /dev/sda /dev/sda3 Checking group summary information /dev/ubuntu-vg/ubuntu-lv: 479453/13107200 files (0.1% non-contiguous), 7712317/52428800 blocks # resize2fs /dev/ubuntu-vg/ubuntu-lv 29G resize2fs 1.45.6 (20-Mar-2020) Resizing the filesystem on /dev/ubuntu-vg/ubuntu-lv to 7602176 (4k) blocks. The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7602176 (4k) blocks long. # lvreduce -L 29G /dev/ubuntu-vg/ubuntu-lv WARNING: Reducing active logical volume to 29.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce ubuntu-vg/ubuntu-lv? [y/n]: y Size of logical volume ubuntu-vg/ubuntu-lv changed from 200.00 GiB (51200 extents) to 29.00 GiB (7424 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized. # e2fsck -f /dev/ubuntu-vg/ubuntu-lv e2fsck 1.45.6 (20-Mar-2020) 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/ubuntu-vg/ubuntu-lv: 479453/1900544 files (0.3% non-contiguous), 7004914/7602176 blocks # lvchange -an /dev/ubuntu-vg/ubuntu-lv # vgchange -an ubuntu-vg 0 logical volume(s) in volume group "ubuntu-vg" now active # qemu-nbd --disconnect /dev/nbd2 # qemu-img create -f qcow2 new.qcow2 32G Formatting 'new.qcow2', fmt=qcow2 size=34359738368 cluster_size=65536 lazy_refcounts=off refcount_bits=16 # virt-resize --resize-force /dev/sda3=30G disk.qcow2 new.qcow2 [ 0.0] Examining disk.qcow2 ********** Summary of changes: /dev/sda1: This partition will be left alone. /dev/sda2: This partition will be left alone. /dev/sda3: This partition will be resized from 445.6G to 30.0G. The LVM PV on /dev/sda3 will be expanded using the ‘pvresize’ method. There is a surplus of 1020.7M. An extra partition will be created for the surplus. ********** [ 2.1] Setting up initial partition table on new.qcow2 [ 12.8] Copying /dev/sda1 [ 12.9] Copying /dev/sda2 [ 13.8] Copying /dev/sda3 [ 42.8] Expanding /dev/sda3 using the ‘pvresize’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly. # qemu-nbd --connect=/dev/nbd2 new.qcow # lsblk /dev/nbd2 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nbd2 43:32 0 32G 0 disk ├─nbd2p1 43:33 0 1M 0 part ├─nbd2p2 43:34 0 1G 0 part ├─nbd2p3 43:35 0 30G 0 part │ └─ubuntu--vg-ubuntu--lv 253:3 0 29G 0 lvm └─nbd2p4 # fdisk /dev/nbd2 Command (m for help): p Disk /dev/nbd2: 32 GiB, 34359738368 bytes, 67108864 sectors Device Start End Sectors Size Type /dev/nbd2p1 2048 4095 2048 1M BIOS boot /dev/nbd2p2 4096 2101247 2097152 1G Linux filesystem /dev/nbd2p3 2101248 65015807 62914560 30G Linux filesystem /dev/nbd2p4 65015808 67108799 2092992 1022M Linux filesystem Command (m for help): d Partition number (1-4, default 4): 4 Partition 4 has been deleted. Command (m for help): w The partition table has been altered. Syncing disks. # lvchange -an /dev/ubuntu-vg/ubuntu-lv # vgchange -an ubuntu-vg 0 logical volume(s) in volume group "ubuntu-vg" now active # qemu-nbd --disconnect /dev/nbd2 # qemu-img create -f qcow2 new2.qcow2 100G Formatting 'new2.qcow2', fmt=qcow2 size=107374182400 cluster_size=65536 lazy_refcounts=off refcount_bits=16 # virt-resize --expand /dev/sda3 --LV-expand /dev/ubuntu-vg/ubuntu-lv new.qcow2 new2.qcow2 [ 0.0] Examining new.qcow2 ********** Summary of changes: /dev/sda1: This partition will be left alone. /dev/sda2: This partition will be left alone. /dev/sda3: This partition will be resized from 30.0G to 99.0G. The LVM PV on /dev/sda3 will be expanded using the ‘pvresize’ method. /dev/ubuntu-vg/ubuntu-lv: This logical volume will be expanded to maximum size. The filesystem ext4 on /dev/ubuntu-vg/ubuntu-lv will be expanded using the ‘resize2fs’ method. ********** [ 2.2] Setting up initial partition table on new2.qcow2 [ 12.8] Copying /dev/sda1 [ 12.9] Copying /dev/sda2 [ 13.9] Copying /dev/sda3 [ 38.5] Expanding /dev/sda3 using the ‘pvresize’ method [ 38.5] Expanding /dev/ubuntu-vg/ubuntu-lv using the ‘resize2fs’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly. # virt-filesystems -l -h -a new2.qcow2 Name Type partition - VFS Label - Size Parent /dev/sda2 - 99G /dev/sda /dev/sda filesystem ext4 - device 1.0G - /dev/ubuntu-vg/ubuntu-lv filesystem ext4 - - 99G 100G - # ls -alh new2new.qcow2 -rw-r--r--. 1 qemu qemu 19G 2022-05-11 Wed 18:37:23 new220G new.qcow2 |