How to Remove a Drive from LVM
A hard drives can be removed from your Amahi HDA for replacement or to reduce storage space.
We'll detail how to remove such hard drives.
Contents
Important Notes
- This is an advanced how-to on how to remove drives from your HDA.
- Amahi cannot be held responsible for any data breakage or destruction arising from the use or misuse of this script. We provide it as a service in good will. You accept this automatically if you use the script.
- This was copied from the LVM project at http://tldp.org/HOWTO/LVM-HOWTO/removeadisk.html
13.5. Removing an Old Disk
Say you have an old IDE drive on /dev/hdb. You want to remove that old disk but a lot of files are on it.
Caution Backup Your System
You should always backup your system before attempting a pvmove operation.
Step by step instructions
Distributing Old Extents to Existing Disks in Volume Group
If you have enough free extents on the other disks in the volume group, you have it easy. Simply run
pvmove -- moving physical extents in active volume group "dev" pvmove -- WARNING: moving of active logical volumes may cause data loss! pvmove -- do you want to continue? [y/n] y pvmove -- 249 extents of physical volume "/dev/hdb" successfully moved
This will move the allocated physical extents from /dev/hdb onto the rest of the disks in the volume group.
Note pvmove is Slow
Be aware that pvmove is quite slow as it has to copy the contents of a disk block by block to one or more disks. If you want more steady status reports from pvmove, use the -v flag.
Remove the unused disk
We can now remove the old IDE disk from the volume group.
vgreduce -- doing automatic backup of volume group "dev" vgreduce -- volume group "dev" successfully reduced by physical volume: vgreduce -- /dev/hdb
The drive can now be either physically removed when the machine is next powered down or reallocated to other users.
Distributing Old Extents to a New Replacement Disk
If you do not have enough free physical extents to distribute the old physical extents to, you will have to add a disk to the volume group and move the extents to it.
Prepare the disk
First, you need to pvcreate the new disk to make it available to LVM. In this recipe we show that you don't need to partition a disk to be able to use it.
pvcreate -- physical volume "/dev/sdf" successfully created
Add it to the volume group
As developers use a lot of disk space this is a good volume group to add it into.
vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte vgextend -- doing automatic backup of volume group "dev" vgextend -- volume group "dev" successfully extended
Move the data
Next we move the data from the old disk onto the new one. Note that it is not necessary to unmount the file system before doing this. Although it is *highly* recommended that you do a full backup before attempting this operation in case of a power outage or some other problem that may interrupt it. The pvmove command can take a considerable amount of time to complete and it also exacts a performance hit on the two volumes so, although it isn't necessary, it is advisable to do this when the volumes are not too busy.
pvmove -- moving physical extents in active volume group "dev" pvmove -- WARNING: moving of active logical volumes may cause data loss! pvmove -- do you want to continue? [y/n] y pvmove -- 249 extents of physical volume "/dev/hdb" successfully moved
Remove the unused disk
We can now remove the old IDE disk from the volume group.
vgreduce -- doing automatic backup of volume group "dev" vgreduce -- volume group "dev" successfully reduced by physical volume: vgreduce -- /dev/hdb
The drive can now be either physically removed when the machine is next powered down or reallocated to some other users.