Vor einer Weile schrieb ich ja schon dass mich Proxmox VE ziemlich überzeugt hat. In der Zwischenzeit habe ich nicht mehr allzu viel damit gespielt, jetzt denke ich dass ich das vielleicht einfach mal über die Feiertage zur Grundlage meines Netzes mache… ein weiser Kollege aus München (der hier vielleicht sogar bisweilen rein sieht) hat mir mal die goldenen Worte „wenn Scheiße, dann Scheiße mit Schwung“ mitgegeben… :-)

Ich habe einen zweiten Server hier der in etwa so mächtig ist wie der bestehende. Darauf habe ich ein Proxmox installiert. Die KVM-virtualisierten Systeme waren einfach. Einfach eine passende VM auf Proxmox anlegen und die Laufwerksimages austauschen. Schwieriger sind die paravirtualisierten Maschinen, da hier eine völlig andere Technik eingesetzt wird. Beim Umstieg von Linux-Vserver auf OpenVZ müssen ein paar Extra-Schritte gemacht werden. Ansatzweise ist das auch hier beschrieben, aber ich gebe mal meine eigene Erfahrung wieder.

An dieser Stelle sei kurz angemerkt: OpenVZ ist mir leicht suspekt. Proxmox wäre wesentlich sympathischer wenn es mit Vservern arbeiten würde, aber man kann nicht alles haben.

Also hier kurz ein Log, falls noch jemand vor einem ähnlichen Problem stehen sollte — oder falls ich mich in einem halben Jahr (oder Morgen… :-) ) frage wie ich das gemacht habe.

Erstmal habe ich auf dem alten Server das Root-Verzeichnis des Vservers zusammengetart. Dann auf dem Proxmox-System eine virtuelle Maschine angelegt die in etwa dem alten System entspricht (ID 103). Weiterhin gibt es einen Container mit einem einfachen Debian (ID 104, erstellt nach dem Proxmox-Template für Debian Squeeze) und eine virtuelle Maschine bei der ich bereits in der /etc/network/interfaces konfiguriert habe dass eth0 per DHCP konfiguriert werden soll.

Folgendes ist dann zu tun:

root@proxmox:/var/lib/vz/private# scp server:/mnt/system/vservers/vserver.tar .
root@proxmox:/var/lib/vz/private# tar xf vserver.tar
root@proxmox:/var/lib/vz/private# rm -rf 103
root@proxmox:/var/lib/vz/private# mv vserver 103
root@proxmox:/var/lib/vz/private# rm -rf 103/dev
root@proxmox:/var/lib/vz/private# cp -a 104/dev/ 103/
root@proxmox:/var/lib/vz/private# cp 104/etc/inittab 103/etc/
root@proxmox:/var/lib/vz/private# cp 102/etc/network/interfaces 103/etc/network/
root@proxmox:/var/lib/vz/private# chroot 103
root@proxmox:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@proxmox:/# exit

Also, was passiert hier?

  • Das Tar-File der Maschine wird vom alten Server bezogen und entpackt.
  • Die Dateien der Temporären virtuellen Maschine (ID 103) werden entsorgt und durch den Verzeichnisbaum der alten Maschine ersetzt.
  • Vserver mounten das /dev-Verzeichnis des Host-Systems, also wird das duch eine Kopie aus dem Template-System (ID 104) ersetzt.
  • Die /etc/inittab wird ebenfalls übernommen, anderenfalls fehlt ein Eintrag (1:2345:respawn:/sbin/getty 38400 tty1) der zu einer Fehlermeldung führt nach der der Init-Prozess nicht mehr weiß was er tun soll (no more processes left in this runlevel).
  • Aus ID 102 wird die /etc/network/interfaces kopiert, die enthält die Konfiguration nach der eth0 per DHCP konfiguriert werden soll.
  • Ich habe mir nie die Mühe gemacht den Vservern ein Root-Passwort zu verpassen, da ich bei Bedarf einfach per ‚vserver enter…‘ eingestiegen bin. Das muss nachgeholt werden.

Danach kann ich den Container booten, und bis jetzt sieht alles so aus als ob es funktionieren würde… falls noch was zu ergänzen ist werde ich das zu gegebener Zeit nachholen.