By tamer
It is probably not common place to find yourself hosting a Proxmox Backup Server as a Virtual Machine running within an XCP -ng Hypervisor but, that is exactly where we are today and our task is to address backup failures due to shortage of storage space on our PBS VM.
Overview
The Linux kernel’s Logical Volume Manager lets us abstract our disk partitioning. Instead of assigning our storage volumes to partitions written to a physical disk’s partition table, we flexibly apportion out space as needed. And we don’t draw upon one disk at a time, but instead, use a storage pool. That means we can grow or shrink our /usr or /var volumes if we run out of space.
In this tutorial, we’ll add a new physical disk to our storage pool (a.k.a., volume group) and use the added storage to grow our existing filesystem.
Background
The reason why we have PBS running on XCP-ng is two fold. First, whilst it is possible, it is not a good idea to keep our backups on the same physical machine where we are hosting our VM’s on a Proxmox Hypervisor server. If Proxmox goes down, then it will take PBS with it and we would be check-mated. So a different physical machine is required. Ideally we would have a dedicated server to host PBS and of course a Static IP address that goes with it… All adding to a steep set of requirements list making acquisition somewhat out of reach.
Before discovering and migrating to Proxmox, I had been happy with what evolved into a XCP-ng Hypervisor server setup, based on a HP Z800 workstation. This has been a rock solid Home-Lab and served me well for many years albeit without the security of backups – other than Snapshots on the same hardware.
I have since established a separate server on a new generation of HP Z4 G8 I picked up on a whim. This is a much more advanced system ideally suited as a Proxmox Hypervisor and I have been happily running numerous VMs on this machine for a couple of years now.
What’s covered in this article
This article shows how to extend storage space on a Proxmox Backup Server, which is essentially a variation to the Adding a Disk in LVM, where we have shown a practical approach to adding storage space to an Ubuntu server. However, PBS is not Ubuntu and LVM disk naming conventions are slightly different. We will go over the nuance and show how to extend disk space for our PBS VM – notably running under XCP-ng!

As shown in the image above, our PBS VM began with a single 512GB /dev/xvda which was marked as VDisk-0 storage device. When this became insufficient, we used the XCP-ng environment to add a second storage device VDISK-1, a further 384GB virtual disk. It is these two drives that we will be merging to extend storage space on our PBS VM.
Note that within the XCP-ng realms, storage devices are identified with an ‘x’ in front of the traditional Linux nomenclature of vda, vdb, vdc naming conventions of storage devices. So these become xvda, xvdb, xvdc and so on.. This is shown in the last column named Device path in the image above.
PuttY and Commands summary
We will be using the same tools including df, vgdisplay, lvdisplay, lsblk and other commands using commands using PuttY to SSH into our PBS server.
lvdisplay (command)
This allows us to see the Logical Volumes on our server. Note that one of the Logical Volumes created for us during installation of PBS is a SWAP volume. We simply note its’ existence but will not be making changes to it.
What’s important and will be required in subsequent stages is the VG name and LV name.
In particular, the Logical Volume assigned-name is of significance because, this ubiquitous keyword (root) can be misleading, yet we see that it is in fact the identifier of our Logical Volume…
root@pbs:~# lvdisplay pbs
--- Logical volume ---
LV Path /dev/pbs/swap
LV Name swap
VG Name pbs
LV UUID nSKo2U-QPjn-cHdG-Hw7d-arqf-4tOL-ibWzMF
LV Write Access read/write
LV Creation host, time proxmox, 2025-09-29 19:12:03 +0100
LV Status available
# open 1
LV Size 8.00 GiB
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/pbs/root
LV Name root
VG Name pbs
LV UUID ugJsDB-D6pi-qFSc-Tlpq-ot1T-vWpV-z1xy9Y
LV Write Access read/write
LV Creation host, time proxmox, 2025-09-29 19:12:03 +0100
LV Status available
# open 1
LV Size <483.00 GiB
Current LE 123647
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
VG name is pbs
LV name is root
vgdisplay (command)
root@pbs:~# vgdisplay
--- Volume group ---
VG Name pbs
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 894.99 GiB
PE Size 4.00 MiB
Total PE 229118
Alloc PE / Size 125695 / <491.00 GiB
Free PE / Size 103423 / <404.00 GiB
VG UUID HHbHVs-QnrD-yEhZ-21TF-vGoW-v3EF-9SW9c8
lsblk (command)
root@pbs:~# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT /dev/xvda
NAME SIZE TYPE FSTYPE MOUNTPOINT
xvda 512G disk
├─xvda1 1007K part
├─xvda2 1G part vfat
└─xvda3 511G part LVM2_member
├─pbs-swap 8G lvm swap [SWAP]
└─pbs-root 483G lvm ext4 /
root@pbs:~# df -hT -text4
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/pbs-root ext4 475G 451G 0 100% /
pvcreate (command)
root@pbs:~# pvcreate /dev/xvdb
Can't initialize physical volume "/dev/xvdb" of volume group "pbs" without -ff
/dev/xvdb: physical volume not initialized.
root@pbs:~#
root@pbs:~#
root@pbs:~#
root@pbs:~# pvdisplay
--- Physical volume ---
PV Name /dev/xvda3
VG Name pbs
PV Size <511.00 GiB / not usable 2.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 130815
Free PE 5120
Allocated PE 125695
PV UUID FcsTw9-JCEk-Pkj4-cBlD-4Ch1-8zNq-zUnXcq
--- Physical volume ---
PV Name /dev/xvdb
VG Name pbs
PV Size 384.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 98303
Free PE 98303
Allocated PE 0
PV UUID Fjgen7-LAJk-SWZe-pCyW-2BxO-prZV-JX1Gnl
resize (command)
root@pbs:~# lvresize --extents +95%FREE --resizefs pbs/root
File system ext4 found on pbs/root mounted at /.
Size of logical volume pbs/root changed from <483.00 GiB (123647 extents) to 866.79 GiB (221899 extents).
Extending file system ext4 to 866.79 GiB (930711863296 bytes) on pbs/root...
resize2fs /dev/pbs/root
resize2fs 1.47.2 (1-Jan-2025)
Filesystem at /dev/pbs/root is mounted on /; on-line resizing required
old_desc_blocks = 61, new_desc_blocks = 109
The filesystem on /dev/pbs/root is now 227224576 (4k) blocks long.
resize2fs done
Extended file system ext4 on pbs/root.
Logical volume pbs/root successfully resized.
root@pbs:~# h