5.4. Removing a Disk from a Logical Volume
These example procedures show how you can remove a disk from an existing logical volume, either to replace the disk or to use the disk as part of a different volume. In order to remove a disk, you must first move the extents on the LVM physical volume to a different disk or set of disks.
5.4.1. Moving Extents to Existing Physical Volumes
In this example, the logical volume is distributed across four physical volumes in the volume group
myvg
.
pvs -o+pv_used
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdb1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
This examples moves the extents off of
/dev/sdb1
so that it can be removed from the volume group.
- If there are enough free extents on the other physical volumes in the volume group, you can execute the
pvmove
command on the device you want to remove with no other options and the extents will be distributed to the other devices.pvmove /dev/sdb1
# pvmove /dev/sdb1 /dev/sdb1: Moved: 2.0% ... /dev/sdb1: Moved: 79.2% ... /dev/sdb1: Moved: 100.0%
Copy to Clipboard Copied! After thepvmove
command has finished executing, the distribution of extents is as follows:pvs -o+pv_used
# pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0 /dev/sdc1 myvg lvm2 a- 17.15G 12.15G 5.00G /dev/sdd1 myvg lvm2 a- 17.15G 2.15G 15.00G
Copy to Clipboard Copied! - Use the
vgreduce
command to remove the physical volume/dev/sdb1
from the volume group.vgreduce myvg /dev/sdb1 pvs
# vgreduce myvg /dev/sdb1 Removed "/dev/sdb1" from volume group "myvg" # pvs PV VG Fmt Attr PSize PFree /dev/sda1 myvg lvm2 a- 17.15G 7.15G /dev/sdb1 lvm2 -- 17.15G 17.15G /dev/sdc1 myvg lvm2 a- 17.15G 12.15G /dev/sdd1 myvg lvm2 a- 17.15G 2.15G
Copy to Clipboard Copied!
The disk can now be physically removed or allocated to other users.
5.4.2. Moving Extents to a New Disk
In this example, the logical volume is distributed across three physical volumes in the volume group
myvg
as follows:
pvs -o+pv_used
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G
/dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G
/dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G
This example procedure moves the extents of
/dev/sdb1
to a new device, /dev/sdd1
.
- Create a new physical volume from
/dev/sdd1
.pvcreate /dev/sdd1
# pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully created
Copy to Clipboard Copied! - Add the new physical volume
/dev/sdd1
to the existing volume groupmyvg
.vgextend myvg /dev/sdd1 pvs -o+pv_used
# vgextend myvg /dev/sdd1 Volume group "myvg" successfully extended # pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 17.15G 0
Copy to Clipboard Copied! - Use the
pvmove
command to move the data from/dev/sdb1
to/dev/sdd1
.pvmove /dev/sdb1 /dev/sdd1 pvs -o+pv_used
# pvmove /dev/sdb1 /dev/sdd1 /dev/sdb1: Moved: 10.0% ... /dev/sdb1: Moved: 79.7% ... /dev/sdb1: Moved: 100.0% # pvs -o+pv_used PV VG Fmt Attr PSize PFree Used /dev/sda1 myvg lvm2 a- 17.15G 7.15G 10.00G /dev/sdb1 myvg lvm2 a- 17.15G 17.15G 0 /dev/sdc1 myvg lvm2 a- 17.15G 15.15G 2.00G /dev/sdd1 myvg lvm2 a- 17.15G 15.15G 2.00G
Copy to Clipboard Copied! - After you have moved the data off
/dev/sdb1
, you can remove it from the volume group.vgreduce myvg /dev/sdb1
# vgreduce myvg /dev/sdb1 Removed "/dev/sdb1" from volume group "myvg"
Copy to Clipboard Copied!
You can now reallocate the disk to another volume group or remove the disk from the system.