Proxmox

From Bitpost wiki
Revision as of 00:08, 31 October 2022 by M (talk | contribs) (→‎Shrink)

Available VM Types

  • Place ISOs in /var/lib/vz/template/iso
  • To upload via Proxmox web ui:
Storage View > Datacenter > melange > local > (you might have to hit refresh now!) > ISOs > Upload

VM Installation

  • VM install from ISO
    • When you first boot an ubuntu iso, it will behave like an installation thumb drive.
    • Install to the only available drive of the VM (/dev/sda). Proxmox is smart enough to allow this. The install ISO ends up as a DVD drive.
    • Once VM install is completed, remove the DVD:
      • sudo umount /dev/sf0 (or whatever)
      • Proxmox > (VM) > hardware > DVD > remove
      • Proxmox > (VM) > shutdown, then start

Changing VM disk size

Grow

Increase is fairly easy:

  • (VM) > Hardware > Hard Disk > Resize disk > Add number of GB to increase
  • Update the ubuntu filesystem (if you didn't use LVM (which is basically useless))
sudo parted /dev/sda # use the right one, obv!
  print # to get partition list
  resizepart 2 # use the right one, obv!
  End?  100%
sudo resize2fs /dev/sda#

For a macOS VM, thenickdude has notes.

If you used LVM in ubuntu (stop doing that!), you have to do all this:

sudo su -
parted -s -a opt /dev/sda "print free" # see existing partitions
parted -s -a opt /dev/sda "print free" "resizepart 3 100%" "print free" # resize partition to fill space
pvresize /dev/sda3 # to get the LVM resized to the partition
lvdisplay
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # to resize the logical volume
resize2fs /dev/ubuntu-vg/ubuntu-lv
Shrink

Shrinking is also possible but VERY painful and VERY hard to find instructions, took a lot of trial and horror...

  • Add CD > choose gparted live cd > boot with it, shrink partition
  • Stop the VM, remove the CD
  • ssh melange # and massage the disk there
sudo su -
lvdisplay | grep "LV Path\|LV Size"
qemu-img info /dev/pve/vm-105-disk-0
# DO NOT RESIZE DIRECTLY, it fucks the disk: qemu-img resize -f raw vm-105-disk-0 -210G
# FYI THIS ALSO FUCKED THE DRIVE: lvreduce -L 40G /dev/pve/vm-105-disk-0
# i think that is ONLY FOR LVM DISKS
mount /spiceflow/bitpost/
qemu-img convert vm-105-disk-0 /spiceflow/bitpost/softraid/backup/vm-105-disk-0.raw
qemu-img resize -f raw /spiceflow/bitpost/softraid/backup/vm-105-disk-0.raw --shrink -200G
  Image resized.
# DO NOT DO THIS it will FUCK THE DISK: # qemu-img convert -p -O qcow2 /spiceflow/bitpost/softraid/backup/vm-105-disk-0.raw vm-105-disk-0
# now just copy it back over itself!  weird but it works
cp /spiceflow/bitpost/softraid/backup/vm-105-disk-0.raw --shrink -200G
  • edit 105.conf and reduce disk to the proper size (not sure if that's just so the GUI looks correct?)
emacs /etc/pve/nodes/melange/qemu-server/105.conf

Changing VM CPU allocation

  • Navigate to (VM) > Hardware > Processors
  • Adjust core count. Overallocation is a very good idea. CPU cores will be used only as threads need them. I've read that some shops successfully overallocate by a factor of 20:1. With our 12 Ryzen 9 cores, that means we would allocate 120 total cores to our VMs(!). Don't do that, ha.
  • Stick with 1 socket (that's just for sizing to match any paid licensing)

VM remote desktop display

I'm using SPICE for a full responsive 4k UI on other thin(ner) clients.

Proxmox config

Storage
CIFS

To mount a samba share as proxmox storage:

proxmox UI > Server view > Datacenter > Storage > Add > CIFS > enter fields

Remember to set Content Type to include the things you will place there.

Backups
  • I am backing up to softraid/backup on bitpost. Proxmox puts files here:
/spiceflow/softraid/backup/dump/vzdump-qemu-103-2022_03_24-09_15_59.vma.zst
  • I am currently keeping 1 backup and 1 "weekly" backup. Odd, but you configure that in Storage:
proxmox UI > Server view > Datacenter > Storage > bitpost-backup > Edit > Backup Retention tab

It's a bit confusing, this tool helps a lot!

Configuration:

  • I set up a dedicated CIFS share for that on bitpost, named backup.
  • I added a Storage that uses it, and set 'VZDump backup file' as the Content Type.
  • From there, it's easy to configure VM backups.
proxmox UI > Server view > Datacenter > Backup > Add

I don't want to try to back up my massive FreeNAS data! So select "Exclude VMs" and check hive/104.

  • If something goes wrong, you can kill the backup task from a terminal:
 🌐 m@melange  [~] ps ax|grep vz
 🌐 m@melange  [~] sudo kill -9 #pid#
# this may cause "VM is locked (backup)" - to fix that:
sudo qm unlock 101
  • You can watch the backup job logging in the proxmox system log:
sudo tail -f /var/log/syslog 
...
Mar 24 09:23:01 melange pvedaemon[21327]: INFO: Finished Backup of VM 103 (00:07:02)
Mar 24 09:23:01 melange pvedaemon[21327]: INFO: Starting Backup of VM 105 (qemu)
...
debian

I had debian apt-get stop working due to distro changes. Run this to fix it:

ssh melange
sudo apt-get --allow-releaseinfo-change update

Proxmox Installation

  • In BIOS, enable SVM (cpu virtualization) (you need a modern AMD or Intel chipset)
  • Get the latest proxmox release ISO, dd it to a thumb drive (use Flash_Drives SAM 64 EVO)
  • Boot and install onto the primary drive over any existing OSes
  • During install, use ext4
    • I deemed ZFS too fancy, it's basically software raid, and troublesome according to some
  • Create a user and use ssh key (NOTE you might want to keep some root terminals open so you don't screw up and get locked out!):
apt install sudo
adduser m
visudo # and allow m to sudo
nano /etc/ssh/sshd_config # and turn off password login, root login
su - m
# set up ssh keys
# in another terminal, test:
ssh melange
  • Fix the fucking default proxmox apt repo from "enterprise" to "no-license". BTW, they say it's not well tested, and you better pay for a subscription and get a key for the "better" repo. Cmon you all that is utter bullshit...
# Either delete /etc/apt/sources.list.d/pve-enterprise.list file or comment all lines in this file with #.
emacs -nw /etc/apt/sources.list.d/pve-no-subscription.list
deb http://download.proxmox.com/debian/pve buster pve-no-subscription