Not too ancient Linux distrubutions use LVM even when installed on RAID array (I used to mistake LVM for RAID some time ago). The multitiered construction becomes a bit overcomplicated: you use RAID to merge hard drives into one logical drive, which is split into partitions, which are then merged into logical volumes. What should we do to grow our root file system onto new hard drives when the RAID size is not enough anymore?
Firstly, insert the new drives into the slots and then use hpacucli
utility to check that they are recognized now:
hpacucli ctrl all config show
New drives should appear in the 'unassigned' section. Now, merge them into the existing array:
hpacucli ctrl slot=1 array A add drives=allunassigned
Now, wait till RAID finishes the work. It may take some hours. When it's over, attach these drives to an existing logical drive:
hpacucli ctrl slot=1 ld 1 modify size=max
If you try to run fdisk/gdisk
now, you will not see the free space, because it was not available to the operating system during the boot time. You'll have to reboot. After reboot, use fdisk
or gdisk
to create a new partition on the free disk space. The partition must be assigned type 8E00 (Linux LVM). The operating system will not recognize the new partition immediately. You may try using partprobe
command, but I preferred to reboot once again.
Next, you have, in sequence, to create LVM physical volume, extend LVM volume group onto the new volume and extend LVM logical volume to use the free space:
pvcreate /dev/cciss/c0d0p3
vgextend VolGroup00 /dev/cciss/c0d0p3
lvextend -l+429214 /dev/mapper/VolGroup00-LogVol01
To determine the sector number you will use in lvextend
command, find the information about free physical extents in the output of vgdisplay
:
vgdisplay |grep Free
Free PE / Size 429214 / 1.64 TiB
And, finally, grow the file system. If you are conservative enough to use the default ext4 system, you can do this using:
resize2fs -p /dev/mapper/VolGroup00-LogVol01
Very userful post, thanks!
ReplyDeletebtw, "hpacucli ctrl all config show" should be "hpacucli ctrl all show config"