Mangelnder Speicherplatz beim Upgrade von VPX-Instanzen kennen wir. Beim Upgrade einer SDX ist dies hingegen eher untypisch. Vor allem, wenn die Meldung besagt, dass zu viel Speicher vorhanden ist 😉
"Reason: Available disk space in SVM is 39 GB. Minimum disk space of 4GB ist required for SDX upgrade"
Die Meldung erzeugt erst mal mehr Fragen als dass sie hilft. Gehen wir daher näher auf die Rahmenbedingungen ein.
Der Fehler tritt nach eigener Erfahrung bei circa 75% aller NetScaler SDX 89xx Appliances auf. Im Screenshot ist es eine 8930, aber das Problem wurde auch an deren 8900 SDX Appliances gesehen. Hingegen bei Upgrade von 14000, 15000 und 16000 SDX kam es bisher nicht zu Problemen, wäre aber bei jeder Hardware denkbar.
Das Update von 13.0 auf das aktuelle 13.1 Build funktioniert noch. Hingegen das Update von 13.1 auf das aktuelle 14.1 Build zeigt das Verhalten.
Ursächlich ist die verwendete Perl-Version auf der SDX und das Upgrade-Script upgradebundle.pl. Genauer gesagt ist es ein Fehler im Interpreter bei Vergleichsoperationen im Script an folgender Stelle:
Der Interpreter verarbeitet den Operator EQ (equal) korrekt. Mit GE (greater equal) kommt es hingegen zu einem Fehler.
Die Lösung ist einfach: die Datei upgradebundle.pl öffnen und nach folgender Zeile suchen:
Die rote Markierung ändern und die Datei speichern.
Nun kommen wir aber zu zwei Themen:
- wie kommen wir an die benötigte Datei?
- wie ersetzen wir die Datei?
Erst einmal müssen wir die Datei extrahieren aus dem SDX-Upgrade-Bundle. Dazu kann das TGZ als erstes entpackt werden. Darin enthalten ist ein TAR, was anschließend entpackt wird, um letztendlich die gewünschte Datei upgradebundle.pl zu erhalten.
Anschließend die Datei upgradebundle.pl bearbeiten und speichern 👍
Allerdings kann danach die Datei im TGZ nicht einfach ersetzt werden, denn die Datei-Prüfung der SDX merkt die Veränderung und bricht das Upgrade ab.
Also muss direkt zum Upgrade-Zeitpunkt eingegriffen und die Datei ersetzt werden. Das setzt gutes Timing beim Upgrade voraus!
Der Upgrade-Prozess legt die benötigte Ordner-Struktur während der Upgrades selbst an. Manuelles Anlegen der Ordner und hinterlegen der Datei funktioniert daher nicht.
Ein gangbarer Weg:
- Anmelden auf der SDX mit einem SCP-Client
- die vorbereitete Datei upgradebundle.pl griffbereit halten
- Installation anstarten
- Prüfung via SCP ob der Ordner /var/mps/cb_sb_images/sb_details angelegt wurde
- Sobald der Ordner existiert die Datei upgradebundle.pl hineinkopieren und überschreiben
Der Ordner wird durch das Upgrade kurze Zeit später verschoben/umbenannt werden. Wenn das Timing gepasst hat, dann wird das angepasst Script gestartet und das Upgrade läuft weiter...
Ab hier verhält sich das Upgrade wie bekannt.
Nicht verzweifelt beim Upgrade. Nach mehreren Versuchen hat man das passende Timing gefunden 😉
Kommentar schreiben