Wie wir PCS6 mit Kickstart und geringer Downtime installierten

Auf unserer Managed Hosting Plattform setzt SysEleven bei der Virtualisierung der Betriebssysteme auf Virtuozzo. Die Software ist quasi die Enterprise-Edition der bekannten Open Source Lösung OpenVZ. Als klar wurde, dass Virtuozzo 4.7 im September 2018 keine Sicherheit-Updates mehr bekommen würde und damit für uns end of life gehen muss, haben wir uns im April mit Hochdruck an die Arbeit gemacht. Zu diesem Zeitpunkt lief Virtuozzo 4.7 allerdings bei uns “lediglich” auf 80 bare metal Servern, vollgepackt mit Kunden-VEs. Die Aufgabe war klar: Wie schaffen wir es in der Zeit, die 80 Server aufs neue Betriebssystem zu ziehen, ohne unseren Biorhythmus komplett auf “nachtaktiv” umzuswitchen?

 

Die erste gute Nachricht war aber schnell gefunden: Das Containerformat hatte sich nicht geändert zwischen 4.6 und PCS6, so dass Container weiter migriert werden konnten. Mit der guten Info im Rücken setzte sich unsere Kollegin Anna an die Evaluation der Möglichkeiten. Die erste wurde unter der bisherigen Annahme getroffen, dass nur leere Server mit dem neuen Betriebssystem bespielt werden können, um die Container anschließend zu migrieren: Wir installieren Schritt für Schritt. Schließlich hatten wir nicht mal eben 80 weitere und ungenutzte Server rumstehen. Diese Option hätte eine Menge händischer Arbeit und Zeit bedeutet – weshalb sie direkt verworfen wurde und wir uns für die folgende Option entschieden.

Die neue Lösung: Das Inplace-Upgrade von Virtuozzo nehmen und besser machen.

Virtuozzo bot uns von Haus aus die Option eines Inplace-Upgrades an. Dafür gibt es eine Partition im Virtuozzo Betriebssystem mit dem Namen „/vz“, in der alle Containerdaten gespeichert werden. Der Ansatz des Inplace-Upgrades von Virtuozzo sieht also vor, ein neues Betriebssystem zu installieren und dem Installer gleichzeitig zu sagen, die /vz-Partition unangetastet zu lassen. Viele kennen dieses Prinzip vielleicht, wenn sie ihre Linux-Distribution neu installieren aber ihr Homeverzeichnis mit sämtlichen Daten behalten wollen.

 

Wir wollten den Vorschlag von Virtuozzo nutzen, mussten aber feststellen, dass wir in diesem Falle für jede Neuinstallation das Boot-Menü hätten durchklicken müssen. Das bereitgestellte Tooling war nicht automatisiert angeboten. Die Kollegen bei SysEleven sind aber keine Toil-Fans, so dass wir einen neuen Automatisierungs-Weg dafür finden wollten. Da wir ohnehin schon Kickstart zur Automatisierung unserer Installationen verwenden, war die Wahl nicht schwer. Mit Kickstart lassen sich grundlegende Konfigurationen wie Partitionierung oder die Auswahl von Softwarepaketen bereits bei der Installation automatisieren.

 

Schlussendlich haben wir also den Ansatz des Inplace-Upgrades in unsere Kickstart-Konfiguration aufgenommen, so dass während der automatisierten Installation das alte Partitionierungsschema des PVC4.7 Servers beibehalten wird und vor allem die „/vz“ Partition unangetastet bleibt. Alle anderen für uns wichtigen Installations-Konfigurationen fürs neue PCS6 konnten dazu wie gewohnt per Kickstart ausgerollt werden, um danach den Server wieder hochzufahren und die dort liegenden Container zu starten.

 

Fig1. zeigt die Kickstart Anpassung bezüglich der „/vz“ Partition.

#we dont want to repartition, only format /dev/sda[1-3] leave /dev/sda4 alone and mount it as /vz
clearpart --none
part /vz--fstype ext4 --grow--noformat--onpart sda4

Doch jetzt gehts ans Eingemachte: Trauen wir uns 80 Server mit live VEs auf diese selbstentwickelte Art upzugraden?

Ein neuer Weg macht stolz – nachdem er erfolgreich beschritten worden ist. Davor macht er Stirnfalten. Vor allem bei der Frage: Mit wie viel Downtime müssen unsere Kunden rechnen? Für die größtmögliche Sicherheit folgten zunächst natürlich ausführliche Tests mit nicht produktiven Servern. Dank der Prozess-Parallelisierung durch die Kickstart-Autmatisierung der Reinstallationen und einigem Feilen am Prozess, benötigten wir vom Herunterfahren der Container bis zu ihrem Restart auf dem neuen Betriebssystem nun etwa 45 Minuten.

 

Jetzt waren wir uns sicher, dass es klappt und das SysEleven-Team aus sechs Kolleginnen und Kollegen machte sich in vier Nachtaktionen an die Arbeit. Wie genau sich das damals angefühlt hat, wurde von Golem übrigens hier dokumentiert. So viel sei aber verraten: Größere Probleme oder Ausfälle sind nicht entstanden.

 

Unser Fazit: Mit diesem neuen Weg haben wir nicht nur viel Zeit und Arbeit gespart (siehe Aufwand alle Container einzeln zu migrieren), wir haben auch gezeigt, dass wir bei SysEleven gerne neue und manchmal ungewöhnliche Wege gehen. Das hat dem Team an dieser Stelle sogar anerkennende Worte der Virtuozzo-Entwickler eingebracht. Wenn auch Du ein Querdenker bist, die Dinge gerne besser machst und Spaß an IT-Infrastrukturthemen hast, dann melde Dich gerne bei uns. Unsere aktuellen SysElven Job-Angebote findest Du übrigens hier.

Share: