From owner-p4-projects@FreeBSD.ORG Tue Sep 16 15:24:42 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 790561065672; Tue, 16 Sep 2008 15:24:42 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B8F2106564A for ; Tue, 16 Sep 2008 15:24:42 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0B2028FC20 for ; Tue, 16 Sep 2008 15:24:42 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m8GFOfc7067218 for ; Tue, 16 Sep 2008 15:24:41 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m8GFOfu3067200 for perforce@freebsd.org; Tue, 16 Sep 2008 15:24:41 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 16 Sep 2008 15:24:41 GMT Message-Id: <200809161524.m8GFOfu3067200@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 149869 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2008 15:24:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=149869 Change 149869 by rene@rene_self on 2008/09/16 15:23:44 MFen vinum/chapter.sgml 1.37 -> 1.45 Checked build, spelling, whitepace Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml#3 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml#3 (text+ko) ==== @@ -2,14 +2,16 @@ De Vinum Volume Manager Door Greg Lehey (grog at lemis dot com) - Toegevoegd aan het Handboek door by Hiten Pandya + Toegevoegd aan het Handboek door Hiten Pandya en Tom Rhodes The Dutch FreeBSD Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml,v 1.5 2005/03/06 13:23:55 remko Exp $ $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml,v 1.31 2005/03/06 00:42:17 siebrand Exp $ - Gebaseerd op: 1.37 + + %SOURCE% en_US.ISO8859-1/books/handbook/vinum/chapter.sgml + %SRCID% 1.45 --> @@ -30,7 +32,7 @@ - De VINUM volume manager + De VINUM volumebeheerder Overzicht @@ -40,11 +42,11 @@ - Ze kunnen te klein zijn + Ze kunnen te klein zijn. - Ze kunnen te traag zijn + Ze kunnen te traag zijn. @@ -52,23 +54,43 @@ - Eén manier waarop gebruikers zich wapenen tegen - een aantal van deze problemen is door meerdere en soms ook - redundante schijven te gebruiken. + Er zijn verschillende oplossingen voor deze problemen + voorgesteld en geïmplementeerd. Eén manier waarop + gebruikers zich wapenen tegen een aantal van deze problemen is + door meerdere en soms ook redundante schijven te gebruiken. Naast + ondersteuning voor verschillende kaarten en controllers die + hardware-RAID ondersteunen, bevat het &os; basissysteem ook de + Vinum Volume Manager, een + blokapparaatstuurprogramma waarmee virtuele + schijven gemaakt kunnen worden. Vinum is een + zogenaamde Volume Manager, een stuurprogramma + voor virtuële schijven dat deze drie problemen in beschouwing + neemt. Vinum biedt meer flexibiliteit, prestaties en + betrouwbaarheid dan traditionele schijfopslag en er kan RAID-0, + RAID-1 en RAID-5 mee gemaakt worden of een combinatie van deze + RAID-niveaus. - Naast ondersteuning voor verschillende kaarten en controllers - die hardware RAID ondersteunen, bevat het &os; basissysteem ook - de Vinum Volume Manager, een block device driver - waarmee virtuele schijven gemaakt kunnen worden. - - Vinum biedt meer flexibiliteit, prestaties en betrouwbaarheid - dan traditionele schijfopslag en er kan RAID-0, RAID-1 en RAID-5 - mee gemaakt worden of een combinatie van deze RAID - niveau's. - In dit hoofdstuk wordt een overzicht gegeven van de mogelijke problemen die traditionele schijfopslag met zich meebrengt en de Vinum Volume Manager wordt geïntroduceerd. + + + Vanaf &os; 5, is Vinum herschreven om in de + GEOM-architectuur () te passen, met behoud + van de originele ideëen, terminologie, en metagegevens die + op de schijf staan. Deze herschrijving wordt + gvinum (voor GEOM + vinum) genoemd. De volgende tekst refereert aan + Vinum als een abstracte naam, onafhankelijk + van de implementatievariant. Alle commando-aanroepen dienen nu + met het commando gvinum gedaan te worden, en + de naam van de kernelmodule is veranderd van + vinum.ko naar + geom_vinum.ko, en alle apparaatknooppunten + bevinden zich in /dev/gvinum in plaats van + /dev/vinum. Sinds &os; 6 is de oude + implementatie van Vinum niet meer beschikbaar in de broncode. + @@ -82,41 +104,35 @@ software - Vinum is een Volume - Manager, stuurprogramma voor virtuele schijven die - de drie genoemde problemen op kan lossen. Het probleem wordt in - de volgende paragrafen verder uitgediept. Verscheidene - oplossingen zijn al voorgesteld en toegepast: - De capaciteit van schijven wordt groter, maar ook de vraag - naar capaciteit neemt toe. Vaak is het gewenste bestandsysteem + naar capaciteit neemt toe. Vaak is het gewenste bestandssysteem groter dan de op dat moment beschikbare schijven. Hoewel dit probleem niet meer zo actueel als het tien jaar geleden was, bestaat het nog steeds. In sommige systemen is dit opgelost door - een virtuele harde schijf te maken die de data op meerdere + een virtuele harde schijf te maken die de gegevens op meerdere fysieke harde schijven kan opslaan. Snelheid van toegang - Moderne systemen hebben vaak simultaan toegang tot data + Moderne systemen hebben vaak simultaan toegang tot gegevens nodig. FTP en webservers kunnen bijvoorbeeld duizenden simultane sessies onderhouden en hebben vaak meerdere 100 Mbit/s verbindingen met de rest van de wereld. De benodigde - datadoorvoer is dan groter dan de meeste schijven kunnen + gegevensdoorvoer is dan groter dan de meeste schijven kunnen leveren. - Huidige schijven kunnen data sequentieel overdragen met + Huidige schijven kunnen gegevens sequentieel overdragen met ongeveer 70 MB/s, maar deze snelheid heeft geen waarde in een omgeving waar onafhankelijke processen toegang tot de schijf hebben. In zo'n situatie is het interessanter om vanuit het standpunt van de schijfstuurprogramma te kijken: de belangrijkste parameter is dan de belasting die een bepaalde gegevensoverdracht op het stuurprogramma plaatst. Met andere woorden: wat is het - tijdbeslag van een gegevensoverdracht op te schijf? + tijdsbeslag van een gegevensoverdracht op te schijf? - Bij elke dataoverdracht moet de schijf eerst zijn kop + Bij elke gegevensoverdracht moet de schijf eerst zijn kop positioneren, wachten tot de eerste sector onder de kop doorkomt en vervolgens de overdracht starten. Deze acties duren bijzonder kort. Het heeft geen enkele zin om ze te onderbreken. @@ -128,23 +144,23 @@ halve omwenteling) bedraagt 2 ms. Met 70 MB/s de overdracht zelf duurt ongeveer 150 μs, bijna niets vergeleken met de tijd die verloren is gegaan aan het positioneren. In zulke gevallen - daalt de data overdracht naar iets meer dan 1 MB/s en is dus + daalt de gegevensoverdracht naar iets meer dan 1 MB/s en is dus duidelijk afhankelijk van de grootte van de over te dragen - data. + gegevens. De traditionele en logische oplossing voor dit probleem is meer schijven: in plaats van één grote schijf, meerdere kleine schijven met een zelfde totale opslagcapaciteit. Iedere schijf is in staat om onafhankelijk de - kop te plaatsen en de data over te dragen, dus de effectieve + kop te plaatsen en de gegevens over te dragen, dus de effectieve doorvoer neemt toe met een factor bijna gelijk aan het aantal schijven. De exacte verbetering van de doorvoer is natuurlijk kleiner dan het aantal schijven, want hoewel iedere schijf in staat is om - parallel de data over te dragen, er is geen garantie dat de data - gelijk over de schijven verdeeld is. De belasting op de ene - schijf zal dan ook groter zijn dan op de andere schijf. + parallel de gegevens over te dragen, er is geen garantie dat de + gegevens gelijk over de schijven verdeeld is. De belasting op de + ene schijf zal dan ook groter zijn dan op de andere schijf. aaneenschakelen @@ -161,7 +177,7 @@ RAID Een gelijke belasting van de schijven is in grote mate - afhankelijk van de manier waarop data over de schijven is + afhankelijk van de manier waarop gegevens over de schijven zijn verdeeld. In het volgende stuk is de opslag van een virtuele schijf voor te stellen als een verzameling sectoren die met een nummer aangesproken kan worden, net als bladzijden in een boek. @@ -172,11 +188,11 @@ aaneenschakelen (concatenation) en heeft het voordeel dat schijven verschillend van grootte kunnen zijn. Dit werkt prima als - toegang tot de data gelijk verdeeld is over de hele dataset. Als - die toegang beperkt is tot een klein deel van de dataset, is de - snelheidsverbetering een stuk kleiner. - laat de manier zien hoe - aaneengeschakelde schijven hun data opslaan. + toegang tot de gegevens gelijk verdeeld is over de hele + gegevensverzameling. Als die toegang beperkt is tot een klein + deel van de gegevensverzameling, is de snelheidsverbetering een + stuk kleiner. laat de manier zien + hoe aaneengeschakelde schijven hun gegevens opslaan.
@@ -212,16 +228,16 @@ RAID staat voor Redundant Array of Inexpensive Disks (Redundante Reeks van Goedkope Schijven) en biedt verschillende vormen van - fout-tolerantie. Hoewel die laatste term wat misleidend is: + fouttolerantie. Hoewel die laatste term wat misleidend is: het biedt namelijk geen redundantie. . - Bij RAID-0 kost het iets meer moeite om de data te vinden en het - kan extra I/O belasting met zich meebrengen als data is verdeeld - over verschillende fysieke schijven. Het kan echter ook zorgen - voor een constantere belasting van die schijven. + Bij RAID-0 kost het iets meer moeite om de gegevens te vinden en + het kan extra I/O belasting met zich meebrengen als gegevens zijn + verdeeld over verschillende fysieke schijven. Het kan echter ook + zorgen voor een constantere belasting van die schijven. geeft weer hoe RAID-0 schijven hun - data opslaan. + gegevens opslaan.
@@ -232,15 +248,15 @@ - - Betrouwbaarheid van data + + Betrouwbaarheid van gegevens Het laatste probleem met de huidige schijven is dat ze onbetrouwbaar zijn. Hoewel de betrouwbaarheid de laatste jaren enorm is toegenomen, blijven schijven het vitale onderdeel van een server dat waarschijnlijk als eerste kapot gaat. Als dat gebeurt kan het catastrofale gevolgen hebben: het vervangen van - de schijf en het terugplaatsen van de data kan dagen + de schijf en het terugplaatsen van de gegevens kan dagen kosten. @@ -259,8 +275,8 @@ De traditionele manier om dit te voorkomen is spiegelen (mirroring): het - hebben van een kopie van de data op een andere fysieke schijf. - Sinds de uitvinding van RAID niveau's staat dit bekend als + hebben van een kopie van de gegevens op een andere fysieke schijf. + Sinds de uitvinding van RAID niveaus staat dit bekend als RAID-1. Een schrijfactie naar de virtuele schijf gebeurt op beide fysieke schijven. Een leesactie hoeft slechts vanaf één te gebeuren. Op deze manier kan de virtuele @@ -276,7 +292,7 @@ - Prestatie. Een schrijfacie moet op twee schijven + Prestatie. Een schrijfactie moet op twee schijven gebeuren en kost dus twee keer zoveel bandbreedte. Een leesactie hoeft maar op één schijf te gebeuren en heeft hier dus geen last van. @@ -288,7 +304,7 @@ Een andere manier is pariteit, - uitgevoerd in RAID niveau's 2, 3, 4 en 5. + uitgevoerd in RAID niveaus 2, 3, 4 en 5. Van deze vier is RAID-5 het meest interessant. In Vinum is het geïmplementeerd als een variant van een verdeelde organisatie waarbij één blok van elk deel @@ -298,7 +314,7 @@ samenstelling, met als verschil dat het een pariteitblok bevat in ieder deel. Zoals voorgeschreven door RAID-5 wisselt de locatie van dit pariteitblok van het ene deel naar het - andere. De nummers in de datablokken geven de relatieve + andere. De nummers in de gegevensblokken geven de relatieve bloknummers aan. @@ -315,18 +331,18 @@ organisatie, maar schrijven kost beduidend meer tijd, ongeveer 25% van de leesprestaties meer. Als één schijf uitvalt, kan de reeks doorwerken in een verslechterde - staat (degraded mode): data van een - functionerende schijf kan zonder problemen gelezen worden, maar - data van de defecte schijf moet eerst worden samengesteld uit de - pariteit van de overeenkomende blokken van de resterende - schijven. + staat (degraded mode): gegevens van + een functionerende schijf kunnen zonder problemen gelezen worden, + maar gegevens van de defecte schijf moeten eerst worden + samengesteld uit de pariteit van de overeenkomende blokken van de + resterende schijven. Vinum objecten Om deze problemen op te lossen, hanteert vinum een - hiërarchie met vier niveau's van objecten: + hiërarchie met vier niveaus van objecten: @@ -345,7 +361,7 @@ hiërarchie biedt daarom redundantie. Een samenstelling is goed voor te stellen als een individuele schijf in een RAID-1 systeem. Iedere schijf bevat - dezelfde data. + dezelfde gegevens. @@ -385,20 +401,20 @@ - Redundante dataopslag + Redundante gegevensopslag Vinum implementeert RAID-0 door meerdere samenstellingen aan een volume te koppelen. Elke samenstelling - representeert hierbij de data in het volume. Een volume kan + representeert hierbij de gegevens in het volume. Een volume kan tussen de één en acht samenstellingen bevatten. - Hoewel een samenstelling de totala data van een volume + Hoewel een samenstelling de totale gegevens van een volume voorstelt, is het mogelijk dat delen van deze voorstelling missen, door ontwerp (door geen subschijf voor delen van de samenstelling te definiëren) of per ongeluk (door een defecte schijf). Zo lang tenminste één - samenstelling de data voor het gehele volume kan leveren, is + samenstelling de gegevens voor het gehele volume kan leveren, is het volume volledig bruikbaar. @@ -415,7 +431,7 @@ - Een verdeelde samenstelling spreidt de data over + Een verdeelde samenstelling spreiden de gegevens over iedere subschijf. De subschijven moeten daarvoor allemaal dezelfde grootte hebben en er moeten tenminste twee subschijven zijn om onderscheid te kunnen maken met een @@ -451,7 +467,7 @@ hot-spots hebben. Door het kiezen van een optimale deelgrootte (veelal 256 kB) kan de belasting op de fysieke schijven gelijk getrokken worden. De nadelen van - deze aanpak zijn (minescuul) complexere code en beperkingen + deze aanpak zijn (minuscuul) complexere code en beperkingen aan de subschijven: ze moeten allemaal van gelijke grootte zijn en het uitbreiden van een samenstelling met extra subschijven is zo gecompliceerd, dat de huidige versie van @@ -494,7 +510,7 @@ nee - Veel dataopslag met maximale flexibiliteit en + Veel gegevensopslag met maximale flexibiliteit en gemiddelde performance. @@ -522,17 +538,17 @@ Vinum houdt een instellingendatabase bij waarin beschreven staat welke objecten bekend zijn in het systeem. Bij het instellen vult de gebruiker deze database uit - één of meer instellingenbestanden &man.vinum.8;. - Vinum bewaart een kopie van de database op iedere slice (die - Vinum device noemt) die door Vinum wordt - beheerd. Deze database wordt na iedere statuswijziging - bijgewerkt, zodat een na een herstart acuraat de toestand van - ieder Vinum object wordt weergegeven. + één of meer instellingenbestanden met behulp van + het hulpprogramma &man.gvinum.8;. Vinum bewaart een kopie van de + database op iedere slice (die Vinum apparaat + noemt) die door Vinum wordt beheerd. Deze database wordt na + iedere statuswijziging bijgewerkt, zodat een na een herstart + accuraat de toestand van ieder Vinum object wordt weergegeven. Het instellingenbestand - Het instellingenbestand beschijft de individuele vinum + Het instellingenbestand beschrijft de individuele vinum objecten. De definitie van een eenvoudig volume kan er zo uitzien: @@ -587,11 +603,11 @@ - Na het verwerken van deze definitie ziet de uitvoer van - &man.vinum.8; er als volgt uit: + Na het verwerken van dit bestand ziet de uitvoer van + &man.gvinum.8; er als volgt uit: - &prompt.root; vinum -> create config1 + &prompt.root; gvinum -> create config1 Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) @@ -606,7 +622,7 @@ S myvol.p0.s0 State: up PO: 0 B Size: 512 MB - Deze uitvoer geeft de korte uitvoer van &man.vinum.8; weer. + Deze uitvoer geeft de korte uitvoer van &man.gvinum.8; weer. Het is grafisch weergegeven in . @@ -624,11 +640,11 @@ samenstelling bevat een subschijf. Dit speciale volume heeft geen voordeel boven een gewone - schijf paritie. Het bevat één samenstelling, dus + schijf partitie. Het bevat één samenstelling, dus het is niet redundant. De samenstelling bevat één subschijf, dus er is geen verschil in de - plaats van de data met een conventionele schijf partitie. In - de volgende paragrafen worden meer interesante instellingen + plaats van de gegevens met een conventionele schijfpartitie. In + de volgende paragrafen worden meer interessante instellingen getoond. @@ -702,8 +718,8 @@ volume moet op beide schijven worden uitgevoerd, waardoor een groter deel van de bandbreedte van de schijf nodig is. Als prestaties een belangrijke rol spelen, moet er een andere - benadering gekozen worden: in plaats van spiegelen wordt de - data verdeeld over zoveel mogelijk schijven. De volgende + benadering gekozen worden: in plaats van spiegelen worden de + gegevens verdeeld over zoveel mogelijk schijven. De volgende instelling laat een volume zien waarbij een samenstelling over vier schijven verdeeld is: @@ -810,10 +826,10 @@ Objectnamen - Zoals eerder in dit hoofstuk beschreven staat, kent Vinum + Zoals eerder in dit hoofdstuk beschreven staat, kent Vinum standaardnamen toe aan samenstellingen en subschijven. Er mag echter een andere naam aan gegeven worden. Een andere naamgeving - wordt niet aangeraden: ervaring met de VERITAS volume manager, + wordt niet aangeraden: ervaring met de VERITAS volumebeheerder, die een willekeurige object benaming toestaat, heeft laten zien dat deze flexibiliteit geen beduidend voordeel heeft, terwijl het de kans op verwarring vergroot. @@ -824,67 +840,57 @@ samenstellingen en subschijven kunnen 64 tekens lang zijn en de namen van schijven kunnen 32 tekens lang zijn. - Vinum objecten worden apparaatnodes toegekend in de - /dev/vinum hiërarchie. Met de - instellingen uit de vorige paragraaf creë Vinum de volgende - nodes: + Vinum objecten worden apparaatknooppunten toegekend in de + hiërarchie /dev/gvinum. Met de + instellingen uit de vorige paragraaf creërt Vinum de volgende + apparaatknooppunten: + + Dit heeft alleen betrekking op de historische + Vinum implementatie. + + De controleapparaten /dev/vinum/control en - /dev/vinum/controld, die &man.vinum.8; - en de Vinum daemon gebruiken. + /dev/vinum/controld, die door + respectievelijk &man.gvinum.8; en de Vinum daemon gebruikt + worden. - Blok en karakterapparaatinstellingen voor elk volume. - Dit zijn de primaire apparaten die door Vinum gebruikt - worden. De blokapparaatnamen zijn de namen van het volume, - terwijl de karakterapparaatnamen de BSD benaming volgen door er - de letter r voor te zetten. De zou de - volgende blokapparaten bevatten: - /dev/vinum/myvol, - /dev/vinum/mirror, - /dev/vinum/striped, - /dev/vinum/raid5 en - /dev/vinum/raid10, - en de karakterapparaten - /dev/vinum/rmyvol, - /dev/vinum/rmirror, - /dev/vinum/rstriped, - /dev/vinum/rraid5 en - /dev/vinum/rraid10. Hier zit duidelijk - een probleem. Er kunnen twee volumes te zijn die - r en rr heten, maar - er ontstaat een confict als apparaaatnode - /dev/vinum/rr wordt aangemaakt: is het - een karakterapparaat voor volume r - of een blokapparaat voor volume rr? Nu - heeft Vinum geen oplossing. Het volume dat het eerst gemaakt - wordt, krijgt de naam. + Karakterapparaatingangen voor elk volume. Dit zijn de + primaire apparaten die door Vinum gebruikt worden. De + bovenstaande configuratie zou dus deze apparaten bevatten: + /dev/gvinum/myvol, + /dev/gvinum/mirror, + /dev/gvinum/striped, + /dev/gvinum/raid5 en + /dev/gvinum/raid10. - Een map /dev/vinum/drive met entries - voor elke schijf. Deze entries zijn eigenlijk symbolische - links naar de bijbehorende schijfnodes. + + Dit heeft alleen betrekking op de historische + Vinum implementatie. + + + Een map /dev/vinum/drive met ingangen + voor elke schijf. Deze ingangen zijn eigenlijk symbolische + links naar de bijbehorende schijfknooppunten. - Een map /dev/vinum/volume met - entries voor elk volume. Het bevat submappen voor elke - samenstelling, die weer submappen voor de subschijven - bevatten. + Alle volumes krijgen ingangen direct onder + /dev/gvinum/. De mappen - /dev/vinum/plex, - /dev/vinum/sd en - /dev/vinum/rsd, die blokapparaatnodes - bevatten voor elke samenstelling en blok- en - karakterapparaatnodes voor elke subschijf daarvan. + /dev/gvinum/plex, en + /dev/gvinum/sd, welke respectievelijk + apparaatknooppunten voor elke plex en voor subschijf bevatten. @@ -902,68 +908,26 @@ sd length 100m drive drive3 sd length 100m drive drive4 - Na verwerking maakt &man.vinum.8; de volgende structuur aan - in /dev/vinum: + Na verwerking van dit bestand maakt &man.gvinum.8; de volgende + structuur aan in /dev/gvinum: - brwx------ 1 root wheel 25, 0x40000001 Apr 13 16:46 Control - brwx------ 1 root wheel 25, 0x40000002 Apr 13 16:46 control - brwx------ 1 root wheel 25, 0x40000000 Apr 13 16:46 controld - drwxr-xr-x 2 root wheel 512 Apr 13 16:46 drive drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex - crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 rs64 - drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rsd - drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rvol - brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64 + crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd - drwxr-xr-x 3 root wheel 512 Apr 13 16:46 vol - /dev/vinum/drive: - total 0 - lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive1 -> /dev/sd1h - lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive2 -> /dev/sd2h - lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive3 -> /dev/sd3h - lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive4 -> /dev/sd4h /dev/vinum/plex: total 0 - brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 + crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 - /dev/vinum/rsd: + /dev/vinum/sd: total 0 crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 - crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3 - - /dev/vinum/rvol: - total 0 - crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 + crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3 - /dev/vinum/sd: - total 0 - brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 - brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 - brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 - brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3 - - /dev/vinum/vol: - total 1 - brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64 - drwxr-xr-x 3 root wheel 512 Apr 13 16:46 s64.plex - - /dev/vinum/vol/s64.plex: - total 1 - brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 - drwxr-xr-x 2 root wheel 512 Apr 13 16:46 s64.p0.sd - - /dev/vinum/vol/s64.plex/s64.p0.sd: - total 0 - brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 - brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 - brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 - brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3 - Hoewel het wordt aangeraden om samenstellingen en subschijven geen naam mee te geven, moeten Vinum schijven een naam hebben. Hierdoor kan een schijf naar een andere locatie verplaatst worden @@ -986,24 +950,26 @@ op de eerste (0) IDE schijf (ad) en de achtste partitie (h) op de derde (2) SCSI schijf (da) voor. Een Vinum - volume kan daarintegen /dev/vinum/concat - heten. Een naam die geen enkele relatie met een partitienaam + volume kan daarentegen /dev/gvinum/concat + heten, een naam die geen enkele relatie met een partitienaam heeft. Normaliter klaagt &man.newfs.8; als het de naam van de schijf niet kan interpreteren. Bijvoorbeeld: - &prompt.root; newfs /dev/vinum/concat - newfs: /dev/vinum/concat: can't figure out file system partition + &prompt.root; newfs /dev/gvinum/concat + newfs: /dev/vinum/gconcat: can't figure out file system partition + + Gebruik &man.newfs.8; om een bestandssysteem op dit volume + aan te maken: + + &prompt.root; newfs /dev/gvinum/concat - Het volgende geldt alleen voor versies van &os; 4.X - en lager: + Op versies van &os; voor 5.0 heeft &man.newfs.8; een + aanvullende vlag -v en het oude apparaatnaamgevingsschema: - Om een bestandsysyteem op dit volume te maken moet de - van &man.newfs.8; gebruikt worden: - &prompt.root; newfs -v /dev/vinum/concat @@ -1016,7 +982,7 @@ wordt niet aangeraden. De standaard manier om Vinum te starten is als kernelmodule (kld). Het is zelfs niet nodig om &man.kldload.8; te gebruiken voor Vinum. Als - &man.vinum.8; wordt gestart en de module is niet geladen, dan + &man.gvinum.8; wordt gestart en de module is niet geladen, dan gebeurt dit alsnog automatisch. @@ -1025,7 +991,7 @@ Vinum slaat de instellingeninformatie op de schijfslices op in ongeveer dezelfde vorm als de instellingenbestanden. Bij het lezen van de instellingendatabase herkent Vinum een aantal - aleutelwoorden die niet zijn toegestaan in + sleutelwoorden die niet zijn toegestaan in instellingenbestanden. Een schijfinstelling kan bijvoorbeeld de volgende tekst bevatten: @@ -1049,7 +1015,7 @@ sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b - Duidelijke verschillen zijn de aanwezigheid van explicite + Duidelijke verschillen zijn de aanwezigheid van expliciete locatie informatie en namen (beide zijn toegestaan, maar worden afgeraden) en informatie over de toestand (die niet beschikbaar is voor de gebruiker). Vinum slaat geen informatie over @@ -1061,19 +1027,26 @@ Automatisch opstarten + + Deze informatie heeft alleen betrekking op de + historische Vinum implementatie. + Gvinum start altijd automatisch op + als de kernelmodule eenmaal is geladen. + + Om Vinum automatisch te laten starten als het systeem - geboot wordt, moet de volgende regel in het + opgestart wordt, moet de volgende regel in het /etc/rc.conf bestand staan: - start_vinum="YES" # set to YES to start vinum + start_vinum="YES" # op YES zetten om vinum te starten Als het /etc/rc.conf bestand niet bestaat, moet het gemaakt worden met de bovengenoemde inhoud. Hierdoor laadt het systeem de Vinum kld tijdens het starten en worden de objecten uit de instellingen - ook gestart. Dit gebeurt voordat de bestandssystemen gemount - worden. &man.fsck.8; kan dus automatisch draaien en - bestandssystemen op Vinum volumes kunnen gemount + ook gestart. Dit gebeurt voordat de bestandssystemen + aangekoppeld worden. &man.fsck.8; kan dus automatisch draaien + en bestandssystemen op Vinum volumes kunnen aangekoppeld worden. Als Vinum met vinum start wordt @@ -1091,40 +1064,37 @@ - Het root bestandssysteem op Vinum + Het rootbestandssysteem op Vinum Bij een machine die een volledig gespiegeld bestandssysteem - heeft, is het wenselijk ook het root bestandssysteem te - spiegelen. Het bouwen van zo'n instelling is niet zo - recht-toe-recht-aan als bij een ander bestandssysteem - omdat: + heeft, is het wenselijk ook het rootbestandssysteem te spiegelen. + Het bouwen van zo'n instelling is niet zo rechttoe-rechtaan als + bij een ander bestandssysteem omdat: - Het root bestandssysteem al heel snel beschikbaar moet - zijn tijdens het opstartproces, dus de Vinum infrastructuur - moet dan al beschikbaar zijn. + Het rootbestandssysteem al heel snel beschikbaar moet zijn + tijdens het opstartproces, dus de Vinum infrastructuur moet + dan al beschikbaar zijn. - Het volume met het root bestandssysteem bevat ook de + Het volume met het rootbestandssysteem bevat ook de bootstrap en de kernel, die gelezen moeten worden door de eigen systeemprogramma's (bijvoorbeeld de BIOS op PC's), die - meestal ingestled kunnen worden om Vinum te gebruiken. + meestal ingesteld kunnen worden om Vinum te gebruiken. In de volgende paragrafen wordt de term - root volume gebruikt voor het Vinum volume dat het - root bestandssysteem bevat. Het is waarschijnlijk een goed idee - om de naam root te gebuiken voor dit volume, - maar dit is niet technisch noodzakelijk. Alle - commandovoorbeelden in de volgende stukken gaan echter uit van - deze naam. + rootvolume gebruikt voor het Vinum volume dat het + rootbestandssysteem bevat. Het is waarschijnlijk een goed idee om + de naam root te gebruiken voor dit volume, maar + dit is niet technisch noodzakelijk. Alle commandovoorbeelden in + de volgende stukken gaan echter uit van deze naam. - Vinum op tijd starten voor het root - bestandssysteem + Vinum op tijd starten voor het rootbestandssysteem Om dit te bereiken, moeten een aantal stappen worden doorlopen: @@ -1145,12 +1115,21 @@ gedaan door de volgende regel in /boot/loader.conf op te nemen: - vinum_load="YES" + gvinum_load="YES" + + Voor Gvinum wordt alles + automatisch opgestart nadat de kernelmodule eenmaal is + geladen, dus is alleen de procedure die hierboven is + beschreven nodig. De volgende tekst documenteert het + gedrag van het historische Vinum systeem, voor oudere + installaties. + + Vinum moet in een vroeg stadium geïnitialiseerd - worden om het volume voor het root bestandssysteem te + worden om het volume voor het rootbestandssysteem te kunnen leveren. De Vinum kernel module gaat niet uit zichzelf op zoek naar schijven die mogelijk een Vinum volume kunnen bevatten totdat de administrator (of een @@ -1159,12 +1138,10 @@ De volgende paragrafen laten de benodigde stappen - zien voor &os; 5.X en hoger. De stappen voor - &os; 4.X zijn anders, zoals wordt uitgelegd in - . + zien voor &os;. - Door de ondestaande regel in + Door de onderstaande regel in /boot/loader.conf te zetten, zoekt Vinum automatisch alle schijven af naar Vinum informatie als onderdeel van het starten van de kernel: @@ -1173,21 +1150,21 @@ Het is dus niet nodig om de kernel te vertellen waar - het root bestandssysteem staat. + het rootbestandssysteem staat. /boot/loader zoekt de naam voor het root apparaat op in /etc/fstab en geeft deze informatie door aan de kernel. Op het moment - dat het root bestandssysteem gemount moet worden, haalt - de kernel uit de apparaatnaamnaam welk stuurprogramma + dat het rootbestandssysteem aangekoppeld moet worden, + haalt de kernel uit de apparaatnaam welk stuurprogramma gebruikt moet worden om dit te vertalen naar het interne - apparaat ID (major/minor number). + apparaat-ID (grote/kleine nummer). - Een Vinum root volume beschikbaar maken voor + <title>Een Vinum rootvolume beschikbaar maken voor bootstrap Omdat de huidige &os; bootstrap maar 7,5 KB code bevat en @@ -1195,88 +1172,88 @@ /boot/loader) van het UFS bestandssysteem, is het bijna onmogelijk om het ook te leren hoe Vinum informatie gelezen moet worden en deze dan te gebruiken om de - elementen van het boot volume samen te stellen. Er zijn daarom - een paar trucs nodig om de bootstrap code wijs te maken dat er + elementen van het bootvolume samen te stellen. Er zijn daarom + een paar trucs nodig om de bootstrapcode wijs te maken dat er een standaard "a" partitie aanwezig is met - het root bestandssysteem. + het rootbestandssysteem. - Om dit mogelijk te maken, moet het root volume aan de + Om dit mogelijk te maken, moet het rootvolume aan de volgende eisen voldoen: - Het root volume mag niet verdeeld of RAID-5 zijn. + Het rootvolume mag niet verdeeld of RAID-5 zijn. - Het root volume mag niet meer dan één + Het rootvolume mag niet meer dan één aaneengeschakelde subschijf per samenstelling bevatten. Het is mogelijk en wenselijk om meer dan één - samenstelling te hebben, ieder met een replica van het root - bestandssysteem. Het bootstrap proces gebruikt wel maar + samenstelling te hebben, ieder met een replica van het + rootbestandssysteem. Het bootstrapproces gebruikt wel maar één van deze replica's om de bootstrap en alle andere bestanden te vinden, tot het moment dat de kernel het - root bestandssysteem laadt. Iedere subschijf binnen deze + rootbestandssysteem laadt. Iedere subschijf binnen deze samenstellingen heeft dus zijn eigen "a" - partitievoorstelling nodig om dit apparaat bootbaar te maken. + partitievoorstelling nodig om dit apparaat opstartbaar te maken. Het is niet verplicht dat iedere voorgestelde "a" partitie op dezelfde offset is geplaatst binnen het apparaat, vergeleken met andere apparaten die - samenstellingen van het root volume bevatten. Het is wel een + samenstellingen van het rootvolume bevatten. Het is wel een goed idee om op die manier Vinum volumes te maken, zodat de resulterende gespiegelde apparaten symmetrisch zijn. Dit om verwarring te voorkomen. Om deze "a" partities voor ieder - apparaat dat een deel van het root volume bevat te maken, moet + apparaat dat een deel van het rootvolume bevat te maken, moet het volgende worden gedaan: De locatie (offset vanaf het begin van het apparaat) en - de grootte van de subschijf die onderdeel is van het root - volume moet als volgt bekeken worden: + de grootte van de subschijf die onderdeel is van het + rootvolume moet als volgt bekeken worden: - &prompt.root; vinum l -rv root + &prompt.root; gvinum l -rv root De Vinum offsets en groottes worden aangegeven in bytes. Ze moeten door 512 worden gedeeld om de bloknummers - te krijgen die in disklabel moeten + te krijgen die in bsdlabel moeten worden gebruikt. - Voor elk apparaat dat deelneemt aan het root - bestandssysteem moet het onderstaande command uitgevoerd - worden: + Voor elk apparaat dat deelneemt aan het + rootbestandssysteem moet het onderstaande command + uitgevoerd worden: - &prompt.root; disklabel -e devname + &prompt.root; bsdlabel -e apparaatnaam - devname moet of de naam van - een schijf (zoals da0) voor + apparaatnaam moet of de naam + van een schijf (zoals da0) voor schijven zonder slice-tabel zijn (ook wel: fdisk), of de naam van de slice zijn (zoals ad0s1). Als er al een "a" partitie op het apparaat aanwezig is (waarschijnlijk met een pre-Vinum - root bestandssysteem), moet die eerst worden hernoemd, + rootbestandssysteem), moet die eerst worden hernoemd, zodat het wel toegankelijk blijft (voor de zekerheid), maar niet langer gebruikt wordt om het systeem van op te - starten. Actieve paritities (zoals een root bestandssysteem - dat op dit moment gemount is) kan geen andere naam gegeven - worden. Dit moet dus gebeuren als het systeem vanaf een - Fixit medium opgestart is of in twee + starten. Actieve partities (zoals een rootbestandssysteem + dat op dit moment aangekoppeld is) kan geen andere naam + gegeven worden. Dit moet dus gebeuren als het systeem vanaf + een Fixit medium opgestart is of in twee stappen, waar (in een gespiegelde situatie) de schijf waar - niet van geboot is als eerste wordt aangepast. + niet van opgestart is als eerste wordt aangepast. Daarna moet de offset van de Vinum partitie op dit apparaat (als het bestaat) opgeteld worden bij de offset - van de root volume subschijf op dit apparaat. De + van de rootvolume subschijf op dit apparaat. De resulterende waarde wordt de "offset" waarde voor de nieuwe "a" partitie. De "size" waarde voor deze partitie kan @@ -1290,16 +1267,16 @@ Op deze manier wordt een nieuwe "a" partitie gemaakt dat de Vinum partitie op dit apparaat - overlapt. Het disklabel staat deze + overlapt. Het bsdlabel staat deze overlap alleen toe als de Vinum partitie gemarkeerd is met - het fstype "vinum". + het bestandssysteemtype "vinum". Dat is het! Er bestaat nu een nep "a" partitie op ieder apparaat dat een - replica van het root volume heeft. Het is aan te bevelen - om de resultaten nogmaals te verifieren met iets + replica van het rootvolume heeft. Het is aan te bevelen + om de resultaten nogmaals te verifiëren met iets >>> TRUNCATED FOR MAIL (1000 lines) <<<