Inhaltsverzeichnis
Seit nunmehr sieben Jahren betreibe ich meine OPNsene Firewall Appliance im 24/7 Betrieb. Keine Ausfälle, keine Probleme. SSDs waren 2018 noch etwas teurer, die verwendete Transcend HSD370 mit ihren 6GB kostete immerhin knapp 40€. In der Zwischenzeit benötigt OPNsense allerdings mehr Speicherplatz, was meine Appliance regelmäßig an den Rand von Ausfällen brachte – oder sogar darüber hinaus. Wurden die Logfiles zu groß und die SSD lief voll, dann ging nichts mehr. Das Routing und die Firewallfunktionen waren gestört, der Internetzugriff ging gar nicht oder extrem eingeschränkt.
Die Fehlersuche stellte sich im ersten Moment als tricky heraus, achtet aber mal auf den kleinen Punkt rechts neben dem eingeloggten User oben rechts. Normalerweise ist dieser Indikator für den „system status“ grau. Bei mir war dieser bei 98% voller SSD dann rot.
Also habe ich zuerst die ganzen Logfiles etc. bereinigt und bestimmtes Logging gleich abgedreht. Resultat: Ich konnte die Speicherauslastung auf 75% drücken und hatte für eine gewisse Zeit Ruhe. Diese Zeit nutzte ich, um eine neue SSD zu bestellen. 240GB für 32€ – kein schlechter Preisverfall. Die verwendete SanDisk SSD Plus 240GB liegt Stand heute (August 2025) sogar nur noch bei 23€. Da ich seit geraumer Zeit auch eine Fehlermeldung für die Knopfzelle auf dem Mainboard im IPMI angezeigt bekommen hatte, habe ich auch gleich noch die passende CR2032 Batterie besorgt. Und wenn ich schon mal die Kiste aufschraube, dachte ich, es wäre eine gute Idee den RAM auf die maximal unterstützten 8GB zu verdoppelt. Der Kingston Riegel (Kingston ValueRAM 4GB 1600MHz DDR3L NonECC CL11 SODIMM 1.35V KVR16LS11/4) war mit gut 20€ ebenfalls verkraftbar.
So und dann lagen die Bestellungen erstmal Monate rum. Mit 75% Speicherauslastung bestand ja keine Eile mehr und wer arbeitet schon gerne an einer laufenden Firewall, die für die Internetverbindung sorgt. Bis OPNsense sich mit dem aktuellen Update erneut mehr Speicherplatz genehmigte und mich wieder an die 98% katapultierte. Also war es an der Zeit, endlich die bestellten Komponenten einzubauen.
Der Austausch von Batterie und RAM ist ein Kinderspiel und bedarf keiner weiteren Erklärung: Firewall herunterfahren vom Strom nehmen, ausbauen, Deckel öffnen und den RAM-Riegel stecken und die Batterie austauschen. Fertig. OK, nicht ganz: IPMI muss danach wieder so konfiguriert werden wie es zu vor war, also Uhrzeit und die Lüftersteuerung musste ich wieder einstellen. Wie gut, dass ich zu letzterem einen Blogpost erstellt hatte, ich wusste selbst nicht mehr, wie es ging ;-)
SSD gegen größere SSD tauschen
Deutlich komplizierter wird es beim Austausch der SSD. Hier gibt es mehrere Wege, einer davon wäre, die SSD auszutauschen in einen Linux Rechner samt der neuen SSD einzubauen und die Alte auf die Neue zu klonen. Das würde allerdings eine größere Downtime der Firewall und damit der Internetverbindung bedeuten. Also entschied ich mich dazu, die neue SSD in die OPNsense Appliance einzubauen, nachdem ich die Batterie getauscht und den RAM erweitert hatte.
ACHTUNG: Vorher unbedingt ein BACKUP der OPNsense Konfiruation machen!
(System -> Configuration -> Backups -> Download configuration)
1. Vorbereitung
- Backup der Konfiguration erstellen.
- Neue SSD bereitstellen und an die Firewall anschließen (freier SATA-Port oder USB-Adapter).
2. Bulk-Klon im laufenden Betrieb
Den Klonvorgang starten während das System noch läuft (ersetze ada1
= alte SSD, ada0
= neue SSD):
dd if=/dev/ada1 of=/dev/ada0 bs=64k status=progress conv=noerror,sync
Hinweis: Während dieser Zeit läuft OPNsense weiter, allerdings können Daten verändert werden, die noch nicht geklont sind.
3. Firewall in Single-User-Mode neu starten
- System neu starten und im Bootmenü Single-User-Mode wählen. (Wenn die OPNsense zu schnell über das Bootmenü springt, empfiehlt es sich mit der Leertaste das automatische Booten zu stoppen.)
- Root-Passwort eingeben.
4. Finalen Sync durchführen
Führe den Klonvorgang ein zweites Mal aus, um die Änderungen seit dem Bulk-Klon zu übertragen:
dd if=/dev/ada1 of=/dev/ada0 bs=64k status=progress conv=noerror,sync
Dieser zweite Durchlauf ist schneller, weil nur die wenigen Änderungen kopiert werden. Wirklich bestätigen kann ich das allerdings nicht, da ich diesen Durchlauf nicht durchführen konnte aufgrund Berechtigungsproblemen. Diese konnte ich nicht lösen, weshalb ich am Ende den Schritt einfach ausgelassen habe. Hat trotzdem alles funktioniert.
5. Partitionstabelle aktualisieren und Partition vergrößern
Jetzt aktualisieren wir noch die Partitionstabelle und vergrößern die Hauptpartition auf unserer neuen SSD:
gpart recover ada0
gpart resize -i 2 ada0
6. Alte SSD demontieren
Im Anschluss fahren wir das System herunter und trennen die Firewall vom Strom. Jetzt können wir die alte SSD ausbauen und die neue SSD an den SATA-Port der alten SSD anstecken. Damit ist v.a. sichergestellt, dass wir das Bootmenü nicht anpassen müssen.
OPNsense Appliance wieder an den Strom anschließen und einschalten. Sobald das System von der neuen SSD gebootet hat, folgt Schritt vier. Habt ihr alles richtig gemacht, muss das System ohne Änderung am Bootmenü oder sonstiger Konfiguration regulär booten.
7. Dateisystem erweitern
Jetzt haben wir zwar eine größere SSD auf der OPNsense läuft, allerdings wird der volle Speicherplatz noch nicht genutzt. Dazu muss die Rootpartition erst noch vergrößert werden. Dies machen wir bei einem UFS-Dateisystem auf die neue Partitionsgröße wie folgt:
growfs /dev/gpt/rootfs
Wichtig: Den growfs Befehl nicht auf die „echte“ Partition anweden. Hier bekommt man einen Fehler Operation is not permitted.
8. Abschluss
Jetzt steht OPNsense die volle Größe der SSD zur Verfügung und wir müssen uns keine Gedanken mehr über Ausfälle aufgrund Speicherknappheit machen :-)