How to resize a logical volume and a reiserfs or ext3 filesystem :
Gather information
Type df -h to list the filesystem we would like to increase.
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LVROOT 4.0G 3.4G 480M 90% /
We would like to increase the root filesystem by 500M so we need to determine if the volume group (VolGroup00) listed above has enough free space.
To do this type vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 5
Open LV 5
Max PV 0
Cur PV 1
Act PV 1
VG Size 136.42 GB
PE Size 4.00 MB
Total PE 34924
Alloc PE / Size 5760 / 22.50 GB
Free PE / Size 29164 / 113.92 GB
VG UUID efvr7g-grgf5g-V0SP-45gdf-Xber-VKzj-fg5hf
The "Free PE / Size 29164 / 113.92 GB" line shows that we have 113.92 GB free in this volume group.
Type lvdisplay to show additional information about the logical volumes on the server.
--- Logical volume ---
LV Name /dev/VolGroup00/LVROOT
VG Name VolGroup00
LV UUID fdsff5-Ma8z-8rr3-5ytgb-fht7-N37h-465yhh
LV Write Access read/write
LV Status available
# open 1
LV Size 4.00 GB
Current LE 1152
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0
Increase logical volume size
In this case we have identified /dev/VolGroup00/LVROOT as being the logical volume to be modified
The current size of the /dev/VolGroup00/LVROOT logical volume is 4G and we need to increase the size to 4.5G
The first step is to increase the logical volume and the second step to increase the filesystem
To increase the logical volume size use the lvextend command as follows
lvextend -L 4.5G /dev/VolGroup00/LVROOT
Increase the filesystem size
Then to increase the size of the filesystem to equal the new size of the LV, do one of the following depending on whether you have an reiserfs or ext3 filesystem.
To check what filesystems you are using type mount
/dev/mapper/VolGroup00-LVROOT on / type ext3 (rw)
We can see in this case we are using the ext3 filesystem
Reiserfs
resize_reiserfs /dev/VolGroup00/LVROOT
ext3
ext2online -d -v /dev/VolGroup00/LVROOT
or
resize2fs -p /dev/VolGroup00/LVROOT
Type df -k and lvdisplay to check that all is as expected
Decrease the filesystem size
ext3
We would like to decrease the size of the /home filesystem by 2GB.
First check the current size.
[root@linux1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_linux1-lv_root
50G 4.8G 42G 11% /
tmpfs 1002M 88K 1002M 1% /dev/shm
/dev/sda1 485M 29M 431M 7% /boot
/dev/mapper/vg_linux1-lv_home
20G 217M 19G 2% /home
Then resize the filesystem before resizing the LV to prevent data loss, however it is still important to backup the fileystem first.
Then try to reduce the size of the /home filesystem as follows.
[root@linux1 /]# resize2fs -p /dev/vg_linux1/lv_home 18G
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_linux1/lv_home is mounted on /home; on-line resizing required
On-line shrinking from 5267456 to 4718592 not supported.
This shows that the filesystem needs to be unmounted first.
[root@linux1 /]# umount /home
Ok lets try again.
[root@linux1 /]# resize2fs -p /dev/vg_linux1/lv_home 18G
resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/vg_linux1/lv_home' first.
We are still unable to shrink the filesystem until we run the filesystem checker e2fsck
[root@linux1 /]# e2fsck -f /dev/vg_linux1/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_linux1/lv_home: 212/1318912 files (2.8% non-contiguous), 138179/5267456 blocks
Ok lets have another go.
[root@linux1 /]# resize2fs -p /dev/vg_linux1/lv_home 18G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg_linux1/lv_home to 4718592 (4k) blocks.
Begin pass 3 (max = 161)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/vg_linux1/lv_home is now 4718592 blocks long.
Success!
Lets take a look.
[root@linux1 /]# mount /home
[root@linux1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_linux1-lv_root
50G 4.8G 42G 11% /
tmpfs 1002M 88K 1002M 1% /dev/shm
/dev/sda1 485M 29M 431M 7% /boot
/dev/mapper/vg_linux1-lv_home
18G 217M 17G 2% /home
reiserfs
The following procedure will shrink the reiserfs filesystem mounted on /logs from 20G to 10G
[root@linux1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-logs
20G 33M 20G 1% /logs
[root@linux1 /]# mount
/dev/mapper/system-logs on /logs type reiserfs (rw,acl,user_xattr)
[root@linux1 /]# umount /logs
[root@linux1 /]# resize_reiserfs -s -10G /dev/system/logs
[root@linux1 /]# mount /dev/system/logs /logs
Decrease the LV size
Ok we just need to reduce the size of the LV now.
[root@linux1 /]# lvreduce -L 18G /dev/vg_linux1/lv_home
WARNING: Reducing active logical volume to 18.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 18.00 GiB
Logical volume lv_home successfully resized
No comments:
Post a Comment