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.
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/fstabMaak 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.
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.
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>.