Date: Thu, 22 Nov 2012 13:44:34 +0000 (UTC) From: Rene Ladan <rene@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r40127 - head/nl_NL.ISO8859-1/books/handbook/geom Message-ID: <201211221344.qAMDiYgi089704@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rene Date: Thu Nov 22 13:44:34 2012 New Revision: 40127 URL: http://svnweb.freebsd.org/changeset/doc/40127 Log: MFen r39631 -> r39988 Modified: head/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml Modified: head/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml ============================================================================== --- head/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml Thu Nov 22 06:05:49 2012 (r40126) +++ head/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml Thu Nov 22 13:44:34 2012 (r40127) @@ -5,7 +5,7 @@ $FreeBSD$ %SOURCE% en_US.ISO8859-1/books/handbook/geom/chapter.xml - %SRCID% 39631 + %SRCID% 39988 --> <chapter id="GEOM"> @@ -244,220 +244,586 @@ Done.</screen> <indexterm><primary>schijf spiegelen</primary></indexterm> - <para>Spiegelen (<quote>mirroring</quote>) 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.</para> - - <para>Begin met een systeem dat twee schijven heeft van gelijke - grootte. Deze oefeningen stellen dat het directe-toegang - (&man.da.4;) <acronym>SCSI</acronym>-schijven zijn.</para> + <indexterm><primary>RAID1</primary></indexterm> - <sect2> - <title>Primaire schijven spiegelen</title> - - <para>Aannemende dat &os; op het eerste - <devicename>da0</devicename>-schijfapparaat is - geïnstalleerd, dient er aan &man.gmirror.8; verteld te - worden om daar de primaire gegevens op te slaan.</para> - - <para>Voordat de mirror gebouwd wordt, dient aanvullende - debuginformatie en openingstoegang tot het apparaat aangezet te - worden door de &man.sysctl.8;-optie - <varname>kern.geom.debugflags</varname> op de volgende waarde in - te stellen:</para> - - <screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen> - - <para>Maak nu de mirror aan. Begin het proces door informatie - over metagegevens op het primaire schijfapparaat op te slaan, - waardoor effectief het apparaat <filename - class="devicefile">/dev/mirror/gm</filename> aangemaakt - wordt met het volgende commando:</para> - - <warning> - <para>Het 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 &os; wordt gedaan. De volgende procedure - werkt ook niet samen met de instellingen van de standaardinstallatie - van &os; 9.<replaceable>X</replaceable> dat het nieuwe - partitieschema <acronym>GPT</acronym> gebruikt. GEOM zal de - metagegevens van <acronym>GPT</acronym> overschrijven, wat' - gegevensverlies en mogelijk een onstartbaar systeem tot gevolg - heeft.</para> - </warning> - - <screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen> - - <para>Het systeem hoort te antwoorden met:</para> + <para><acronym>RAID1</acronym>, of <firstterm>spiegelen</firstterm>, is de + techniek om dezelfde gegevens naar meer dan één schijf te schrijven. + Spiegels worden normaliter gebruikt om tegen gegevensverlies te beschermen + indien een schijf kapot gaat. Elke schijf in een spiegel bevat een + identieke kopie van de gegevens. Wanneer een individuele schijf het + begeeft, blijft de spiegel functioneren, en levert het gegevens van de + schijven die nog wel functioneren. De computer blijft draaien en de + beheerder heeft tijd om de kapotte schijf te vervangen zonder onderbreking + voor de gebruikers.</para> + + <para>Twee veelvoorkomende situaties worden in deze voorbeelden getoond. + Het eerste is het maken van een spiegel van twee nieuwe schijven en het + als vervanging voor een bestaande enkele schijf te gebruiken. Het tweede + voorbeeld maakt een spiegel op een enkele nieuwe schijf aan, kopieert de + gegevens van de oude schijf er naar toe, en plaatst daarna de oude schijf + in de spiegel. Hoewel deze procedure iets moeilijker is, is er maar één + nieuwe schijf nodig.</para> + + <para>Traditioneel zijn de twee schijven in een spiegel van hetzelfde model + en hebben ze dezelfde capaciteit, maar &man.gmirror.8; verplicht dit niet. + Spiegels die met ongelijke schijven zijn gemaakt zullen de capaciteit van + de kleinste schijf in de spiegel aannemen. Extra schijfruimte op grotere + schijven zal ongebruikt blijven. Schijven die later in de spiegel worden + geplaatst moeten tenminste evenveel capaciteit hebben als de kleinste + schijf die reeds in de spiegel zit.</para> + + <warning> + <para>De procedures voor het spiegelen die hier getoond worden zijn + niet-destructief, maar maak zoals bij elke grote schijfoperatie eerst + een volledige back-up.</para> + </warning> + + <sect2 id="GEOM-mirror-metadata"> + <title>Kwesties met meta-gegevens</title> + + <para>Veel schijfsystemen slaan meta-gegevens op aan het einde van elke + schijf. Oude meta-gegevens dienen gewist te worden voordat de schijf + herbruikt wordt voor een spiegel. De meeste problemen worden + veroorzaakt door twee soorten van achtergebleven meta-gegevens: + GPT-partitietabellen en oude meta-gegevens van &man.gmirror.8; van een + vorige spiegel.</para> + + <para>GPT-meta-gegevens kunnen gewist worden met &man.gpart.8;. Dit + voorbeeld wist zowel de primaire als de back-up GPT-partitietabellen van + schijf <devicename>ada8</devicename>:</para> + + <screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen> + <para>&man.gmirror.8; kan in één stap een schijf uit een actieve spiegel + halen en de meta-gegevens wissen. Hier wordt de voorbeeldschijf + <devicename>ada8</devicename> uit de actieve spiegel + <devicename>gm4</devicename> gehaald:</para> + + <screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen> + + <para>Gebruik, als de spiegel niet draait maar er nog oude meta-gegevens + van de spiegel op de schijf staan, <command>gmirror clear</command> om + deze te verwijderen:</para> + + <screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen> + + <para>&man.gmirror.8; slaat één blok aan meta-gegevens aan het einde van + de schijf op. Omdat GPT-partitieschema's ook meta-gegevens aan het + einde van de schijf opslaan, wordt het spiegelen van volledige + GPT-schijven met &man.gmirror.8; niet aangeraden. Hier wordt + MBR-partitionering gebruikt omdat het alleen een partitietabel aan het + begin van de schijf opslaat en niet conflicteert met + &man.gmirror.8;.</para> + </sect2> - <screen>Metadata value stored on /dev/da0. -Done.</screen> + <sect2> + <title>Een spiegel met twee nieuwe schijven maken</title> - <para>Initialiseer GEOM, dit zal de kernelmodule - <filename>/boot/kernel/geom_mirror.ko</filename> laden:</para> + <para>In dit voorbeeld is &os; reeds op een enkele schijf + <devicename>ada0</devicename> geïnstalleerd. Twee nieuwe schijven, + <devicename>ada1</devicename> en <devicename>ada2</devicename> zijn met + het systeem verbonden. Er zal een nieuwe spiegel op deze twee schijven + aangemaakt worden die de oude enkele schijf zal vervangen.</para> + + <para>&man.gmirror.8; heeft een kernelmodule + <filename>geom_mirror.ko</filename> nodig, ingebouwd in de kernel of + geladen tijdens het opstarten of draaien. Laadt nu handmatig de + kernelmodule:</para> <screen>&prompt.root; <userinput>gmirror load</userinput></screen> - <note> - <para>Wanneer dit commando succesvol verloopt, maakt het het - apparaatknooppunt <devicename>gm0</devicename> aan onder de - map <filename class="directory">/dev/mirror</filename>.</para> - </note> + <para>Maak de spiegel aan met de twee nieuwe schijven:</para> - <para>Maak het mogelijk om de kernelmodule - <filename>geom_mirror.ko</filename> tijdens systeeminitialisatie - te laden:</para> - - <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /boot/loader.conf</userinput></screen> - - <para>Bewerk het bestand <filename>/etc/fstab</filename>, waarbij - verwijzingen naar het oude <devicename>da0</devicename> worden - vervangen door de nieuwe apparaatknooppunten van het - mirrorapparaat <devicename>gm0</devicename>.</para> + <screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen> - <note> - <para>Indien &man.vi.1; de geprefereerde tekstverwerker is, is - het volgende een gemakkelijke manier om deze taak te - volbrengen:</para> - - <screen>&prompt.root; <userinput>vi /etc/fstab</userinput></screen> - - <para>Maak een reservekopie van de huidige gegevens van - <filename>fstab</filename> in &man.vi.1; door <userinput>:w - /etc/fstab.bak</userinput> in te typen. Vervang daarna alle - oude verwijzingen naar <devicename>da0</devicename> door - <devicename>gm0</devicename> door - <userinput>:%s/da/mirror\/gm/g</userinput> in te typen.</para> - </note> + <para><devicename>gm0</devicename> is een door de gebruiker gekozen + apparaatnaam die aan de nieuwe spiegel wordt toegekend. Nadat de + spiegel is gestart, zal deze apparaatnaam verschijnen in de map + <filename>/dev/mirror/</filename>.</para> + + <para>Nu kunnen er met &man.gpart.8; MBR- en bsdlabel-partitietabellen op + de spiegel worden aangemaakt. Hier wordt er een traditioneel schema + van een gesplitst bestandssysteem getoond, met partities voor + <filename>/</filename>, swap, <filename>/var</filename>, + <filename>/tmp</filename> en <filename>/usr</filename>. Dit werkt ook + voor een enkel bestandssysteem met enkel <filename>/</filename> en + een wisselpartitie.</para> + + <para>Partities op de spiegel hoeven niet dezelfde grootte te hebben als + die op de bestaande schijf, maar moeten groot genoeg zijn om alle + gegevens die reeds op <devicename>ada0</devicename> staan te kunnen + bevatten.</para> + + <screen>&prompt.root; <userinput>gpart create -s MBR mirror/gm0</userinput> +&prompt.root; <userinput>gpart add -t freebsd -a 4k mirror/gm0</userinput> +&prompt.root; <userinput>gpart show mirror/gm0</userinput> +=> 63 156301423 mirror/gm0 MBR (74G) + 63 63 - free - (31k) + 126 156301299 1 freebsd (74G) + 156301425 61 - free - (30k)</screen> + + <screen>&prompt.root; <userinput>gpart create -s BSD mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k mirror/gm0s1</userinput> +&prompt.root; <userinput>gpart show mirror/gm0s1</userinput> +=> 0 156301299 mirror/gm0s1 BSD (74G) + 0 2 - free - (1.0k) + 2 4194304 1 freebsd-ufs (2.0G) + 4194306 8388608 2 freebsd-swap (4.0G) + 12582914 4194304 4 freebsd-ufs (2.0G) + 16777218 2097152 5 freebsd-ufs (1.0G) + 18874370 137426928 6 freebsd-ufs (65G) + 156301298 1 - free - (512B)</screen> + + <para>Maak de spiegel opstartbaar door opstartcode in het MBR en bsdlabel + te installeren en de actieve slice in te stellen:</para> + + <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput> +&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput> +&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen> + + <para>Formatteer de bestandssystemen op de nieuwe spiegel en zet daarbij + soft-updates aan.</para> + + <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen> + + <para>Bestandssystemen van de originele schijf + (<devicename>ada0</devicename>) kunnen nu met &man.dump.8; en + &man.restore.8; naar de spiegel gekopieerd worden:</para> + + <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/tmp</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/usr</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput></screen> + + <para><filename>/mnt/etc/fstab</filename> moet bewerkt worden om naar de + nieuwe bestandssystemen op de spiegel te wijzen:</para> + + <programlisting># Device Mountpoint FStype Options Dump Pass# +/dev/mirror/gm0s1a / ufs rw 1 1 +/dev/mirror/gm0s1b none swap sw 0 0 +/dev/mirror/gm0s1d /var ufs rw 2 2 +/dev/mirror/gm0s1e /tmp ufs rw 2 2 +/dev/mirror/gm0s1f /usr ufs rw 2 2</programlisting> + + <para>Als de kernelmodule &man.gmirror.8; niet in de kernel is ingebouwd, + wordt <filename>/mnt/boot/loader.conf</filename> bewerkt om de module + tijdens het opstarten te laden:</para> + + <programlisting>geom_mirror_load="YES"</programlisting> + + <para>Herstart het systeem om de nieuwe spiegel te testen en te verifiëren + dat alle gegevens zijn gekopieerd. Het BIOS zal de spiegel als twee + individuele schijven zien in plaats van als een spiegel. Omdat de + schijven identiek zijn, maakt het niet uit vanaf welke schijf wordt + opgestart.</para> + + <para>Bekijk de sectie <link linkend="gmirror-troubleshooting">Problemen + oplossen</link> als er problemen zijn tijdens het opstarten. Door de + originele <devicename>ada0</devicename> uit te schakelen en los te + koppelen kan het als offline back-up bewaard worden.</para> - <para>Het resulterende <filename>fstab</filename> zou er ongeveer - hetzelfde als het volgende uit moeten zien. Het maakt niet uit - of de schijfstations <acronym>SCSI</acronym> of - <acronym>RAID</acronym> zijn, het - <acronym>RAID</acronym>-apparaat zal ongeacht hiervan - <devicename>gm</devicename> zijn.</para> - - <programlisting># 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</programlisting> - - <para>Start het systeem opnieuw op:</para> - - <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> - - <para>Tijdens de systeeminitialisatie dient het apparaat - <devicename>gm0</devicename> in plaats van - <devicename>da0</devicename> gebruikt te worden. Als het - systeem volledig is geïnitialiseerd, kan dit gecontroleerd - worden door de uitvoer van het commando <command>mount</command> - te inspecteren:</para> - - <screen>&prompt.root; <userinput>mount</userinput> -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</screen> - - <para>De uitvoer ziet er als verwacht uit. Plaats als laatste - stap, om synchronisatie te beginnen, de schijf - <devicename>da1</devicename> in de mirror met het volgende - commando:</para> - - <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> - - <para>De status kan gecontroleerd worden tijdens het bouwen van de - mirror met het volgende commando:</para> - - <screen>&prompt.root; <userinput>gmirror status</userinput></screen> - - <para>Wanneer de mirror gebouwd is en alle huidige gegevens zijn - gesynchroniseerd, dient de uitvoer van het bovenstaande commando - er als volgt uit te zien:</para> - - <screen> Name Status Components -mirror/gm0 COMPLETE da0 - da1</screen> - - <para>Als er problemen zijn, of als de mirror nog bezig is om het - bouwproces te voltooien, zal het voorbeeld - <literal>DEGRADED</literal> in plaats van - <literal>COMPLETE</literal> laten zien.</para> + <para>Tijdens het gebruik zal de spiegel zich net zoals de originele + enkele schijf gedragen.</para> </sect2> <sect2> - <title>Problemen oplossen</title> + <title>Een spiegel met een bestaande schijf aanmaken</title> - <sect3> - <title>Systeem weigert op te starten</title> + <para>In dit voorbeeld is &os; reeds geïnstalleerd op een enkele schijf, + <devicename>ada0</devicename>. Een nieuwe schijf, + <devicename>ada1</devicename>, is met het systeem verbonden. Er zal + een spiegel van één schijf worden aangemaakt op de nieuwe schijf, het + bestaande systeem zal ernaar worden gekopieerd, en daarna zal de oude + schijf in de spiegel worden geplaatst. Deze enigszins complexe + procedure is nodig omdat &man.gmirror.8; een blok van 512 bytes aan + meta-gegevens aan het einde van elke schijf moet plaatsen en de + bestaande <devicename>ada0</devicename> meestal alle ruimte reeds heeft + toegewezen.</para> - <para>Als een systeem opstart in een prompt dat op het volgende - lijkt:</para> + <para>Laadt de kernelmodule &man.gmirror.8;:</para> - <programlisting>ffs_mountroot: can't find rootvp -Root mount failed: 6 -mountroot></programlisting> + <screen>&prompt.root; <userinput>gmirror load</userinput></screen> - <para>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:</para> + <para>Controleer de mediagrootte van de originele schijf met + &man.diskinfo.8;:</para> - <screen>OK? <userinput>load geom_mirror</userinput> -OK? <userinput>boot</userinput></screen> + <screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput> +/dev/ada0 + 512 # sectorsize + 1000204821504 # mediasize in bytes (931G)</screen> + + <para>Maak een spiegel aan op de nieuwe schijf. Om er zeker van te zijn + dat de capaciteit van de spiegel niet groter is dan die van de originele + schijf, wordt &man.gnop.8; gebruikt om een nepschijf van precies + dezelfde grootte aan te maken. Deze schijf slaat geen gegevens op, maar + wordt alleen gebruikt om de grootte van de spiegel te begrenzen. + Wanneer &man.gmirror.8; de spiegel aanmaakt, zal het de capaciteit + beperken tot de grootte van <devicename>gzero.nop</devicename> zelfs + als de nieuwe schijf (<devicename>ada1</devicename>) meer ruimte heeft. + Merk op dat de <replaceable>1000204821504</replaceable> op de tweede + regel gelijk moet zijn aan de mediagrootte van + <devicename>ada0</devicename> zoals hierboven door &man.diskinfo.8; is + getoond.</para> + + <screen>&prompt.root; <userinput>geom zero load</userinput> +&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput> +&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput> +&prompt.root; <userinput>gmirror forget gm0</userinput></screen> + + <para><devicename>gzero.nop</devicename> slaat geen gegevens op, dus ziet + de spiegel het niet als verbonden. De spiegel wordt verteld om + componenten die niet verbonden zijn te <quote>vergeten</quote>, waarbij + referenties naar <devicename>gzero.nop</devicename> worden verwijderd. + Het resultaat is een spiegelapparaat dat slechts één enkele schijf, + <devicename>ada1</devicename>, bevat.</para> + + <para>Bekijk de partitietabel van <devicename>ada0</devicename> nadat + <devicename>gm0</devicename> is aangemaakt.</para> + + <para>Deze uitvoer komt van een schijf van 1 TB. Als er wat + niet-toegewezen ruimte aanwezig is aan het einde van de schijf, kan de + inhoud direct van <devicename>ada0</devicename> naar de nieuwe spiegel + worden gekopieerd.</para> + + <para>Als de uitvoer echter toont dat alle ruimte op de schijf is + toegewezen zoals in de volgende lijst, is er geen ruimte over voor de + 512 bytes aan meta-gegevens van &man.gmirror.8; aan het einde van de + schijf.</para> + + <screen>&prompt.root; <userinput>gpart show ada0</userinput> +=> 63 1953525105 ada0 MBR (931G) + 63 1953525105 1 freebsd [active] (931G)</screen> + + <para>In dit geval moet de partitietabel worden bewerkt om de capaciteit + op <devicename>mirror/gm0</devicename> met één sector te verminderen. + De procedure hiervoor wordt later uitgelegd.</para> + + <para>In beide gevallen dienen de partitietabellen op de primaire schijf + eerst gekopieerd te worden. Dit kan gedaan worden met de subcommando's + <command>backup</command> en <command>restore</command> van + &man.gpart.8;.</para> + + <screen>&prompt.root; <userinput>gpart backup ada0 > table.ada0</userinput> +&prompt.root; <userinput>gpart backup ada0s1 > table.ada0s1</userinput></screen> + + <para>Deze subcommando's maken twee bestanden aan, + <filename>table.ada0</filename> en <filename>table.ada0s1</filename>. + Dit voorbeeld komt van een schijf van 1 TB af:</para> + + <screen>&prompt.root; <userinput>cat table.ada0</userinput> +MBR 4 +1 freebsd 63 1953525105 [active]</screen> + + <screen>&prompt.root; <userinput>cat table.ada0s1</userinput> +BSD 8 +1 freebsd-ufs 0 4194304 +2 freebsd-swap 4194304 33554432 +4 freebsd-ufs 37748736 50331648 +5 freebsd-ufs 88080384 41943040 +6 freebsd-ufs 130023424 838860800 +7 freebsd-ufs 968884224 984640881</screen> + + <para>Als de gehele schijf was gebruikt in de uitvoer van &man.gpart.8; + <command>show</command>, dan moet de capaciteit in deze partitietabellen + met één sector verminderd worden. Bewerk de twee bestanden zodat de + grootte van zowel de slice als de laatste partitie met één verminderd + wordt. Dit zijn de laatste getallen in elke lijst.</para> + + <screen>&prompt.root; <userinput>cat table.ada0</userinput> +MBR 4 +1 freebsd 63 <emphasis>1953525104</emphasis> [active]</screen> + + <screen>&prompt.root; <userinput>cat table.ada0s1</userinput> +BSD 8 +1 freebsd-ufs 0 4194304 +2 freebsd-swap 4194304 33554432 +4 freebsd-ufs 37748736 50331648 +5 freebsd-ufs 88080384 41943040 +6 freebsd-ufs 130023424 838860800 +7 freebsd-ufs 968884224 <emphasis>984640880</emphasis></screen> + + <para>Als er tenminste één sector aan het einde van de schijf niet was + toegewezen, kunnen deze twee bestanden ongewijzigd gebruikt worden.</para> + <para>Herstel nu de partitietabel naar + <devicename>mirror/gm0</devicename>.</para> + + <screen>&prompt.root; <userinput>gpart restore mirror/gm0 < table.ada0</userinput> +&prompt.root; <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput></screen> + + <para>Controleer de partitietabel met &man.gpart.8; + <command>show</command>. Dit voorbeeld heeft + <devicename>gm0s1a</devicename> voor <filename>/</filename>, + <devicename>gm0s1d</devicename> voor <filename>/var</filename>, + <devicename>gm0s1e</devicename> voor <filename>/usr</filename>, + <devicename>gm0s1f</devicename> voor <filename>/data1</filename> en + <devicename>gm0s1g</devicename> voor <filename>/data2</filename>.</para> + + <screen>&prompt.root; <userinput>gpart show mirror/gm0</userinput> +=> 63 1953525104 mirror/gm0 MBR (931G) + 63 1953525042 1 freebsd [active] (931G) + 1953525105 62 - free - (31k) + +&prompt.root; <userinput>gpart show mirror/gm0s1</userinput> +=> 0 1953525042 mirror/gm0s1 BSD (931G) + 0 2097152 1 freebsd-ufs (1.0G) + 2097152 16777216 2 freebsd-swap (8.0G) + 18874368 41943040 4 freebsd-ufs (20G) + 60817408 20971520 5 freebsd-ufs (10G) + 81788928 629145600 6 freebsd-ufs (300G) + 710934528 1242590514 7 freebsd-ufs (592G) + 1953525042 63 - free - (31k)</screen> + + <para>Zowel de slice als de laatste partitie dienen wat vrije ruimte aan + het einde van elke schijf te hebben.</para> + + <para>Maak bestandssystemen aan op deze nieuwe partities. Het aantal + partities zal variëren, overeenkomend met de partities op de originele + schijf, <devicename>ada0</devicename>.</para> + + <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput> +&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen> + + <para>Maak de spiegel opstartbaar door opstartcode in het MBR en bsdlabel + te installeren en de actieve slice in te stellen:</para> + + <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput> +&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput> +&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen> + + <para>Pas <filename>/etc/fstab</filename> aan zodat het de nieuwe + partities op de spiegel gebruikt. Maak eerst een kopie van dit bestand + als <filename>/etc/fstab.orig</filename>.</para> + + <screen>&prompt.root; <userinput>cp /etc/fstab /etc/fstab.orig</userinput></screen> + + <para>Wijzig <filename>/etc/fstab</filename> door + <devicename>/dev/ada0</devicename> door + <devicename>mirror/gm0</devicename> te vervangen.</para> + + <programlisting># Device Mountpoint FStype Options Dump Pass# +/dev/mirror/gm0s1a / ufs rw 1 1 +/dev/mirror/gm0s1b none swap sw 0 0 +/dev/mirror/gm0s1d /var ufs rw 2 2 +/dev/mirror/gm0s1e /usr ufs rw 2 2 +/dev/mirror/gm0s1f /data1 ufs rw 2 2 +/dev/mirror/gm0s1g /data2 ufs rw 2 2</programlisting> + + <para>Als de kernelmodule &man.gmirror.8; niet in de kernel is gebouwd, + wijzig dan <filename>/boot/loader.conf</filename> om het te + laden:</para> + + <programlisting>geom_mirror_load="YES"</programlisting> + + <para>Bestandssystemen van de originele schijf kunnen nu met &man.dump.8; + en &man.restore.8; naar de spiegel gekopieerd worden. Merk op dat het + maken van een snapshot voor elk bestandssysteem dat met <command>dump + -L</command> gedumpt is even kan duren.</para> + + <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/usr</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/data1</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1g /mnt/data2</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)</userinput> +&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)</userinput></screen> + + <para>Start het systeem opnieuw op vanaf <devicename>ada1</devicename>. + Als alles werkt, zal het systeem opstarten vanaf + <devicename>mirror/gm0</devicename>, wat nu dezelfde gegevens bevat die + <devicename>ada0</devicename> eerder bevatte. Zie de sectie <link + linkend="gmirror-troubleshooting">Problemen oplossen</link> als er + problemen zijn met het opstarten.</para> + + <para>Op dit moment bestaat de spiegel nog steeds alleen uit de enkele + schijf <devicename>ada1</devicename>.</para> + + <para>Nadat er succesvol van <devicename>mirror/gm0</devicename> is + opgestart, is de laatste stap het plaatsen van + <devicename>ada0</devicename> in de spiegel.</para> + + <important> + <para>Als <devicename>ada0</devicename> in de spiegel wordt geplaatst, + zal de vorige inhoud worden overschreven door gegevens in de spiegel. + Ben er zeker van dat <devicename>mirror/gm0</devicename> dezelfde + gegevens bevat als <devicename>ada0</devicename> voordat + <devicename>ada0</devicename> aan de spiegel wordt toegevoegd. Als + er iets mis is met de gegevens die door &man.dump.8; en + &man.restore.8; gekopieerd zijn, draai dan + <filename>/etc/fstab</filename> terug om de bestandssystemen op + <devicename>ada0</devicename> aan te koppelen, start opnieuw op, en + probeer de hele procedure nogmaals.</para> + </important> + + <screen>&prompt.root; <userinput>gmirror insert gm0 ada0</userinput> +GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen> + + <para>De synchronisatie tussen de twee schijven zal onmiddellijk beginnen. + &man.gmirror.8; <command>status</command> toont de voortgang.</para> + + <screen>&prompt.root; <userinput>gmirror status</userinput> + Name Status Components +mirror/gm0 DEGRADED ada1 (ACTIVE) + ada0 (SYNCHRONIZING, 64%)</screen> + + <para>Na een tijd zal de synchronisatie voltooid zijn.</para> + + <screen>GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished. +&prompt.root; <userinput>gmirror status</userinput> + Name Status Components +mirror/gm0 COMPLETE ada1 (ACTIVE) + ada0 (ACTIVE)</screen> + + <para><devicename>mirror/gm0</devicename> bestaat nu uit de twee schijven + <devicename>ada0</devicename> en <devicename>ada1</devicename>, en de + inhoud wordt automatisch met elkaar gesynchroniseerd. In het gebruik + zal <devicename>mirror/gm0</devicename> zich net zo gedragen als de + originele enkele schijf.</para> + </sect2> - <para>Als dit werkt werd de module om welke reden dan ook niet - juist geladen. Controleer of de relevante regel in - <filename>/boot/loader.conf</filename> correct is. Als het - probleem aanhoudt, zet dan de onderstaande regel in het - bestand met kernelinstellingen en herbouw en installeer de - kernel.</para> + <sect2 id="gmirror-troubleshooting"> + <title>Problemen oplossen</title> + + <sect3> + <title>Problemen met opstarten</title> - <programlisting>options GEOM_MIRROR</programlisting> + <sect4> + <title>BIOS-instellingen</title> - <para>Hiermee moet het probleem opgelost zijn.</para> + <para>Mogelijk is het nodig om de BIOS-instellingen te wijzigen om + van één van de nieuwe gespiegelde schijven op te starten. Beide + spiegelschijven kunnen gebruikt worden voor het opstarten. Als + componenten van een spiegel bevatten ze identieke gegevens.</para> + </sect4> + + <sect4> + <title>Opstartproblemen</title> + + <para>Als het opstarten met dit bericht stopt, is er iets mis met het + spiegelapparaat:</para> + + <screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19. + +Loader variables: + vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a + vfs.root.mountfrom.options=rw + +Manual root filesystem specification: + <fstype>:<device> [options] + Mount <device> using filesystem <fstype> + and with the specified (optional) option list. + + eg. ufs:/dev/da0s1a + zfs:tank + cd9660:/dev/acd0 ro + (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /) + + ? List valid disk boot devices + . Yield 1 second (for background tasks) + <empty line> Abort manual input + +mountroot></screen> + + <para>Het vergeten om de module <filename>geom_mirror</filename> in + <filename>/boot/loader.conf</filename> te laden kan dit probleem + veroorzaken. Start op vanaf een &os;-9 of nieuwere CD of USB-stick + en kies <literal>Shell</literal> op de eerste prompt om dit op te + lossen. Laadt daarna de spiegelmodule en en koppel het + spiegelapparaat aan:</para> + + <screen>&prompt.root; <userinput>gmirror load</userinput> +&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen> + + <para>Voeg een regel om de spiegelmodule te laden toe aan + <filename>/mnt/boot/loader.conf</filename>:</para> + + <programlisting>geom_mirror_load="YES"</programlisting> + + <para>Sla het bestand op en start opnieuw op.</para> + + <para>Andere problemen die <literal>error 19</literal> veroorzaken + zijn lastiger om op te lossen. Typ + <literal>ufs:/dev/ada0s1a</literal> in op de prompt. Hoewel het + systeem van <devicename>ada0</devicename> zou moeten opstarten, + verschijnt er een andere prompt om een shell uit te kiezen omdat + <filename>/etc/fstab</filename> onjuist is. Druk op de prompt op + de Enter-toets. Draai de wijzigingen tot nu toe terug door + <filename>/etc/fstab</filename> terug te draaien, waardoor de + bestandssystemen vanaf de originele schijf ( + <devicename>ada0</devicename>) in plaats vanaf de spiegel worden + aangekoppeld. Start het systeem opnieuw op en probeer de procedure + nogmaals.</para> + + <screen>Enter full pathname of shell or RETURN for /bin/sh: +&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput> +&prompt.root; <userinput>reboot</userinput></screen> + </sect4> </sect3> </sect2> <sect2> <title>Herstellen van falende schijven</title> - <para>Het mooie aan het spiegelen van schijven is dat als een - schijf faalt, deze vervangen kan worden, aangenomen zonder - gegevensverlies.</para> - - <para>Neem met betrekking tot de vorige - <acronym>RAID</acronym>1-configuratie aan dat - <devicename>da1</devicename> 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:</para> + <para>Het mooie aan het spiegelen van schijven is dat een individuele + schijf kan falen zonder dat de spiegel gegevens verliest.</para> - <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen> + <para><devicename>ada0</devicename> is één van de twee schijven die de + spiegel in het vorige voorbeeld vormen. Als + <devicename>ada0</devicename> faalt zal de spiegel blijven werken en + gegevens leveren van de overgebleven werkende schijf, + <devicename>ada1</devicename>.</para> + + <para>Om de kapotte schijf te vervangen wordt de computer uitgezet en de + kapotte schijf fysiek vervangen door een nieuwe schijf van gelijke of + grotere capaciteit. Fabrikanten passen enigszins willekeurige waarden + toe om schijven in gigabytes aan te duiden, de enige manier om er echt + zeker van te zijn is om de totale hoeveelheid aan sectors aangegeven + door <command>diskinfo -v</command> te vergelijken. Een schijf met een + grotere capaciteit dan in de spiegel zal werken, alhoewel de extra + ruimte op de nieuwe schijf niet gebruikt zal worden.</para> + + <para>Nadat de computer opnieuw is aangezet, zal de spiegel in een + <quote>degraded</quote> toestand met slechts één schijf draaien. De + spiegel wordt verteld om schijven die momenteel niet verbonden zijn te + vergeten:</para> - <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen> + <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen> - <para>Gebruik het commando <command>gmirror status</command> om de - voortgang van het herbouwen te bekijken. Zo eenvoudig is het.</para> + <para>Alle oude meta-gegevens zouden <link + linkend="GEOM-mirror-metadata">van de vervangende schijf gewist</link> + moeten zijn. Daarna wordt de schijf, in dit voorbeeld + <devicename>ada4</devicename>, in de spiegel geplaatst:</para> + + <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/ada4</userinput></screen> + + <para>De hersynchronisatie begint wanneer de nieuwe schijf in de spiegel + wordt geplaatst. Het kopiëren van gegevens van de spiegel naar een + nieuwe schijf kan een tijd duren. De prestaties van de spiegel zullen + tijdens het kopiëren sterk verminderd zijn, dus is het het beste om + nieuwe schijven in te voegen wanneer de vraag op de computer laag + is.</para> + + <para>De voortgang kan met <command>gmirror status</command> gevolgd + worden, wat de schijven die gesynchroniseerd en het percentage van de + voltooiing laat zien. Tijdens de hersynchronisatie zal de status + <computeroutput>DEGRADED</computeroutput> zijn en veranderen in + <computeroutput>COMPLETE</computeroutput> wanneer het proces is + voltooid.</para> </sect2> </sect1>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211221344.qAMDiYgi089704>