If you want to install Proxmox on a USB, for example 16gb stick that “should” be possible
Mainly this is for if you want to use shared storage between multiple nodes and node’s dont store VM data.
Things to do and watch for
Things you need to be careful with. Filling up your root drive. using local storage for example ISO images.
For ISO images use a NFS server.
Example Lab-enviroment
Install
For this im using proxmox 9, installer can be grabbed from https://proxmox.com/en/downloads, In a test vm in proxmox 9 (inception :3)
Install can be done with Proxmox defaults, Just enter a password, usbstick, and IP.
disk space reclamation
After install you see that your original disk is split in to multiple lvm
swap can be also remove since the usb is probably (incredibly slow).
A: use no swap
B: zram swap
can be used instead of normal swap.
DATA: This is the VM data portion normally configured on proxmox. We arent going to use this since our vmdata is going to be on shared storage.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 15.5G 0 part
├─pve-swap 252:0 0 1G 0 lvm [SWAP]
├─pve-root 252:1 0 7.2G 0 lvm /
├─pve-data_tmeta 252:2 0 1G 0 lvm
│ └─pve-data 252:4 0 5.2G 0 lvm
└─pve-data_tdata 252:3 0 5.2G 0 lvm
└─pve-data 252:4 0 5.2G 0 lvm
root@pve-test:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data pve twi-a-tz-- 5.24g 0.00 1.57
root pve -wi-ao---- <7.25g
swap pve -wi-ao---- 1.00g
- Lets first go to Datacenter > Storage
We are going to remove the local-lvm from all nodes (If a node needs local-lvm we can leave it to that node if necessary) - Got to Node > Disks > LVM-Thin
Delete the data lvm-thin pool, we arent going to use this.
The remove command will give an error (volume group ‘pve’ still in use) but will still remove it, so we can ignore the error. - using command
vgdisplaywe can see that now there is free space to expand.
Then with lvextend we can increase the size of the logical volume.
root@pve-test:~# lvextend -l +100%FREE /dev/pve/root
Size of logical volume pve/root changed from <7.25 GiB (1855 extents) to <14.50 GiB (3711 extents).
Logical volume pve/root successfully resized.
4. Then we can use good old resize2fs to increase the filesystem size
root@pve-test:~# resize2fs /dev/mapper/pve-root
resize2fs 1.47.2 (1-Jan-2025)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/pve-root is now 3800064 (4k) blocks long.
root@pve-test:~# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-root 15G 3.4G 11G 25% /