How to Reduce a Logical Volume in GNU/Linux Using LVM
Logical Volume Management is a vast improvement over standard
partitioning schemes. Among many other things, it allows you to decrease the
size of a volume without recreating it completely.
All of the required steps must be performed on an unmounted
volume. If want to reduce the size of a non-root volume, simply unmount it. For
a root volume, you’ll have to boot from a CD. Any modern live or rescue CD
should work fine
In this
article I will explain how to reduce the Logical Volume in Red Hat Linux system
without loss of data.
STEPS:-
1.
Un mount the logical volume:
umount /mnt/logical_volume1
Ex-
[root@server01 ~]# df -h
Filesystem
Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G
26G 22G 55% /
tmpfs 7.8G
0 7.8G 0% /dev/shm
/dev/sda1 485M
32M 429M 7% /boot
/dev/mapper/VolGroup-lv_home 491G
55G 412G 12% /home
[root@server01 ~]# umount /home
If this file system is in use, Use the
following commands to unmount partition forcefully.
[root@server01 ~]# fuser –km /home
[root@server01 ~]# umount –f /home
2. Make a backup of logical Volume.
Steps:
- Check the size
of the logical volume (LV Size):
lvdisplay /dev/volume_group1/logical_volume1
Ex-
Ex-
--- Logical volume ---
LV Name /dev/mapper/VolGroup-lv_home
VG Name VolGroup
LV UUID AxihqP-Yt8l-5scY-bXNG-Bn5D-K3ms-X7v1Ys
LV Write Access read/write
LV Status available
# open 1
LV Size 200,00 GB
Current LE 6400
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
LV Name /dev/mapper/VolGroup-lv_home
VG Name VolGroup
LV UUID AxihqP-Yt8l-5scY-bXNG-Bn5D-K3ms-X7v1Ys
LV Write Access read/write
LV Status available
# open 1
LV Size 200,00 GB
Current LE 6400
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
Usually, snapshots are smaller than the original logical volume, but I recommend to use at least the same space.
- Create the
snapshot:
lvcreate -L200G -s -n backup_logical_volume1
/dev/volume_group1/logical_volume1
The -s param tells lvcreate to create a snapshot instead of a normal logical volume.
Ex-
lvcreate -L200G -s -n backup_logical_volume /dev/mapper/VolGroup-lv_home
3. Check the file system integrity:
fsck -f -y -v
/dev/volume_group1/logical_volume1
Ex-
[root@server01 ~]# fsck
-f -y -v /dev/mapper/VolGroup-lv_home
fsck from util-linux-ng 2.17.2
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
2634206 inodes used
(8.06%)
62765
non-contiguous files (2.4%)
7
non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth
histogram: 2634192/4
16246730 blocks used (12.43%)
0 bad blocks
3 large files
2589225 regular
files
44972 directories
0 character
device files
0 block device
files
0 fifos
0 links
0 symbolic
links (0 fast symbolic links)
0 sockets
--------
2634197 files
4. Resize
the file system to something smaller than the final size (around 190GB in this
case):
resize2fs
/dev/volume_group1/logical_volume1 190G
This Step takes a long time to resize the volume.
Ex-
[root@server01 ~]# resize2fs /dev/mapper/VolGroup-lv_home
190G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to
49807360 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_home is now
49807360 blocks long.
5. Check
the filesystem integrity again:
fsck -f -y -v
/dev/volume_group1/logical_volume1
Ex-
fsck -f -y –v
/dev/mapper/VolGroup-lv_home
6. Reduce
the logical volume:
lvreduce -L 85G
/dev/volume_group1/logical_volume1
Ex-
[root@server01 ~]# lvreduce -L 195G
/dev/mapper/VolGroup-lv_home
WARNING: Reducing
active logical volume to 195.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 195.00 GiB
Logical volume
lv_home successfully resized
7. Resize
the filesystem to fit the logical volume:
resize2fs
/dev/volume_group1/logical_volume1
Ex-
[root@server01 ~]# resize2fs /dev/mapper/VolGroup-lv_home
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to
51118080 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_home is now
51118080 blocks long.
8.
Check the filesystem to know whether the
reduction went fine:
fsck -f -y -v
/dev/volume_group1/logical_volume1
Ex-
fsck -f -y –v
/dev/mapper/VolGroup-lv_home
9.
Check
the size of Logical Volume.
[root@server01
~]# lvs
LV VG Attr
LSize Pool Origin Data% Move Log Copy% Convert
lv_home VolGroup -wi-a--- 195.00g
lv_root VolGroup -wi-ao-- 50.00g
lv_swap VolGroup -wi-ao-- 7.84g
10.
Mount the logical volume:
mount /mnt/logical_volume1
Ex-
mount /dev/mapper/VolGroup-lv_home /home
NOTE: if you aren’t careful with the disk space you
are using and the final disk space you are going to be using, this operation
can cause data loss. I recommend to backup the logical volume before the
reduction and to use around 5GB of “safe space” while reducing the filesystem
in order to avoid data loss.
Pada bhi he apna blog..... Kuch samaj nahi aa ya
ReplyDeleteKya samajh mein nahi aaya. Sab saaf saaf to likha hai and practical karke hi likha hai.
Delete