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:

# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16

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

# gmirror label -v -b round-robin gm0 /dev/ad0
Metadata value stored on /dev/ad0

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:

# echo geom_mirror_load="YES" >> /boot/loader.conf

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

# sed -i.bak 's%ad%mirror/gm%' /etc/fstab

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:

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

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

# gmirror insert gm0 /dev/ad2
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad2.

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

# 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

Sobald der Rebuild Vorgang abgeschlossen ist, erscheint folgende Meldung:

GEOM_MIRROR: Device gm0: rebuilding provider ad2 finished.
GEOM_MIRROR: Device gm0: provider ad2 activated

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

Related posts:

Twitter Post | Print Post

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

  1. Gravatar 19. January 2008 at 11:43
    Klaus
  2. Gravatar 19. January 2008 at 12:55
    matthias
  3. Gravatar 19. January 2008 at 23:49
    Stefan
  4. Gravatar 20. January 2008 at 08:58
    matthias
  5. Gravatar 20. January 2008 at 11:14
    Klaus
  6. Gravatar 20. January 2008 at 12:06
    matthias
  7. Gravatar 20. January 2008 at 16:04
    Stefan
  8. Gravatar 20. January 2008 at 16:06
    Stefan
  9. Gravatar 20. January 2008 at 17:04
    matthias
  10. Gravatar 20. January 2008 at 19:34
    Stefan
  11. Gravatar 20. January 2008 at 21:15
    Klaus
  12. Gravatar 21. January 2008 at 00:22
    Stefan
  13. Gravatar 14. November 2008 at 14:53
    klugscheisser
  14. Gravatar 16. November 2008 at 10:38
    matthias
  15. Gravatar 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>