[[en:centro:servizos:cloud|>>Back to main page]] ====== Extend VM's LVM with a new disk ====== Virtual machines created from templates usually have their file systems mounted over LVM. This allows to add more disks and to extend directly the ''/'' filesystem. You can check it with: # df -h / S.ficheros Size Used Avail Use% Mounted in /dev/mapper/Ubuntu14--vg-root 8,5G 6,3G 1,8G 79% / You'll see ''/'' in ''/dev/mapper''. In this case ''/dev/mapper/Ubuntu14--vg-root'' is a LVM logical volume named ''root'' in the volume group ''Ubuntu14-vg''. To see which physical devices belong to the volume group use: # pvs PV VG Fmt Attr PSize PFree /dev/sda5 Ubuntu14-vg lvm2 a-- 9,76g 0 In this case the volume group is formed by just one partition of disk ''/dev/sda''. A volume group can be composed of partitions and/or full disks. We will add a new disk and use it wholly without partitioning to extend the logical volume ''/dev/mapper/Ubuntu14--vg-root''. After adding a data disk in the Cloudstack interface, system should have a new unpartitioned disk available: # cat /proc/partitions major minor #blocks name 253 0 5242880 vda 11 0 1048575 sr0 8 0 10485760 sda 8 1 248832 sda1 8 2 1 sda2 8 5 10233856 sda5 252 0 9183232 dm-0 252 1 1048576 dm-1 Depending on the system, it may be necessary to reboot the VM for it to discover the new disk. Discard ''dm-0'' and ''dm-1''.''sda'' is the system disk and is already partitioned. ''sr0''is the virtual CD-ROM. So the just added disk is ''vda'' (note that it also matches in size). Once identified the new disk, the first step is to create a physical lvm volume: Is **very important** to identify correctly each disk because the name of the added disk can vary depending on the operating system installed. If you follow this instructions blindly it is possible to make irreversible damage to the VM. ** The following command is potentially damaging, so take care.**. # pvcreate /dev/vda Physical volume "/dev/vda" successfully created Then the just created physical volume is added to the volume group ''Ubuntu14-vg'': # vgextend Ubuntu14-vg /dev/vda Volume group "Ubuntu14-vg" successfully extended All the free space in the volume group is added to the logical volume: # lvextend -l +100%FREE /dev/mapper/Ubuntu14--vg-root Extending logical volume root to 13,75 GiB Logical volume root successfully resized Lastly, the filesystem in the logical volume must be resized. In our case, it can be done online because ext4 is used: # resize2fs /dev/mapper/Ubuntu14--vg-root resize2fs 1.42.9 (4-Feb-2014) Filesystem at /dev/mapper/Ubuntu14--vg-root is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/mapper/Ubuntu14--vg-root is now 3605504 blocks long. Now, the system will have the added space in ''/'': # df -h / S.ficheros TamaƱo Usados Disp Uso% Montado en /dev/mapper/Ubuntu14--vg-root 14G 6,3G 6,5G 50% / This operation can be repeated with different volumes to enlarge even more the partition space.