OPNsense mit GEOM Software-RAID1

Die Open-Source-Firewall OPNsense basiert bekanntermaßen auf FreeBSD/Linux. In den Installer ist die Option für die Einrichtung eines Linux GEOM Mirrors (Software RAID1) vorhanden, der angezeigt wird, sobald der Installer während des Setups 2 vorhandene Disks erkennt. Wie ein GEOM Mirror unter OPNsense eingerichtet, überwacht und betrieben werden kann ist Thema des folgenden Beitrags.

Installation

Die eigentliche Installation wird wie bei einer normalen Installation gestartet, indem man sich nach dem Start der Live-Systems von DVD/ISO/USB am System (CLI) anmeldet mit User installer und Passwort opnsense. Die folgenden Installationsschritte werden unter OPNsense 18.7 durchgeführt.

OPNsense 18.7 -> Installation starten

OPNsense 18.7 -> Installation starten

Configure Console -> Accept these Settings

Configure Console -> Accept these Settings

Select Task -> Setup GEOM mirror auswählen

Select Task -> Setup GEOM mirror auswählen

GEOM Mirror -> GEOM Mirror Setup auswählen

GEOM Mirror -> GEOM Mirror Setup auswählen

Select a Disk -> Primary Disk auswählen

Select a Disk -> Primary Disk auswählen

Select a Disk -> Mirror Disk auswählen

Select a Disk -> Mirror Disk auswählen

Information -> OK

Information -> OK

Select Task -> Guided installation auswählen

Select Task -> Guided installation auswählen

Select a Disk -> mirror/OPNsense auswählen

Select a Disk -> mirror/OPNsense auswählen

Select install mode -> GPT/UEFI mode oder MBR mode

Select install mode -> GPT/UEFI mode oder MBR mode

Executing Commands -> OPNsense Installation wird ausgeführt

Executing Commands -> OPNsense Installation wird ausgeführt

Set Root Password -> root User Passwort vergeben

Set Root Password -> root User Passwort vergeben

Reboot -> System neustarten

Reboot -> System neustarten

GEOM RAID Status

Über die CLI von OPNsense lässt sich der Status des RAIDs per gmirror status abfragen. Entsprechend dem Health State des Mirrors sieht das Ergebnis der Status-Abfrage wie in den folgenden Zeilen aus.

Normal

root@OPNsense:~ # gmirror status
           Name    Status  Components
mirror/OPNsense  COMPLETE  da0 (ACTIVE)
                           da1 (ACTIVE)

Degraded

root@OPNsense:~ # gmirror status
           Name    Status  Components
mirror/OPNsense  DEGRADED  da0 (ACTIVE)

Rebuild

root@OPNsense:~ # gmirror status
           Name    Status  Components
mirror/OPNsense  DEGRADED  da0 (SYNCHRONIZING, 42%)
                           da1 (ACTIVE)

Zusätzlich können mit dem Befehl gmirror list detailliertere Informationen zum Mirror und den dazugehörigen Komponenten angezeigt werden.

GEOM RAID Monitoring

Der Status des RAIDs kann mit dem OPNsense Plugin Monit, sowie einem zusätzlichen Script überwacht werden.

Script (executable): /usr/local/bin/check_gmirror.sh

#!/bin/sh
ReturnString=$(/sbin/gmirror status)
ReturnStatus=$?
echo $ReturnString
if [ $ReturnStatus -ne 0 ]; then
   exit 1
fi
exit 0

Monit Service Test Setting (Services -> Monit -> Settings -> Service Tests Settings)

Name: GEOMStatus
Condition: status notequal 0
Action: Alert

Monit Service Setting (Services -> Monit -> Settings -> Service Settings)

Name: GEOMHealth
Type: Custom
Path: /usr/local/bin/check_gmirror.sh
Tests: GEOMStatus

Die Ausgabe des Scripts wird danach in der Monit Status-Seite angezeigt.

GEOM RAID Rebuild nach dem Austausch einer defekten Disk

Mit den beiden Befehlen gmirror forget und gmirror insert wird der Mirror nach dem Austausch einer defekten Disk wieder hergestellt. Der Befehlt gmirror forget bewirkt, dass alle Referenzierungen auf die ausgefallene und ersetzte Disk gelöscht werden.

# gmirror forget OPNsense
# gmirror insert OPNsense da0/da1
Sonstiges

Disk Namen

Je nach Disk Typ sind die Disks unter Linux unterschiedlich benannt, z.B.:

  • SAS: da0/da1
  • SATA: ada0/ada1

Mirror Namen

Auch der Name des GEOM Mirrors kann je nach OPNsense Version unterschiedlich sein, z.B.:

  • mirror/OPNsense
  • mirror/OPNsenseMirror

Quellen:
https://forum.opnsense.org/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.