FreeBSD handboek
Terug | Hoofdstuk 20. GEOM: Modulair schijftransformatie raamwerk | Volgende

# 20.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.

## 20.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. De volgende procedure werkt ook niet samen met de instellingen van de standaardinstallatie van FreeBSD 9.`X` dat het nieuwe partitieschema GPT gebruikt. GEOM zal de metagegevens van GPT overschrijven, wat' gegevensverlies en mogelijk een onstartbaar systeem tot gevolg heeft.

    # 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.

## 20.4.2. Problemen oplossen

### 20.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.

## 20.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.

Terug | Begin | Volgende
RAID0 - aaneengeschakeld | Omhoog | RAID3 - Striping op byte-niveau met toegewijde pariteit