Saturday, October 26, 2019

Virtualise a running legacy physical Linux server (P2V)

problem: You have a legacy physical Linux server, live in production, that you would like to virtualise (P2V) with near zero downtime?

My goal was to take a physical Linux P node running live-production and virtualise it. Primarily so the physical hardware could be repurposed as a hypervisor or retired. I didn't want to create and allocate multi terabyte disks that were present in the P partition table, nor have to use md raid in the V guest which the P node was using, because the target hypervisor (Proxmox 5) used ZoL/ZFS. I also wanted to mitigate downtime/reboots on the running P node as it was busy performing production tasks.

solution: I have documented the steps I took without using specific P2V tools

After researching multiple ways of solving this problem, I documented my steps on server fault.

There were multiple questions on the Stack Exchange network and some of the answered helped but there wasn't really an end to end guide on the process, at least not for my circumstances and goals. So after documenting and running my own steps, I posted the answer for others to use as a reference.

Check the answer on server fault for the details: https://serverfault.com/a/988703/64325.

Once I had successfully V'ed the P node, and had the V node running in my Proxmox PVE lab, I also posted my steps for repurposing the P node as a Proxmox hypervisor. This was a little tricky but with tips from the Proxmox forum I was able to make a clean Proxmox install with native ZoL/ZFS via network booted rescue image on the Hetzner service provider.
It was then possible to take a backup of the V node and transfer it to the new hypervisor and restore it with qmrestore.

Everything worked as hoped in the end. In the journey I had refreshed on some Linux knowledge and picked up a few new techniques. I had successfully repurposed the P node as a hypervisor and had the legacy Linux node running as a V in the new hypervisor. All with near zero downtime to production.

citation:

Props to:
Various Q&A authors @ the Stack Exchange network.
Various post authors @ Proxmox forums.
The various wiki authors @ the Proxmox wiki page for Migration of servers to Proxmox VE.
I also cited some useful links in my answer on server fault.

Firefox instances using profiles are grouped in a single group

problem: Windows from separate Firefox instances using profiles are grouped in a single group on the taskbar 

Lets say you have 3 Firefox profiles (about:profiles), or 3 portable Firefox instances, and you have the separate instances all running at the same time. I had the issue that all the windows from the various profile instances were grouped into a single group on the task bar, and I could not find a way to un-group them.

Until recently I've been primarily been a Chrome user, so I was used to separate profile instances having their own taskbar group. Excessive CPU/resource utilisation aka fan noise and less battery have pushed me back towards Firefox.

impact: hard to know which windows relate to which profile

This problem impacts productivity and increases frustration because you've no immediate idea which windows relate to which profiles. If you're like me and like to keep certain topics clean and separate, like work and private life, and various project work, this is a major issue.

solution: there is a config tweak workaround

There was an official bug fix for this issue titled "No way to un-group separate instances on Windows 7 TaskBar". It took me at least an hour of research to find and get this setting working after a number of dead ends, so sharing it here.
  1. Open about:config
  2. change browser.startup.blankWindow and the value to false.
  3. Right click "new" > "boolean"
  4. When prompted set the name to taskbar.grouping.useprofile and the value to true.
  5. Restart Firefox
Note that the new setting does not use the browser. prefix.

citation:

Props to:
ptsampoukas @ MozillaZine forums for pointing me in the right direction.