diff --git a/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml index 84863afe90..9683dad9c2 100644 --- a/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml @@ -1,702 +1,703 @@ Tom Rhodes Geschreven door Siebrand Mazeland Vertaald door - GEOM: Modulair schijftransformatie framework + GEOM: Modulair schijftransformatie raamwerk Overzicht GEOM - GEOM schijf framework + GEOM schijf raamwerk GEOM Dit hoofdstuk beschrijft het gebruik van schijven in het - GEOM framework in &os;. Hieronder vallen de belangrijkste + GEOM raamwerk in &os;. Hieronder vallen de belangrijkste RAID - besturingsprogramma's die het framework gebruikt voor + besturingsprogramma's die het raamwerk gebruikt voor instellingen. In dit hoofdstuk wordt niet diepgaand beschreven hoe GEOM omgaat met I/O, het onderliggende subsysteem of code. Die informatie staat in het hulppagina voor &man.geom.4; en de verscheidene SEE ALSO referenties. Dit hoofdstuk is ook geen definitief stuk over het instellen van RAID. Alleen de door GEOM ondersteunde RAID-classificaties worden beschreven. Na het lezen van dit hoofdstuk weet de lezer: Welk type RAID-ondersteuning via GEOM beschikbaar is; Hoe de basisgereedschappen te gebruiken om de - verschillende RAID-niveau's in te stellen, + verschillende RAID-niveaus in te stellen, te onderhouden en te wijzigen; Hoe schijfapparaten via GEOM te spiegelen, aaneen te schakelen, te versleutelen en vanaf afstand schijven aan te sluiten; Hoe problemen op te lossen met schijven die via het GEOM - framework zijn aangesloten. + raamwerk zijn aangesloten. Veronderstelde voorkennis: Begrijpen hoe &os; omgaat met schijfapparaten (); Weten hoe een nieuwe &os; kernel in te stellen en te installeren (). GEOM inleiding GEOM staat toegang en controle toe op klassen, Master Boot Records, BSD labels, enzovoort, door gebruik te maken van diensten of de speciale bestanden in /dev. GEOM ondersteunt + class="directory">/dev. GEOM ondersteunt verschillende software RAID instellingen en biedt transparante toegang tot het besturingssysteem en de hulpprogramma's. Tom Rhodes Geschreven door Murray Stokely RAID0 - aaneengeschakeld GEOM aaneengeschakeld Aaneenschakelen is een methode die gebruikt wordt om meerdere schijven te combineren tot een enkele volume. In veel gevallen wordt dit gedaan met hardware controllers. Het GEOM subsysteem biedt softwareondersteuning voor RAID0, ook wel bekend als aaneenschakelen (disk striping). In een RAID0-systeem worden gegevens opgedeeld in blokken die verdeeld worden over de schijven in een reeks. In plaats van te hoeven wachten tot een systeem 256k naar één schijf heeft geschreven, kan een RAID0-systeem tegelijkertijd 64k naar vier verschillende schijven schrijven, waardoor superieure I/O prestaties worden bereikt. Deze prestaties kunnen nog verbeterd worden door meerdere schijfcontrollers te gebruiken. Iedere schijf in een RAID0-aaneenschakeling moet van dezelfde grootte zijn, omdat I/O-verzoeken altijd zijn opgebouwd uit precies gelijk over de schijven verdeelde verzoeken tot lezen of schrijven. Illustratie aaneengeschakelde schijven Ongeformatteerde ATA-schijven aaneenschakelen Laad de module geom_stripe: &prompt.root; kldload geom_stripe Zorg ervoor dat er een koppelpunt beschikbaar is. Als dit volume een rootpartitie wordt, gebruikt dan tijdelijk een ander koppelpunt zoals /mnt: + class="directory">/mnt: &prompt.root; mkdir /mnt Stel de apparaatnamen voor de schijven vast die aaneen worden geschakeld en maak het nieuwe apparaat aan. Om twee ongebruikte, ongepartitioneerde ATA schijven aaneen te schakelen (/dev/ad2 en /dev/ad3): &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 Schrijf een standaard label naar de nieuwe partitie, ook wel bekend als een partitietabel en installeer de standaard opstart code: &prompt.root; bsdlabel -wB /dev/stripe/st0 Dit proces hoort twee nieuwe apparaten gemaakt te hebben - in de map /dev/stripe + in de map /dev/stripe naast het apparaat st0, te weten st0a en st0c. Vanaf nu kan er een bestandssysteem op st0a worden - gezet met behulp van de newfs applicatie: + gezet met behulp van de newfs applicatie: + &prompt.root; newfs -U /dev/stripe/st0a Na het uitvoeren van het bovenstaande commando rollen er veel getallen over het scherm en na een aantal seconden is het proces afgerond. Het volume is gereed en klaar om - gemount te worden. + aangekoppeld te worden. Om de nieuwe aaneengeschakelde schijf handmatig te koppelen moet het volgende gedaan worden: &prompt.root; mount /dev/stripe/st0a /mnt Om dit aaneengeschakelde bestandssysteem automatisch te mounten bij het opstarten kan de volume-informatie in /etc/fstab gezet worden: &prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ >> /etc/fstab - Laadt de module geom_stripe ook automatisch - bij het initialiseren van een systeem door de volgende regel toe - te voegen aan /boot/loader.conf: + Laadt de module geom_stripe ook + automatisch bij het initialiseren van een systeem door de volgende + regel toe te voegen aan /boot/loader.conf: + &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf RAID1 - spiegelen GEOM schijf 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 oefening stelt dat het directe toegang (&man.da.4;) SCSI-schijven zijn. Begin door &os; te installeren op de eerste schijf met twee partities. Een van de twee moet een swap-partitie zijn die twee keer de grootte van het RAM-geheugen is en de rest van de ruimte moet toegewezen worden aan het root bestandssysteem (/). Er zouden eigen partities + class="directory">/). Er zouden eigen partities gemaakt kunnen worden voor andere koppelpunten, maar hierdoor wordt de moeilijkheidsgraad wel tien keer hoger doordat de - instellingen voor &man.bsdlabel.8; and &man.fdisk.8; handmatig + instellingen voor &man.bsdlabel.8; en &man.fdisk.8; handmatig gewijzigd moeten worden. Herstart en wacht tot het systeem volledig is geïnitialiseerd. Meld daarna aan als gebruiker root. Maak het apparaat /dev/mirror/gm en link het aan /dev/da1: &prompt.root; gmirror label -vnb round-robin gm0 /dev/da1 Het systeem hoort te antwoorden met: Metadata value stored on /dev/da1. Done. Initialiseer GEOM, waardoor de kernelmodule /boot/kernel/geom_mirror.ko wordt geladen: &prompt.root; gmirror load - Dit commando hoort de apparaatnode + Dit commando hoort het apparaatknooppunt gm0 gemaakt te hebben onder de map /dev/mirror. Installeer het algemene fdisk label en de bootcode op het nieuw aangemaakte apparaat gm0: &prompt.root; fdisk -vBI /dev/mirror/gm0 Installeer nu de algemene bsdlabel informatie: &prompt.root; bsdlabel -wB /dev/mirror/gm0s1 Als meerdere slices en partities bestaan, dienen de vlaggen voor de vorige twee commando's anders te zijn. Ze moeten gelijk zijn aan de groottes van de slice en partitie van de andere schijf. Gebruik &man.newfs.8; om een standaard UFS - bestandssysteem te maken op de apparaatnode + bestandssysteem te maken op het apparaatknooppunt gm0s1a: &prompt.root; newfs -U /dev/mirror/gm0s1a Door het bovenstaande commando spuugt een systeem wat informatie uit en wat getalletjes. Dat is goed. Bekijk de uitvoer op het voorkomen van foutmeldingen en koppel het apparaat op het koppelpunt /mnt: + class="directory">/mnt: &prompt.root; mount /dev/mirror/gm0s1a /mnt Verplaats nu alle gegevens van de bootschijf naar dit nieuwe bestandssysteem. In dit voorbeeld worden &man.dump.8; en &man.restore.8; gebruikt, maar &man.dd.1; werkt ook in dit scenario. &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-) Dit dient voor ieder bestandssysteem uitgevoerd te worden. Plaats eenvoudigweg het juiste bestandssysteem op de juiste plaats bij het uitvoeren van het voorgaande commando. Wijzig nu het gerepliceerde bestand /mnt/etc/fstab en verwijder het swapbestand of plaats er een commentaarteken voor. Het uitcommentariëren van de regel voor het - swapbestand in fstab zorgt er + wisselbestand in fstab zorgt er waarschijnlijk voor dat het beschikbaar maken van swapruimte op een andere manier bewerkstelligd moet worden. In staat daarover meer informatie. Wijzig de informatie voor de andere bestandssystemen zodat ze de - nieuwe schijf gebruiken, zie daarvoor het volgende voorbeeld: + nieuwe schijf gebruiken, zie daarvoor het volgende voorbeeld: + # Device Mountpoint FStype Options Dump Pass# #/dev/da0s2b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1 - Maak nu een bestand boot.config aan op zowel - de huidige als de nieuwe rootpartitie. Dit bestand - helpt het BIOS van een systeem - op te starten vanaf de juiste schijf: - - &prompt.root; echo "1:da(1,a)/boot/loader" > /boot.config -&prompt.root; echo "1:da(1,a)/boot/loader" > /mnt/boot.config - - - Dit bestand dient op beide rootpartities te staan om zeker - te stellen dat een systeem goed opstart. Als een systeem om - welke reden dan ook niet kan lezen van de nieuwe rootpartitie, - dan is een achtervang beschikbaar. - - Zorg ervoor dat de geom_mirror.ko module automatisch geladen wordt tijdens het opstarten van het - systeem: + systeem door het volgende commando te draaien: &prompt.root; echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf - - Hiermee wordt aan &man.loader.8; aangegeven dat de module - geom_mirror.ko geladen moet worden tijdens - de initialisatie van een systeem. + &prompt.root; echo 'geom_mirror_load="YES"' >> /boot/loader.conf Herstart het systeem: &prompt.root; shutdown -r now + Kies in het opstartscherm optie vier (4) om toegang tot + enkele-gebruikersmodus te krijgen. Controleer op het console dat + het systeem van gm0s1a is opgestart. Dit + kan worden gedaan door de uitvoer van &man.df.1; te bekijken. + + Als alles goed is gegaan, hoort het systeem gestart te zijn - vanaf het apparaat gm0s1a en er moet een - login prompt staan te wachten. Als er iets - mis is gegaan, kijk dan in de volgende sectie voor het oplossen - van problemen. Voeg nu de schijf da0 toe - aan het apparaat gm0: + vanaf het apparaat gm0s1a. Vanaf dit punt + kan de primaire schijf worden gewist en in de mirror worden + gestopt met de volgende commando's: + + &prompt.root; dd if=/dev/zero of=/dev/da0 bs=512 count=79 &prompt.root; gmirror configure -a gm0 &prompt.root; gmirror insert gm0 /dev/da0 De vlag geeft &man.gmirror.8; aan dat automatische synchronisatie gebruikt moet worden, ofwel dat schrijfbewerkingen naar schijf automatisch gespiegeld moeten worden. In de hulppagina wordt beschreven hoe schijven herbouwd en vervangen kunnen worden, hoewel daar data wordt gebruikt in plaats van gm0. + Tijdens het bouwen van de mirror kan de toestand worden + gecontroleerd met het volgende commando: + + &prompt.root; gmirror status + Problemen oplossen 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 &man.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. Zet de onderstaande regel in het bestand met kernelinstellingen en herbouw en installeer de kernel. options GEOM_MIRROR Hiermee moet het probleem opgelost zijn. GEOM Gate netwerk apparaten GEOM ondersteund het op afstand gebruiken van apparaten, zoals schijven, CD-ROMs, bestanden, etc. door het gebruik van de gate - applicaties. Dit is vergelijkbaar met NFS. + applicaties. Dit is vergelijkbaar met NFS. + Om te beginnen moet er een exports bestand gemaakt worden. - Dit bestand specificeert wie de geexporteerde bron mag benaderen - en welke rechten er op dat moment verleend worden. Bijvoorbeeld - om de vierde slice te exporteren van de eerste + Dit bestand specificeert wie de geëxporteerde bron mag + benaderen en welke rechten er op dat moment verleend worden. + Bijvoorbeeld om de vierde slice te exporteren van de eerste SCSI schijf, moet het volgende in /etc/gg.exports gezet worden: 192.168.1.0/24 RW /dev/da0s4d - Dit staat alle machines in het prive netwerk toe om het - bestandssysteem op da0s4d te benaderen. + Dit staat alle machines in het privé netwerk toe om het + bestandssysteem op da0s4d te benaderen. + Om dit apparaat te kunnen exporteren is het van belang dat de schijf nog niet gekoppeld is en moet de &man.ggated.8; dienst gestart worden. &prompt.root; ggated Om vervolgens het apparaat aan een client machine te koppelen moet het volgende gedaan worden: &prompt.root; ggatec create -o rw 192.168.1.1 /dev/da0s4d ggate0 &prompt.root; mount /dev/ggate0 /mnt Vanaf dit moment kan de schijf benaderd worden via het - /mnt koppelpunt. + koppelpunt /mnt. Let op, dit mislukt als de schijf reeds gekoppeld is op de server machine of als deze reeds gekoppeld is aan een andere machine op het netwerk. Zodra het apparaat niet langer nodig is, kan het veilig ontkoppeld worden met behulp van &man.umount.8; net zoals met elke andere schijf. Het labelen van schijven GEOM Disk Labels Tijdens het initialiseren van het systeem zal de &os; kernel - apparaatnodes creeeren nadat het een apparaat gevonden heeft. - Deze manier om te zoeken naar apparaten levert wat problemen op - bijvoorbeeld wanneer er een nieuwe schijf wordt toegevoegd via - USB. Het is hoogst waarschijnlijk dat een - flash apparaat een apparaatnode krijgt van - da0, waarna de originele + apparaatknooppunten creëren nadat het een apparaat gevonden + heeft. Deze manier om te zoeken naar apparaten levert wat + problemen op bijvoorbeeld wanneer er een nieuwe schijf wordt + toegevoegd via USB. Het is hoogst + waarschijnlijk dat een flash apparaat een apparaatknooppunt + krijgt van da0, waarna de originele da0 op schuift naar da1. Dit levert problemen op als bestandssystemen worden gekoppeld als ze gedefinieerd zijn in /etc/fstab, dit kan zelfs ertoe leiden dat het systeem niet opstart. Een mogelijke oplossing hiervoor is om de SCSI schijven een vaste plek te geven op - een bepaalde volgorde, zodat zodra er een nieuwe schijf geplaatst - wordt, deze een ongebruikt apparaatnode toegewezen krijgt. Maar - wat als er USB apparaten zijn die de primaire - SCSI disk vervangt? Dit gebeurd omdat - USB apparaten meestal eerder gevonden worden - dan een SCSI kaart. Een oplossing hiervoor - is om de apparaten pas toe te voegen als het systeem reeds - gestart is, een andere methode kan zijn om alleen een enkele - ATA schijf te koppelen en nooit - SCSI schijven door middel van - /etc/fstab. + een bepaalde volgorde, zodat zodra er een nieuwe schijf + geplaatst wordt, deze een ongebruikt apparaatknooppunt + toegewezen krijgt. Maar wat als er USB + apparaten zijn die de primaire SCSI schijf + vervangt? Dit gebeurd omdat USB apparaten + meestal eerder gevonden worden dan een SCSI + kaart. Een oplossing hiervoor is om de apparaten pas toe te + voegen als het systeem reeds gestart is, een andere methode kan + zijn om alleen een enkele ATA schijf te + koppelen en nooit SCSI schijven door middel + van /etc/fstab. Maar er is een betere oplossing beschikbaar. Door het gebruik van glabel kunnen beheerders en gebruikers een label toevoegen aan een schijf, en deze labels gebruiken in /etc/fstab. Omdat glabel het label bewaard in de laatste sector van de schijf, kan het label bewaard blijven ook na een reboot en kan het - bestandssysteem altijd gekoppeld worden ongeacht welke apparaatnode - toegekend is aan het apparaat. + bestandssysteem altijd gekoppeld worden ongeacht welk + apparaatknooppunt toegekend is aan het apparaat. Uiteraard hoeft een label niet permanent te zijn, het glabel programma kan zowel tijdelijke als permanente labels aanmaken. Alleen een permanent label blijft - beschikbaar ook na een reboot. Zie de &man.glabel.8; handleiding - voor meer informatie over de verschillen tussen de + beschikbaar ook na een reboot. Zie de &man.glabel.8; + handleiding voor meer informatie over de verschillen tussen de labeltypes. Label types en voorbeelden Er zijn twee type labels: een generiek label en een tijdelijk label. Het verschil tussen de labels zit hem in de automatische herkennen die gekoppeld zijn aan permanente labels en het feit dat dit type label ook beschikbaar blijft na een herstart van het systeem. Deze labels krijgen een speciale directory toegewezen in /dev, welke genoemd - wordt naar het bestandssysteem type. Bijvoorbeeld + wordt naar het bestandssysteemtype. Bijvoorbeeld UFS2 labels worden geplaatst in de - /dev/ufs2 directory. + /dev/ufs directory. - Een generiek label verdwijnt na een herstart van het systeem. - Deze labels worden gecreeerd in + Een generiek label verdwijnt na een herstart van het + systeem. Deze labels worden gecreëerd in /dev/label en zijn perfect voor experimenten. + or when there is no newfs (e.g.: cd9660)? --> Permanente labels kunnen op het bestandssysteem gezet worden door gebruik van het tunefs of newfs commando. Om een permanent label te schrijven voor een UFS2 bestandssysteem zonder de huidige data te vernietigen: &prompt.root; tunefs -L home /dev/da3 Als het bestandssyteem vol is kan dit leiden tot data corruptie; echter als het bestandssysteem vol is zou het hoofddoel moeten zijn om oude achtergebleven bestanden weg te halen in plaats van het toevoegen van labels. Er zou nu een label moeten bestaan in - /dev/ufs2, welke + /dev/ufs, welke toegevoegd kan worden aan het /etc/fstab bestand: - /dev/ufs2/home /home ufs rw 2 2 + /dev/ufs/home /home ufs rw 2 2 Het bestandssysteem mag niet gekoppeld zijn op het moment dat tunefs gebruikt wordt. - Nu kan het bestandssysteem net als normaal worden gekoppeld: + Nu kan het bestandssysteem net als normaal worden gekoppeld: + &prompt.root; mount /home Vanaf dit moment is het mogelijk om, zolang de geom_label.ko geladen wordt tijdens het opstarten van het systeem, of als deze is meegecompileerd door middel van de GEOM_LABEL optie in de kernel, - de apparaatnode te wijzigen zonder ernstige gevolgen voor het - systeem. + het apparaatknooppunt te wijzigen zonder ernstige gevolgen voor + het systeem. Bestandssystemen kunnen ook een standaard label mee krijgen door gebruik te maken van de optie met het newfs commando. Zie de &man.newfs.8; handleiding voor meer informatie. Het volgende commando kan worden gebruikt om een label te verwijderen: &prompt.root; glabel destroy home UFS logboeken door middel van GEOM GEOM Journaling Met de komst van &os; 7.0 komt ook de langverwachte optie van UFS logboeken. De implementatie zelf is gedaan door middel van het GEOM subsysteem, welke makkelijk geconfigureerd kan worden met behulp van de &man.gjournal.8; applicatie. Wat is logboeken? Logboek mogelijkheden betekend het opslaan van bestandssysteem transacties, zoals wijzigingen die een complete schrijf actie zijn, voor er meta-data wordt toegevoegd en voor de wijzigingen op schijf worden gezet. Deze transactie log kan later opnieuw afgespeeld worden om te voorkomen dat er bestandssysteem inconsistenties voorkomen. Deze methode is een extra manier om te beschermen tegen data verlies en inconsistenties van het bestandssysteem. In tegenstelling tot Soft Updates, welke bijhoud welke meta-data wijzigingen er worden uitgevoerd en Snapshots, wat een beeld bestand is van het bestandssysteem, wordt er een complete log bewaard in de laatste sector, of zoals in sommige gevallen op een compleet andere schijf. In tegenstelling tot andere logboek implementaties is de gjournal methode blok gebaseerd en niet - geimplementeerd als onderdeel van het bestandssysteem maar als - uitbreiding op GEOM. + geïmplementeerd als onderdeel van het bestandssysteem maar + als uitbreiding op GEOM. Om ondersteuning in te schakelen voor gjournal, moet de kernel over de volgende optie beschikken, welke standaard is op 7.x systemen: options UFS_GJOURNAL - Het creeeren van een logboek op een vrij en beschikbaar + Het creëren van een logboek op een vrij en beschikbaar bestandssysteem kan nu gedaan worden met behulp van de volgende - stappen, ervanuit gaande dat da4 de + stappen, ervan uitgaande dat da4 de nieuwe beschikbare SCSI schijf is: &prompt.root; gjournal label /dev/da4 &prompt.root; gjournal load Op dit moment zou er een ad4 - apparaatnode en een ad4.journal - apparaatnode moeten zijn. Nu kan er een bestandssysteem op + apparaatknooppunt en een ad4.journal + apparaatknooppunt moeten zijn. Nu kan er een bestandssysteem op gezet worden: &prompt.root; newfs -O 2 -J /dev/da4.journal Het hiervoor ingevoerde commando zal een UFS2 bestandssysteem met logboek ondersteuning aanmaken. - + Koppel het apparaat op een gewenst koppelpunt met: &prompt.root; mount /dev/da4.journal /mnt In het geval dat er meerdere slices zijn, zal er een logboek - voor elke slice gecreeerd worden. Bijvoorbeeld, als + voor elke slice gecreëerd worden. Bijvoorbeeld, als ad4s1 en ad4s2 allebei slices zijn, dan zal gjournal een ad4s1.journal en een - ad4s2.journal creeeren. In het geval - dat het commando twee keer gestart wordt, wordt het resultaat - journals. + ad4s2.journal creëeren. In het + geval dat het commando twee keer gestart wordt, wordt het + resultaat journals. - + In sommige gevallen kan het gewenst zijn om het logboek op een andere schijf te bewaren. Voor deze gevallen moet de logboekleverancier of het opslagapparaat gespecificeerd worden achter het apparaat waarop de logboek functionaliteit aangebracht - moet worden. De logboek functionaliteit kan ook worden ingeschakeld - op een reeds bestaand systeem met behulp van + moet worden. De logboekfunctionaliteit kan ook worden + ingeschakeld op een reeds bestaand systeem met behulp van tunefs. Maak echter altijd een backup voor dat dit soort dingen uitgeprobeerd worden. In de meeste gevallen zal gjournal falen als het geen actueel logboek kan maken, maar het voorkomt geen dataverlies als gevolg van verkeerd gebruik van tunefs.