19.4. RAID1 - spiegelen

Spiegelen (“mirroring”) is een technologie die door veel bedrijven en thuisgebruikers wordt ingezet om gegevens te back-uppen zonder onderbrekingen. Als er een spiegel bestaat, betekent dat eenvoudigweg dat schijfB een kopie is van schijfA, of misschien zijn schijvenC+D een kopie van schijvenA+B. Los van de schijfinstellingen is het belangrijkste aspect dat de gegevens van de ene schijf of partitie worden gerepliceerd naar de andere. Later kunnen die gegevens eenvoudiger worden hersteld of geback-upped zonder dat dit leidt tot onderbrekingen in dienstverlening of toegang tot gegevens en schijven kunnen zelfs fysiek worden opgeslagen in een kluis.

Begin met een systeem dat twee schijven heeft van gelijke grootte. Deze oefeningen stellen dat het directe-toegang (da(4)) SCSI-schijven zijn.

19.4.1. Primaire schijven spiegelen

Aannemende dat FreeBSD op het eerste da0-schijfapparaat is geïnstalleerd, dient er aan gmirror(8) verteld te worden om daar de primaire gegevens op te slaan.

Voordat de mirror gebouwd wordt, dient aanvullende debuginformatie en openingstoegang tot het apparaat aangezet te worden door de sysctl(8)-optie kern.geom.debugflags op de volgende waarde in te stellen:

# sysctl kern.geom.debugflags=17

Maak nu de mirror aan. Begin het proces door informatie over metagegevens op het primaire schijfapparaat op te slaan, waardoor effectief het apparaat /dev/mirror/gm aangemaakt wordt met het volgende commando:

WaarschuwingHet creëeren van een mirror buiten de opstartschijf kan resulteren in gegevensverlies als er enige gegevens zijn opgeslagen op de laatste sector van de schijf. Dit gevaar wordt verminderd als het creëeren van de mirror direct na een verse installatie van FreeBSD wordt gedaan.

# gmirror label -vb round-robin gm0 /dev/da0

Het systeem hoort te antwoorden met:

Metadata value stored on /dev/da0.
Done.

Initialiseer GEOM, dit zal de kernelmodule /boot/kernel/geom_mirror.ko laden:

# gmirror load

Opmerking: Wanneer dit commando succesvol verloopt, maakt het het apparaatknooppunt gm0 aan onder de map /dev/mirror.

Maak het mogelijk om de kernelmodule geom_mirror.ko tijdens systeeminitialisatie te laden:

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

Bewerk het bestand /etc/fstab, waarbij verwijzingen naar het oude da0 worden vervangen door de nieuwe apparaatknooppunten van het mirrorapparaat gm0.

Opmerking: Indien vi(1) de geprefereerde tekstverwerker is, is het volgende een gemakkelijke manier om deze taak te volbrengen:

# vi /etc/fstab

Maak een reservekopie van de huidige gegevens van fstab in vi(1) door :w /etc/fstab.bak in te typen. Vervang daarna alle oude verwijzingen naar da0 door gm0 door :%s/da/mirror\/gm/g in te typen.

Het resulterende fstab zou er ongeveer hetzelfde als het volgende uit moeten zien. Het maakt niet uit of de schijfstations SCSI of RAID zijn, het RAID-apparaat zal ongeacht hiervan gm zijn.

# Device                Mountpoint         FStype Options         Dump    Pass#
/dev/mirror/gm0s1b                              none            swap    sw              0       0
/dev/mirror/gm0s1a                              /               ufs     rw              1       1
/dev/mirror/gm0s1d                              /usr            ufs rw      0   0
/dev/mirror/gm0s1f              /home       ufs rw      2   2
#/dev/mirror/gm0s2d                             /store          ufs     rw              2       2
/dev/mirror/gm0s1e                              /var            ufs     rw              2       2
 /dev/acd0                                      /cdrom          cd9660  ro,noauto       0       0

Start het systeem opnieuw op:

# shutdown -r now

Tijdens de systeeminitialisatie dient het apparaat gm0 in plaats van da0 gebruikt te worden. Als het systeem volledig is geïnitialiseerd, kan dit gecontroleerd worden door de uitvoer van het commando mount te inspecteren:

# mount
Filesystem         1K-blocks    Used    Avail Capacity  Mounted on
/dev/mirror/gm0s1a   1012974  224604   707334    24%    /
devfs                      1       1        0   100%    /dev
/dev/mirror/gm0s1f  45970182   28596 42263972     0%    /home
/dev/mirror/gm0s1d   6090094 1348356  4254532    24%    /usr
/dev/mirror/gm0s1e   3045006 2241420   559986    80%    /var
devfs                      1       1        0   100%    /var/named/dev

De uitvoer ziet er als verwacht uit. Plaats als laatste stap, om synchronisatie te beginnen, de schijf da1 in de mirror met het volgende commando:

# gmirror insert gm0 /dev/da1

De status kan gecontroleerd worden tijdens het bouwen van de mirror met het volgende commando:

# gmirror status

Wanneer de mirror gebouwd is en alle huidige gegevens zijn gesynchroniseerd, dient de uitvoer van het bovenstaande commando er als volgt uit te zien:

      Name    Status  Components
mirror/gm0  COMPLETE  da0
                      da1

Als er problemen zijn, of als de mirror nog bezig is om het bouwproces te voltooien, zal het voorbeeld DEGRADED in plaats van COMPLETE laten zien.

19.4.2. Problemen oplossen

19.4.2.1. Systeem weigert op te starten

Als een systeem opstart in een prompt dat op het volgende lijkt:

ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot>

Herstart te machine met de aan/uit-schakelaar of met de resetknop. Selecteer in het bootmenu optie zes (6). Hierdoor komt een systeem in een loader(8) prompt. Laad de kernelmodules handmatig:

OK? load geom_mirror
OK? boot

Als dit werkt werd de module om welke reden dan ook niet juist geladen. Controleer of de relevante regel in /boot/loader.conf correct is. Als het probleem aanhoudt, zet dan de onderstaande regel in het bestand met kernelinstellingen en herbouw en installeer de kernel.

options    GEOM_MIRROR

Hiermee moet het probleem opgelost zijn.

19.4.3. Herstellen van falende schijven

Het mooie aan het spiegelen van schijven is dat als een schijf faalt, deze vervangen kan worden, aangenomen zonder gegevensverlies.

Neem met betrekking tot de vorige RAID1-configuratie aan dat da1 het geeft begeven en vervangen moet worden. Bepaal, om het te vervangen, welke schijf het heeft begeven en schakel het systeem uit. Op dit moment kan de schijf worden verwisseld door een nieuwe en kan het systeem weer worden opgestart. Nadat het systeem is herstart, kunnen de volgende commando's worden gebruikt om de schijf te vervangen:

# gmirror forget gm0
# gmirror insert gm0 /dev/da1

Gebruik het commando gmirror status om de voortgang van het herbouwen te bekijken. Zo eenvoudig is het.

Deze en andere documenten kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Lees voor vragen over FreeBSD de documentatie alvorens contact te zoeken <questions@FreeBSD.org>.
Vragen over deze documentatie kunnen per e-mail naar <doc@FreeBSD.org>.