Xen? KVM? LXC? Oder gar systemd-nspawn? In der Schule drehen wir uns bezüglich der Virtualisierungsbasis für unsere Cloud hübsch im Kreis. Aktuell neige ich LXC zu, musste aber bei meinen ersten Gehversuchen einige Schläge einstecken: Restricted Container zickten, Debian Jessie Container auf Ubuntu 16.04 als Wirt ebenfalls, das Netzwerk-Setup war fummelig und die Namensauflösung in den Containern selbst immer wieder „einfach weg“ …
Also das schlechte Wetter heute mal sinnvoll genutzt und einen ganz anderen Weg beschritten: nicht wie sonst per Shell gearbeitet, sondern heute mal per Oberfläche gefummelt und mir Proxmox näher angesehen. Geht flott und funktioniert zügig. Hier eine kurze Doku.
Im Hetzner installimage das aktuelle Debian auswählen – hier: Jessie. Setup durchführen, Updates installieren, neu booten und dann an die Arbeit.
Hinweis für die Partitionierung: Die LXC-VMs werden später unter /var – genauer: /var/lib/vz/images – liegen.
echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" >> /etc/apt/sources.list
wget -O - http://download.proxmox.com/debian/key.asc | apt-key add -
apt-get update
apt-get upgrade
apt-get dist-upgrade
uname -a
reboot
Ich habe mir dann „die volle Packung Proxmox“ installiert:
apt-get install proxmox-ve ssh postfix ksm-control-daemon open-iscsi systemd-sysv mailutils
Nach einem erneuten Reboot zeigte ein uname -a nun
Linux hostname 4.4.59-1-pve #1 SMP PVE 4.4.59-87 (Tue, 25 Apr 2017 09:01:58 +0200) x86_64 GNU/Linux
Also frisch in Proxmox unter https://server.domain:8006 mit dem PAM Account für root angemeldet und dort eine neue VMBR0 angelegt, die erst einmal unkonfiguriert blieb.
Reboot. Proxmox übernimmt sonst die Änderungen nicht.
Dann das restlichen Netzwerk-Setup von Hand erledigt.
Die Basis-IP des Server war
78.78.78.82
Dazu kamen zwei über den Robot zusätzlich bestellte IPs
78.78.78.86
78.78.78.90
Es ergab sich damit für /etc/network/interfaces diese Konfiguration:
auto lo
iface lo inet loopback
iface lo inet6 loopback
# ETH0
auto eth0
iface eth0 inet static
address 78.78.78.82 # Server Basis IP
netmask 255.255.255.255 # Netzmaske neu gesetzt
gateway 78.78.78.65 # wird von Hetzner mitgeteilt
pointopoint 78.78.78.65 # PTP auf das Gateway
# VMBR0
auto vmbr0
iface vmbr0 inet static
address 78.78.78.82 # Server Basis IP
netmask 255.255.255.255 # Netzmaske neu gesetzt
bridge_ports none
bridge_stp off
bridge_fd 0
up ip route add 78.78.78.86/32 dev vmbr0 # erste VM mit erster Zusatz-IP
up ip route add 78.78.78.90/32 dev vmbr0 # zweite VM mit zweiter Zusatz-IP
# IPv6 Config
iface eth0 inet6 static
address 121:121:121:121::2
netmask 128
gateway fe80::1
up ip -6 route add default via fe80::1 dev eth0
up sysctl -p
iface vmbr0 inet6 static
address 121:121:121:121::2
netmask 64
Für jede weitere IP, die im vorliegenden Fall noch kommen mag, muss man für die VMBR0 eine Zeile ergänzen. Ich denke, das Schema ist nachvollziehbar. Die restliche IP-Konfiguration läuft über Proxmox direkt (siehe unten).
Es folgt die Anpassung von /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
net.ipv6.conf.all.forwarding=1
Reboot.
Und ab jetzt geht es klickend in Proxmox weiter. Zuerst zieht man sich die benötigten Templates (hier: für Ubuntu und Debian). Dann legt ein Klick auf das entsprechende Icon die erste VM als LXC an. Der erste Container erhält als IP im hier vorliegenden Fall
78.78.78.86/32
und für seine Gateway-Adresse die Basis-IP des Servers:
78.78.78.82
Der Rest – also die Ressourcenzuteilung usw – war für die Testmaschinen dann eine Geschmacksfrage.
Die Verwaltung (Softwareinstallation etc.) der einzelnen VMs nahm ich lieber direkt auf dem Wirt vor. Da reagiert die Shell einfach zügiger als jedes Frontend. Ein
lxc-attach -n 100
bindet den zuerst erzeugten LXC an die Rootshell.
Ein internes Netzwerk, über das die VMs untereinander sprechen können, ist auch schnell eingerichtet: Auf dem Host oder auch über Proxmox in die /etc/network/interfaces
auto vmbr1
iface vmbr1 inet static
address 10.16.1.0
netmask 255.255.0.0
bridge_ports none
bridge_stp off
bridge_fd 0
Reboot und in Proxmox dann der jeweiligen Maschine eine neue Netzwerkkarte (eth1) geben, die an die vmbr1 gebunden wird, passende IP und Netzmaske setzen – voila.
Erste Messungen mit iperf geben so um die 55 Gbit/sec.
Erstes Ergebnis:
- Netzwerksetup, Einrichtung, Verwaltung laufen rund und zügig ab
- Die Templates für Proxmox kommen ziemlich „dick“ mit Software ausgestattet daher. So würde ich diese ungern als Basis für eigene VMs nutzen