Live Chat Software by Kayako |
How to resize volumes with LVM
Posted by Bill Williams on 23 December 2014 11:10 AM
|
|
Quick tips:
Before you begin:
Example 1: add 10GB to "/" (root) partition Add 10GB to "root" volume: lvresize -L +10G /dev/VolGroup00/root
Resize the filesystem that resides on that volume: resize2fs /dev/VolGroup00/root Note: resize2fs may take a while to expand the file system on a large volume, so you may want to open a second terminal and monitor the progress with the following command: watch df -h Disable all swaps: swapoff -a
Set swap partition size to 16GB:
lvresize -L 16G /dev/VolGroup00/swap
Resize the swap area to use new volume size: mkswap /dev/VolGroup00/swap Enable all swaps:
swapon -a
Example 3: create a new volume "data" of 5GB and mount it as "/data"
Create the mount point: mkdir /data Create the volume: lvcreate -L 5G -n data VolGroup00 Create the filesystem: mkfs.ext3 /dev/VolGroup00/data Add the following line to your /etc/fstab: /dev/VolGroup00/data /data ext3 defaults 0 2 Mount the volume: mount /data Example 4: reducing size of existing volume "test" IMPORTANT: 1. Reducing volume size CAN NOT be performed while file system is mounted and may take a LONG time. 2. You will need to boot from a Rescue CD in order to be able to reduce the size of a volume which holds root file system. 3. Improper reduction of a volume size WILL DESTROY YOUR DATA. Make sure you have a good backup and plenty of downtime scheduled, as it may take a while to shrink a filesystem. You have been warned: proceed at your own risk. First, make sure the file system has enough free space so it can be reduced: root@server:~# df -h /test/
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-test 5.0G 139M 4.6G 3% /test Note that even empty file system will use some space: 139M in our case. Proceed to unmount the file system. root@server:~# umount /test
Run a filesystem consistency check. This may take a while. root@server:~# fsck -f /dev/VolGroup00/test e2fsck 1.41.11 (14-Mar-2010)
Find out file system block sizePass 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/mapper/VolGroup00-test: 11/327680 files (0.0% non-contiguous), 55935/1310720 blocks root@server:~# tune2fs -l /dev/VolGroup00/test | grep 'Block size'
Block size: 4096 Double check the minimum file system size in blocks: root@server:~# resize2fs -P /dev/VolGroup00/test
resize2fs 1.41.11 (14-Mar-2010) Estimated minimum size of the filesystem: 34477 In this example, the minimum logical volume size required is: 34477*4096 = 141217792 bytes. Here, you can make calculations to figure out what your file system final size should be, proceed with caution. It is much safer to shrink a file system to its minimum size instead. Depending on the current file system size, usage and layout, this may take a LONG time. root@server:~# resize2fs -M /dev/VolGroup00/test
resize2fs 1.41.11 (14-Mar-2010) Resizing the filesystem on /dev/raid1/test to 34477 (4k) blocks. The filesystem on /dev/raid1/test is now 34477 blocks long. MAKE SURE THAT YOUR PLANNED NEW VOLUME SIZE IS GREATER THAN THE SIZE OF THE FILESYSTEM. Keep in mind that LVM allocates space to volumes on Physical Extent (PE) granularity, so you may not be able to get the exact size you want. root@server:~# vgdisplay
--- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 44 VG Access read/write VG Status resizable MAX LV 0 Cur LV 20 Open LV 20 Max PV 0 Cur PV 1 Act PV 1 VG Size 930.50 GiB PE Size 4.00 MiB Total PE 238207 Alloc PE / Size 212966 / 831.90 GiB Free PE / Size 25241 / 98.60 GiB VG UUID LazRIZ-d8rU-2bwB-uI7o-6Amt-BH0w-oFxNh In our example, PE size is 4MB, we will have to round up the planned volume size to next larger multiple of 4. Just to be on a safe side, we strongly recommend you adding some extra "padding", so in this example we will shrink the volume down to 200M, which is greater than BOTH 139M used as reported by df and 141M as calculated in blocks. root@server:~# lvresize -L 200M /dev/VolGroup00/test
WARNING: Reducing active logical volume to 200.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce test? [y/n]: y Reducing logical volume test to 200.00 MiB Logical volume test successfully resized Now, grow the file system to use all of the space available in a logical volume: root@server:~# resize2fs /dev/VolGroup00/test
resize2fs 1.41.11 (14-Mar-2010) Resizing the filesystem on /dev/VolGroup00/test to 51200 (4k) blocks. The filesystem on /dev/VolGroup00/test is now 51200 blocks long. Mount the file system and check the new size: root@server:~# mount /dev/VolGroup00/test /test
root@server:~# df -h /test Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-test 196M 131M 56M 71% /test | |
|
Comments (0)