diff --git a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml index 86758d807a..56a5a241bb 100644 --- a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml @@ -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 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 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® 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; 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ë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 — 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 éé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ë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ï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ï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ë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ë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 — <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ë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 <fjwcash@gmail.com> +# Gewijzigd door Michael W. Lucas <mwlucas@BlackHelicopters.org> +# en Viktor Petersson <vpetersson@wireload.net> + +# 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 <resource></userinput> +&prompt.root; <userinput>hastctl create <resource></userinput> +&prompt.root; <userinput>hastctl role secondary <resource></userinput></screen> + </sect3> + </sect2> + </sect1> </chapter> <!--