MFen 1.302 -> 1.309

Obtained from:	The FreeBSD Dutch Documentation Project
This commit is contained in:
Rene Ladan 2011-06-13 14:35:59 +00:00
parent 2b3583c136
commit 584d246236
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=37367

View file

@ -1,10 +1,10 @@
<!--
The FreeBSD Dutch Documentation Project
$FreeBSD$
$FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml,v 1.20 2011/01/29 22:37:20 remko Exp $
%SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.sgml
%SRCID% 1.302
%SRCID% 1.309
-->
<chapter id="disks">
@ -261,7 +261,9 @@
en schijven tot 4&nbsp;TB. Het formaat van &man.sunlabel.8; is
beperkt tot 2^32-1 sectoren per partitie en 8 partities per
schijf, in totaal dus 16&nbsp;TB. Voor grotere schijven kan
&man.gpt.8; worden gebruikt.</para>
&man.gpart.8; worden gebruikt om <acronym>GPT</acronym>-partities aan te
maken. <acronym>GPT</acronym> heeft het bijkomende voordeel dat het niet
tot 4 slices beperkt is.</para>
<sect2>
<title>&man.sysinstall.8; gebruiken</title>
@ -4502,6 +4504,674 @@ Device 1K-blocks Used Avail Capacity
</screen>
</sect2>
</sect1>
<sect1 id="disks-hast">
<sect1info>
<authorgroup>
<author>
<firstname>Daniel</firstname>
<surname>Gerzo</surname>
<contrib>Bijgedragen door </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Freddie</firstname>
<surname>Cash</surname>
<contrib>Met informatie van </contrib>
</author>
<author>
<firstname>Pawel Jakub</firstname>
<surname>Dawidek</surname>
</author>
<author>
<firstname>Michael W.</firstname>
<surname>Lucas</surname>
</author>
<author>
<firstname>Viktor</firstname>
<surname>Petersson</surname>
</author>
</authorgroup>
<!-- Datum van schrijven: 26 februari 2011 -->
</sect1info>
<title>Highly Available Storage (HAST)</title>
<indexterm>
<primary>HAST</primary>
<secondary>hoge beschikbaarheid</secondary>
</indexterm>
<sect2>
<title>Overzicht</title>
<para>Hoge beschikbaarheid is een van de hoofdzaken in serieuze zakelijke
toepassingen en hoog beschikbare opslag is een sleutelonderdeel in zulke
omgevingen. Hoog beschikbare opslag, of <acronym>HAST<remark
role="acronym">Highly Available STorage</remark></acronym>, werd
ontwikkeld door &a.pjd; als een raamwerk dat transparante opslag van
dezelfde gegevens toestaat over fysiek gescheiden machines die verbonden
zijn door een TCP/IP-netwerk. <acronym>HAST</acronym> kan gezien worden
als een netwerkgebaseerde RAID1 (spiegel) en is vergelijkbaar met het
DRBD&reg; opslagsysteem bekend van het GNU/&linux; platform. In
combinatie met andere eigenschappen voor hoge beschikbaarheid van &os;
zoals <acronym>CARP</acronym> maakt <acronym>HAST</acronym> het mogelijk
om een opslagcluster met hoge beschikbaarheid te bouwen dat resistent is
tegen falende hardware.</para>
<para>Na het lezen van deze sectie weet u:</para>
<itemizedlist>
<listitem>
<para>Wat <acronym>HAST</acronym> is, hoe het werkt en welke
mogelijkheden het biedt.</para>
</listitem>
<listitem>
<para>Hoe <acronym>HAST</acronym> op &os; te op te zetten en te
gebruiken.</para>
</listitem>
<listitem>
<para>Hoe <acronym>CARP</acronym> en &man.devd.8; te integreren om een
robuust opslagsysteem te bouwen.</para>
</listitem>
</itemizedlist>
<para>Voor het lezen van deze sectie dient u:</para>
<itemizedlist>
<listitem>
<para>De beginselen van &unix; en &os; te begrijpen (<xref
linkend="basics">).</para>
</listitem>
<listitem>
<para>Te weten hoe de netwerkinterfaces en andere kerndeelsystemen van
&os; in te stellen (<xref linkend="config-tuning">).</para>
</listitem>
<listitem>
<para>Netwerken op &os; goed te begrijpen (<xref
linkend="network-communication">).</para>
</listitem>
<listitem>
<para>&os;&nbsp;8.1-RELEASE of nieuwer te gebruiken.</para>
</listitem>
</itemizedlist>
<para>Het <acronym>HAST</acronym>-project werd gesponsord door The &os;
Foundation met ondersteuning van <ulink url="http://www.omc.net/">
OMCnet Internet Service GmbH</ulink> en <ulink
url="http://www.transip.nl/">TransIP BV</ulink>.</para>
</sect2>
<sect2>
<title>Eigenschappen van HAST</title>
<para>De belangrijkste eigenschappen van <acronym>HAST</acronym> zijn:</para>
<itemizedlist>
<listitem>
<para>Het kan gebruikt worden om I/O-fouten op lokale harde schijven
te maskeren.</para>
</listitem>
<listitem>
<para>Agnostisch qua bestandssysteem, dus het staat toe om elk
bestandssysteem dat door &os; wordt ondersteund te gebruiken.</para>
</listitem>
<listitem>
<para>Effici&euml;nte en snelle hersynchronisatie, alleen de blokken
die zijn veranderd toen een knooppunt uitstond worden
gesynchroniseerd.</para>
</listitem>
<!--
<listitem>
<para>Het heeft verschillende synchronisatiemodi die een snelle
failover mogelijk maken.</para>
</listitem>
-->
<listitem>
<para>Het kan gebruikt worden in reeds uitgerolde omgevingen om
aanvullende redundantie toe te voegen.</para>
</listitem>
<listitem>
<para>Samen met <acronym>CARP</acronym>,
<application>Heartbeat</application> of andere gereedschappen kan
het worden gebruikt om een robuust en duurzaam opslagsysteem te
bouwen.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Werking van HAST</title>
<para>Omdat <acronym>HAST</acronym> synchrone replicatie op blokniveau
van elk opslagmedium naar verscheidene machines biedt, heeft het
tenminste twee knooppunten (fysieke machines) nodig &mdash; het
<literal>primaire</literal> (ook bekend als <literal>meester</literal>)
knooppunt en het <literal>secundaire</literal> (<literal>slaaf</literal>
) knooppunt. Tezamen worden deze twee machines een cluster genoemd.</para>
<note>
<para>HAST is momenteel beperkt tot een totaal van twee
clusterknooppunten.</para>
</note>
<para>Aangezien <acronym>HAST</acronym> in een primaire-secundaire
configuratie werkt, kan er op elk moment slechts &eacute;&eacute;n van
de clusterknooppunten actief zijn. Het <literal>primaire</literal>
knooppunt, ookwel <literal>actief</literal>, is degene die alle
I/O-verzoeken aan apparaten die door <acronym>HAST</acronym> worden
beheerd afhandelt. Het <literal>secundaire</literal> knooppunt wordt
dan automatisch gesynchroniseerd vanuit het <literal>primaire</literal>
knooppunt.</para>
<para>De fysieke componenten van het <acronym>HAST</acronym>-systeem
zijn:</para>
<itemizedlist>
<listitem>
<para>lokale schijf (op primair knooppunt)</para>
</listitem>
<listitem>
<para>schijf op verre machine (secundair knooppunt)</para>
</listitem>
</itemizedlist>
<para><acronym>HAST</acronym> werkt synchroon op blokniveau, wat het
transparant maakt voor bestandssystemen en toepassingen.
<acronym>HAST</acronym> biedt reguliere GEOM-aanbieders aan in <filename
class="directory">/dev/hast/</filename> voor zowel andere
gereedschappen als toepassingen, er is dus geen verschil tussen het
gebruik van apparaten die door <acronym>HAST</acronym> worden geleverd
en rauwe schijven, partities, etc.</para>
<para>Elke bewerking met betrekking tot schrijven, verwijderen of spoelen
wordt naar de plaatselijke schijf en over TCP/IP naar de verre schijf
gestuurd. Elke leesbewerking wordt gedaan door de plaatselijke schijf,
tenzij de plaatselijke schijf niet actueel is of er een I/O-fout
optreed. In zulke gevallen wordt de leesbewerking naar het secundaire
knooppunt gestuurd.</para>
<sect3>
<title>Synchronisatie- en replicatiemodi</title>
<para><acronym>HAST</acronym> probeert om een snel herstel van fouten
te leveren. Om deze reden is het heel belangrijk om de
synchronisatietijd te verkorten nadat een knooppunt is hersteld van
een uitval. Om een snelle synchronisatie te leveren, beheert
<acronym>HAST</acronym> op de schijf een bitmap van gebruikte extents
en synchroniseert het die alleen tijdens een reguliere synchronisatie
(met uitzondering van de initi&euml;e synchronisatie).</para>
<para>Er zijn vele manieren om synchronisatie af te handelen.
<acronym>HAST</acronym> implementeert meerdere replicatiemodi om
verschillende synchronisatiemethodes af te handelen:</para>
<itemizedlist>
<listitem>
<para><emphasis>memsync</emphasis>: rapporteer een schrijfbewerking
als voltooid wanneer de plaatselijke schrijfbewerking klaar is en
wanneer het verre knooppunt de gegevensaankomst bevestigt, maar
voordat het de gegevens daadwerkelijk heeft opgeslagen. De
gegevens op het verre knooppunt zullen meteen na het versturen van
de bevestiging worden opgeslagen. Deze modus is bedoeld om
latency te verminderen en nog steeds een zeer goede
betrouwbaarheid te bieden. De replicatiemodus
<emphasis>memsync</emphasis> is momenteel niet
ge&iuml;mplementeerd.</para>
</listitem>
<listitem>
<para><emphasis>fullsync</emphasis>: rapporteer een schrijfbewerking
als voltooid wanneer zowel de plaatselijke en de verre
schrijfbewerking voltooid zijn. Dit is de veiligste en traagste
replicatiemodus. Dit is de standaardmodus.</para>
</listitem>
<listitem>
<para><emphasis>async</emphasis>: rapporteer de schrijfbewerking als
voltooid wanneer de plaatselijke schrijfbewerking klaar is. Dit
is de snelste en gevaarlijkste replicatiemodus. Het dient
gebruikt te worden wanneer er naar een ver knooppunt wordt
gerepliceerd en de latency te hoog is voor andere modi. De
replicatiemodus <emphasis>async</emphasis> is momenteel niet
ge&iuml;mplementeerd.</para>
</itemizedlist>
<warning>
<para>Momenteel wordt alleen de replicatiemodus
<emphasis>fullsync</emphasis> ondersteund.</para>
</warning>
</sect3>
</sect2>
<sect2>
<title>HAST-configuratie</title>
<para><acronym>HAST</acronym> heeft ondersteuning voor
<literal>GEOM_GATE</literal> nodig om te kunnen functioneren. De kernel
<literal>GENERIC</literal> bevat standaard <emphasis>geen</emphasis>
<literal>GEOM_GATE</literal>, de laadbare module
<filename>geom_gate.ko</filename> is echter beschikbaar in de
standaardinstallatie van &os;. Zorg ervoor dat deze module beschikbaar
is voor afgeslankte systemen. Het is ook mogelijk om ondersteuning voor
<literal>GEOM_GATE</literal> statisch in de kernel te bouwen, door de
volgende regel aan het kernelconfiguratiebestand toe te voegen:</para>
<programlisting>options GEOM_GATE</programlisting>
<para>Het <acronym>HAST</acronym>-raamwerk bestaat vanuit het
besturingssysteem gezien uit verschillende delen:</para>
<itemizedlist>
<listitem>
<para>het daemon &man.hastd.8; dat verantwoordelijk is voor de
gegevenssynchronisatie,</para>
</listitem>
<listitem>
<para>het beheerprogramma &man.hastctl.8; voor de gebruikers,</para>
</listitem>
<listitem>
<para>het configuratiebestand &man.hast.conf.5;.</para>
</listitem>
</itemizedlist>
<para>Het volgende voorbeeld beschrijft hoe twee knooppunten in een
<literal>meester</literal>-<literal>slaaf</literal> /
<literal>primaire</literal>-<literal>secundaire</literal> opstelling te
configureren door <acronym>HAST</acronym> te gebruiken om de gegevens
tussen de twee te repliceren. De knooppunten worden
<literal><replaceable>hasta</replaceable></literal> met IP-adres
<replaceable>172.16.0.1</replaceable> en
<literal><replaceable>hastb</replaceable></literal> met IP-adres
<replaceable>172.16.0.2</replaceable> genoemd. Beide knooppunten hebben
een toegewijde harde schijf
<devicename>/dev/<replaceable>ad6</replaceable></devicename> van
dezelfde grootte om met <acronym>HAST</acronym> te werken. De
<acronym>HAST</acronym>-pool (soms ook een hulpbron genoemd, i.e. de
GEOM-aanbieder in <filename class="directory">/dev/hast/</filename>)
wordt <filename><replaceable>test</replaceable></filename>
genoemd.</para>
<para>Het bestand <filename>/etc/hast.conf</filename> regelt de
configuratie van <acronym>HAST</acronym>. Dit bestand dient hetzelfde
te zijn op beide knooppunten. Het volgende is de simpelst mogelijke
configuratie:</para>
<programlisting>resource test {
on hasta {
local /dev/ad6
remote 172.16.0.2
}
on hastb {
local /dev/ad6
remote 172.16.0.1
}
}</programlisting>
<para>Raadpleeg voor geavanceerdere configuraties de handleidingpagina
&man.hast.conf.5;.</para>
<tip>
<para>Het is ook mogelijk om hostnamen in de regels met
<literal>remote</literal> te gebruiken. Zorg er in dat geval voor dat
deze hosts vindbaar zijn, bijvoorbeeld doordat ze zijn gedefinieerd in
het bestand <filename>/etc/hosts</filename> of anders in het
plaatselijke <acronym>DNS</acronym>.</para>
</tip>
<para>Nu de configuratie op beide knooppunten aanwezig is, is het mogelijk
om de <acronym>HAST</acronym>-pool aan te maken. Voer de volgende
commando's op beide knooppunten uit om de initi&euml;le metagegevens op
de plaatselijke schijf te plaatsen en het &man.hastd.8;-daemon te
starten:</para>
<screen>&prompt.root; <userinput>hastctl create test</userinput>
&prompt.root; <userinput>/etc/rc.d/hastd onestart</userinput>
</screen>
<note>
<para>Het is <emphasis>niet</emphasis> mogelijk om GEOM-aanbieders met
een bestaand bestandssysteem te gebruiken (i.e. een bestaande opslag
omzetten naar een door <acronym>HAST</acronym> beheerde pool), omdat
deze procedure wat metagegevens op de aanbieder moet opslaan en er
daarvoor niet genoeg beschikbare ruimte is.</para>
</note>
<para>HAST is niet verantwoordelijk voor het kiezen van de rol van een
knooppunt (<literal>primair</literal> of <literal>secundair</literal>).
De rol van een knooppunt dient door een beheerder of andere software
zoals <application>Heartbeat</application> gebruikmakend van
&man.hastctl.8; te worden geconfigureerd. Voer het volgende commando
uit op het primaire knooppunt (
<literal><replaceable>hasta</replaceable></literal>):</para>
<screen>&prompt.root; <userinput>hastctl role primary test</userinput></screen>
<para>Voer het volgende, soortgelijke, commando uit op het secundaire
knooppunt (<literal><replaceable>hastb</replaceable></literal>):</para>
<screen>&prompt.root; <userinput>hastctl role secondary test</userinput></screen>
<caution>
<para>Het kan gebeuren dat beide knooppunten niet met elkaar kunnen
communiceren en beiden geconfigureerd zijn als primaire knooppunten;
het gevolg van deze situatie wordt <literal>split-brain</literal>
genoemd. Volg de stappen zoals beschreven in <xref
linkend="disks-hast-sb"> om deze situatie op te lossen.</para>
</caution>
<para>Het is mogelijk om met het gereedschap &man.hastctl.8; het resultaat
op elk knooppunt te verifi&euml;ren:</para>
<screen>&prompt.root; <userinput>hastctl status test</userinput></screen>
<para>Het belangrijke gedeelte van de uitvoer is de regel met
<literal>status</literal> dat voor alle knooppunten
<literal>complete</literal> dient te bevatten. Als het
<literal>degraded</literal> bevat, is er iets verkeerd gegaan. Op dat
moment is de synchronisatie tussen de knooppunten al begonnen. De
synchronisatie is compleet wanneer het commando
<command>hastctl status</command> 0 bytes aan <literal>dirty</literal>
extents rapporteert.</para>
<para>De laatste stap is het aanmaken van een bestandssysteem op de
GEOM-aanbieder
<devicename>/dev/hast/<replaceable>test</replaceable></devicename> en
het aan te koppelen. Dit moet op het <literal>primaire</literal>
knooppunt gebeuren (aangezien
<filename>/dev/hast/<replaceable>test</replaceable></filename> alleen
op het <literal>primaire</literal> knooppunt verschijnt), en het enkele
minuten kan duren afhankelijk van de grootte van de harde schijf:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/hast/test</userinput>
&prompt.root; <userinput>mkdir /hast/test</userinput>
&prompt.root; <userinput>mount /dev/hast/test /hast/test</userinput></screen>
<para>Wanneer het <acronym>HAST</acronym>-raamwerk correct is
geconfigureerd, betreft de laatste stap het ervoor zorgen dat
<acronym>HAST</acronym> automatisch tijdens het opstarten wordt gestart.
De volgende regel dient aan het bestand
<filename>/etc/rc.conf</filename> te worden toegevoegd:</para>
<programlisting>hastd_enable="YES"</programlisting>
<sect3>
<title>Failover-configuratie</title>
<para>Het doel van dit voorbeeld is om een robuust opslagsysteem te
bouwen dat resistent is tegen het falen van alle knooppunten. De
hoofdtaak is het oplossen van een scenario waarin een
<literal>primair</literal> knooppunt van het cluster faalt. Mocht dit
gebeuren, dan neemt het <literal>secundaire</literal> knooppunt het
feilloos over, controleert en koppelt het het bestandssysteem aan, en
gaat het verder zonder dat er een bit aan gegevens ontbreekt.</para>
<para>Om deze taak voor elkaar te krijgen, is het nodig om een andere
eigenschap te gebruiken die beschikbaar is op &os; en dat voorziet in
automatische failover van de IP-laag &mdash; <acronym>CARP</acronym>.
<acronym>CARP</acronym> staat voor Common Address Redundancy Protocol
en maakt het mogelijk dat meerdere hosts in hetzelfde netwerksegment
een IP-adres delen. Stel <acronym>CARP</acronym> in op beide
knooppunten van het cluster volgens de documentatie die beschikbaar is
in <xref linkend="carp">. Nadat deze taak voltooid is, zou elk
knooppunt een eigen interface <devicename>carp0</devicename> met een
gedeeld IP-adres <replaceable>172.16.0.254</replaceable> moeten
hebben. Het primaire <acronym>HAST</acronym>-knooppunt van het
cluster moet het meester-<acronym>CARP</acronym>-knooppunt
zijn.</para>
<para>De <acronym>HAST</acronym>-pool die in de vorige sectie is gemaakt
is nu klaar om ge&euml;xporteerd te worden naar de andere hosts op het
netwerk. Dit kan gedaan worden door het te exporteren over
<acronym>NFS</acronym>, <application>Samba</application>, etc., door
gebruik te maken van het gedeelde IP-adres
<replaceable>172.16.0.254</replaceable>. Het enige overgebleven
probleem is een automatische failover in het geval dat het primaire
knooppunt het begeeft.</para>
<para>Als een <acronym>CARP</acronym>-interface aan- of uitgaat,
genereert &os; een &man.devd.8;-gebeurtenis, wat het mogelijk maakt om
toestandsveranderingen op de <acronym>CARP</acronym>-interfaces in de
gaten te houden. Een toestandsverandering op het
<acronym>CARP</acronym>-interface geeft aan dat een van de knooppunten
het begaf of weer online kwam. In zulke gevallen is het mogelijk om
een script te draaien dat automatisch de failover afhandelt.</para>
<para>Om de toestandsverandering op de
<acronym>CARP</acronym>-interfaces af te vangen, dient de volgende
configuratie te worden toegevoegd aan het bestand
<filename>/etc/devd.conf</filename> op elk knooppunt:</para>
<programlisting>notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_UP";
action "/usr/local/sbin/carp-hast-switch master";
};
notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_DOWN";
action "/usr/local/sbin/carp-hast-switch slave";
};</programlisting>
<para>Draai het volgende commando op beide knooppunten om de nieuwe
configuratie te laten gelden:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/devd restart</userinput></screen>
<para>Als het interface <devicename>carp0</devicename> aan of uit gaat
(i.e. de toestand van het interface verandert), genereert het systeem
een notificatie wat het subsysteem &man.devd.8; in staat stelt om een
willekeurig script te draaien, in dit geval
<filename>/usr/local/sbin/carp-hast-switch</filename>. Dit is het
script dat de automatische failover afhandelt. Raadpleeg de
handleidingpagina &man.devd.conf.5; voor verdere uitleg over de
bovenstaande configuratie van &man.devd.8;.</para>
<para>Het volgende zou een voorbeeld van zo'n script kunnen zijn:</para>
<programlisting>#!/bin/sh
# Origineel script door Freddie Cash &lt;fjwcash@gmail.com&gt;
# Gewijzigd door Michael W. Lucas &lt;mwlucas@BlackHelicopters.org&gt;
# en Viktor Petersson &lt;vpetersson@wireload.net&gt;
# De namen van de HAST-hulpbronnen, zoals vermeld in /etc/hast.conf
resources="test"
# vertraging voor het aankoppelen van de HAST-hulpbron na het worden van meester
# doe een gok
delay=3
# logging
log="local0.debug"
name="carp-hast"
# einde van gebruiker-instelbare dingen
case "$1" in
master)
logger -p $log -t $name "Omschakelen naar primaire aanbieder voor ${resources}."
sleep ${delay}
# Wacht totdat de "hastd secondary" processen zijn gestopt
for disk in ${resources}; do
while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do
sleep 1
done
# Verwissel de rol voor elke schijf
hastctl role primary ${disk}
if [ $? -ne 0 ]; then
logger -p $log -t $name "Omschakelen van rol naar primair voor hulpbron ${disk} mislukt."
exit 1
fi
done
# Wacht totdat de apparaten /dev/hast/* verschijnen
for disk in ${resources}; do
for I in $( jot 60 ); do
[ -c "/dev/hast/${disk}" ] && break
sleep 0.5
done
if [ ! -c "/dev/hast/${disk}" ]; then
logger -p $log -t $name "GEOM-aanbieder /dev/hast/${disk} is niet verschenen."
exit 1
fi
done
logger -p $log -t $name "Rollen van HAST-hulpbronnen ${resources} omgeschakeld naar primair."
logger -p $log -t $name "Schijven aankoppelen."
for disk in ${resources}; do
mkdir -p /hast/${disk}
fsck -p -y -t ufs /dev/hast/${disk}
mount /dev/hast/${disk} /hast/${disk}
done
;;
slave)
logger -p $log -t $name "Omschakelen naar secundaire aanbieder voor ${resources}."
# Schakel de rollen van de HAST-hulpbronnen om
for disk in ${resources}; do
if ! mount | grep -q "^/dev/hast/${disk} on "
then
else
umount -f /hast/${disk}
fi
sleep $delay
hastctl role secondary ${disk} 2>&1
if [ $? -ne 0 ]; then
logger -p $log -t $name "Omschakelen van rol naar secundair voor hulpbron ${disk} mislukt."
exit 1
fi
logger -p $log -t $name "Rol van hulpbron ${disk} omgeschakeld naar secundair."
done
;;
esac</programlisting>
<para>In een notendop doet het script het volgende wanneer een knooppunt
<literal>meester</literal> / <literal>primair</literal> wordt:</para>
<itemizedlist>
<listitem>
<para>De <acronym>HAST</acronym>-pools opwaarderen naar primair op
een gegeven knooppunt.</para>
</listitem>
<listitem>
<para>Het bestandssysteem onder de <acronym>HAST</acronym>-pool
controleren.</para>
</listitem>
<listitem>
<para>De pools op de juiste plaats aankoppelen.</para>
</listitem>
</itemizedlist>
<para>Wanneer een knooppunt <literal>backup</literal> /
<literal>secundair</literal> wordt:</para>
<itemizedlist>
<listitem>
<para>De <acronym>HAST</acronym>-pools afkoppelen.</para>
</listitem>
<listitem>
<para>De <acronym>HAST</acronym>-pools degraderen naar
secundair.</para>
</listitem>
</itemizedlist>
<caution>
<para>Houd in gedachte dat dit slechts een voorbeeldscript is dat
dienst doet om aan te tonen dat alles werkt. Het behandeld niet
alle mogelijke situaties en kan op elke manier worden uitgebreid of
veranderd, het kan bijvoorbeeld benodigde diensten starten en
stoppen.</para>
</caution>
<tip>
<para>Voor het doel van dit voorbeeld hebben we een standaard
UFS-bestandssysteem gebruikt. Om de tijd die nodig is voor herstel
te verkorten, kan een bestandssysteem met UFS-journalling of ZFS
worden gebruikt.</para>
</tip>
<para>Meer gedetailleerde informatie met aanvullende voorbeelden kunnen
gevonden worden op de <ulink
url="http://wiki.FreeBSD.org/HAST">HAST Wiki</ulink>-pagina.</para>
</sect3>
</sect2>
<sect2>
<title>Problemen oplossen</title>
<sect3>
<title>Algemene tips om problemen op te lossen</title>
<para><acronym>HAST</acronym> zou over het algemeen zonder problemen
moeten werken, maar net als met elk ander software-product zijn er
momenten waarop het anders werkt dan het zou moeten. De oorzaken van
de problemen kunnen verschillen, maar de vuistregel is om ervoor te
zorgen dat de klokken zijn gesynchroniseerd op alle knooppunten in het
cluster.</para>
<para>Het debug-niveau van &man.hastd.8; dient verhoogd te worden
wanneer problemen met <acronym>HAST</acronym> worden verholpen. Dit
kan gedaan worden door het daemon &man.hastd.8; met het argument
<literal>-d</literal> op te starten. Merk op dat dit argument
meerdere malen kan worden opgegeven om het debug-niveau nog verder op
te hogen. Op deze manier kan veel nuttige informatie worden vergaard.
Het is ook de moeite te overwegen om het argument
<literal>-F</literal> te gebruiken, dat het daemon &man.hastd.8; in de
voorgrond zal starten.</para>
</sect3>
<sect3 id="disks-hast-sb">
<title>Herstellen van de Split-brain-conditie</title>
<para>Het gevolg van de situatie waarin beide knooppunten van het
cluster niet met elkaar kunnen communiceren en beide als primaire
knooppunten zijn ingesteld wordt <literal>split-brain</literal>
genoemd. Dit is een gevaarlijke situatie omdat het beide knooppunten
in staat stelt om incompatibele veranderingen aan de gegevens te
maken. Deze situatie dient handmatig door de systeembeheerder te
worden afgehandeld.</para>
<para>Om deze situatie op te lossen moet de beheerder besluiten welk
knooppunt de belangrijkere veranderingen bevat (of ze handmatig
samenvoegen) en <acronym>HAST</acronym> de volledige synchronisatie
op het knooppunt dat de kapotte gegevens heeft laten uitvoeren. Voer
hiervoor de volgende commando's uit op het knooppunt dat opnieuw
gesynchroniseerd moet worden:</para>
<screen>&prompt.root; <userinput>hastctl role init &lt;resource&gt;</userinput>
&prompt.root; <userinput>hastctl create &lt;resource&gt;</userinput>
&prompt.root; <userinput>hastctl role secondary &lt;resource&gt;</userinput></screen>
</sect3>
</sect2>
</sect1>
</chapter>
<!--