blog.kanedo.net

VM von TrueNAS zu Proxmox migrieren

Zuhause läuft bei mir ein kleines NAS mit TrueNAS. Die CPU ist ein kleiner Intel low-power Chip der für das NAS völlig ausreicht. Auf dem NAS lief eine kleine Ubuntu VM mit paperless-ngx (Ist ein bisschen albern, ich lasse eine VM laufen damit ich docker container laufen lassen kann aber das war der einfachste Weg paperless zum laufen zu bekommen).

Jedenfalls hab ich festgestellt, dass der Prozessor mit dem OCR von großen Dokumenten ganz schön zu kämpfen hat und dann der Durchsatz zum NAS leidet. Irgendwann hatte ich mir als Raspberry Pi Ersatz einen kleinen Dell ThinClient besorgt um darauf homeassistant et al laufen zu lassen und der hat einen deutlich besseren Prozessor. Also: Migriere ich doch die Paperless VM von TrueNAS zu Proxmox. Das war einfacher als gedacht.

Zuerst VM in TrueNAS stoppen und ein image von der virtuellen disk auf den Proxmox host kopieren:

Die Disk in TrueNAS findet man in /dev/zvol/<pool>/<zvol name> (In meinem Fall /dev/zvol/data/Virtual Machines/paperless-omu6oe)

Mittels dd und ssh ist das auch sehr komfortabel erledigt.

sudo dd if='/dev/zvol/data/Virtual Machines/paperless-omu6oe' bs=8192 status=progress | ssh marvin.fritz.box 'dd of=/root/paperless.raw bs=8192'

In Proxmox legt man eine neue UEFI VM an und löscht direkt die Festplatte die angelegt wurde. Danach importiert man das Image in eine neue disk:

qm disk import <VM-ID> paperless.raw local-lvm

Wobei local-lvm den Speicherort der Disk bestimmt. Wenn das erledigt ist, findet man in der Hardware Liste der VM eine unused disk die man einbinden kann, boot-order ändern und fertig. Die VM sollte einfach hochkommen.

In meinem Fall hatte sich (natürlich) das Netzwerkinterface geändert. Also in der Konsole sudo dhclient ens18 damit man eine IPv4 Adresse bekommen und sudo ip link ens18 up um das interface zu aktivieren und die VM war genauso wieder da wie vorher.

Glücklicherweise hatte ich das NAS eh schon per NFS eingebunden und damit musste ich da auch nichts neukonfigurieren.