Proxmox host migration; new Home Server day


This is more of a workbook for personal reference, than a guide or an article.

Well, it’s come to that time where I’ve traded my home server for a slimmer, prettier model, and I need to migrate all my VMs. I’ve opted for an HP Microserver Gen8, which has the benefits of ECC ram (although annoyingly, it’s unregistered which fetches around 4-5 times more than ECC registered), CPU upgradeability, it is much more power efficient and much nicer to look at.

  Old New
Model Custom HP Microserver Gen8
CPU 1220v2 3.1Ghz 4 Core G1610T 2.3Ghz 2 Core
RAM 8GB (Non-ECC) 8GB ECC
HDD 120GB SSD + 500GB HDD 2 x 3TB HDD
GPU NVS310 None

Steps done

  • Backup VMs on old Proxmox host
  • Update firmware on Microserver from iLO after boot
  • Put RAID into AHCI mode
  • Install Proxmox from USB
  • Setup HDD as ZFS Mirror (2x3TB drives)
  • Change Proxmox packages to the community ones
    • add deb http://download.proxmox.com/debian/pve stretch pve-no-subscription to /etc/apt/sources.list
    • comment out the commmercial source in /etc/apt/sources.list.d/pve-enterprise.list
  • apt update && apt dist-upgrade
  • rename new Proxmox node to sequoya, as they were both named “pve”
    • /etc/hosts
    • /etc/hostname
  • Setup Linux bridges for LAN and WAN ports
  • Reboot
  • Add sequoya to cluster on the old host

Migration

  • Copy backups directly to /var/lib/vz/dumps to bring them into /local storage pool
  • Restore the VMs using the GUI, selecting local-zfs as the new storage block
  • Assign network interfaces
  • Start VMs and check
  • Setup backup routines on sequoya
  • Reduce zfs arc max size:
    nano /etc/modprobe.d/zfs.conf
    # Max 1GB
    options zfs zfs_arc_max=1073741824
    update-initramfs -u
    

Issues

Migrations between the two Proxmox hosts are not available, as we’re no longer using local-lvm on sequoya. This meant there really was no reason to add it to the cluster - if anything it made it worse, as Proxmox assumes all nodes want the same config - this also goes for the storage allocations.

Hardware migration

Next step was to swap the CPU, G1610T for an E3-1220v2. Nice and simple swap, cleaned off the old TIM with isopropyl alcohol and replaced with icy diamond.

TDP of the 1220v2 is much higher (69w) than the G1610 (35w), but it seems to sit at around 45c. I’ve changed the thermal profile in the bios to increased cooling, but I haven’t noticed any rise in fan noise from the server. The new CPU brings two more cores with a 0.9GHz base clock speed boost and VT-d which I’ll be using for GPU passthrough to my Plex VM.

Still to do

  • Add more RAM to the machine, it sits at 95% with 5VMs on ZFS.
  • Move the SSD to the new machine, maybe for ZFS ARCL2 cache?

Conclusion

  • Not sure if ZFS was the right call, RAM usage is substantially higher with it.
  • Migration was much easier than I expected, Proxmox is really smooth.

Related

PfSense DNS Resolver with PiHole DNS forwarder for network-wide ad-blocking

Configuring Unbound on PfSense as a DNS Resolver to register DHCP hostnames on localdomain and using PiHole as a DNS Forwarder to perform network-wide ad-blocking.

Setting up a Greylog server for central logging with Ansible

Learning how to use Ansible through setting up a Graylog server for centralised syslogging.

Proxmox Setup v2 - moving root onto an SSD and away from the ZFS array

Moving away from ZFS on root, and using it for the HDD array.

Migrating Docker from Digital Ocean to home

Moving my docker containers to a new host at home.

Setting up a VLAN with PfSence

A quick introduction to setting up VLANs with PfSence for a guest network.

Simulating Spin-Echo Metabolite NMR / MR Spectra with PyGamma (VeSPA)

How to simulate MR metabolite spectra with PyGamma, including binning and plotting.

Converting a BBC Micro keyboard to USB with an Arduino Micro (ATmega 32U4)

Using an Arduino to turn a BBC Micro keyboard to be USB compatible.