Ein Umzug einer kompletten Installation von Proxmox auf größeren Datenträger

Bei mir war eine größere SSD für den Proxmoxserver fällig da sich die drei virtuellen Maschinen plus ein paar Container als zu umfangreich erwiesen haben für die bisherige 120 GB SSD. Die Symtome dafür sind bei Proxmox immer, dass die virtuellen Maschinen und teilweise auch die Container wegen Ressourcenmangel hängen bleiben und sich nicht mehr starten lassen. Zunächst dachte ich man könnte einfach das Image mit dd auf die neue SSD ziehen und die neue SSD einfach umpartitionieren und mit größerem Swap versehen (bei der Gelegenheit hat die Kiste auch mehr RAM bekommen). Leider war das dank der LVM-Struktur von Proxmox überhaupt nicht so möglich sondern Proxmox musste neu installiert werden. Die ganzen Container und virtuelle Maschinen wollte ich jedoch auf die neue Hardware retten.

Zunächst wurden von allen Containern und virtuellen Maschinen zur Sicherheit lauffähige Backups gemacht und danach Proxmox frisch auf der neuen SSD installiert. Eine neue Installation aller virtuellen Maschinen und Container hätten mich tagelange Arbeit gekostet aber eine Suche hat gezeigt das dies unnötig ist da die Struktur der Images und Systemeinstellungen recht übersichtlich im Dateisystem des Hostrechners ist und das ganze Unterfangen im Grunde mit scp zu erledigen ist.

Dazu wird die neue SSD im Proxmox-Server eingebaut und gebootet. Die alte SSD wird über ein USB-Kabel an einen anderen Rechner angeschlossen und gemoutet. Die ganzen relevanten Dateien finden sich unter /var/lib/vz auf der alten SSD und diese kann man simple mit scp auf den neuen Datenträger verschieben. Das Verzeichnis ist releativ übersichtlich und sieht bei mir folgendermaßen aus:

var/lib/vz# tree
.
├── dump
│   ├── vzdump-lxc-100-2023_12_13-01_52_45.log
│   ├── vzdump-lxc-100-2023_12_13-01_52_45.tar.zst
│   ├── vzdump-lxc-100-2023_12_13-01_52_45.tar.zst.notes
│   ├── vzdump-lxc-103-2023_12_13-01_56_04.log
│   ├── vzdump-lxc-103-2023_12_13-01_56_04.tar.zst
│   ├── vzdump-lxc-103-2023_12_13-01_56_04.tar.zst.notes
│   ├── vzdump-lxc-104-2023_12_13-01_58_56.log
│   ├── vzdump-lxc-104-2023_12_13-01_58_56.tar.zst
│   ├── vzdump-lxc-104-2023_12_13-01_58_56.tar.zst.notes
│   ├── vzdump-lxc-105-2023_12_13-02_01_38.log
│   ├── vzdump-lxc-105-2023_12_13-02_01_38.tar.zst
│   ├── vzdump-lxc-105-2023_12_13-02_01_38.tar.zst.notes
│   ├── vzdump-lxc-106-2023_12_13-02_03_47.log
│   ├── vzdump-lxc-106-2023_12_13-02_03_47.tar.zst
│   ├── vzdump-lxc-106-2023_12_13-02_03_47.tar.zst.notes
│   ├── vzdump-lxc-110-2023_12_13-02_05_52.log
│   ├── vzdump-lxc-110-2023_12_13-02_05_52.tar.zst
│   ├── vzdump-lxc-110-2023_12_13-02_05_52.tar.zst.notes
│   ├── vzdump-qemu-101-2023_12_13-02_11_55.log
│   ├── vzdump-qemu-101-2023_12_13-02_11_55.vma.zst
│   ├── vzdump-qemu-101-2023_12_13-02_11_55.vma.zst.notes
│   ├── vzdump-qemu-102-2023_12_13-02_18_23.log
│   ├── vzdump-qemu-102-2023_12_13-02_18_23.vma.zst
│   ├── vzdump-qemu-102-2023_12_13-02_18_23.vma.zst.notes
│   ├── vzdump-qemu-107-2023_12_15-12_10_57.log
│   ├── vzdump-qemu-107-2023_12_15-12_10_57.vma.zst
│   └── vzdump-qemu-107-2023_12_15-12_10_57.vma.zst.notes
├── images
│   ├── 100
│   │   └── vm-100-disk-0.raw
│   ├── 101
│   │   └── vm-101-disk-0.raw
│   ├── 102
│   │   └── vm-102-disk-0.raw
│   ├── 103
│   │   └── vm-103-disk-1.raw
│   ├── 104
│   │   └── vm-104-disk-1.raw
│   ├── 105
│   │   └── vm-105-disk-1.raw
│   ├── 106
│   │   └── vm-106-disk-1.raw
│   ├── 107
│   │   └── vm-107-disk-0.raw
│   └── 110
│   └── vm-110-disk-1.raw
├── private
├── snippets
└── template
├── cache
│   ├── debian-11-standard_11.3-1_amd64.tar.zst
│   ├── debian-11-standard_11.6-1_amd64.tar.zst
│   └── debian-11-standard_11.7-1_amd64.tar.zst
└── iso
├── debian-11.6.0-amd64-netinst.iso
├── debian-12.1.0-amd64-netinst.iso
├── gparted-live-1.4.0-6-amd64.iso
├── openmediavault_6.0.24-amd64.iso
└── pfSense-CE-2.6.0-RELEASE-amd64.iso

17 directories, 44 files

Damit wäre die komplette Proxmox-Installation überspielt. Die Konfigurationsdateien für die ganzen Virtualisierungen auf Proxmox-Ebene liegen übrigens unter /etc/pve und dort finden sich in den Unterverzeichnissen nodes/<Name Proxmoxserver>/lxc die Container und unter nodes/<Name Proxmoxserver>/qemu-server/ die virtuellen Maschinen. Beide werden ebenso auf die Ziel-SSD kopiert.

Bei meiner Aufgabenstellung war es notwendig die Partitionen der virtuellen Maschinen zu ändern. Wie man das macht folgt in einem weiteren Blogbeitrag.

Nun sollten allen Virtualisierungen sauber starten.

kais-universum.de