From 5b0eaf1a40b967161c41c84b29754baba4058a3e Mon Sep 17 00:00:00 2001 From: Remko Lodder Date: Thu, 1 Jan 2009 20:02:04 +0000 Subject: [PATCH] Import the filesystems chapter. Obtained from: The FreeBSD Dutch Documentation project Translated by: Wouter Reckman --- .../books/handbook/filesystems/chapter.sgml | 589 +++++++++++++++++- 1 file changed, 560 insertions(+), 29 deletions(-) diff --git a/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml index 788858da05..7e5176a379 100644 --- a/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.sgml @@ -1,6 +1,6 @@ + + Ondersteuning van ZFS wordt + beschouwd als experimenteel. Sommige opties kunnen beperkt + zijn in functionaliteit, andere onderdelen werken mogelijk in + het geheel niet. Op een zeker moment zal deze ondersteuning + klaar voor productie zijn en zal deze documentatie worden + aangepast aan de nieuwe situatie. + - * Het Z File System + Het Z File System - * Wordt nog vertaald + Het Z File System, ontwikkeld door &sun;, is een + nieuwe technologie ontwikkeld om gebruik te maken van een + pool-gebaseerde opslagmethode. Dit houdt in dat ruimte pas + wordt gebruikt wanneer het nodig is voor dataopslag. Verder is + het ontworpen voor maximale integriteit van gegevens, + ondersteuning van gegevens-snapshots, meerdere kopieën, en + gegevenschecksums. Ook is een nieuw gegevensreplicatiemodel, + bekend als RAID-Z, toegevoegd; + RAID-Z lijkt op RAID5, + maar is ontworpen om corruptie tijdens het schrijven van + gegevens te voorkomen. - * ZFS Tuning + ZFS tuning - * Wordt nog vertaald + Het ZFS subsysteem maakt gebruik van + veel systeembronnen waardoor het nodig kan zijn een en ander + af te stellen, zodat voor het dagelijks gebruik maximale + efficiëntie wordt behaald. Doordat het een + experimentele eigenschap van &os; is, kan dit in de nabije + toekomst veranderen; op dit moment echter, worden de volgende + stappen aangeraden. - * Geheugen + Geheugen - * Wordt nog vertaald + De totale hoeveelheid systeemgeheugen dient minstens + één gigabyte te zijn, maar twee gigabytes of meer + wordt aanbevolen. In alle voorbeelden hier heeft het systeem + één gigabyte geheugen, met verschillende andere + afstelmechanismen in werking. + + Sommigen hebben succes gehad met minder dan een + gigabyte geheugen, maar met een dergelijke, beperkte + hoeveelheid geheugen is de kans groot dat onder zware + belasting een kernelpanic in &os; op zal treden door uitputting + van het geheugen. - * Kernel configuratie + Kernelconfiguratie - * Wordt nog vertaald + Het wordt aangeraden om ongebruikte + stuurprogramma's en opties te verwijderen uit het + kernelconfiguratiebestand. Omdat de meeste + stuurprogramma's beschikbaar zijn als modules kunnen ze + alsnog worden geladen door middel van het bestand + /boot/loader.conf. + + Gebruikers van de i386-architectuur dienen de volgende + optie aan hun kernelconfiguratiebestand toe te voegen, de + kernel opnieuw te compileren, en opnieuw op te + starten: + + options KVA_PAGES=512 + + Deze optie vergroot de kerneladresruimte, waarmee het + mogelijk wordt gemaakt om de vm.kvm_size + afstelling hoger dan de huidige limiet van 1 GB + (2 GB voor PAE) in te stellen. + Deel, om de meest geschikte waarde voor deze optie te + vinden, de gewenste hoeveelheid adresruimte door vier (4). + In dit geval is dat 512 voor + 2 GB. - * Loader Tunables + Loader tunables - * Wordt nog vertaald + De kmem adresruimte dient te + worden vergroot op alle &os; architecturen. Op het + testsysteem met één gigabyte fysiek geheugen werd + succes behaald met de volgende opties, die in het bestand + /boot/loader.conf geplaatst dienen te + worden, waarna het systeem opnieuw moet worden + opgestart: + + vm.kmem_slze="330M" +vm.kmem_size_max="330M" +vfs.zfs.arc_max="40M" +vfs.zfs.vdev.cache.size="5M" + + Zie voor een meer gedetailleerde lijst van aanbevelingen + aangaande ZFS-afstelling: + + . - * Gebruik maken van <acronym>ZFS</acronym> + Gebruik maken van <acronym>ZFS</acronym> - * Wordt nog vertaald + Er is een opstartmechanisme dat &os; in staat stelt om + ZFS pools te mounten tijdens initialisatie van + het systeem. Voer de volgende commando's uit om dit in te + stellen: + + &prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf +&prompt.root; /etc/rc.d/zfs start + + In het resterende deel van dit document wordt aangenomen + dat er twee SCSI-schijven beschikbaar zijn, + en dat hun apparaatnamen respectievelijk + da0 en + da1 zijn. + Gebruikers van IDE-hardware kunnen de + ad + apparaten gebruiken in plaats van + SCSI-apparaten. - * Een enkele disk pool + Een pool op een enkele schijf - * Wordt nog vertaald + Voer het zpool-commando uit om een + ZFS op een enkele schijf aan te + maken: + + &prompt.root; zpool create example /dev/da0 + + Bestudeer de uitvoer van het commando + df om de nieuwe pool te zien: + + &prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235230 1628718 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032846 48737598 2% /usr +example 17547136 0 17547136 0% /example + + In deze uitvoer wordt duidelijk dat de + example-pool niet alleen is aangemaakt, + maar ook direct gemount is. Hij is ook + toegankelijk, net als een gewoon bestandssysteem; er kunnen + bestanden op worden aangemaakt en gebruikers kunnen er op + rondkijken zoals in het volgende voorbeeld: + + &prompt.root cd /example +&prompt.root; ls +&prompt.root; touch testfile +&prompt.root; ls -al +total 4 +drwxr-xr-x 2 root wheel 3 Aug 29 23:15 . +drwxr-xr-x 21 root wheel 512 Aug 29 23:12 .. +-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile + + Helaas benut deze pool nog geen + ZFS-mogelijkheden. Maak een bestandssysteem + aan op deze pool en activeer er compressie op: + + &prompt.root; zfs create example/compressed +&prompt.root; zfs set compression=gzip example/compressed + + example/compressed is nu een + gecomprimeerd ZFS-bestandssysteem. Probeer + er een paar grote bestanden naartoe te kopiëren door ze + naar /example/compressed + te kopiëren. + + De compressie kan nu worden uitgeschakeld met: + + &prompt.root; zfs set compression=off example/compressed + + Voer het volgende commando uit om het bestandssysteem te + unmounten, en controleer dat daarna met + df: + + &prompt.root; zfs umount example/compressed +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235232 1628716 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example + + Mount het bestandssysteem opnieuw om het weer + toegankelijk te maken en controleer met + df: + + &prompt.root; zfs mount example/compressed +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235234 1628714 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example +example/compressed 17547008 0 17547008 0% /example/compressed + + De pool en het bestandssysteem zijn ook zichtbaar in de + uitvoer van mount: + + &prompt.root; mount +/dev/ad0s1a on / (ufs, local) +devfs on /dev (devfs, local) +/dev/ad0s1d on /usr (ufs, local, soft-updates) +example on /example (zfs, local) +example/data on /example/data (zfs, local) +example/compressed on /example/compressed (zfs, local) + + Zoals is te zien kunnen + ZFS-bestandssystemen, nadat ze zijn + gecreëerd, net als gewone bestandssystemen worden + gebruikt; er zijn echter ook vele andere mogelijkheden + beschikbaar. In het volgende voorbeeld wordt er een nieuw + bestandssysteem data gecreëerd. + Er zullen belangrijke bestanden op worden bewaard, dus het + bestandssysteem wordt zodanig ingesteld dat het twee + kopieën van ieder gegevensblok opslaat: + + &prompt.root; zfs create example/data +&prompt.root; zfs set copies=2 example/data + + Het is nu mogelijk om het gegevens- en ruimtegebruik te + bekijken door df opnieuw te + draaien: + + &prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235234 1628714 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032864 48737580 2% /usr +example 17547008 0 17547008 0% /example +example/compressed 17547008 0 17547008 0% /example/compressed +example/data 17547008 0 17547008 0% /example/data + + Merk op dat ieder bestandssysteem in de pool dezelfde + hoeveelheid vrije ruimte heeft. Dit is de reden dat + df steeds wordt gebruikt tussen de + voorbeelden door, om te laten zien dat de bestandssystemen + slechts zoveel ruimte gebruiken als ze nodig hebben en + allemaal putten uit dezelfde pool. + Het ZFS bestandssysteem elimineert + concepten als volumes en partities, en staat verschillende + bestandssystemen toe om in dezelfde pool te bestaan. + Verwijder nu de bestandssystemen en verwijder daarna de pool, + omdat deze niet meer nodig zijn: + + &prompt.root; zfs destroy example/compressed +&prompt.root; zfs destroy example/data +&prompt.root; zpool destroy example + + Schijven gaan slechter werken en begeven het, een + onvermijdelijke eigenschap. Wanneer de schijf stukgaat + zullen de gegevens verloren gaan. Een methode om + gegevensverlies ten gevolge van een kapotte harde schijf te + vermijden is het implementeren van RAID. + ZFS ondersteunt deze mogelijkheid in zijn + pool-ontwerp en wordt beschreven in de volgende + sectie. - * <acronym>ZFS</acronym> RAID-Z + <acronym>ZFS</acronym> RAID-Z - * Wordt nog vertaald + Zoals eerder opgemerkt wordt in deze sectie aangenomen + dat er twee SCSI-schijven bestaan als de + apparaten da0 en + da1. Voer het volgende commando uit + om een RAID-Z-pool te + creëren: + + &prompt.root; zpool create storage raidz da0 da1 + + De storage zpool zou gecreëerd + moeten zijn. Dit kan worden geverifieerd met de + &man.mount.8; en &man.df.1; commando's zoals eerder. Er + kunnen meer schijfapparaten worden toegewezen door ze aan het + einde van de bovenstaande lijst toe te voegen. + Maak een nieuw bestandssysteem in de pool, genaamd + home waar op den duur de + gebruikersbestanden geplaatst zullen worden: + + &prompt.root; zfs create storage/home + + Het is nu mogelijk om compressie in te schakelen en extra + kopieën te bewaren van de gebruikersmappen en + -bestanden. Dit kan net als eerder worden bewerkstelligd + door de volgende commando's uit te voeren: + + &prompt.root; zfs set copies=2 storage/home +&prompt.root; zfs set compression=gzip storage/home + + Kopieer, om dit als de nieuwe home-map voor gebruikers in + te stellen, de gebruikersgegevens naar deze map en + creëer de benodigde links: + + &prompt.root; cp -rp /home/* /storage/home +&prompt.root; rm -rf /home /usr/home +&prompt.root; ln -s /storage/home /home +&prompt.root; ln -s /storage/home /usr/home + + De gebruikersgegevens zouden nu op het nieuw aangemaakte + /storage/home + bestandssysteem moeten staan. Test dit door een nieuwe + gebruiker aan te maken en daarmee in te loggen. + + Probeer een snapshot te maken dat later weer hersteld kan + worden: + + &prompt.root; zfs snapshot storage/home@08-30-08 + + Merk op dat de snapshot-optie alleen een echt + bestandssysteem vastlegt, geen mappen of bestanden. Het + @-karakter wordt gebruikt als + scheidingsteken tussen de naam van het bestandssysteem of de + naam van het volume. Wanneer de home-map van een gebruiker + wordt weggegooid, kan deze worden hersteld met: + + &prompt.root; zfs rollback storage/home@08-30-08 + + Voer ls in de + .zfs/snapshot + directory van het bestandssysteem uit om een lijst van alle + beschikbare snapshots te krijgen. Voer, om bijvoorbeeld + het zojuist gemaakte snapshot te zien, het volgende commando + uit: + + &prompt.root; ls /storage/home/.zfs/snapshot + + Het is mogelijk om een script te schrijven dat + maandelijks een snapshot van de gebruikersgegevens maakt; na + verloop van tijd kunnen snapshots echter een grote + hoeveelheid schrijfruimte in beslag nemen. Het vorige + snapshot kan worden verwijderd met het volgende + commando: + + &prompt.root; zfs destroy storage/home@08-30-08 + + Na al dit testen is er geen reden om + /storage/home in zijn + huidige staat nog te bewaren. Maak er het echte + /home + bestandssysteem van: + + &prompt.root; zfs set mountpoint=/home storage/home + + Het uitvoeren van de commando's df en + mount laat zien dat het systeem ons + bestandssysteem nu als de echte /home behandelt: + + &prompt.root; mount +/dev/ad0s1a on / (ufs, local) +devfs on /dev (devfs, local) +/dev/ad0s1d on /usr (ufs, local, soft-updates) +storage on /storage (zfs, local) +storage/home on /home (zfs, local) +&prompt.root; df +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/ad0s1a 2026030 235240 1628708 13% / +devfs 1 1 0 100% /dev +/dev/ad0s1d 54098308 1032826 48737618 2% /usr +storage 17547008 0 17547008 0% /storage +storage/home 17547008 0 17547008 0% /home + + Hiermee is de RAID-Z configuratie + compleet. Voer het volgende commando uit om status-updates + van de gecreëerde bestandssystemen te krijgen tijdens + het draaien van de nachtelijke &man.periodic.8;: + + &prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf - * Het herstellen van <acronym>RAID</acronym>-Z + Het herstellen van <acronym>RAID</acronym>-Z - * Wordt nog vertaald + Iedere software-RAID heeft een methode + om zijn status te inspecteren. + ZFS is geen uitzondering. De status van + RAID-Z-apparaten kan worden + geïnspecteerd met het volgende commando: + + &prompt.root; zpool status -x + + Als alle pools in orde zijn en alles is normaal, dan + wordt het volgende bericht weergegeven: + + all pools are healthy + + Als er een probleem is, misschien een schijf die offine + is gegaan, dan wordt de status van de pool weergegeven en dat + zal er als volgt uitzien: + + pool: storage + state: DEGRADED +status: One or more devices has been taken offline by the administrator. + Sufficient replicas exist for the pool to continue functioning in a + degraded state. +action: Online the device using 'zpool online' or replace the device with + 'zpool replace'. + scrub: none requested +config: + + NAME STATE READ WRITE CKSUM + storage DEGRADED 0 0 0 + raidz1 DEGRADED 0 0 0 + da0 ONLINE 0 0 0 + da1 OFFLINE 0 0 0 + +errors: No known data errors + + Hier staat dat het apparaat offline is gezet door de + beheerder. Dat is waar voor dit specifieke voorbeeld. Om de + schijf offline te zetten werd het volgende commando + gebruikt: + + &prompt.root; zpool offline storage da1 + + Het is nu mogelijk om de schijf + da1 te vervangen nadat het systeem + uitgeschakeld is. Zodra het systeem weer opgestart is, kan + het volgende commando worden uitgevoerd om de schijf te + vervangen: + + &prompt.root; zpool replace storage da1 + + Nu kan de status opnieuw geïnspecteerd worden, + dit keer zonder de vlag, om de + statusinformatie op te vragen: + + &prompt.root; zpool status storage + pool: storage + state: ONLINE + scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008 +config: + + NAME STATE READ WRITE CKSUM + storage ONLINE 0 0 0 + raidz1 ONLINE 0 0 0 + da0 ONLINE 0 0 0 + da1 ONLINE 0 0 0 + +errors: No known data errors + + Zoals te zien in dit voorbeeld lijkt alles normaal te + zijn. - * Data verificatie + Gegevensverificatie - * Wordt nog vertaald + Zoals eerder opgemerkt gebruikt ZFS + checksums om de integriteit van opgeslagen + gegevens te verifiëren. Ze worden automatisch + ingeschakeld bij het creëeren van bestandssystemen en + kunnen worden uitgeschakeld door middel van het volgende + commando: + + &prompt.root; zfs set checksum=off storage/home + + Dit is echter geen verstandig idee, omdat checksums zeer + weinig opslagruimte innemen en nuttiger zijn wanneer ze zijn + ingeschakeld. Het lijkt daarnaast ook geen merkbare invloed + op de prestaties te hebben wanneer ze zijn ingeschakeld. + Wanneer ze aanstaan is het mogelijk om ZFS + gegevensintegriteit te laten controleren door middel van + checksum-verificatie. Dit proces staat bekend als + scrubbing. Voer het volgende commando uit om + de gegevensintegriteit van de storage-pool + te controleren: + + &prompt.root; zpool scrub storage + + Dit proces kan, afhankelijk van de hoeveelheid opgeslagen + gegevens, een aanzienlijke hoeveelheid tijd in beslag nemen. + Het is daarnaast ook zeer I/O-intensief, + zozeer dat slechts één van deze operaties + tegelijkertijd uitgevoerd kan worden. Nadat de scrub is + voltooid wordt de status bijgewerkt en kan deze worden + bekeken door een statusaanvraag te doen: + + &prompt.root; zpool status storage + pool: storage + state: ONLINE + scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008 +config: + + NAME STATE READ WRITE CKSUM + storage ONLINE 0 0 0 + raidz1 ONLINE 0 0 0 + da0 ONLINE 0 0 0 + da1 ONLINE 0 0 0 + +errors: No known data errors + + De voltooiingstijd is in dit voorbeeld duidelijk + zichtbaar. Deze eigenschap helpt om gegevensintegriteit te + garanderen gedurende een langere tijdsperiode. + + Er zijn vele andere opties for het Z-bestandssysteem, zie + de &man.zfs.8; en &man.zpool.8; manualpagina's. +