Howto: Software-RAID 1 unter FreeBSD

Posted on the January 19th, 2008 under howtos by matthias

Um einem FreeBSD Server die nötige Datensicherheit zu geben, muss es nicht immer ein teures Hardware-RAID sein. Ein Software-RAID mit den GEOM Tools bietet gute Performance und hohe Sicherheit zum Nulltarif.

Nach der Installation auf einer der beiden Festplatten können wir im laufenden Betrieb das RAID definieren. Dazu müssen wir jedoch zuerst den Sicherheitsschutz der Festplatte im Kernel deaktivieren:
[sourcecode language="css"]# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16[/sourcecode]

Danach können wir die Platte mit dem Betriebssystem unserem RAID Verbund hinzufügen:

[sourcecode language="css"]# gmirror label -v -b round-robin gm0 /dev/ad0
Metadata value stored on /dev/ad0[/sourcecode]

Mittels des Parameters -b round-robin wählen wir den Round-Robin Algorithmus zum Lesen und Schreiben der Daten im RAID Verbund. Weitere Verfahren finden sich in gmirror(8). Die frisch erstellten RAID Devices finden sich unter /dev/mirror/ wieder.
Damit das nötige GEOM Kernel Modul geladen wird und unser RAID 1 beim Bootvorgang erkannt wird, fügen wir folgende Zeile in die loader.conf ein:

[sourcecode language="css"]# echo geom_mirror_load="YES" >> /boot/loader.conf[/sourcecode]

Zusätzlich müssen noch die Einträge in der fstab angepasst werden:

[sourcecode language="css"]# sed -i.bak ‘s%ad%mirror/gm%’ /etc/fstab[/sourcecode]

Hierdurch werden Einträge wie /dev/ad0s1a zu /dev/mirror/gm0s1a.
Nun ist es an der Zeit das System neu zu starten. Beim Bootvorgang sollte nun der GEOM Kernel Treiber geladen werden und Meldungen wie diese erscheinen:

[sourcecode language="css"]GEOM_MIRROR: Device gm0 created (id=2125638583).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
GEOM_MIRROR: Device gm0 already configured.
Mounting root from ufs:/dev/mirror/gm0s1a[/sourcecode]

Wieder im laufenden System hängen wir die zweite Platte ins RAID ein, da ein RAID 1 mit nur einer Festplatte wenig Sinn macht:

[sourcecode language="css"]# gmirror insert gm0 /dev/ad2
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad2.[/sourcecode]

Die Synchronisierung des RAID Verbunds wird gestartet. Den aktuellen Status können wir uns mit gmirror anschauen:

[sourcecode language="css"]# gmirror list
Geom name: gm0
State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 2125638583
Providers:
1. Name: mirror/gm0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r6w5e2
Consumers:
1. Name: ad0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 3986018406
2. Name: ad2
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: SYNCHRONIZING
Priority: 0
Flags: DIRTY, SYNCHRONIZING
GenID: 0
SyncID: 1
Synchronized: 1%
ID: 1946262342[/sourcecode]

Sobald der Rebuild Vorgang abgeschlossen ist, erscheint folgende Meldung:

[sourcecode language="php"]GEOM_MIRROR: Device gm0: rebuilding provider ad2 finished.
GEOM_MIRROR: Device gm0: provider ad2 activated[/sourcecode]

Unser System ist nun mit einem voll funktionierenden Software-RAID 1 abgesichert. Zur Überwachung empfehle ich dieses Nagios Plugin, um bei einer defekten Festplatte schnell reagieren zu können.

via

|

15 Responses to 'Howto: Software-RAID 1 unter FreeBSD'

  1. 19. January 2008 at 11:43
    Klaus
  2. 19. January 2008 at 12:55
    matthias
  3. 19. January 2008 at 23:49
    Stefan
  4. 20. January 2008 at 08:58
    matthias
  5. 20. January 2008 at 11:14
    Klaus
  6. 20. January 2008 at 12:06
    matthias
  7. 20. January 2008 at 16:04
    Stefan
  8. 20. January 2008 at 16:06
    Stefan
  9. 20. January 2008 at 17:04
    matthias
  10. 20. January 2008 at 19:34
    Stefan
  11. 20. January 2008 at 21:15
    Klaus
  12. 21. January 2008 at 00:22
    Stefan
  13. 14. November 2008 at 14:53
    klugscheisser
  14. 16. November 2008 at 10:38
    matthias
  15. 13. March 2009 at 13:38
    duno

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>