MFen r39631 -> r39988
This commit is contained in:
parent
bc436f5733
commit
3f9ca4a10b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40127
1 changed files with 545 additions and 179 deletions
|
@ -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>
|
||||
<indexterm><primary>RAID1</primary></indexterm>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<sect2>
|
||||
<title>Primaire schijven spiegelen</title>
|
||||
<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>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>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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen>
|
||||
<sect2 id="GEOM-mirror-metadata">
|
||||
<title>Kwesties met meta-gegevens</title>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<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>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen>
|
||||
<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>
|
||||
|
||||
<para>Het systeem hoort te antwoorden met:</para>
|
||||
<screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>
|
||||
|
||||
<screen>Metadata value stored on /dev/da0.
|
||||
Done.</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>
|
||||
|
||||
<para>Initialiseer GEOM, dit zal de kernelmodule
|
||||
<filename>/boot/kernel/geom_mirror.ko</filename> laden:</para>
|
||||
<screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
|
||||
|
||||
<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 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>
|
||||
|
||||
<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>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>&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>
|
||||
|
||||
<sect2>
|
||||
<title>Een spiegel met twee nieuwe schijven maken</title>
|
||||
|
||||
<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>
|
||||
|
||||
<para>Maak de spiegel aan met de twee nieuwe schijven:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
|
||||
|
||||
<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>Tijdens het gebruik zal de spiegel zich net zoals de originele
|
||||
enkele schijf gedragen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Een spiegel met een bestaande schijf aanmaken</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>Laadt de kernelmodule &man.gmirror.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<para>Controleer de mediagrootte van de originele schijf met
|
||||
&man.diskinfo.8;:</para>
|
||||
|
||||
<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>
|
||||
|
||||
<sect2 id="gmirror-troubleshooting">
|
||||
<title>Problemen oplossen</title>
|
||||
|
||||
<sect3>
|
||||
<title>Systeem weigert op te starten</title>
|
||||
<title>Problemen met opstarten</title>
|
||||
|
||||
<para>Als een systeem opstart in een prompt dat op het volgende
|
||||
lijkt:</para>
|
||||
<sect4>
|
||||
<title>BIOS-instellingen</title>
|
||||
|
||||
<programlisting>ffs_mountroot: can't find rootvp
|
||||
Root mount failed: 6
|
||||
mountroot></programlisting>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<sect4>
|
||||
<title>Opstartproblemen</title>
|
||||
|
||||
<screen>OK? <userinput>load geom_mirror</userinput>
|
||||
OK? <userinput>boot</userinput></screen>
|
||||
<para>Als het opstarten met dit bericht stopt, is er iets mis met het
|
||||
spiegelapparaat:</para>
|
||||
|
||||
<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>
|
||||
<screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
|
||||
|
||||
<programlisting>options GEOM_MIRROR</programlisting>
|
||||
Loader variables:
|
||||
vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
|
||||
vfs.root.mountfrom.options=rw
|
||||
|
||||
<para>Hiermee moet het probleem opgelost zijn.</para>
|
||||
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>Het mooie aan het spiegelen van schijven is dat een individuele
|
||||
schijf kan falen zonder dat de spiegel gegevens verliest.</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><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 forget gm0</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
|
||||
<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>
|
||||
|
||||
<para>Gebruik het commando <command>gmirror status</command> om de
|
||||
voortgang van het herbouwen te bekijken. Zo eenvoudig is het.</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>
|
||||
|
||||
|
|
Loading…
Reference in a new issue