Increase LV vm size
Proxmox - Increase VM Disk Size Posted Oct 1, 2016 By harryvasanth 9 min read Steps These are the steps to increase the disk size of the VMs in Proxmox
Add new disk in Proxmox VE UI Partition the new disk Create a new physical device (using pvcreate) Extend the existing volume group Extend the logical volume Extend the file system (ext4 in my case) Check current storage First lets check how much space left on the VM:
root@jupyterhub:~# df -h Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 396M 11M 385M 3% /run /dev/mapper/ubuntu1604--vg-root 18G 15G 1.8G 90% / tmpfs 2.0G 4.0K 2.0G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/ubuntu1604--vg-home 20G 44M 19G 1% /home/jupyter /dev/mapper/ubuntu1604--vg-log 465M 112M 325M 26% /var/log /dev/sda1 472M 155M 293M 35% /boot tmpfs 396M 0 396M 0% /run/user/2160 Now lets see all the available disks on the system after adding a new disk through Promox VE User Interface:
root@testvm:~# fdisk -l Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x93152316
Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 999423 997376 487M 83 Linux /dev/sda2 1001470 20969471 19968002 9.5G 5 Extended /dev/sda5 1001472 20969471 19968000 9.5G 8e Linux LVM
Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 32 GiB, 34359738368 bytes, 67108864 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6B4A0899-D3D5-4771-856D-EDB254829C91
Device Start End Sectors Size Type /dev/sdc1 2048 67108830 67106783 32G Linux filesystem
Disk /dev/mapper/ubuntu1604--vg-root: 17.5 GiB, 18815647744 bytes, 36749312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ubuntu1604--vg-swap: 952 MiB, 998244352 bytes, 1949696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ubuntu1604--vg-log: 488 MiB, 511705088 bytes, 999424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ubuntu1604--vg-home: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Partitioning the new disk
As you can see the 64 GiB disk is present without any partitioning. Lets go ahead and partition that disk:
root@testvm:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.27.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.
Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x193c65a1.
Command (m for help): n Partition type
p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)
Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-134217727, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-134217727, default 134217727):
Created a new partition 1 of type 'Linux' and of size 64 GiB.
Command (m for help): p Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x193c65a1
Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 134217727 134215680 64G 83 Linux
Command (m for help): p Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x193c65a1
Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 134217727 134215680 64G 83 Linux
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. Now let’s create a new physical device with the newly partitioned disk using pvcreate and view it using pvdisplay:
root@testvm:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
root@jupyterhub:~# pvdisplay
--- Physical volume --- PV Name /dev/sda5 VG Name ubuntu1604-vg PV Size 9.52 GiB / not usable 2.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2437 Free PE 0 Allocated PE 2437 PV UUID qNCelA-nJDf-NX7Q-ZkK4-iR4M-vQho-mfFqA1
--- Physical volume --- PV Name /dev/sdc1 VG Name ubuntu1604-vg PV Size 32.00 GiB / not usable 2.98 MiB Allocatable yes PE Size 4.00 MiB Total PE 8191 Free PE 662 Allocated PE 7529 PV UUID fu3bxw-oCCH-jOh1-428b-lAQf-DCBe-E6KQiv
"/dev/sdb1" is a new physical volume of "64.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 64.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID F0FsRP-ROTm-xbMv-7I3D-E0Jh-mfBw-rM4mn4
Check current volume group Thereafter, let’s go ahead and check the current volume groups using vgdisplay:
root@testvm:~# vgdisplay
--- Volume group --- VG Name ubuntu1604-vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 12 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 4 Max PV 0 Cur PV 2 Act PV 2 VG Size 41.52 GiB PE Size 4.00 MiB Total PE 10628 Alloc PE / Size 9966 / 38.93 GiB Free PE / Size 662 / 2.59 GiB VG UUID BR84gF-JBKN-ndcp-At3G-l9UB-4CAs-KVyyta
Extend current volume group Now we can extend it using vgextend and verify it using vgdisplay:
root@testvm:~# vgextend ubuntu1604-vg /dev/sdb1
Volume group "ubuntu1604-vg" successfully extended
root@testvm:~# vgdisplay
--- Volume group --- VG Name ubuntu1604-vg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 13 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 4 Max PV 0 Cur PV 3 Act PV 3 VG Size 105.51 GiB PE Size 4.00 MiB Total PE 27011 Alloc PE / Size 9966 / 38.93 GiB Free PE / Size 17045 / 66.58 GiB VG UUID BR84gF-JBKN-ndcp-At3G-l9UB-4CAs-KVyyta
Thereafter, lets go ahead and check the logical volumes using lvdisplay:
root@testvm:~# lvdisplay
--- Logical volume --- LV Path /dev/ubuntu1604-vg/swap LV Name swap VG Name ubuntu1604-vg LV UUID 0SYO9N-bAdU-vfGR-soF1-vvcp-Bg8v-EPrJEL LV Write Access read/write LV Creation host, time ubuntu1604, 2017-06-27 15:12:58 +0100 LV Status available # open 2 LV Size 952.00 MiB Current LE 238 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1
--- Logical volume --- LV Path /dev/ubuntu1604-vg/log LV Name log VG Name ubuntu1604-vg LV UUID fXp0kR-TYBp-mdiS-sYXd-ja2S-dABf-ThjEf0 LV Write Access read/write LV Creation host, time ubuntu1604, 2017-06-27 15:13:14 +0100 LV Status available # open 1 LV Size 488.00 MiB Current LE 122 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2
--- Logical volume --- LV Path /dev/ubuntu1604-vg/root LV Name root VG Name ubuntu1604-vg LV UUID WwteZj-vPhz-3iNC-26Dg-Ju36-o6xe-75WRto LV Write Access read/write LV Creation host, time ubuntu1604, 2017-06-27 15:13:50 +0100 LV Status available # open 1 LV Size 17.52 GiB Current LE 4486 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0
--- Logical volume --- LV Path /dev/ubuntu1604-vg/home LV Name home VG Name ubuntu1604-vg LV UUID OQHBcC-aEeD-ePLq-ezMU-3OgV-JPyn-2yarKe LV Write Access read/write LV Creation host, time ubuntu1604, 2017-09-27 12:16:53 +0100 LV Status available # open 1 LV Size 20.00 GiB Current LE 5120 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:3
Extend the root volume Lets extend the root volume by 10 GiB using lvextend:
root@testvm:~# lvextend --resizefs -L+10G /dev/ubuntu1604-vg/root
Size of logical volume ubuntu1604-vg/root changed from 22.52 GiB (5766 extents) to 32.52 GiB (8326 extents). Logical volume root successfully resized.
resize2fs 1.42.13 (17-May-2015) Filesystem at /dev/mapper/ubuntu1604--vg-root is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/mapper/ubuntu1604--vg-root is now 8525824 (4k) blocks long. Allocate entire disk space to the volume In case we want the entire disk space to extended you can simply assign 100% of the free space.
root@testvm:~# lvextend --resizefs -l +100%FREE /dev/ubuntu1604-vg/root