diff --git a/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml b/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml
index 29d84fc83c..e9152f8daf 100644
--- a/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml
+++ b/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml
@@ -1,5012 +1,5013 @@
RenéLadanVertaald door OpslagOverzichtDit hoofdstuk behandelt het gebruik van schijven in &os;.
Dit omvat geheugenschijven, schijven die met het netwerk
verbonden zijn, SCSI/IDE-opslagapparaten en apparaten die gebruik
maken van de USB-interface.Na het lezen van dit hoofdstuk weet de lezer:Welke terminologie &os; gebruikt om de gegevensindeling
op een fysieke schijf te beschrijven (partities en
slices);Hoe aanvullende harde schijven aan een systeem toe te
voegen;Hoe &os; in te stellen om het gebruik te laten maken van
USB-opslagapparaten;Hoe virtuële bestandssystemen, zoals
geheugenschijven, aan te maken;Hoe quota te gebruiken om het schijfgebruik te
beperken;Hoe schijven te versleutelen om ze tegen inbrekers te
beschermen;Hoe vanuit &os; CD's en DVD's aan te maken en te
branden;Wat de verschillende mogelijkheden zijn voor opslagmedia
voor back-ups;Hoe back-upprogramma's te gebruiken die beschikbaar zijn
in &os;;Hoe een back-up naar diskettes te maken;Wat bestandssysteem snapshots zijn en hoe ze efficiënt te
gebruiken.Aangeraden voorkennis:Hoe een nieuwe &os;-kernel in te stellen en te
installeren ().ApparaatnamenDe volgende lijst noemt de fysieke opslagapparaten die in
&os; ondersteund worden, samen met de bijhorende namen.
Naamconventies voor fysieke SchijvenType mediumApparaatnaam mediumIDE harde schijvenadIDE CD-ROM-stationsacdSCSI harde schijven en USB-apparaten voor
massa-opslagdaSCSI CD-ROM-schijvencdOverige niet-standaard-CD-ROM-stationsmcd voor Mitsumi CD-ROM en
scd voor Sony CD-ROM apparaten.DiskettestationsfdSCSI bandstationssaIDE bandstationsastFlashdrivesfla voor &diskonchip;
flashapparatenRAID-schijvenaacd voor &adaptec; AdvancedRAID,
mlxd en mlyd voor
&mylex;, amrd voor AMI &megaraid;,
idad voor Compaq Smart RAID,
twed voor &tm.3ware; RAID.
DavidO'BrienOrigineel bijgedragen door Schijven toevoegenschijventoevoegenDe volgende sectie beschrijft hoe een nieuwe SCSI
schijf aan een machine toe te voegen die slechts een enkele drive heeft.
Ten eerste dient de computer uitgeschakeld te worden en dient de
schijf volgens de instructies van de computer, controller en
schijffabrikant geïnstalleerd te worden. Wegens de grote
variéteiten om dit soort procedures uit te voeren, vallen
de details buiten het bereik van dit document.Er dient als gebruiker root ingelogd te
worden. Nadat de schijf is toegevoegd, dient
/var/run/dmesg.boot bekeken te worden om er
zeker van te zijn dat de nieuwe schijf is gevonden. Volgens het
voorbeeld heet de nieuw toegevoegde schijf
da1 en die wordt aangekoppeld op
/1 (als er een IDE-schijf wordt toegevoegd,
is de apparaatnaam ad1).partitiesslicesfdisk&os; draait op IBM-PC-compatibele computers. Daarom moet het
rekening houden met de PC-BIOS-partities. Deze wijken af van de
traditionele BSD-partities. Een PC-schijf bevat tot vier
ingangen voor BIOS-partities. Indien de schijf geheel aan &os;
wordt gewijd, kan de toegewijde-modus
gebruikt worden. In het andere geval moet &os; binnen
één van de vier PC-BIOS-partities draaien. De
PC-BIOS-partities worden door &os; slices
genoemd om ze niet met de traditionele BSD-partities te
verwarren. Slices kunnen ook op een schijf worden gebruikt die
toegewijd is aan &os;, maar in een computer zit die ook andere
besturingssystemen heeft geïnstalleerd. Dit is een goede
manier om verwarring met het programma fdisk
van andere, niet-&os; besturingssystemen te voorkomen.Als er met slices gewerkt wordt, wordt de schijf toegevoegd
als /dev/da1s1e. Dit moet worden gelezen
als: SCSI-schijf, eenheid 1 (tweede SCSI-schijf), slice 1
(PC-BIOS-partitie 1) en BSD-partitie e. Als
de schijf toegewijd is, wordt deze simpelweg als
/dev/da1e toegevoegd.Omdat 32-bit-integers worden gebruikt om het aantal sectoren
op te slaan, is &man.bsdlabel.8;
beperkt tot 2^32-1 sectoren per schijf, wat
meestal neerkomt op 2 TB. Het programma &man.fdisk.8; staat
geen hogere startsector toe dan 2^32-1 en geen grotere lengte dan
2^32-1, meestal worden hiermee partities tot 2 TB begrensd
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.gpart.8; worden gebruikt om GPT-partities aan te
maken. GPT heeft het bijkomende voordeel dat het niet
tot 4 slices beperkt is.&man.sysinstall.8; gebruikensysinstallschijven toevoegensuNavigeren door
sysinstallsysinstall
kan gebruikt worden om een nieuwe schijf te
partitioneren en te labelen met eenvoudig te gebruiken
menu's. Hiervoor dient òfwel als gebruiker
root ingelogd te zijn, òfwel
gebruik te worden gemaakt van su. Draai
sysinstall en ga naar het menu
Configure. Scroll binnen het
&os; Configuration Menu naar
beneden en kies de optie Fdisk.fdisk
partitie-bewerkerEenmaal binnen fdisk kan op
A gedrukt worden om de gehele
schijf voor &os; te gebruiken. Wanneer gevraagd wordt of
het systeem compatibel dient te blijven met mogelijk
toekomstige besturingssystemen, dient met
YES geantwoord te worden. Met
W kunnen de veranderingen naar de
schijf worden geschreven. Nu dient de FDISK-bewerker
verlaten te worden door op Q te drukken.
Vervolgens wordt er een vraag
gesteld over het Master Boot Record. Omdat
er een schijf aan een reeds draaiend systeem wordt
toegevoegd, dient hier None gekozen te
worden.SchijflabelbewerkerBSD-partitiesVervolgens dient sysinstall
verlaten en opnieuw gestart te worden. Volg bovenstaande
aanwijzingen, maar kies deze keer voor de optie
Label. Dit geeft toegang tot de
Disk Label Editor. Hier worden de
traditionele BSD-partities aangemaakt. Een schijf kan tot
acht partities bevatten, gelabeld a-h.
Enkele partitielabels hebben een speciale functie. De
partitie a wordt gebruikt voor de
rootpartitie (/). Alleen de
systeemschijf (bijvoorbeeld de schijf van waaruit opgestart
wordt) moet een partitie a hebben. De
partitie b wordt voor swappartities
gebruikt, en het is mogelijk om vele schijven met
swappartities te hebben. De partitie c
adresseert de gehele schijf in toegewijde modus, of de
gehele &os;-slice in slice-modus. De andere partities zijn
voor algemeen gebruik.sysinstall's Labelbewerker
heeft een voorkeur voor de partitie e
voor niet-root-niet-swap-partities. Binnen de
Labelbewerker dient een enkel bestandssysteem te worden
aangemaakt door op C te drukken. Kies
FS wanneer gevraagd wordt of dit een FS
(file system) of swap wordt, en geef een koppelpunt in
(bijvoorbeeld /mnt). Wanneer een
schijf in post-installatie-modus wordt toegevoegd, maakt
sysinstall geen ingangen aan in
/etc/fstab, dus dan is het opgegeven
koppelpunt niet van belang.Nu kan het nieuwe label naar de schijf worden
geschreven en er een bestandssysteem op aangemaakt worden.
Dit kan gedaan worden door op W te
drukken. Fouten van sysinstall
dat de nieuwe partitie niet aankoppeld kon worden kunnen
genegeerd worden. De Labelbewerker en
sysinstall kunnen nu volledig
verlaten worden.AfrondenDe laatste stap bestaat uit het bewerken van
/etc/fstab om hier een regel voor de
nieuwe schijf aan toe te voegen.Het gebruik van opdrachtregelgereedschappenHet gebruik van slicesDeze installatie zorgt ervoor dat de schijf correct
samenwerkt met andere besturingssystemen die eventueel op de
computer zijn geïnstalleerd en dat de
fdisk-gereedschappen van andere
besturingssystemen niet verward raken. Het wordt aangeraden
om deze methode te gebruiken voor de installatie van nieuwe
schijven. Gebruik de toegewijde modus
alleen als hier een goede reden voor bestaat!&prompt.root; dd if=/dev/zero of/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Initialiseer de nieuwe schijf.
&prompt.root; bsdlabel -B -w da1s1 auto # Label de schijf.
&prompt.root; bsdlabel -e da1s1 # Bewerk de zojuist aangemaakte schijflabel en voeg partities toe.
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Herhaal dit voor alle aangemaakte partities.
&prompt.root; mount /dev/da1s1e /1 # Mount de partitie(s).
&prompt.root; vi /etc/fstab # Voeg de juiste regel(s) aan /etc/fstab toe.Vervang voor een IDE-schijf da door
ad.ToegewijdOS/2Indien de nieuwe schijf niet met een ander
besturingssysteem gedeeld wordt, kan de
toegewijde modus gebruikt worden. Denk
eraan dat deze modus besturingssystemen van Microsoft kan
verwarren. Ze richten echter geen schade aan. IBM's &os2;
fatsoeneert echter partities die het niet
begrijpt.&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; bsdlabel -Bw da1 auto
&prompt.root; bsdlabel -e da1 # Maak de `e'-partitie aan.
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # Voeg een regel voor /dev/da1e toe.
&prompt.root; mount /1Een alternatieve methode is:&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1 # Voeg een regel voor /dev/da1e toe.
&prompt.root; mount /1RAIDSoftware RAIDChristopherShumwayOrigineel werk van JimBrownHerzien door Concatenated Disk Driver (CCD) instellingenRAIDsoftwarematigRAIDCCDBij het kiezen van een medium voor massa-opslag zijn de
belangrijkste afwegingen snelheid, betrouwbaarheid en kosten.
Het komt zelden voor dat alle drie in balans zijn.
Normaalgesproken is een snel, betrouwbaar apparaat voor
massa-opslag duur en kosten sparen gaat ten koste van
òfwel snelheid òfwel betrouwbaarheid.Bij het ontwerpen van het onderstaande systeem werd
primair op de kosten gelet, gevolgd door snelheid en als
laatste betrouwbaarheid. De overdrachtsnelheid van gegevens
wordt voor dit systeem uiteindelijk beperkt door het netwerk.
En hoewel betrouwbaarheid erg belangrijk is, wordt
onderstaande CCD-schijf gebruikt voor het serven van on-line
gegevens die reeds volledig op CD-R's zijn geback-upt en
eenvoudig vervangen kunnen worden.De eerste stap in het kiezen van een
massa-opslagoplossing is het bepalen van de eigen
benodigdheden. Indien snelheid belangrijker is dan
betrouwbaarheid of kosten, wijkt de oplossing af van het
systeem dat in deze sectie wordt beschreven.Hardware installerenAls aanvulling op de IDE systeemschijf zijn drie
Western Digital IDE-schijven van 30 GB, 5400 RPM
vanuit de kern van de onderstaande CCD-schijf aanwezig, die
ongeveer 90 GB aan on-line opslag bieden. Ideaal
gezien heeft iedere IDE-schijf een eigen IDE-controller en
kabel, maar om de kosten te minimaliseren zijn geen
aanvullende IDE-kabels gebruikt. In plaats hiervan zijn de
schijven zodanig met jumpers ingesteld dat elke
IDE-controller één master en
één slave heeft.Tijdens het opnieuw opstarten werd het systeem-BIOS
zodanig ingesteld dat het automatisch de aangekoppelde
schijven detecteerde. Het was belangrijker dat &os; ze
tijdens het opnieuw opstarten herkende:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Indien &os; niet alle schijven detecteert, moet
gecontroleerd worden of de jumpers juist zijn ingesteld.
De meeste IDE-schijven hebben ook een jumper voor
Cable Select. Dit is
niet de jumper voor de
master/slave-instelling. Voor hulp met het identificeren
van de juiste jumper dient de documentatie van de schijf
geraadpleegd te worden.Vervolgens dient besloten te worden hoe ze deel gaan
uitmaken van het bestandssysteem. Hiervoor dienen
&man.vinum.4; () en &man.ccd.4;
bestudeerd te worden. Voor deze instellingen werd voor
&man.ccd.4; gekozen.CCD installerenHet stuurprogramma &man.ccd.4; biedt de mogelijkheid om
meerdere identieke schijven aaneen te rijgen tot
één logisch bestandssysteem. Om gebruik te
kunnen maken van &man.ccd.4; is een kernel met ingebouwde
ondersteuning voor &man.ccd.4; nodig. De volgende regel
dient toegevoegd te worden aan het
kernelinstellingenbestand en de kernel dient opnieuw
gebouwd en geïnstalleerd te worden:device ccdOm &man.ccd.4; te installeren dient eerst
&man.bsdlabel.8; gebruikt te worden om de schijven te
labelen:bsdlabel -w -ad1 auto
bsdlabel -w ad2 auto
bsdlabel -w ad3 autoBovenstaande maakt een schijflabel aan voor
ad1c,
ad2c en
ad3c die de gehele schijf
beslaat.Vervolgens dient het labeltype van de schijf veranderd
te worden. Voor het bewerken van de schijven kan
&man.bsdlabel.8; gebruikt worden:bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -e ad3Dit zorgt ervoor dat het huidige schijflabel van elke
schijf met de tekstverwerker wordt geopend die door de
omgevingsvariabele EDITOR wordt
gespecificeerd, vaak &man.vi.1;.Een ongewijzigd schijflabel ziet er ongeveer als volgt
uit:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Er dient een nieuwe partitie e
toegevoegd te worden die door &man.ccd.4; gebruikt kan
worden. Deze kan gewoonlijk van partitie
c overgenomen worden, maar het
moet4.2BSD zijn. Het schijflabel ziet
er nu ongeveer als volgt uit:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Bestandssysteem aanmakenNu alle schijven gelabeld zijn, moet de &man.ccd.4;
gebouwd worden. Om dit te doen, dient &man.ccdconfig.8;
gebruikt te worden met opties die ongeveer gelijk zijn aan
de volgende:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eHieronder staat het gebruik en de betekenis van elke
optie:Het eerste argument is het in te stellen apparaat,
in dit geval /dev/ccd0c. Het
gedeelte /dev/ is
optioneel.De interleave voor het bestandssysteem. De
interleave definiëert de grootte van een stripe
in schijfblokken, elk schijfblok is normaalgesproken
512 bytes groot. Een interleave van 32 is dus
16.384 bytes groot.Vlaggen voor &man.ccdconfig.8;. Indien het gewenst
is om schijfspiegeling aan te zetten, kan er hier een
vlag voor gespecificeerd worden. Deze opstelling biedt
geen spiegeling voor &man.ccd.4;, dus is die op 0 (nul)
ingesteld.De laatste argumenten voor &man.ccdconfig.8; zijn
de apparaten die in de rij geplaatst dienen te worden.
Voor elk apparaat dient de complete padnaam gebruikt te
worden.Nadat &man.ccdconfig.8; gedraaid is, is de &man.ccd.4;
ingesteld. Er kan een bestandssysteem worden
geïnstalleerd. Er kan in &man.newfs.8; worden gekeken
voor opties, of het draaien van het onderstaande commando
is ook toereikend:newfs /dev/ccd0cAlles automatisch makenIn het algemeen is het wenselijk om de &man.ccd.4;
telkens te mouten wanneer er opnieuw opgestart wordt.
Dit dient eerst ingesteld te worden. Met het volgende
commando worden de huidige instellingen naar
/etc/ccd.conf geschreven:ccdconfig -g > /etc/ccd.confTijdens het opstarten draait het script
/etc/rcccdconfig -C
indien /etc/ccd.conf bestaat. Dit
stelt automatisch de &man.ccd.4; in, zodat die kan worden
aangekoppeld.Indien er in enkele-gebruiker-modus wordt opgestart,
dient het volgende commando te worden uitgevoerd om de
rij in te stellen voordat de &man.ccd.4; aangekoppeld kan
worden:ccdconfig -COm de &man.ccd.4; automatisch aan te koppelen, kan er
een regel voor de &man.ccd.4; in
/etc/fstab geplaatst worden, zodat die
tijdens het opstarten aangekoppeld wordt:/dev/ccd0c /media ufs rw 2 2Volumebeheerder VinumRAIDsoftwareRAIDVinumDe volumebeheerder Vinum is een blokstuurprogramma dat
virtuele schijven implementeert. Het isoleert schijfhardware
van de blokapparaat-interface en projecteert gegevens op een
manier die de flexibiliteit, prestatie en betrouwbaarheid
verhoogt in vergelijking met de traditionele slice-blik op
schijfopslag. &man.vinum.4; implementeert de modellen
RAID-0, RAID-1 en RAID-5, zowel individueel als als
combinatie.In staat meer informatie
over &man.vinum.4;.Hardwarematige RAIDRAIDhardwarematig&os; ondersteunt ook een verscheidenheid aan hardwarematige
RAID-stuurprogramma's. Deze apparaten
besturen een RAID-deelsysteem zonder dat er
&os;-specifieke software nodig is om de rij te beheren.Door gebruik te maken van een BIOS die
op de kaart aanwezig is, beheert de kaart de meeste
schijfbewerkingen zelf. Nu volgt een korte beschrijving van
een opzet waarbij een Promise
IDE-stuurprogramma is gebruikt. Wanneer
deze kaart geïnstalleerd en het systeem opgestart is,
beeldt het een prompt af waarbij om informatie wordt gevraagd.
De instructies dienen opgevolgd te worden om bij het
instelscherm van de kaart te komen. Van hieruit kunnen alle
aangekoppelde schijven gecombineerd worden. Nadat dit gedaan
is, zien de schijven er voor &os; als één enkele
schijf uit. Andere RAID-niveaus kunnen
overeenkomstig ingesteld worden.ATA RAID1-rijen opnieuw bouwenMet &os; is het mogelijk om een defecte schijf in een rij
te vervangen terwijl de computer aanstaat (hot
replace). Hiervoor dient de schijf
vóór het opnieuw opstarten vervangen te
zijn.Waarschijnlijk is zoiets als het volgende in
/var/log/messages of in de uitvoer van
&man.dmesg.8; te zien:ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lostMeer informatie kan met behulp van &man.atacontrol.8;
gezocht worden:&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDOntkoppel eerst het ata kanaal met de falende schijf
zodat deze veilig kan worden verwijderd:&prompt.root; atacontrol detach ata3Vervang de schijf.Koppel het ata kanaal opnieuw aan:&prompt.root; atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentVoeg de nieuwe schijf toe aan de rij als
reserve:&prompt.root; atacontrol addspare ar0 ad6De rij dient nu opnieuw opgebouwd te worden:&prompt.root; atacontrol rebuild ar0Het is mogelijk de voortgang te volgen met het volgende
commando:&prompt.root; dmesg | tail -10
[uitvoer verwijderd]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedNu moet er gewacht worden tot de bewerking voltooid
is.MarcFonvieilleBijgedragen door USB-opslagapparatenUSBschijvenVeel externe opslagoplossingen gebruiken tegenwoordig de
Universele Seriële Bus (USB): harde schijven,
USB-duimdrives, CD-R-branders, etc. &os; biedt voor al dit soort
apparaten ondersteuning.InstellenHet stuurprogramma &man.umass.4; biedt de ondersteuning
voor USB-opslagapparaten. Indien de kernel
GENERIC wordt gebruikt, hoeft er niets aan
de instellingen gewijzigd te worden. Als er een eigen kernel
wordt gebruikt, dienen de volgende regels in het
kernelinstellingenbestand aanwezig zijn:device scbus
device da
device pass
device uhci
device ohci
device ehci
device usb
device umassHet stuurprogramma &man.umass.4; gebruikt het subsysteem
SCSI om toegang te krijgen tot de USB-opslagapparaten. Het
USB-apparaat wordt door het systeem als een SCSI-apparaat
gezien. Afhankelijk van de chipset op het moederbord is
slechts òf device uhci òf
device ohci nodig voor ondersteuning van USB 1.X.
Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand
te hebben. Ondersteuning voor USB 2.0 wordt geleverd door het
stuurprogramma &man.ehci.4; (de regel met
device ehci). Indien er regels zijn toegevoegd dient
de kernel opnieuw gecompileerd en geïnstalleerd te worden.Indien het USB-apparaat een CD-R- of DVD-brander is,
dient het SCSI CD-ROM-stuurprogramma &man.cd.4; met de
volgende regel aan de kernel toegevoegd te worden:device cdAangezien de brander als een SCSI-schijf gezien wordt,
dient het stuurprogramma &man.atapicam.4; niet in de
kernelinstellingen gebruikt te worden.Instellingen testenDe instellingen zijn klaar om getest te worden: het
USB-apparaat dient aangesloten te worden en in de buffer voor
systeemmeldingen (&man.dmesg.8;) dient het stuurprogramma
ongeveer als volgt te verschijnen:umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)Uiteraard kunnen het merk, de apparaatnode
(da0) en andere details verschillen
naar gelang de instelling.Aangezien het USB-apparaat als een SCSI-apparaat gezien
wordt, kan het commando camcontrol gebruikt
worden om de USB-opslagapparaten weer te geven die aan het
systeem gekoppeld zijn:&prompt.root; camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)Indien er een bestandssysteem op de schijf aanwezig is, kan
dat aangekoppeld worden. biedt
indien nodig hulp bij het formatteren en aanmaken van partities
op de USB-drive.Door het toestaan dat gewone gebruikers verschillende
media kunnen koppelen door bijvoorbeeld het aanzetten van
vfs.usermount zoals hieronder beschreven,
zou niet als veilig beschoud moeten worden uit een
beveiligings oogpunt. Veel bestandssystemen in &os; zijn
niet geschreven om beveiliging te bieden tegen kwaadaardige
apparaten.Om het apparaat koppelbaar te maken voor de gewone gebruiker
moeten er een aantal stappen ondernomen worden. Als eerste
moeten de apparaten die gecreeerd worden wanneer het USB opslag-
medium wordt toegevoegd toegankelijk zijn voor de gebruiker.
Een oplossing is om alle gebruikers die deze rechten nodig hebben
toe te voegen aan de operator groep. Dit
kan gedaan worden met &man.pw.8;. Daarna moet het voor de
operator groep mogelijk zijn te lezen en
te schrijven naar de gecreeerde apparaten. Dit kan bewerkstelligd
worden door de volgende regels toe te voegen aan
/etc/devfs.rules:[localrules=5]
add path 'da*' mode 0660 group operatorAls er SCSI schijven in het systeem aanwezig zijn moet dit
anders aangepakt worden. Stel dat het systeem reeds over de
volgende schijven beschikt da0 tot
en met da2, verander de regel dan
in het volgende:add path 'da[3-9]*' mode 0660 group operatorDit sluit de reeds bestaande schijven buiten van toegang
door de operator groep.Erna moet ook de nieuwe ruleset voor &man.devfs.rules.5;
ingeschakeld worden door middel van
/etc/rc.conf:devfs_system_ruleset="localrules"Hierna moet de kernel worden geconfigureerd zodat gewone
gebruikers rechten krijgen om bestandssystemen te koppelen.
De makkelijkste manier is door de volgende regel toe te voegen
aan /etc/sysctl.conf:vfs.usermount=1Let op, deze wijziging wordt pas actief na de volgende
start van het systeem. Als alternatief kan ook &man.sysctl.8;
gebruikt worden om deze variabele te zetten.De laatste stap is het creëeren van de map waar het
bestandssysteem gekoppeld wordt. Deze map moet eigendom zijn
van de gebruiker die het bestandssysteem gaat koppelen. Een
manier om dat te bewerkstelligen is door met de gebruiker
root een submap aan te maken die eigendom
is van de gebruiker als
/mntgebruikersnaam
(verander gebruikersnaam door de
loginnaam van de daadwerkelijke gebruiker en
gebruikersgroep door de primaire
groep van de gebruiker):&prompt.root; mkdir /mnt/gebruikersnaam
&prompt.root; chown gebruikersnaam:gebruikersgroep /mnt/gebruikersnaamStel dat er vervolgens een USB-stick ingeplugged wordt en er
een /dev/da0s1 aangemaakt wordt. Omdat
deze apparaten meestal voorgeformatteerd met een
FAT-bestandssysteem komen, kan deze als volgende gekoppeld
worden:&prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/gebruikersnaamIndien het apparaat losgekoppeld wordt (nadat de schijf
afgekoppeld is), dient in de buffer voor systeemmeldingen iets
als het volgende te zien te zijn:umass0: at uhub0 port 1 (addr2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detachedReferentiesNaast de onderdelen Schijven
toevoegen en Bestandssystemen aan- en
afkoppelen, kunnen de volgende hulppagina's ook nuttig
zijn: &man.umass.4;, &man.camcontrol.8; en &man.usbconfig.8; voor
&os; 8.X of &man.usbdevs.8; voor eerdere versies van &os;.MikeMeyerBijgedragen door Optische media (CD's) aanmaken en gebruikenCD-ROM'saanmakenInleidingCD's hebben een aantal eigenschappen waardoor ze
verschillen van conventionele schijven. Initieel zijn ze door
de gebruiker niet beschrijfbaar. Ze zijn zó ontworpen
dat ze continu, zonder vertragingen van het verplaatsen van de
kop tussen tracks, gelezen kunnen worden. Ze zijn ook veel
gemakkelijker tussen twee systemen te verplaatsen dan
gelijksoortige media in hun tijd waren.CD's hebben tracks, maar die verwijzen naar secties van
gegevens die continu gelezen dienen te worden en niet naar
fysieke eigenschappen van de schijf. Om een CD op &os; te
produceren, dienen de gegevensbestanden waaruit de tracks op de
CD gaan bestaan te worden voorbereid, waarna de tracks op de CD
worden geschreven.ISO 9660bestandssystemenISO 9660Het bestandssysteem ISO 9660 is ontworpen om met deze
verschillen om te gaan. Helaas codeert het
bestandssysteemgrenzen die destijds gebruikelijk waren.
Gelukkig biedt het een uitbreidingsmechanisme dat correct
geschreven CD's toestaat om deze grenzen te overschrijden en
nog steeds te werken met systemen die deze uitbreidingen niet
ondersteunen.sysutils/cdrtoolsDe port sysutils/cdrtools bevat
&man.mkisofs.8;, een programma dat gebruikt kan worden om een
gegevensbestand aan te maken dat een ISO 9660-bestandssysteem
bevat. Het bevat opties die verschillende uitbreidingen
ondersteunen en wordt hieronder beschreven.CD-branderATAPIHet gereedschap om de CD te branden hangt af van het feit
of de CD-brander ATAPI of iets anders is. ATAPI CD-branders
gebruiken het programma burncd dat deel uitmaakt
van het basissysteem. SCSI en USB CD-branders dienen
cdrecord van
de port sysutils/cdrtools
te gebruiken. Het is ook mogelijk om cdrecord en andere
gereedschappen voor SCSI-drives op ATAPI-hardware te
gebruiken door middel van de module ATAPI/CAM.Indien CD-brandsoftware met een grafische
gebruikersinterface gewenst is, is
X-CD-Roast of K3b
een mogelijkheid. Deze gereedschappen zijn
beschikbaar als package of vanuit de ports sysutils/xcdroast en sysutils/k3b.
X-CD-Roast en
K3b hebben de module ATAPI/CAM met
ATAPI-hardware nodig.mkisofsHet programma &man.mkisofs.8;, dat deel uitmaakt van de
port sysutils/cdrtools,
maakt een ISO 9660-bestandssysteem aan dat een beeld is van een
boomstructuur in de &unix; bestandssysteem-namespace. De
eenvoudigste gebruiksvorm is:&prompt.root; mkisofs -o beeldbestand.iso/pad/naar/boomstructuurbestandssystemenISO 9660Dit commando maakt een
beeldbestand.iso aan dat een ISO
9660-bestandssysteem bevat dat een kopie is van de
boomstructuur in
/pad/naar/boomstructuur. Tijdens
het proces beeldt het bestandsnamen af op namen die aan de
beperkingen van het standaard ISO 9660-bestandssysteem voldoen
en sluit het bestanden uit die namen hebben die niet
karakteristiek zijn voor ISO-bestandssystemen.bestandssystemenHFSbestandssystemenJolietEr is een aantal opties beschikbaar om over deze
beperkingen heen te komen. In het bijzonder zet
de Rock Ridge-uitbreidingen aan die
gangbaar zijn voor &unix; systemen, zet de
Rock Ridge-uitbreidingen aan die gebruikt worden op
Microsoft-systemen en kan gebruikt worden
om HFS-bestandssystemen aan te maken die door &macos; gebruikt
worden.Voor CD's die alleen op &os;-systemen gebruikt gaan worden,
kan gebruikt worden om alle restricties op
bestandsnamen uit te zetten. Indien het met
gebruikt wordt, maakt het een
bestandssysteembeeld aan dat identiek is aan de
&os;-boomstructuur van waaruit begonnen is, alhoewel het
mogelijk is dat het zich op aantal manieren niet aan de
ISO 9660-standaard houdt.CD-ROM'sopstartbaar makenDe laatste optie voor algemeen gebruik is
. Deze wordt gebruikt om de plaats van het
opstartbeeld aan te geven om een El Torito
opstartbare CD te maken. Deze optie heeft een argument nodig,
namelijk het pad naar een opstartbeeld dat het begin van de
boomstructuur die naar de CD geschreven wordt voorstelt.
Gewoonlijk maakt &man.mkisofs.8; een ISO-beeld aan in de
zogenaamde diskette-emulatie-modus en verwacht
het dus dat het beeldbestand exact 1200, 1440 of 2880 KB
groot is. Sommige bootloaders, zoals degene die door de
distributieschijven van &os; wordt gebruikt, gebruiken de
emulatiemodus niet. In dat geval dient de optie
gebruikt te worden. Dus indien
/tmp/myboot een opstartbaar &os;-systeem
met het beeldbestand in
/tmp/myboot/boot/cdboot bevat, kan het
beeld van een ISO 9660-bestandssysteem als volgt in
/tmp/bootable.iso aangemaakt
worden:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootAls dit gedaan is en md in de
kernel is ingesteld, kan het bestandssysteem gekoppeld
worden:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntNu kan gecontroleerd worden of /mnt en
/tmp/myboot identiek zijn.Er zijn vele andere opties die met &man.mkisofs.8; gebruikt
kunnen worden om het gedrag af te stemmen. In het bijzonder
wijzigingen aan een ISO 9660-structuur en het aanmaken van
Joliet- en HFS-schijven. Details staan in
&man.mkisofs.8;.burncdCD-ROM'sbrandenIndien er een ATAPI CD-brander aanwezig is, kan het
commando burncd gebruikt worden om een
ISO-beeld naar een CD te branden. burncd
maakt deel uit van het basissysteem en is geïnstalleerd
als /usr/sbin/burncd. Het gebruik is erg
eenvoudig, aangezien het weinig opties heeft.&prompt.root; burncd -f cd-apparaat gegevens beeldbestand.iso fixateHet bovenstaande commando brandt een kopie van
beeldbestand.iso naar
cd-apparaat. Het standaardapparaat
is /dev/acd0. Opties om
de schrijfsnelheid in te stellen, de CD na het branden uit
te werpen en geluidsgegevens te schrijven staan in
&man.burncd.8;.cdrecordIndien er geen ATAPI CD-brander aanwezig is, dient
cdrecord gebruikt te worden om CD's te
branden. cdrecord maakt geen deel uit van
het basissysteem. Het dient òfwel vanuit de port in
sysutils/cdrtools
òfwel als package geïnstalleerd te worden.
Veranderingen in het basissysteem kunnen ervoor zorgen dat
binaire versies van dit programma falen, wat mogelijk tot een
coaster leidt. Daarom dient òfwel de
port bijgewerkt te worden als het systeem wordt bijgewerkt,
òwel, als -STABLE gevolgd
wordt, dient de port bijgewerkt te worden wanneer er een nieuwe
versie beschikbaar komt.Hoewel cdrecord vele opties heeft, is
het gebruik voor gewone situaties nog eenvoudiger dan dat van
burncd. Een ISO 9660-beeld kan gebrand
worden met:&prompt.root; cdrecord dev=devicebeeldbestand.isoHet lastige gedeelte in het gebruik van
cdrecord is het vinden van de juiste
. Om de juiste instelling te vinden, kan
de vlag van
cdrecord gebruikt worden, wat resultaten
zoals de onderstaande kan geven:CD-ROM'sbranden&prompt.root; cdrecord -scanbus
Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Dit geeft de gepaste -waarden voor de
apparaten in de lijst. De CD-brander dient gezocht te worden,
waarna de drie getallen gescheiden door komma's gebruikt kunnen
worden als de waarde voor . In dit geval
is het CD-RW-apparaat 1,5,0, dus is de juiste invoer
. Er zijn eenvoudigere manieren om
deze waarde te specificeren. In &man.cdrecord.1; staan meer
details. Hier staat ook informatie over geluidstracks, de
snelheid instellen en meer.Audio-CD's duplicerenEen audio-CD kan gedupliceerd worden door de
geluidsgegevens van de CD naar een serie bestanden te
schrijven en deze bestanden daarna naar een lege CD te
schrijven. Het proces verschilt licht tussen ATAPI- en
SCSI-drives.SCSI-drivesOnttrek cdda2wav de audio:&prompt.user; cdda2wav -vall -D2,0 -B -OwavSchrijf met cdrecord de
.wav-bestanden:&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavControleer of 2,0 juist is
opgegeven, zoals beschreven in .ATAPI-drivesMet behulp van de ATAPI/CAM module kan
cdda2wav ook gebruikt worden voor ATAPI-drives.
Dit gereedschap is vaak een betere keuze voor de meeste gebruikers
(jitter-correctie, endianness-zaken, etc.) dan de methode die
hieronder wordt voorgesteld.Het ATAPI CD-stuurprogramma maakt elke track
beschikbaar als
/dev/acddtnn,
waarin d het stationsnummer is
en nn het tracknummer is in twee
decimale cijfers, dat indien nodig vooraf wordt gegaan door
een nul. Dus is de eerste track op de eerste schijf
/dev/acd0t01, de tweede
/dev/acd0t02, de derde
/dev/acd0t03, enzovoort.Controleer of de juiste bestanden in
/dev bestaan. Als de benodigde
namen er niet bijstaan, forceer het systeem dan om opnieuw
te kijken:&prompt.root; dd if=/dev/acd0 of=/dev/null count=1De track kan met &man.dd.1; onttrokken worden. Bij het
onttrekken van de bestanden dient een specifieke
blokgrootte gebruikt te worden.&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root;dd if=/dev/acd0t02 of=track2.cdr bs=2352
...Brand de onttrokken bestanden met
burncd. Er dient opgegeven te worden
dat het geluidsbestanden zijn en dat
burncd de schijf moet fixeren wanneer
na afronding van het proces.&prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixateGegevens-CD's duplicerenEen gegevens-CD kan gekopieerd worden naar een beeldbestand
dat functioneel gelijk is aan het beeldbestand dat met
&man.mkisofs.8; gemaakt is en het kan gebruikt worden om elke
gegevens-CD te dupliceren. Het hier gegeven voorbeeld neemt
aan dat het CD-ROM-apparaat acd0
is.&prompt.root; dd if=/dev/acd0 of=bestand.iso bs=2048Nu het beeld beschikbaar is, kan het naar CD geschreven
worden zoals hierboven beschreven.Gegevens-CD's gebruikenNu er een standaard gegevens-CD-ROM is aangemaakt moet deze
waarschijnlijk aangekoppeld worden om de gegevens die er op
staan te lezen. Normaalgesproken neemt &man.mount.8; aan dat
een bestandssysteem van het soort ufs is.
Als zoiets als onderstaande geprobeerd wordt komt er een klacht
over Incorrect super block en wordt er
niet aangekoppeld:&prompt.root; mount /dev/cd0 /mntDe CD-ROM bevat geen
UFS-bestandssysteem, dus pogingen om zo aan
te koppelen mislukken. Er dient aan &man.mount.8; verteld te
worden dat het bestandssysteem van het soort
ISO9660 is en dan werkt alles. Dit kan
door de optie van &man.mount.8; op
te geven. Het CD-ROM-apparaat /dev/cd0
onder /mnt aankoppelen kan zo:&prompt.root; mount -t cd9660 /dev/cd0 /mntDe apparaatnaam (in dit voorbeeld
/dev/cd0) kan afwijken, afhankelijk van de
interface die de CD-ROM gebruikt. Verder voert de optie
gewoon &man.mount.cd9660.8; uit.
Bovenstaand voorbeeld kan verkort worden tot:&prompt.root; mount_cd9660 /dev/cd0 /mntHet is in het algemeen mogelijk om gegevens-CD-ROMs van
elke fabrikant op deze manier te gebruiken. Schijven met
bepaalde uitbreidingen op ISO 9660 kunnen zich echter vreemd
gedragen. Joliet-schijven bijvoorbeeld, slaan alle
bestandsnamen op in twee-byte Unicode-karakters. De
&os;-kernel spreekt geen Unicode, maar het &os; CD9660
stuurprogramma is in staat om Unicode karakters direct te
converteren. Als er niet-Engelse karakters verschijnen als
vraagtekens, moet de lokale karakterset gedefinieerd worden
met de optie. Zie de &man.mount.cd9660.8;
handleiding voor meer informatie.Om in staat te zijn om de karakter conversie te doen met
behulp van de optie, heeft de kernel de
cd9660_iconv.ko module nodig. Deze kan
ingeladen worden door het volgende toe te voegen aan
/boot/loader.conf:cd9660_iconv_load="YES"en daarna de machine te herstarten of door de module direct
in te laden met &man.kldload.8;.Zo nu en dan kan Device not
configured verschijnen als geprobeerd wordt om een
CD-ROM aan te koppelen. Dit betekent meestal dat het
CD-ROM-station denkt dat er geen schijf in de lade ligt of dat
het station niet zichtbaar is op de bus. Omdat het enkele
seconden kan duren voordat een CD-ROM-station doorheeft dat er
een CD-ROM in ligt, is geduld geboden.Soms wordt een SCSI CD-ROM gemist omdat het station niet
genoeg tijd had om antwoord te geven op de busreset. Indien er
een SCSI CD-ROM aanwezig is, dient de volgende optie aan de
kernelinstellingen toegevoegd te worden en de kernel opnieuw gebouwd
te worden.options SCSI_DELAY=15000Dit zorgt ervoor dat de SCSI-bus 15 seconden pauzeert
tijdens het opstarten opdat het CD-ROM-station elke gelegenheid
krijgt om de busreset te beantwoorden.Rauwe gegevens-CD's brandenEen bestand kan direct naar CD geschreven worden zonder een
ISO 9660-bestandssysteem aan te maken. Sommige mensen doen dit
voor back-updoeleinden. Dit gaat sneller dan een standaard-CD
branden:&prompt.root; burncd -f /dev/acd1 -s 12 gegevens archief.tar.gz fixateOm de gegevens terug te halen die op zo'n CD gebrand zijn,
is het noodzakelijk om gegevens van de rauwe apparaatnode te
lezen:&prompt.root; tar xzvf /dev/acd1Het is niet mogelijk om deze schijf aan te koppelen zoals
dat voor een normale CD-ROM gedaan wordt. Zo'n CD-ROM kan onder
geen enkel besturingssysteem, behalve &os;, gelezen worden.
Om de CD aan te kunnen koppelen of gegevens te delen met een
ander besturingssysteem, dient &man.mkisofs.8; gebruikt te
worden, zoals boven beschreven is.MarcFonvieilleBijgedragen door Het ATAPI/CAM-stuurprogramma gebruikenCD-branderATAPI/CAM-stuurprogrammaDit stuurprogramma stelt ATAPI-apparaten (CD-ROM, CD-RW,
DVD-stations, enzovoort) in staat om vanuit het SCSI-subsysteem
benaderd te worden en maakt daarmee het gebruik van applicaties
zoals sysutils/cdrdao of
&man.cdrecord.1; mogelijk.Om dit stuurprogramma te gebruiken, is het noodzakelijk om
de volgende regel aan het /boot/loader.conf
bestand toe te voegen:atapicam_load="YES"om daarna de machine opnieuw op te starten.Als het noodzakelijk is om &man.atapicam.4; statisch toe
te voegen aan de kernel moet de volgende regel worden
toegevoegd aan het kernelinstellingenbestand:device atapicamOok zijn de volgende regels in het
kernelinstellingenbestand nodig, die meestal wel aanwezig
zijn:device ata
device scbus
device cd
device passHierna dient de nieuwe kernel opnieuw gebouwd en
geïnstalleerd te worden en dient de machine opnieuw
gestart te worden.Tijdens het opstartproces dient de brander
als volgt te verschijnen:acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CD-RW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedHet station is nu toegankelijk via de apparaatnaam
/dev/cd0. Om bijvoorbeeld een CD-ROM op
/mnt aan te koppelen:&prompt.root; mount -t cd9660 /dev/cd0 /mntAls root kan het volgende commando
gegeven worden om het SCSI-adres van de brander te
verkrijgen:&prompt.root; camcontrol devlist
<MATSHITA CD-RW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)Dus 1,0,0 is het SCSI-adres dat met
&man.cdrecord.1; en andere SCSI-toepassingen gebruikt dient te
worden.Meer informatie over het ATAPI/CAM en het SCSI-systeem
staat in de hulppagina's van &man.atapicam.4; en
&man.cam.4;.MarcFonvieilleBijgedragen door AndyPolyakovMet toevoegingen van Optische media (DVD's) aanmaken en gebruikenDVDbrandenInleidingVergeleken met de CD behoort de DVD de tot de volgende
generatie van optische media-opslagtechnologie. De DVD kan
meer gegevens bevatten dan enige CD en is tegenwoordig de
standaard voor videopublicatie.Er kunnen vijf fysieke opneembare formaten gedefinieerd
worden die opneembare DVD heten:DVD-R: dit was het eerst beschikbare opneembare
DVD-formaat. De DVD-R-standaard is gedefinieerd door het
DVD
Forum. Dit formaat is voor eenmalig
schrijven.DVD-RW: dit is de herschrijfbare versie van de
DVD-R-standaard. Een DVD-RW kan tot ongeveer 1.000 maal
herschreven worden.DVD-RAM: dit is ook een herschrijfbaar formaat dat
door het DVD Forum ondersteund wordt. Een DVD-RAM kan
gezien worden als een verwisselbare harde schijf. Dit
medium is echter niet uitwisselbaar met de meeste
DVD-ROM-stations en DVD-Video-spelers. Slechts enkele
DVD-schrijvers ondersteunen het DVD-RAM-formaat. Lees
voor meer informatie
over het gebruik van DVD-RAM.DVD+RW: dit is het herschrijfbare formaat dat is
gedefinieerd door de DVD+RW Alliance. Een
DVD+RW kan tot ongeveer 1.000 maal herschreven
worden.DVD+R: dit formaat is de eenmalig beschrijfbare versie
van het DVD+RW-formaat.Een enkellaags opneembare DVD kan maximaal
4.700.000.000 bytes bevatten, wat eigenlijk 4,38 GB
of 4.485 MB is (1 kB is 1024 bytes).Er dient onderscheid gemaakt te worden tussen het fysieke
medium en de toepassing. Een DVD-Video bijvoorbeeld is een
specifiek bestandsschema dat op elk fysiek opneembaar
DVD-medium geschreven kan worden: DVD-R, DVD+R, DVD-RW,
enzovoort. Voordat het mediumtype gekozen wordt, dient het
zeker te zijn dat zowel de brander als de DVD-Video-speler
(een onafhankelijke speler of een DVD-ROM-station in een
computer) overweg kunnen met het overwogen medium.InstellingenHet programma &man.growisofs.1; wordt gebruikt om DVD's op
te nemen. Dit commando is deel van de
dvd+rw-tools gereedschappen
(sysutils/dvd+rw-tools).
dvd+rw-tools ondersteunt alle types
DVD-media.Deze gereedschappen gebruiken het SCSI-subsysteem om
toegang tot de apparaten te krijgen, daarvoor moet ondersteuning voor ATAPI/CAM aan de
kernel toegevoegd worden. Indien de brander de USB-interface
gebruikt, is deze toevoeging nutteloos en dient gelezen te worden voor meer details over
het instellen van USB-apparaten.De DMA-toegang voor ATAPI-apparaten dient ook aangezet te
worden door de volgende regel aan het bestand
/boot/loader.conf toe te voegen:hw.ata.atapi_dma="1"Voordat de dvd+rw-tools gebruikt
kunnen worden, dienen de
dvd+rw-tools' hardware compatibility notes
geraadpleegd te worden voor enige informatie die betrekking
heeft op de DVD-brander.Indien een grafische gebruikersinterface gewenst is, is
K3b (sysutils/k3b), die een
gebruikersvriendelijke interface biedt voor &man.growisofs.1;
en vele andere brandprogramma's, het bekijken waard.Gegevens-DVD's brandenHet commando &man.growisofs.1; is een frontend voor mkisofs. Het roept &man.mkisofs.8;
aan om het bestandssysteemoverzicht aan te maken en het
schrijft naar de DVD. Hierdoor is het niet nodig om een beeld
van de gegevens aan te maken voordat met branden begonnen
wordt.Om de gegevens uit de map /pad/naar/gegevens op een DVD+R
of een DVD-R te branden:&prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /pad/naar/gegevensDe opties worden doorgegeven aan
&man.mkisofs.8; voor het aanmaken van het bestandssysteem (in
dit geval een ISO 9660-bestandssysteem met Joliet en Rock Ridge
uitbreidingen). Meer details staan in de hulppagina
&man.mkisofs.8;.De optie wordt gebruikt voor het
opnemen van de eerste sessie, ook bij meerdere sessies. Het
DVD-apparaat, /dev/cd0, dient aan de
hand van de instellingen aangepast te worden. De parameter
sluit de schijf zodat er niets aan
de opname toegevoegd kan worden. Dit zou als tegenprestatie
betere uitwisselbaarheid met DVD-ROM-stations moeten
geven.Het is ook mogelijk om een vooraf gemastered beeld te
branden, om bijvoorbeeld het beeld
beeldbestand.iso te branden:&prompt.root; growisofs -dvd-compat -Z /dev/cd0=beeldbestand.isoDe schrijfsnelheid moet automatisch gedetecteerd en
ingesteld worden, afhankelijk van het medium en het gebruikte
station. Om de schrijfsnelheid te forceren, dient de parameter
gebruikt te worden. Meer informatie
staat in de hulppagina &man.growisofs.1;.Om bestanden groter dan 4,38GB in de compilatie op te nemen dient
een UDF/ISO-9660 hybride bestandssysteem aangemaakt te worden door de
aanvullende parameter aan
&man.mkisofs.8; en alle gerelateerde programma's (i.e.,
&man.growisofs.1;) door te geven. Dit is alleen nodig als een ISO
beeldbestand wordt aangemaakt, of als bestanden direct naar een schijf
worden geschreven. Schijven die op deze manier zijn aangemaakt moeten
als een UDF-bestandssysteem worden aangekoppeld met het hulpmiddel
&man.mount.udf.8;, zodat het alleen bruikbaar is op een
besturingssysteem dat zich van UDF bewust is, anders zal het lijken of
er corrupte bestanden op staan.Om zo'n ISO-bestand aan te maken:&prompt.user; mkisofs -R -J -udf -iso-level 3 -o beeldbestand.iso/pad/naar/gegevensOm de bestanden direct naar een schijf te schrijven:&prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /pad/naar/gegevensWanneer u een ISO-beeld heeft dat al grote bestanden bevat, zijn
er geen extra opties nodig om met &man.growisofs.1; het beeld naar een
schijf te schrijven.Zorg er ook voor dat u een actuele versie van sysutils/cdrtools heeft (welke
&man.mkisofs.8; bevat), aangezien oudere versies geen ondersteuning
voor grote bestanden bieden. Als u problemen tegenkomt, gebruik dan
de ontwikkelversie, sysutils/cdrtools-devel en lees de
handleidingpagina &man.mkisofs.8;.DVD-Video brandenDVDDVD-VideoEen DVD-Video is een specifiek bestandsschema dat gebaseerd
is op de ISO 9660 en de micro-UDF (M-UDF) specificaties.
DVD-Video heeft ook een specifieke hiërarchie voor de
gegevensstructuur, de reden waarom een speciaal programma zoals
multimedia/dvdauthor nodig
is om de DVD te schrijven.Indien er reeds een beeld van het bestandssysteem van de
DVD-Video beschikbaar is, kan het zoals elk ander beeld gebrand
worden. In de vorige sectie staat een voorbeeld. Als het
resultaat voor de inhoud voor de DVD bijvoorbeeld in de map
/pad/naar/video staat,
kan de DVD-Video als volgt gebrand worden:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /pad/naar/videoDe optie wordt doorgegeven aan
&man.mkisofs.8; en geeft het opdracht om een
bestandssysteemschema voor een DVD-Video aan te maken. Verder
impliceert de optie de optie
van &man.growisofs.1;.DVD+RW gebruikenDVDDVD+RWIn tegenstelling tot een CD-RW dient een nieuwe DVD+RW voor
het eerste gebruik geformatteerd te worden. Het programma
&man.growisofs.1; regelt dit automatisch als nodig. Dit is de
aanbevolen manier. Het is ook mogelijk om
dvd+rw-format te gebruiken om een DVD+RW te
formatteren:&prompt.root; dvd+rw-format /dev/cd0Deze operatie hoeft slechts één maal
uitgevoerd te worden. Onthoud dat alleen nieuwe DVD+RW-media
geformatteerd dienen te worden. Daarna is het mogelijk om de
DVD+RW op dezelfde manier te branden zoals in bovenstaande
secties staat vermeldt.Om nieuwe gegevens op een DVD+RW te branden (een geheel
nieuw bestandssysteem branden, niet wat gegevens toevoegen), is
het niet nodig om deze te wissen. Het is voldoende om de
vorige opname te overschrijven (tijdens het aanmaken van een
initiële sessie), zoals hieronder:&prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/nieuwe gegevensHet DVD+RW-formaat biedt de mogelijkheid om eenvoudig
nieuwe gegevens aan een vorige opname toe te voegen. De
operatie bestaat uit het samenvoegen van een nieuwe sessie en
de bestaande. Het is geen multisessie-schrijven.
&man.growisofs.1; laat het ISO 9660-bestandssysteem dat
aanwezig is op het medium groeien.Om gegevens aan de vorige DVD+RW toe te voegen:&prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevensDezelfde opties van &man.mkisofs.8; die gebruikt werden om
de initiële sessie te branden, dienen gebruikt te worden
tijdens schrijfsessies.De optie kan gebruikt worden
als betere uitwisselbaarheid met DVD-ROM-stations gewenst is.
In het geval van een DVD+RW verhindert dit het toevoegen van
gegevens niet.Om het medium te wissen:&prompt.root; growisofs -Z /dev/cd0=/dev/zeroDVD-RW gebruikenDVDDVD-RWEen DVD-RW accepteert twee schijfformaten: de incrementele
sequentiële en beperkt overschrijven. Standaard zijn
DVD-RW-schijven in het sequentiële formaat.Een nieuwe DVD-RW kan direct beschreven worden zonder deze
te formatteren. Een gebruikte DVD-RW in sequentieel formaat
dient echter gewist te worden voordat het mogelijk is om een
nieuwe initiële sessie te schrijven.Om een DVD-RW in sequentiële toestand te wissen, dient
het volgende gedaan te worden:&prompt.root; dvd+rw-format -blank=full /dev/cd0Volledig wissen () neemt
ongeveer één uur in beslag op een 1x-medium.
Het is mogelijk om snel te wissen door gebruik te maken van
de optie als de DVD-RW in
Disk-At-Once-modus (DAO) wordt opgenomen. Om de DVD-RW in
DAO-modus te branden:&prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=beeldbestand.isoDe optie is niet
nodig aangezien &man.growisofs.1; probeert om minimale (snel
gewiste) media te detecteren en gebruik te maken van
DAO-schrijven.Eigenlijk moet beperkt overschrijven gebruikt worden met
elke DVD-RW. Dit formaat is flexibeler dan het standaard
incrementeel sequentiële.Om gegevens op een sequentiële DVD-RW te schrijven,
worden dezelfde instructies gebruikt als voor de andere
DVD-formaten:&prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/gegevensOm wat gegevens aan de vorige opname toe te voegen, dient
de optie van &man.growisofs.1; gebruikt te
worden. Als echter gegevens aan een DVD-RW in incrementeel
sequentiële modus worden toegevoegd, wordt een nieuwe
sessie op de schijf aangemaakt wat resulteert in een
multisessie schijf.Een DVD-RW in het beperkt overschrijven formaat hoeft niet
gewist te worden vóór een nieuwe initiële
sessie. Het is voldoende om de schijf te overschrijven met de
optie , wat analoog is aan het geval van de
DVD+RW. Het is ook mogelijk om een bestaand ISO
9660-bestandssysteem te laten groeien op soortgelijke wijze als
voor een DVD+RW met de optie . Het
resultaat is een enkelsessie DVD.Om een DVD-RW in het beperkt overschrijven-formaat te
zetten:&prompt.root; dvd+rw-format /dev/cd0Om terug te gaan naar het sequentiële formaat:&prompt.root; dvd+rw-format -blank=full /dev/cd0MultisessieMultisessie DVD's worden door zeer weinig DVD-ROM-stations
geaccepteerd en meestal lezen ze hopelijk tenminste de eerste
sessie. DVD+R, DVD-R en DVD-RW kunnen in het sequentiële
formaat meerdere sessies accepteren. Het idee van meerdere
sessies bestaat niet voor de formaten DVD+RW en DVD-RW in
beperkt overschrijven.Om een nieuwe sessie achter een initiële
(niet-gesloten) sessie op een DVD+R, DVD-R of DVD-RW in
sequentieel formaat toe te voegen:&prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevensHet gebruik van dit commando met een DVD+RW of een DVD-RW
in beperkt overschrijven-formaat voegt gegevens toe door de
nieuwe sessie samen te voegen met de bestaande. Dit leidt tot
een enkelsessie schijf. Deze manier kan gebruikt worden om
gegevens achter een initiële sessie aan deze media toe te
voegen.Op deze media wordt wat ruimte gebruikt tussen elke
sessie om het einde en begin van de sessies aan te geven.
Daarom dienen sessies met grote hoeveelheden gegevens
toegevoegd te worden om de mediaruimte te optimaliseren. Het
aantal sessies is beperkt tot 154 voor een DVD+R, ongeveer
2000 voor een DVD-R en 127 voor een dubbellaags DVD+R.Meer informatieOm meer informatie over een DVD te verkrijgen kan het
commando
dvd+rw-mediainfo /dev/cd0
met de schijf in het station gebruikt worden.Meer informatie over
dvd+rw-tools staat in de hulppagina
&man.growisofs.1;, op de dvd+rw-tools
website en in de archieven van de cdwrite mailing
list.De uitvoer van dvd+rw-mediainfo met
betrekking tot de resulterende opname of het medium met
problemen is verplicht voor elk probleemrapport. Zonder deze
uitvoer volgt geen hulp.DVD-RAM gebruikenDVDDVD-RAMConfiguratieDVD-RAM schrijvers komen met of een SCSI of een ATAPI
interface. DMA toegang voor ATAPI apparaten moet worden
ingeschakeld, wat gedaan kan worden door de volgende regel
toe te voegen aan
/boot/loader.conf:hw.ata.atapi_dma="1"Voorbereiden van het mediumZoals vermeld in de introductie van dit hoofdstuk kan
DVD-RAM gezien worden als een verwijderbare harde schijf.
Zoals elke andere harde schijf moet de DVD-RAM
voorbereid worden voor het eerste gebruik.
In het voorbeeld wordt alle beschikbare ruimte gebruikt voor
een standaard UFS2 bestandssysteem:&prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1
&prompt.root; bsdlabel -Bw acd0
&prompt.root; newfs /dev/acd0Het DVD apparaat, acd0 moet worden
gewijzigd naar gelang de configuratie.Het medium gebruikenZodra de voorgaande operaties uitgevoerd zijn op de DVD-RAM
kan het gekoppeld worden net als een normale harde schijf:&prompt.root; mount /dev/acd0/mntHierna zal de DVD-RAM zowel lees- als beschrijfbaar zijn.JulioMerinoOrigineel werk door MartinKarlssonHerschreven door Diskettes aanmaken en gebruikenSoms is het opslaan van gegevens op een diskette nuttig,
bijvoorbeeld als er geen andere verwijderbare opslagmedia
beschikbaar zijn of als kleine hoeveelheden gegevens naar een
andere computer moeten worden overgedragen.In deze sectie wordt beschreven hoe diskettes in &os;
gebruikt dienen te worden. Hier worden hoofdzakelijk het
formatteren en gebruik van 3,5 inch DOS-diskettes behandeld,
maar de concepten zijn vergelijkbaar voor andere
disketteformaten.Diskettes formatterenHet apparaatDiskettes worden benaderd door ingangen in
/dev net zoals andere apparaten. Om
een rauwe floppy te benaderen gebruikt u
/dev/fdN.FormatterenEen diskette dient op laag niveau geformatteerd te worden
voordat deze kan worden gebruikt. Dit wordt meestal door de
fabrikant gedaan, maar formatteren is een goede manier om de
integriteit van het medium te controleren. Hoewel het
mogelijk is om grotere (of kleinere) schijfgroottes te
forceren, zijn de meeste diskettes ontworpen voor
1440kB.Een diskette kan op laag niveau geformatteerd worden met
&man.fdformat.1;. Dit gereedschap verwacht de apparaatnaam
als parameter.Op basis van eventuele foutmeldingen kan bepaald worden
of een schijf goed of slecht is.Formatteren van floppiesVoor het formatteren van de diskette dienen de
apparaten
/dev/fdN
gebruikt te worden. Nadat een 3,5 inch diskette in
het station is gestoken:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0SchijflabelsNadat de diskette op laag niveau is geformatteerd, dient er
schijflabel aan gekoppeld te worden. Dit schijflabel wordt
later vernietigd, maar het systeem heeft het nodig om later de
grootte en de geometrie van de schijf te bepalen.Het nieuwe schijflabel neemt de gehele schijf over en bevat
alle benodigde informatie over de geometrie van de diskette.
De geometriewaarden van het schijflabel staan vermeld in
/etc/disktab.Nu kan &man.bsdlabel.8; als volgt gedraaid worden:&prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440BestandssystemenNu is de diskette klaar om op hoog niveau geformatteerd te
worden. Hiermee wordt een nieuw bestandssysteem opgezet, wat
&os; in staat stelt om naar de schijf te lezen en te schrijven.
Nadat het nieuwe bestandssysteem is aangemaakt, wordt het
schijflabel vernietigd, dus om de schijf te herformatteren is
het noodzakelijk om het schijflabel opnieuw aan te
maken.Het bestandssysteem voor diskettes kan zowel UFS als FAT
zijn. FAT is over het algemeen een betere keuze voor
diskettes.Om een nieuw bestandssysteem op de diskettes te
zetten:&prompt.root; /sbin/newfs_msdos /dev/fd0De schijf is nu klaar voor gebruik.Diskettes gebruikenOm de diskette te gebruiken kan &man.mount.msdosfs.8;
gebruikt worden om het medium aan te koppelen. Ook kan
emulators/mtools uit de
Portscollectie worden gebruikt.Gegevensbanden aanmaken en gebruikenbandmediaBandtechnologie is zich blijven ontwikkelen maar het is minder
waarschijnlijk dat het in moderne systemen wordt gebruikt. Moderne
back-upsystemen neigen om offsite gecombineerd met technologieën voor
plaatselijke verwisselbare schijfstations te gebruiken. &os; zal nog
steeds elk bandstation dat SCSI gebruikt zoals LTO en oudere apparaten
zoals DAT ondersteunen. Er is ook beperkte ondersteuning voor SATA- en
USB-bandstations.Seriële toegang met &man.sa.4;bandstations&os; gebruikt het stuurprogramma &man.sa.4;, dat
/dev/sa0,
/dev/nsa0 en
/dev/esa0 aanbiedt. Voor normaal gebruik is
alleen /dev/sa0 nodig.
/dev/nsa0 is fysiek hetzelfde apparaat als
/dev/sa0 maar spoelt de band niet terug nadat
een bestand is geschreven. Dit maakt het mogelijk om meer dan één
bestand naar een band te schrijven. /dev/esa0
werpt, indien van toepassing, de band uit nadat het apparaat is
gesloten.Het bandstation met &man.mt.1; beherenbandmediamt&man.mt.1; is het hulpmiddel van &os; om andere bewerkingen op het
bandstation uit te voeren, zoals bestanden op een band doorzoeken of
controlepunten naar de band schrijven.Als voorbeeld kunnen de eerste drie bestanden op een band bewaard
worden door ze over te slaan voordat een nieuw bestand wordt
geschreven:&prompt.root; mt -f /dev/nsa0 fsf 3&man.tar.1; gebruiken om back-ups op banden te
lezen en schrijven&man.tar.1; gebruiken om een enkel bestand naar band te
schrijven:&prompt.root; tar cvf /dev/sa0 bestandBestanden vanuit een &man.tar.1;-archief op band naar de huidige
map herstellen:&prompt.root; tar xvf /dev/sa0&man.dump.8; en &man.restore.8; gebruiken
om back-ups aan te maken en te herstellenEen eenvoudige back-up van /usr maken met &man.dump.8;:&prompt.root; dump -0aL -b64 -f /dev/nsa0 /usrInteractief bestanden van een &man.dump.8;-bestand vanaf band naar
de huidige map herstellen:&prompt.root; restore -i -f /dev/nsa0Andere bandsoftwareEr zijn programma's op hoger niveau beschikbaar om het back-uppen
naar banden eenvoudiger te maken. De populairste zijn
AMANDA en Bacula.
Deze programma's hebben als doel om back-uppen eenvoudiger en
aangenamer te maken, of om complexe back-ups van meerdere machines te
automatiseren. De Portscollectie bevat deze beide en andere
toepassingen om met banden te werken.Naar diskettes back-uppenKunnen diskettes gebruikt worden om gegevens te
back-uppen?back-updiskettesdiskettesDiskettes zijn niet bepaald een geschikt medium om
back-ups mee te maken, omdat:Het medium onbetrouwbaar is, in het bijzonder op de
langere termijn;Het back-uppen en terugzetten erg traag is;Diskettes een zeer beperkte capaciteit hebben. De
tijden dat een hele harde schijf naar een tiental diskettes
kon worden geback-upped zijn allang verstreken.Maar als er geen andere manier beschikbaar is om de
gegevens te back-uppen, is een back-up naar diskettes beter
dan helemaal geen back-up.Gebruikte diskettes moet van goede kwaliteit zijn.
Diskettes die al jaren op kantoor rondgeslingerd hebben, zijn
een slechte keuze. In het ideale geval dienen nieuwe diskettes
van een reputabele fabrikant gebruikt te worden.Hoe de gegevens naar diskettes back-uppen?Het beste kan naar diskettes worden geback-upped door
gebruik te maken van &man.tar.1; met de optie
(meerdere volumes), die back-ups over
meerdere diskettes ondersteunt.Om alle bestanden in de huidige map en de submappen te
back-uppen (als root):&prompt.root; tar Mcvf /dev/fd0 *Als de eerste diskette vol is, vraagt &man.tar.1; om het
volgende volume. Omdat &man.tar.1; media-onafhankelijk is,
refereert het aan volumes, in deze context diskettes.Prepare volume #2 for /dev/fd0 and hit return:Dit wordt herhaald (met oplopend volumenummer) totdat alle
gespecificeerde bestanden zijn geback-upped.Kunnen back-ups gecomprimeerd worden?targzipcompressieHelaas staat &man.tar.1; het gebruik van de optie
niet toe voor archieven over meerdere
volumes. Het is uiteraard mogelijk om alle bestanden met
&man.gzip.1; te comprimeren, ze met &man.tar.1; op diskettes te
zetten en ze daarna met &man.gunzip.1; weer te
decomprimeren!Hoe worden de back-ups teruggezet?Om een volledige archief terug te zetten:&prompt.root; tar Mxvf /dev/fd0Er zijn twee manieren om alleen specifieke bestanden terug
te zetten. Ten eerste kan met de eerste diskette begonnen
worden:&prompt.root; tar Mxvf /dev/fd0 bestandsnaamHet programma &man.tar.1; vraagt om de vervolgdiskettes
totdat het benodigde bestand is gevonden.Als alternatief kan, als bekend is op welke diskette het
bestand staat, de betreffende diskette worden ingestoken en
bovenstaand commando gebruikt worden. Als het eerste bestand
op de diskette een vervolg is van de vorige diskette,
waarschuwt &man.tar.1; dat het bestand niet teruggezet kan
worden, zelfs als hier niet om gevraagd is!LowellGilbertOorspronkelijk werk van Back-up strategieënHet eerste wat nodig is voor het ontwepken van een
back-upplan, is er voor te zorgen dat de volgende mogelijke
problemen worden ondervangen:SchijffalenPer ongeluk verwijderde bestandenWillekeurige bestandscorruptieComplete machinevernietiging (door bijvoorbeeld brand),
inclusief de vernietiging van lokaal beschikbare
back-ups.Het is goed mogelijk dat een aantal systemen het best
geholpen zijn door voor al deze problemen een andere techniek te
gebruiken. Behalve voor volledig persoonlijke systemen met
niet echt belangrijke gegevens, is het zelfs onwaarschijnlijk dat
één techniek alle mogelijke problemen kan
afvangen.Een aantal technieken in de gereedschapskist zijn:Archiveren van een heel systeem op een back-up die niet
lokaal wordt bewaard. Dit biedt bescherming tegen alle
hierboven beschreven problemen, maar het is langzaam en
onhandig om er een restore van te maken. Het is mogelijk om
lokaal een kopie aan te houden en/of online, maar dan zijn er
nog steeds onhandigheden, in het bijzonder voor restores voor
gebruikers met beperkte rechten.Snapshots van bestandssystemen. Dit werkt eigenlijk
alleen in het geval bestanden per ongelijk verwijderd worden,
maar het kan in dat geval erg handig
zijn en het werkt snel en eenvoudig.Een kopie maken van hele bestandssystemen en/of schijven
(bijvoorbeeld een periodieke &man.rsync.1; van een hele machine).
Dit is in het algemeen het meest bruikbaar in netwerken met
specifieke eisen. Voor algemene bescherming tegen het falen
van een schijf, is het meestal minder geschikt dan
RAID. Voor het herstellen van per ongeluk
verwijderde bestanden is het vergelijkbaar aan
UFS snapshots, maar dat hangt af van
persoonlijke voorkeuren.RAID. Minimaliseert of voorkomt
downtijd als een schijf faalt. Dit ten koste van het vaker
hebben van schijven die falen (omdat er meer van zijn), maar
wel met een veel lagere urgentie.Controleren van fingerprints van bestanden. Het
hulpprogramma &man.mtree.8; kan hier bij helpen. Hoewel dit
geen back-uptechniek is, zorgt het er wel voor dat kan worden
opgemerkt wanneer back-ups geraadpleegd moeten worden. Dit
is in het bijzonder belangrijk voor offline back-ups en de
fingerprints horen periodiek gecontroleerd te worden.Het is makkelijk om met nog meer technieken op de proppen te
komen, waaronder veel variaties op de bovengenoemde. Bijzondere
eisen leiden vaak tot bijzondere oplossingen. Het back-uppen van
een draaiende database vereist bijvoorbeeld een methode die
toegespitst is op de gebruikte database software als tussenstap.
Het is van groot belang om te onderkennen tegen welke gevaren er
bescherming dient te zijn en hoe daarmee om te gaan.Back-upbeginselenDe drie grote back-upprogramma's zijn &man.dump.8;,
&man.tar.1; en &man.cpio.1;.Dump en Restoreback-upsoftwaredump / restoredumprestoreDe traditionele back-upprogramma's voor &unix; zijn
dump en restore. Deze
zien het station als een verzameling van schijfblokken, onder
de abstracties van bestanden, koppelingen en mappen die door de
bestandssystemen worden aangemaakt. In tegenstelling tot andere
back-upprogramma's, verzorgt dump een
back-up van een compleet bestandssysteem op een apparaat. Het
is niet in staat om slechts een gedeelte van een bestandssysteem
of een mapstructuur die meer dan één
bestandssysteem in beslag neemt te back-uppen. Het commando
dump schrijft geen bestanden en
mappen naar band, maar de rauwe gegevensblokken waaruit de
bestanden en mappen bestaan. Wanneer het gebruikt wordt om
gegevens te extraheren, slaat restore
tijdelijke bestanden standaard op in /tmp/
— als u werkt vanaf een herstelschijf met een kleine map
/tmp, moet u wellicht de
omgevingsvariabele TMPDIR op een map met meer
vrije ruimte instellen zodat de restore kan slagen.Indien dump op een hoofdmap wordt
gebruikt, wordt er geen back-up gemaakt van /home
, /usr of van de vele andere
mappen, aangezien dit typisch koppelpunten voor andere
bestandssystemen of symbolische koppelingen binnen deze
bestandssystemen zijn.dump bevat eigenaardigheden die uit de
begintijd in Versie 6 van AT&T &unix; (circa 1975) zijn
overgebleven. De standaardparameters zijn geschikt voor banden
met 9 sporen (6.250 bpi), niet voor de media met hoge dichtheid
die vandaag beschikbaar zijn (tot 62.182 ftpi). Deze
standaardwaarden dienen op de opdrachtregel overschreven te
worden om de capaciteit van de huidige bandstations te
benutten..rhostsHet is ook mogelijk om gegevens met
rdump en rrestore over
een netwerk naar een bandstation dat aan een andere computer
gekoppeld is te back-uppen. Beide programma's maken gebruik
van &man.rcmd.3; en &man.ruserok.3; om toegang tot het
bandstation op afstand te krijgen. De gebruiker die de back-up
uitvoert moet vermeld staat in het bestand
.rhosts op de computer op afstand. De
argumenten die aan rdump en
rrestore gegeven worden dienen geschikt te
zijn voor gebruik op de computer op afstand. Als
rdump gebruikt wordt om een dump te maken
van een &os; computer naar een Exabyte-bandstation dat
met een Sun-computer genaamd komodo verbonden
is:&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1Let op: er kleven veiligheidsbezwaren aan het toestaan van
authenticatie met .rhosts. De situatie
dient goed geëvalueerd te worden.Het is ook mogelijk om dump en
restore op een veiligere manier via
ssh te gebruiken.Het gebruik van dump via
ssh&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
doelgebruiker@doelmachine.example.com dd of=/mijngrotebestanden/dump-usr-10.gzOok kan de ingebouwde manier van dump
gebruikt worden, door de omgevingsvariabele RSH
in te stellen:Het gebruik van dump via
ssh met ingestelde
RSH&prompt.root; env RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.example.com:/dev/sa0 /usrtarback-upsoftwaretar&man.tar.1; stamt ook uit de tijd van Versie 6 van AT&T
&unix; (circa 1975). Het werkt samen met het bestandssysteem.
tar schrijft bestanden en mappen naar band
en ondersteunt niet het volledige scala aan opties dat
beschikbaar is met &man.cpio.1;, maar tar
heeft niet de ongebruikelijke opdrachtpijplijn nodig die
cpio gebruikt.tarOm tar toe te passen op een Exabyte-bandstation
die met een Sun genaamd komodo verbonden
is:&prompt.root; tar cf - . | rsh komodo dd of=tape-device obs=20bIndien de veiligheid van back-uppen over een netwerk een
punt is, dient gebruik te worden gemaakt van het commando
ssh en niet van
rsh.cpioback-upsoftwarecpio&man.cpio.1; is het originele &unix; bandprogramma voor
magnetische media om bestanden uit te wisselen.
cpio heeft opties (naast vele anderen) om
byte-swapping uit te voeren, een aantal verschillende
archiefformaten te schrijven en de gegevens over een pijplijn
naar andere programma's te voeren. Deze laatste optie maakt
cpio een uitstekende keuze voor
installatiemedia. cpio weet niet hoe het
door een mapstructuur moet lopen. Er dient een lijst met
bestanden door stdin aangeleverd te
worden.cpiocpio biedt geen ondersteuning voor
back-ups over het netwerk. Er kan gebruik worden gemaakt van
een pijplijn en rsh om de gegevens naar een
banddrive op afstand te sturen.&prompt.root; for f in maplijst; dofind $f >> back-up.lijstdone
&prompt.root; cpio -v -o --format=newc < back-up.lijst | ssh gebruiker@host "cat > back-upapparaat"Hier is maplijst een lijst van
de mappen waarvan een back-up gemaakt dient te worden,
gebruiker@host
de gebruiker/hostnaam-combinatie die de back-ups uitvoert, en
back-upapparaat het apparaat waar de
back-ups naar toe geschreven te worden (bijvoorbeeld
/dev/nsa0).paxback-upsoftwarepaxpaxPOSIXIEEE&man.pax.1; is het antwoord van IEEE en &posix; op
tar en cpio. In de loop
der jaren zijn de verscheidene versies van
tar en cpio licht
incompatibel geworden. Dus in plaats van dit uit te vechten en
ze volledig te standaardiseren, heeft &posix; een nieuw
archiveringsprogramma gemaakt. pax poogt om
veel van de verscheidene formaten van cpio
en tar te lezen en te schrijven, met daarbij
nog nieuwe, eigen formaten. De commandoverzameling lijkt meer
op die van cpio dan op die van
tar.Amandaback-upsoftwareAmandaAmandaAmanda (Advanced Maryland
Network Disk Archiver) is een client/server-back-upsysteem, in
plaats van een enkel programma. Een
Amanda server back-upt elk aantal
computers dat een Amanda client en
een netwerkverbinding met de Amanda
server heeft naar een enkel bandstation. Een veelvoorkomend
probleem bij bedrijven met een groot aantal schijven is dat de
tijd die nodig is om de gegevens direct naar band te back-uppen
langer is dan de tijd die voor de taak gereserveerd is.
Amanda lost dit probleem op.
Amanda kan gebruik maken van een
tussenschijf om verschillende bestandssystemen
tegelijkertijd te back-uppen.
Amanda maakt
archiefverzamelingen aan, een groep banden die
gedurende een tijd gebruikt wordt om volledige back-ups te
maken van alle bestandssystemen die in het
instellingenbestand van Amanda
vermeld staan. De archiefverzameling bevat
ook incrementele (of differentiële) back-ups van alle
bestandssystemen. Voor het herstellen van een beschadigd
bestandssysteem zijn de meest recente volledige back-up en de
incrementele back-ups nodig.Het instellingenbestand biedt verfijnde controle over de
back-ups en het netwerkverkeer door
Amanda.
Amanda kan elk bovenstaand
back-upprogramma gebruiken om de gegevens naar de band te
schijven. Amanda is òf als
port òf als package beschikbaar.NietsdoenNietsdoen is geen computerprogramma, maar de
de meest gebruikte back-upstrategie. Er zijn geen
initiële kosten. Er is geen back-upschema om te volgen.
Zeg gewoon nee. Als er iets met gegevens gebeurt, lach erom en
leef ermee!Als tijd en gegevens weinig tot niets waard zijn, is
Nietsdoen het meest geschikte back-upprogramma.
Maar wees bedacht, &unix; is een nuttig stuk gereedschap en er
is zo maar binnen zes maanden een verzameling bestanden die
wèl van waarde is.Nietsdoen is de juiste back-upmethode voor
/usr/obj en andere mapstructuren die zo
opnieuw aangemaakt kunnen worden. Een voorbeeld zijn de
bestanden waaruit de HTML- of &postscript; versie van dit
Handboek bestaan. Deze documentformaten zijn vanuit
XML-invoerbestanden aangemaakt. Het back-uppen van de HTML-
of &postscript; bestanden is niet nodig. Van de XML-bestanden
dient regelmatig een back-up gemaakt te worden.Welk back-upprogramma is het beste?LISA&man.dump.8;. Punt uit.. Elizabeth
D. Zwicky heeft stresstesten op alle hierboven besproken
back-upprogramma's uitgevoerd. De heldere keuze voor het
behouden van alle gegevens en alle eigenaardigheden van &unix;
bestandssystemen is dump. Elizabeth heeft
bestandssystemen aangemaakt met een grote verscheidenheid aan
ongewone omstandigheden (en enkele minder ongebruikelijke) en
heeft elk programma getest door een back-up van die
bestandssystemen uit te voeren en ze te herstellen. De
eigenaardigheden omvatten bestanden met gaten, bestanden met
gaten en een blok nullen, bestanden met vreemde tekens in hun
namen, onleesbare en onschrijfbare bestanden, apparaten,
bestanden waarvan de grootte verandert tijdens het back-uppen,
bestanden die aangemaakt/verwijderd worden tijdens het
back-uppen en meer. Ze presenteerde de resultaten op LISA V in
oktober 1991. Zie torture-testing
Backup and Archive Programs.NoodterugzetprocedureVóór de rampEr zijn slechts vier stappen om te volgen bij het
voorbereiden op elke ramp die voor kan komen.bsdlabelHet schijflabel van elke schijf dient afgedrukt te worden
(bijvoorbeeld met bsdlabel da0 | lpr), de
bestandssysteemtabel (/etc/fstab) en
alle opstartboodschappen, alles in tweevoud.livefs CDTen tweede dient een livefs CD-ROM gebrandt te
worden. Deze CD-ROM biedt ondersteuning voor het opstarten in een
&os; livefs reddingsmodus die gebruiker in staat stelt
om vele taken uit te voeren zoals het draaien van &man.dump.8;,
&man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8; en
meer. Een livefs CD-beeld voor
&os;/&arch.i386; &rel2.current;-RELEASE is beschikbaar op .Livefs CD-beelden zijn niet beschikbaar voor
&os; &rel.current;-RELEASE en nieuwer. Naast de beelden voor
CDROM-installaties kunnen ook beelden voor flash-drive-installaties
gebruikt worden om een systeem te redden. Het
memstick-beelden voor
&os;/&arch.i386; &rel.current;-RELEASE is beschikbaar op .Ten derde dienen regelmatig back-upbanden aangemaakt te
worden. Alle veranderingen die na de laatste back-up zijn
gemaakt kunnen onherroepelijk verloren zijn gegaan. De
back-upbanden dienen beveiligd te worden tegen
overschrijven.Ten vierde dienen de livefs CD-ROM die in stap twee
gemaakt is en de back-upbanden getest te worden. Van de handelingen
dienen aantekeningen gemaakt te worden. De aantekeningen, de
CD-ROM, de afdrukken en de back-upbanden dienen
gezamenlijk bewaard te worden. Tijdens het herstellen kunnen
de notities ervoor zorgen dat de back-upbanden vernietigd
worden. Hoe? In plaats van tar xvf
/dev/sa0 kan per ongeluk tar cvf
/dev/sa0 worden ingetypt, waardoor de back-upband
overschreven wordt.Als extra veiligheidsmaatregel dienen telkens een
livefs CD-ROM en twee back-upbanden gemaakt te worden.
Eén van deze banden dient op een plaats op afstand
bewaard te worden. Zo'n plaats is NIET de kelder van het
zelfde kantoorgebouw. Een aantal bedrijven in het World
Trade Center heeft deze les op de harde manier geleerd. Zo'n
plaats dient fysiek gescheiden te zijn van de computers en de
schijven door een significante afstand.Na de rampDe hamvraag is: heeft de hardware het overleefd? Er zijn
regelmatig back-ups gemaakt, dus zorgen over de software
zijn niet nodig.Indien hardware beschadigd is, dienen kapotte onderdelen
vervangen te worden voordat gepoogd wordt om een computer te
gebruiken.Plaats de livefs CD-ROM in de CD-ROM drive indien
de hardware in orde is en start de computer op. Het originele
installatiemenu wordt op het scherm getoond. Kies het land van
toepassing en kies daarna Fixit -- Repair mode with
CDROM/DVD/floppy en kies het item
CDROM/DVD -- Use the live filesystem
CDROM/DVD. restore en de andere
benodigde programma's staan in /mnt2/rescue.Herstel elk bestandssysteem apart.mountrootpartitiebsdlabelnewfsProbeer de rootpartitie van de eerste schijf aan te
koppelen (bijvoorbeeld mount /dev/da0a
/mnt). Als het schijflabel beschadigd is, gebruik
dan bsdlabel om de schijf opnieuw te
partitioneren en te labelen zodat deze overeenkomt met het
afgedrukte en bewaarde label. Gebruik voor het opnieuw
aanmaken van de bestandssystemen newfs.
Koppel de rootpartitie van de schijf opnieuw aan voor lezen
en schrijven (mount -u -o rw /mnt).
Gebruik voor het herstellen van de gegevens van dit
bestandssysteem het back-upprogramma en de back-upbanden
(bijvoorbeeld restore vrf /dev/sa0).
Koppel nu het bestandssysteem af (bijvoorbeeld
umount /mnt). Herhaal dit voor elk
beschadigd bestandssysteem.Back-up de gegevens naar nieuwe banden als het systeem
weer draait. De omstandigheden die verantwoordelijk waren
voor de crash of het gegevensverlies kunnen weer voorkomen.
Nu een extra uur investeren, kan later grote zorgen
besparen.MarcFonvieilleGeherstructureerd en verbeterd door Netwerk-, geheugen-, en bestandsgebaseerde
bestandssystemenvirtuele schijvenschijvenvirtueelNaast de schijven die fysiek in de computer zitten,
diskettes, CD's, harde schijven, enzovoort, worden er ook andere
vormen van schijven door &os; begrepen: de virtuele
schijven.NFSCodaschijvengeheugenDit omvat netwerkbestandssystemen zoals het Network File System en Coda,
geheugengebaseerde bestandssystemen en bestandsgebaseerde
bestandssystemen.Nagelang de gebruikte versie van &os;, zijn er andere
gereedschappen voor het aanmaken en gebruiken van
bestandsgebaseerde en geheugengebaseerde bestandssystemen.Gebruik &man.devfs.8; om de apparaatnodes transparant voor
de gebruiker toe te wijzen.Bestandsgebaseerd bestandssysteemschijvenbestandsgebaseerdMet &man.mdconfig.8; kunnen geheugenschijven, &man.md.4;,
ingesteld worden en aangezet worden. Om
&man.mdconfig.8; te gebruiken, moet de module &man.md.4;
geladen worden of ondersteuning aan het
kernelinstellingenbestand toegevoegd worden:device mdHet commando &man.mdconfig.8; ondersteunt drie types
geheugen-gebaseerde virtuele schijven: geheugenschijven die met
&man.malloc.9; toegewezen zijn, geheugenschijven die een
bestand als basis gebruiken en geheugenschijven die swapruimte
als basis gebruiken. Een mogelijk gebruik is het aankoppelen
van een beeld van een diskette of CD dat in een bestand bewaard
wordt.Om een bestaand beeld van een bestandssysteem aan te
koppelen:mdconfig gebruiken om een bestaand
beeld van een bestandssysteem aan te koppelen&prompt.root; mdconfig -a -t vnode -f schijfbeeld -u 0
&prompt.root; mount /dev/md0/mntOm een nieuw beeld van een bestandssysteem aan te maken met
&man.mdconfig.8;:Nieuwe bestandsgebaseerde schijf aanmaken met
mdconfig&prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f nieuwbeeld -u 0
&prompt.root; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0a: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mntIndien het eenheidsnummer niet met de optie
gespecificeerd wordt, gebruikt
&man.mdconfig.8; de automatische toewijzing van &man.md.4; om
een ongebruikt apparaat te selecteren. De naam van het
toegewezen apparaat wordt op stdout weergegeven als
md4. Meer details staan in de
hulppagina van &man.mdconfig.8;.Het commando &man.mdconfig.8; is erg nuttig, hoewel het
veel opdrachten vergt om een bestandsgebaseerd bestandssysteem
aan te maken. &os; wordt met &man.mdmfs.8; geleverd. Dit
programma stelt een &man.md.4;-schijf in door gebruik te maken
van &man.mdconfig.8;, zet er een bestandssysteem op door gebruik
te maken van &man.newfs.8; en koppel het aan door gebruik te
maken van &man.mount.8;. Om hetzelfde bestandssysteembeeld als
hierboven aan te maken en aan te koppelen:Instellen en aankoppelen van een bestandsgebaseerde
schijf met mdmfs&prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F nieuwbeeld -s 5m md0/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4718 4 4338 0% /mntAls de optie zonder eenheidsnummer
gebruikt wordt, gebruikt &man.mdmfs.8; de automatische
toewijzing van &man.md.4; om automatisch een ongebruikt
apparaat te selecteren. Meer details staan in de hulppagina
van &man.mdmfs.8;.Geheugengebaseerd bestandssysteemschijvengeheugenbestandssysteemVoor een geheugen gebaseerd bestands systeem moet normaal
gesproken wisselbestand geheugen gebruikt worden.
Gebruik maken van wisselbestand geheugen wil niet perse zeggen
dat de geheugen schijf direct in het wisselbestand gezet wordt,
maar dat het bestand naar het wisselbestand geschreven kan worden
indien nodig. Het is ook mogelijk om &man.malloc.9; gebaseerde
geheugen schijven te maken, maar door hiervan gebruik te maken
kan het gebeuren dat het systeem crashed als de kernel uit het
geheugen loopt.Nieuwe geheugengebaseerde schijf aanmaken met
mdconfig&prompt.root; mdconfig -a -t swap -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mntNieuwe geheugengebaseerde schijf aanmaken met
mdmfs&prompt.root; mdmfs -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntGeheugenschijf van het systeem afkoppelenschijvengeheugenschijf afkoppelenAls een geheugen- of bestandsgebaseerd bestandssysteem
niet gebruikt wordt, dienen alle bronnen aan het systeem
vrijgegeven te worden. Koppel als eerste het bestandssysteem
af, gebruikt daarna &man.mdconfig.8; om de schijf van een
systeem los te koppelen en de bronnen vrij te geven.Om bijvoorbeeld alle bronnen die door
/dev/md4 gebruikt worden los te koppelen
en vrij te geven:&prompt.root; mdconfig -d -u 4
Het is mogelijk om de informatie over ingestelde &man.md.4;
apparaten weer te geven door gebruik te maken van
mdconfig -l.TomRhodesBijgedragen door Snapshots van bestandssystemenbestandssystemensnapshots&os; biedt een mogelijkheid om samen met Soft Updates: snapshots van
bestandssystemen.Snapshots bieden de mogelijkheid om beelden van een
gespecificeerd bestandssysteem te maken en ze als bestand te
behandelen. Snapshotbestanden moeten aangemaakt worden in het
bestandssysteem waarop de handeling wordt uitgevoerd en er mogen
niet meer dan 20 snapshots per bestandssysteem worden aangemaakt.
Actieve snapshots worden opgeslagen in het superblok zodat ze
persistent zijn met afkoppel- en heraankoppelbewerkingen en met
het opnieuw opstarten van het systeem. Als een snapshot niet
langer nodig is, kan het met het standaardcommando &man.rm.1;
worden verwijderd. Snapshots kunnen in elke volgorde verwijderd
worden, alhoewel misschien niet alle gebruikte ruimte
teruggewonnen wordt omdat sommige vrijgegeven blokken mogelijk
door een ander snapshot geclaimd worden.De onveranderlijke bestandsvlag
wordt door &man.mksnap.ffs.8; ingesteld nadat het snapshotbestand
initieel is aangemaakt. Het commando &man.unlink.1; maakt een
uitzondering voor snapshotbestanden aangezien het toestaat dat ze
verwijderd worden.Snapshotbestanden worden aangemaakt met &man.mount.8;. Om
een snapshot van /var in het bestand
/var/snapshot/snap te plaatsen:&prompt.root; mount -o -o snapshot /var/snapshot/snap /varAls alternatief kan &man.mksnap.ffs.8; gebruikt worden om een
snapshot aan te maken:&prompt.root; mksnap_ffs /var /var/snapshot/snapSnapshotbestanden kunnen gezocht worden op een
bestandssysteem (bijvoorbeeld /var) door
gebruik te maken van het commando &man.find.1;:&prompt.root; find /var -flags snapshotNadat een snapshot is aangemaakt, kan het voor een aantal
dingen gebruikt worden:Sommige systeembeheerders gebruiken een snapshotbestand
voor back-updoeleinden, omdat het snapshot naar CD's of band
overgezet kan worden;De bestandssysteem integriteit controle, &man.fsck.8;
kan gebruikt worden op het snapshot. Ervan uitgaande dat het
bestandssysteem schoon was toen het werd aangekoppeld, zou dit
altijd een schoon (en onveranderlijk) resultaat moeten
opleveren. Dit is in principe wat het
&man.fsck.8;-achtergrondsproces doet;Het commando &man.dump.8; draaien op het snapshot. Er
wordt een dump teruggegeven die consistent is met het
bestandssysteem en tijdsstempel van het snapshot.
&man.dump.8; kan ook in één commando een
snapshot maken, een dumpbeeld aanmaken en daarna het snapshot
verwijderen door gebruik te maken van de vlag
;Het snapshot kan met &man.mount.8; als bevroren beeld van
het bestandssysteem worden aangekoppeld. Om het snapshot
/var/snapshot/snap aan te koppelen:&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
&prompt.root; mount -r /dev/md4 /mntHet is nu mogelijk om door de structuur van het bevroren
bestandssysteem /var te lopen dat
aangekoppeld is op /mnt. Alles zal initieel
in dezelfde toestand verkeren als op het moment dat het snapshot
werd aangemaakt. De enige uitzondering hierop is dat eerdere
snapshots als bestanden met lengte nul verschijnen. Als een
snapshot niet meer nodig is, kan het als volgt afgekoppeld
worden:&prompt.root; umount /mnt
&prompt.root; mdconfig -d -u 4Meer informatie over en
snapshots van bestandssystemen, inclusief technische documenten,
staat op de website van Marshall Kirk McKusick op .BestandssysteemquotaaccountenschijfruimteschijfquotaQuota zijn een optionele mogelijkheid van het
besturingssysteem om de hoeveelheid schijfruimte en/of het aantal
bestanden dat gebruikers of leden van een groep per
bestandssysteem mogen gebruiken te beperken. Dit wordt het
meeste gebruikt op timesharing-systemen waar het wenselijk is om
het aantal bronnen dat elke gebruiker of groep van gebruikers mag
gebruiken te beperken. Dit voorkomt dat één
gebruiker of groep van gebruikers alle beschikbare schijfruimte
in beslag neemt.Schijfquota inschakelenControleer alvorens te proberen om schijfquota te
gebruiken of quota ingesteld zijn in de kernel. Dit gebeurt
door het toevoegen van de volgende regel aan het
kernelinstellingenbestand:options QUOTADe standaardkernel GENERIC heeft deze
optie niet aanstaan, dus is het nodig om een eigen kernel in te
stellen, te bouwen en te installeren om gebruik te kunnen maken
van schijfquota. Meer informatie over het instellen van de
kernel staat in .Vervolgens dienen schijfquota aangezet te worden in
/etc/rc.conf. Op &os; 7.X en eerder wordt
deze regel toegevoegd:enable_quotas="YES"Voeg op &os; 8.0-RELEASE en nieuwer in plaats daarvan deze
regel toe:quota_enable="YES"schijfquotacontrolerenVoor fijnere controle over de opstartquota zijn extra
instellingsvariabelen beschikbaar. Normaalgesproken wordt de
integriteit van de quota van elk bestandssysteem tijdens het
opstarten door &man.quotacheck.8; gecontroleerd.
&man.quotacheck.8; verzekert dat de gegevens in de
quotadatabase een juiste afspiegeling vormen van de gegevens op
het bestandssysteem. Dit proces neemt erg veel tijd in beslag
en beïnvloedt de tijd die een systeem nodig heeft om op te
starten significant. Om deze stap over te slaan, bestaat een
variabele in /etc/rc.conf:check_quotas="NO"Als laatste dient /etc/fstab bewerkt
te worden om schijfquota per bestandssysteem aan te zetten.
Hier kunnen gebruiker- of groepquota of beide worden aangezet
voor alle bestandssystemen.Om quota per gebruiker op een bestandssysteem aan te
zetten, dient de optie aan het
optieveld toegevoegd te worden aan de regel in
/etc/fstab voor het bestandssysteem waar
quota worden aangezet. Bijvoorbeeld:/dev/da1s2g /home ufs rw,userquota 1 2Analoog, om groepquota aan te zetten, dient de optie
in plaats van
gebruikt te worden. Om zowel
gebruikers- als groepsquota aan te zetten, dient de regel als
volgt veranderd te worden:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Standaard worden de quotabestanden opgeslagen in de
hoofdmap van het bestandssysteem onder de namen
quota.user en
quota.group voor respectievelijk
gebruikers- en groepsquota. Meer informatie staat in
&man.fstab.5;. Alhoewel de hulppagina &man.fstab.5; vermeld
dat een alternatieve plaats voor de quotabestanden
gespecificeerd kan worden, wordt dit niet aangeraden omdat de
verschillende quotagereedschappen dit niet juist schijnen af te
handelen.Hier aangekomen dient het systeem opnieuw opgestart te
worden met de nieuwe kernel. /etc/rc
voert automatisch de juiste commando's uit om de initiële
quotabestanden aan te maken voor alle quota die in
/etc/fstab zijn aangezet. Het is dus niet
nodig om handmatig quotabestanden met lengte nul aan te
maken.Tijdens normale bewerkingen moet het niet nodig zijn om de
commando's &man.quotacheck.8;, &man.quotaon.8; of
&man.quotaoff.8; handmatig te draaien. Lees wel de betreffende
hulppagina's om bekend te raken met de werking ervan.Quotalimieten instellenschijfquotalimietenIndien het systeem ingesteld voor gebruik van quota,
controleer dan of ze echt aanstaan. Een eenvoudige
manier om dit te doen is de volgende:&prompt.root; quota -vEr hoort een eenregelige samenvatting te verschijnen over
het schijfgebruik en de huidige quotalimieten voor elk
bestandssysteem waarop quota aanstaan.Nu kunnen quotalimieten toegewezen worden met
&man.edquota.8;.Er zijn verschillende opties om grenzen te stellen aan de
hoeveelheid schijfruimte die een gebruiker of groep mag
toewijzen en het aantal bestanden dat ze mogen aanmaken.
Toewijzingen kunnen begrensd worden met betrekking tot
schijfruimte (blokquota) of het aantal bestanden (inode-quota)
of een combinatie van beide. Elk van deze limieten is op zijn
beurt weer opgesplitst in twee categoriën: harde en zachte
limieten.harde limietEen harde limiet mag niet overschreden worden. Indien een
gebruiker de harde limiet bereikt, mag deze geen verdere
toewijzingen maken op het betreffende bestandssysteem. Indien
een gebruiker bijvoorbeeld een harde limiet heeft van 500 kB
op een bestandssysteem en er 490 kB van gebruikt, kan deze
nog slechts 10 kB toewijzen. Een poging om 11 kB toe
te wijzen zal mislukken.zachte limietZachte limieten kunnen voor een beperkte tijd overschreden
worden. Deze periode staat bekend als de gratieperiode, die
standaard een week bedraagt. Als een gebruiker de zachte
limiet langer dan de gratieperiode overschrijdt, verandert de
zachte limiet in een harde limiet en zijn er geen verdere
toewijzingen toegestaan. Als de gebruiker onder de zachte
limiet komt, wordt de gratieperiode opnieuw ingesteld.Het volgende is een voorbeeld van een mogelijk gebruik van
&man.edquota.8;. Als het commando &man.edquota.8; gestart
wordt, wordt de tekstverwerker opgestart die door de
omgevingsvariabele EDITOR gespecificeerd is, of
de tekstverwerker vi als de
variabele EDITOR niet is ingesteld. Nu kunnen
de quotalimieten bewerkt worden.&prompt.root; edquota -u testQuotas for user test:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Normaalgesproken worden er twee regels weergegeven voor elk
bestandssysteem waarvoor quota gelden: één regel
voor de bloklimieten, en één voor de
inode-limieten. Om de quotalimieten te veranderen dient de
waarde ervan veranderd te worden. Om bijvoorbeeld de
bloklimiet van een gebruiker te veranderen van een zachte
limiet van 50 en een harde limiet van 75 in een zachte limiet
van 500 en een harde limiet van 600, dient het volgende
veranderd te worden:/usr: kbytes in use: 65, limits (soft = 50, hard = 75)In:/usr: kbytes in use: 65, limits (soft = 500, hard = 600)De nieuwe quotalimieten gelden zodra de tekstverwerker
verlaten wordt.Soms is het gewenst om quotalimieten in te stellen op een
aantal UID's. Dit kan gedaan worden door de optie
van &man.edquota.8; te gebruiken. Wijs
eerst de gewenste quotalimiet aan een gebruiker toe en draai
daarna edquota -p protogebruiker
beginuid-einduid. Indien bijvoorbeeld gebruiker
test de gewenste quotalimieten heeft, kan
het volgende commando gebruikt worden om deze quotalimieten te
dupliceren voor UID's 10.000 tot en met 19.999:&prompt.root; edquota -p test 10000-19999Meer informatie staat in de hulppagina voor
&man.edquota.8;.Quotalimieten en schijfgebruik controlerenschijfquotacontrolerenZowel &man.quota.1; als &man.repquota.8; kunnen gebruikt
worden om de quotalimieten en het schijfgebruik te controleren.
Het commando &man.quota.1; kan gebruikt worden om de quota van
zowel individuele gebruikers als groepen en het schijfgebruik
te controleren. Een gebruiker mag alleen de eigen quota en de
quota van een groep waarvan deze lid is controleren. Alleen de
beheerder mag alle gebruikers- en groepsquota bekijken. Het
commando &man.repquota.8; kan gebruikt worden om een overzicht
te krijgen van alle quota en gebruik van bestandssystemen
waarvan quota aanstaan.Het volgende is een mogelijke uitvoer van het commando
quota -v voor een gebruiker die
quotalimieten heeft op twee bestandssystemen.Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60gratieperiodeVoor het bestandssysteem /usr in
bovenstaand voorbeeld overschrijdt deze gebruiker de zachte
limiet van 50 kB momenteel met 15 kB en heeft deze 5
dagen van de gratieperiode over. De asterisk,
* geeft aan dat de gebruiker momenteel de
quotalimiet overschrijdt.Normaalgesproken worden bestandssystemen waarvan de
gebruiker geen schijfruimte gebruikt niet weergegeven in de
uitvoer van &man.quota.1;, zelfs niet als er de gebruiker een
quotalimiet heeft voor dat bestandssysteem. De optie
geeft deze bestandssystemen weer, zoals het
bestandssysteem /usr/var in bovenstaand
voorbeeld.Quota over NFSNFSQuota worden afgedwongen door het quota-subsysteem op de
NFS-server. De daemon &man.rpc.rquotad.8; stelt
quota-informatie beschikbaar aan het commando &man.quota.1; op
de NFS-cliënts, wat de gebruikers op deze machines in
staat stelt hun quota-statistieken in te zien.rpc.rquotad dient als volgt in
/etc/inetd.conf aangezet te worden:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadVervolgens dient inetd opnieuw gestart
te worden:&prompt.root; service inetd restartLuckyGreenBijgedragen door shamrock@cypherpunks.toSchijfpartities versleutelenschijvenversleutelen&os; biedt uitstekende on-line bescherming tegen onbevoegde
gegevenstoegang. Bestandsrechten en Mandatory Access Control
(MAC) (zie ) helpen voorkomen dat onbevoegde
derde partijen toegang tot de gegevens krijgen als het
besturingssysteem actief is en de computer aanstaat. De door het
besturingssysteem afgedwongen rechten zijn echter niet relevant
als een aanvaller fysieke toegang tot een computer heeft en deze
de harde schijf van de computer in een ander systeem kan plaatsen
om de gevoelige gegevens te kopiëren en te
analyseren.Afgezien van hoe een aanvaller in het bezit van een harde
schijf of een uitgezette computer gekomen is, kan
GEOM Based Disk Encryption (gbde) de
gegevens op het bestandssysteem van de computer zelfs tegen
hooggemotiveerde aanvallers met aanzienlijke middelen beschermen.
In tegenstelling tot lastige versleutelmethoden die alleen losse
bestanden versleutelen, versleutelt
gbde gehele bestandssystemen op een
transparante manier. De harde schijf komt nooit in aanraking met
klare tekst.Los van hoe een aanvaller in het bezit van een harde schijf
of een uitgezette computer gekomen is, kunnen de cryptografische
subsystemen GEOM Based Disk Encryption
(gbde) en geli in &os;
gegevens op bestandssystemen van een computer beschermen tegen
zelfs de meer gemotiveerde belagers die ook nog eens adequate
middelen hebben. Anders dan met lastige versleutelingsmethoden
die alleen individuele bestanden versleutelen, versleutelen
gbde en geli transparant
complete bestandssystemen. Er komt nooit platte tekst op een
harde schijf.Schijven versleutelen met
gbdeWord rootHet instellen van gbde
vereist beheerdersrechten.&prompt.user; su -
Password:Voeg ondersteuning voor &man.gbde.4; aan het
kernelinstellingenbestand toeVoeg de volgende regel toe aan het
kernelinstellingenbestand:options GEOM_BDEHerbouw de kernel opnieuw zoals beschreven in .Start op met de nieuwe kernel.Een alternatief voor het hercompileren van de kernel
is door gebruik te maken van &man.kldload.8; om
&man.gbde.4; te laden:&prompt.root; kldload geom_bdeVersleutelde harde schijf voorbereidenIn het volgende voorbeeld wordt aangenomen dat er een
nieuwe harde schijf aan het systeem wordt toegevoegd die een
enkele versleutelde partitie zal bevatten. Deze partitie
wordt aangekoppeld als /private.
gbde kan ook gebruikt worden om
/home en /var/mail
te versleutelen, maar daarvoor zijn complexere instructies
nodig die buiten het bereik van deze inleiding vallen.Voeg een nieuwe harde schijf toeVoeg de nieuwe harde schijf toe zoals beschreven in
. In dit voorbeeld is een
nieuwe harde schijfpartitie toegevoegd als
/dev/ad4s1c. De apparaten
/dev/ad0s1*
stellen bestaande standaard &os; partities van het
voorbeeldsysteem voor.&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4Maak een map aan voor gbde lockbestanden&prompt.root; mkdir /etc/gbdeHet lockbestand voor gbde
bevat informatie die gbde
nodig heeft om toegang te krijgen tot versleutelde
partities. Zonder toegang tot de lockbestand is
gbde niet in staat om de
gegevens die op de versleutelde partitie staan te
ontsleutelen zonder aanzienlijke handmatige tussenkomst die
niet door de software ondersteund wordt. Elke versleutelde
partitie gebruikt een ander lockbestand.Initialiseer de gbde-partitieEen gbde-partitie dient
geïnitialiseerd te worden voordat deze kan worden
gebruikt. Deze initialisatie dient slechts eenmalig
uitgevoerd te worden:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock&man.gbde.8; opent een tekstverwerker om verschillende
instellingen in een sjabloon te kunnen instellen. Stel de
sector_size in op 2048 als UFS of UFS2 wordt
gebruikt:# $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]&man.gbde.8; vraagt twee keer om de wachtwoordzin
voor het beveiligen van de gegevens. De wachtwoordzin
dient beide keren hetzelfde te zijn. De mogelijkheid van
gbde om de gegevens te
beveiligen is geheel afhankelijk de gekozen
wachtwoordzin.
Tips met betrekking tot het kiezen van veilige
wachtwoordzinnen die gemakkelijk te onthouden zijn
staan op de website
Diceware Passphrase.Het commando gbde init maakt een
lockbestand aan voor de
gbde-partitie die in dit
voorbeeld is opgeslagen als
/etc/gbde/ad4s1c.lock.
gdbde slotbestanden moeten
eindigen op .lock om correct door het
opstartscript /etc/rc.d/gbde
gedetecteerd te worden.gbde lockbestanden
moeten samen met de inhoud van
versleutelde partities geback-upped worden. Hoewel het
verwijderen van een lockbestand op zich een gedreven
aanvaller er niet van weerhoudt een
gbde partitie te
ontsleutelen, is de wettige eigenaar zonder het
lockbestand niet in staat om de gegevens op de
versleutelde partitie te benaderen zonder een
aanzienlijke hoeveelheid werk die in het geheel niet
ondersteund wordt door &man.gbde.8; of de ontwerper
ervan.Koppel de versleutelde partitie aan de kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lockEr wordt om de wachtwoordzin gevraagd die gekozen is
tijdens de initialisatie van de versleutelde partitie. Het
nieuwe versleutelde apparaat verschijnt in
/dev als
/dev/apparaatnaam.bde:&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeMaak een bestandssysteem op het versleutelde
apparaatNu het versleutelde apparaat aan de kernel gekoppeld
is, kan een bestandssysteem op het apparaat aangemaakt
worden. Met &man.newfs.8; kan een bestandssysteem op het
versleutelde apparaat aangemaakt wordne. Aangezien het
veel sneller is om een nieuw UFS2 bestandssysteem te
initialiseren dan om een oud UFS1 bestandssysteem te
initialiseren, is het aan te raden om &man.newfs.8; met de
optie te gebruiken.&prompt.root; newfs -U -O2 /dev/ad4s1c.bdeVoer &man.newfs.8; uit op een aangekoppelde
gbde-partitie die
geïndificeerd wordt door de uitbreiding
*.bde op
de apparaatnaam.Mount de versleutelde partitieMaak een koppelpunt voor het versleutelde
bestandssysteem aan:&prompt.root; mkdir /privateMount het versleutelde bestandssysteem:&prompt.root; mount /dev/ad4s1c.bde /privateControleer of het versleutelde bestandssysteem
beschikbaar isHet versleutelde bestandssysteem is nu zichtbaar
met &man.df.1; en gebruiksklaar:&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateBestaande versleutelde bestandssystemen aankoppelenElke keer nadat het systeem is opgestart dient elk
versleuteld bestandssysteem opnieuw aan de kernel gekoppeld
te worden, op fouten gecontroleerd te worden, en aangekoppeld
te worden voordat de bestandssystemen gebruikt kunnen worden.
De benodigde commando's dienen als de gebruiker
root uitgevoerd te worden.Koppel de gbde-partitie aan de kernel&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lockEr wordt om de wachtwoordzin gevraagd die gekozen is
tijdens de initialisatie van de versleutelde
gbde-partitie.Controleer het bestandssysteem op foutenAangezien het nog niet mogelijk is om versleutelde
bestandssystemen op te nemen in
/etc/fstab voor automatische controle,
dienen de bestandssystemen voordat ze aangekoppeld worden
handmatig op fouten gecontroleerd te worden door
&man.fsck.8; uit te voeren:&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeMount het versleutelde bestandssysteem&prompt.root; mount /dev/ad4s1c.bde /privateHet versleutelde bestandssysteem is nu klaar voor
gebruik.Versleutelde partities automatisch aankoppelenHet is mogelijk om een script aan te maken om
automatisch een versleutelde partitie aan te koppelen, op
fouten te controleren en aan te koppelen, maar vanwege
veiligheidsredenen dient het script niet het wachtwoord
voor &man.gbde.8; te bevatten. In plaats hiervan wordt het
aangeraden om zulke scripts handmatig uit te voeren en het
wachtwoord via de console of &man.ssh.1; te geven.Als alternatief, wordt er een rc.d
script bijgeleverd. De argumenten kunnen via &man.rc.conf.5;
doorgegeven worden. Bijvoorbeeld:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"
gbde_lockdir="/etc/gbde"Hierdoor is het noodzakelijk dat de wachtwoordzin voor
gbde bij het starten wordt
ingegeven. Na het invoeren van de juiste wachtwoordzin
wordt de met gbde versleutelde
partitie automatisch aangekoppeld. Dit kan erg handig zijn
bij het gebruik van gbde op
notebooks.Door gbde gebruikte cryptografische
beschermingen&man.gbde.8; versleutelt de sectorlading door gebruik te
maken van 128-bit AES in CBC-modus. Elke sector op de schijf
wordt met een andere AES-sleutel versleuteld. Meer
informatie over het cryptografische ontwerp van
gbde, inclusief de methode die
gebruikt wordt om de sectorsleutels van de door de gebruiker
gegeven wachtwoordzin af te leiden, staan in
&man.gbde.4;.Compatibiliteitspunten&man.sysinstall.8; is niet compatibel met apparaten die
met gbde versleuteld zijn. Alle
*.bde
apparaten moeten van de kernel ontkoppeld worden voordat
&man.sysinstall.8; gebruikt wordt om te voorkomen dat het
crasht tijdens het initiële zoeken naar apparaten. Om
het versleutelde apparaat dat in dit voorbeeld gebruikt wordt
te ontkoppelen:&prompt.root; gbde detach /dev/ad4s1cgbde kan niet met
vinum volumes gebruikt worden,
omdat &man.vinum.4; geen gebruik maakt van het subsysteem
&man.geom.4;.DanielGerzoBijgedragen door Schijfversleuteling met geliEen alternatieve cryptografische GEOM klassie is beschikbaar
- geli. Deze wordt
- op het moment ontwikkeld door &a.pjd;. geli
+ op het moment ontwikkeld door &a.pjd.email;. geli
verschilt van gbde in de mogelijkheden en in
het gebruik van een andere methode voor het
versleutelen.De meest belangrijke mogelijkheden van &man.geli.8;
zijn:Gebruikt het &man.crypto.9; framework; als
cryptografische hardware aanwezig is, gebruikt
geli die automatisch;Ondersteunt meedere cryptografische algoritmen. Op dit
moment AES, Blowfish en 3DES;Staat toe dat de root-partitie wordt versleuteld. De
wachtwoordzin die wordt gebruikt om de root-partitie te
versleutelen wordt opgevraagd tijdens het starten van een
systeem;Staat het gebruik van twee onafhankelijke sleutels toe,
bijvoorbeeld een sleutel en een
bedrijfssleutel);geli is snel; het werkt met
sector-naar-sector versleuteling;Ondersteunt back-up en restore van Master Keys. Als
een gebruiker sleutels moet vernietigen, is het mogelijk
weer toegang te krijgen tot de gegevens door sleutels uit
een back-up te halen;Ondersteunt het koppelen van een schijf met een
willekeurige, eenmalige sleutel. Handig voor
swap-partities en tijdelijke bestandssystemen.Meer mogelijkheden van geli staan
beschreven in de handleiding van &man.geli.8;.De volgende stappen beschrijven hoe ondersteuning voor
geli in de &os;-kernel ingeschakeld kan
worden en hoe een nieuwe geli
versleutelingsvoorziening gemaakt kan worden.Het is noodzakelijk super-user rechten te hebben omdat
de kernel wordt aangepast.Toevoegen van geli-ondersteuningVoeg de volgende regels toe aan het bestand met
kernelinstellingen:options GEOM_ELI
device cryptoHerbouw de kernel zoals beschreven is in .De geli-module kan ook bij het
opstarten geladen worden. Voeg de volgende regel toe aan
/boot/loader.conf:geom_eli_load="YES"Nu hoort &man.geli.8; door de kernel ondersteund te
worden.Een Master Key genererenHet volgende voorbeeld beschrijft hoe een
sleutelbestand te maken, dat wordt gebruikt als onderdeel
van de Master Key voor de versleutelde dienst die wordt
aangekoppeld onder /private. Het sleutelbestand
zorgt voor wat willekeurige gegevens die worden gebruikt
om de Master Key te versleutelen. De Master Key wordt ook
door een wachtwoordzin beschermd. De sectorgrootte van de
dienst wordt 4 kB. Ook wordt beschreven hoe de
geli-dienst te koppelen, er een
bestandsysteem op te maken, dat aan te koppelen, hoe ermee
te werken en tenslotte hoe te ontkoppelen.Het wordt aangeraden een grotere sectorgrootte in te
stellen (zoals 4 kB) voor betere prestaties.De Master Key wordt beschermd door een wachtwoordzin en
de gegevensbron voor het sleutelbestand wordt
/dev/random. De sectorgrootte van
/dev/da2.eli, die als dienst wordt
aangeduid, wordt 4 kB.&prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1
&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:Het is niet verplicht om zowel een wachtwoordzijn als
een sleutelbestand te gebruiken. De methodes kunnen
onafhankelijk van elkaar gebruikt worden.Als een sleutelbestand wordt opgegeven als
-, wordt de standaardinvoer gebruikt. In
het onderstaande voorbeeld wordt aangegeven hoe meer dan
een sleutelbestand kan worden gebruikt.&prompt.root; cat sleutelbestand1 sleutelbestand2 sleutelbestand3 | geli init -K - /dev/da2De dienst koppelen met de gemaakte sleutel&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:Het nieuwe platte tekst-apparaat wordt
/dev/da2.eli
genoemd.&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eliHet nieuwe bestandssysteem maken&prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m
&prompt.root; newfs /dev/da2.eli
&prompt.root; mount /dev/da2.eli /privateHet versleutelde bestandssysteem moet nu zichtbaar zijn
voor &man.df.1; en beschikbaar zijn voor gebruik:&prompt.root; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /privateDe dienst afkoppelenAls het werk met de versleutelde partitie is
afgehandeld en de /private-partitie niet langer
nodig is, dan is het verstandig te overwegen de met
geli versleutelde partitie af te koppelen
van het bestandssysteem en de kernel.&prompt.root; umount /private
&prompt.root; geli detach da2.eliMeer informatie over &man.geli.8; staat in de
handleiding.Gebruik maken van het gelirc.d script.Bij geli hoort een rc.d
script dat gebruikt kan worden om het gebruik van
geli te vereenvoudigen. Een voorbeeld van
hoe geli met &man.rc.conf.5; ingesteld
kan worden volgt:geli_devices="da2"
geli_da2_flags="-p -k /root/da2.key"Hiermee wordt /dev/da2 ingesteld als
geli-dienst met Master Key-bestand
/root/da2.key en geli
gebruikt geen wachtwoordzin als de dienst wordt gekoppeld
(dit kan alleen gebruikt worden als is meegegeven
tijdens de geli init fase van
geli). Een systeem ontkoppelt de
geli-dienst van de kernel voordat het
afsluit.Meer informatie over het instellen van rc.d staat in
het onderdeel over rc.d.ChristianBrüfferGeschreven door RemkoLodderVertaald door Het versleutelen van de wisselbestand ruimteswapencryptingHet versleutelen van de wisselbestand ruimte is gemakkelijk
met &os; te configureren.
Afhankelijk van welke versie er gebruikt wordt zijn er verschillende
configuratie opties en instellingen mogelijk. De &man.gbde.8; en
&man.geli.8; programma's kunnen gebruikt worden voor het versleutelen
van het wisselbestand. Beide systemen maken gebruik van het
encswap
rc.d script.De vorige sectie, Schijfpartities
versleutelen, biedt een korte discussie over de verschillende
versleutel systemen.Waarom moet het wisselbestand versleuteld worden?Net als met het versleutelen van harde schijven, wordt het
versleutelen van het wisselbestand gebruikt om gevoelige data
te beschermen. Stelt u eens een applicatie voor dat omgaat het
wachtwoorden. Zolang deze wachtwoorden in het fysieke geheugen
blijven is er niets aan de hand. Echter zodra deze verplaatst
worden naar het wisselbestand om ruimte te maken voor andere
applicaties, kan het gebeuren dat de wachtwoorden onbeschermd
op de harde schijf geschreven worden, waardoor het makkelijk
te achterhalen is voor iemand die kwaad wilt. Het versleutelen
van het wisselbestand biedt hierin een mogelijke uitkomst.VoorbereidingTot het einde van deze sectie zal ad0s1b
het wisselbestand bevatten.Tot op dit moment is het wisselbestand niet versleuteld. Het
is mogelijk dat er reeds wachtwoorden of andere gevoelige data
onbeschermd op de harde schijf geschreven zijn. Om dit te
corrigeren, moet de data op de swap partitie overschreven worden
met willekeurige data:&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1mVersleutelen van het wisselbestand met &man.gbde.8;Er moet gebruik gemaakt worden van het .bde
achtervoegsel aan het apparaat in de respectievelijke
/etc/fstab-regel betreffende het
wisselbestand:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0Versleutelen van het wisselbestand met &man.geli.8;Het opzetten van &man.geli.8; voor het versleutelen van het
wisselbestand is hetzelfde als dat van &man.gbde.8;. Hier moet
echter gebruik gemaakt worden van het .eli
achtervoegsel aan het apparaat in de respectievelijke
/etc/fstab wisselbestand regel:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0&man.geli.8; maakt standaard gebruik van het AES
algoritme met een sleutellengte van 128 bits.Optioneel kunnen deze standaardwaarden worden aangepast door
gebruik te maken van de geli_swap_flags optie
in /etc/rc.conf. De volgende regel verteld
het encswap rc.d bestand om een &man.geli.8;
wisselbestand te maken met het Blowfish algoritme met een sleutel
lengte van 128 bit, een sectorgrootte van 4 kilobytes en met de
optie ontkoppelen nadat de laatste afsluiting
gezet:geli_swap_flags="-e blowfish -l 128 -s 4096 -d"Zie de uitleg over het onetime commando in
de &man.geli.8; handleiding voor een lijst van mogelijke opties.Controleren of het werktZodra het systeem opnieuw opgestart is kan gekeken worden
of alles nog goed werkt door gebruik te maken van het
swapinfo commando.Als gebruik gemaakt wordt van &man.gbde.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%Als gebruik gemaakt wordt van &man.geli.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%DanielGerzoBijgedragen door FreddieCashMet informatie van Pawel JakubDawidekMichael W.LucasViktorPeterssonHighly Available Storage (HAST)HASThoge beschikbaarheidOverzichtHoge beschikbaarheid is een van de hoofdzaken in serieuze zakelijke
toepassingen en hoog beschikbare opslag is een sleutelonderdeel in zulke
omgevingen. Hoog beschikbare opslag, of HASTHighly Available STorage, werd
- ontwikkeld door &a.pjd; als een raamwerk dat transparante opslag van
+ ontwikkeld door &a.pjd.email; als een raamwerk dat transparante opslag van
dezelfde gegevens toestaat over fysiek gescheiden machines die verbonden
zijn door een TCP/IP-netwerk. HAST 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 CARP maakt HAST het mogelijk
om een opslagcluster met hoge beschikbaarheid te bouwen dat resistent is
tegen falende hardware.Na het lezen van deze sectie weet u:Wat HAST is, hoe het werkt en welke
mogelijkheden het biedt.Hoe HAST op &os; te op te zetten en te
gebruiken.Hoe CARP en &man.devd.8; te integreren om een
robuust opslagsysteem te bouwen.Voor het lezen van deze sectie dient u:De beginselen van &unix; en &os; te begrijpen ().Te weten hoe de netwerkinterfaces en andere kerndeelsystemen van
&os; in te stellen ().Netwerken op &os; goed te begrijpen ().&os; 8.1-RELEASE of nieuwer te gebruiken.Het HAST-project werd gesponsord door The &os;
Foundation met ondersteuning van
OMCnet Internet Service GmbH en TransIP BV.Eigenschappen van HASTDe belangrijkste eigenschappen van HAST
zijn:Het kan gebruikt worden om I/O-fouten op lokale harde schijven
te maskeren.Agnostisch qua bestandssysteem, dus het werkt met elk
bestandssysteem dat door &os; wordt ondersteund.Efficiënte en snelle hersynchronisatie, alleen de blokken
die zijn veranderd toen een knooppunt uitstond worden
gesynchroniseerd.Het kan gebruikt worden in reeds uitgerolde omgevingen om
aanvullende redundantie toe te voegen.Samen met CARP,
Heartbeat of andere gereedschappen kan
het worden gebruikt om een robuust en duurzaam opslagsysteem te
bouwen.Werking van HASTOmdat HAST synchrone replicatie op blokniveau
van elk opslagmedium naar verscheidene machines biedt, heeft het
tenminste twee knooppunten (fysieke machines) nodig — het
primaire (ook bekend als meester)
knooppunt en het secundaire
(slaaf) knooppunt. Tezamen worden deze twee
machines een cluster genoemd.HAST is momenteel beperkt tot een totaal van twee
clusterknooppunten.Aangezien HAST in een primaire-secundaire
configuratie werkt, kan er op elk moment slechts één van
de clusterknooppunten actief zijn. Het primaire
knooppunt, ookwel actief, is degene die alle
I/O-verzoeken aan apparaten die door HAST worden
beheerd afhandelt. Het secundaire knooppunt wordt
dan automatisch gesynchroniseerd vanuit het primaire
knooppunt.De fysieke componenten van het HAST-systeem
zijn:lokale schijf (op primair knooppunt)schijf op verre machine (secundair knooppunt)HAST werkt synchroon op blokniveau, wat het
transparant maakt voor bestandssystemen en toepassingen.
HAST biedt reguliere GEOM-aanbieders aan in /dev/hast/ voor zowel andere
gereedschappen als toepassingen, er is dus geen verschil tussen het
gebruik van apparaten die door HAST worden geleverd
en rauwe schijven, partities, etc.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.Synchronisatie- en replicatiemodiHAST 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
HAST op de schijf een bitmap van gebruikte extents
en synchroniseert het die alleen tijdens een reguliere synchronisatie
(met uitzondering van de initiëe synchronisatie).Er zijn vele manieren om synchronisatie af te handelen.
HAST implementeert meerdere replicatiemodi om
verschillende synchronisatiemethodes af te handelen:memsync: 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
memsync is momenteel niet
geïmplementeerd.fullsync: 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.async: 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 async is momenteel niet
geïmplementeerd.Momenteel wordt alleen de replicatiemodus
fullsync ondersteund.HAST-configuratieHAST heeft ondersteuning voor
GEOM_GATE nodig om te kunnen functioneren. De kernel
GENERIC bevat standaard geenGEOM_GATE, de laadbare module
geom_gate.ko 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
GEOM_GATE statisch in de kernel te bouwen, door deze
regel aan het kernelconfiguratiebestand toe te voegen:options GEOM_GATEHet HAST-raamwerk bestaat vanuit het
besturingssysteem gezien uit verschillende delen:het daemon &man.hastd.8; dat verantwoordelijk is voor de
gegevenssynchronisatie,het beheerprogramma &man.hastctl.8; voor de gebruikers,het configuratiebestand &man.hast.conf.5;.Het volgende voorbeeld beschrijft hoe twee knooppunten in een
meester-slaaf /
primaire-secundaire opstelling te
configureren door HAST te gebruiken om de gegevens
tussen de twee te repliceren. De knooppunten worden
hasta met IP-adres
172.16.0.1 en
hastb met IP-adres
172.16.0.2 genoemd. Beide knooppunten hebben
een toegewijde harde schijf
/dev/ad6 van
dezelfde grootte om met HAST te werken. De
HAST-pool (soms ook een hulpbron genoemd, i.e., de
GEOM-aanbieder in /dev/hast/)
wordt test
genoemd.Het bestand /etc/hast.conf regelt de
configuratie van HAST. Dit bestand dient hetzelfde
te zijn op beide knooppunten. Het volgende is de eenvoudigste
configuratie die mogelijk is:resource test {
on hasta {
local /dev/ad6
remote 172.16.0.2
}
on hastb {
local /dev/ad6
remote 172.16.0.1
}
}Raadpleeg voor geavanceerdere configuraties de handleidingpagina
&man.hast.conf.5;.Het is ook mogelijk om hostnamen in de regels met
remote te gebruiken. Zorg er in dat geval voor dat
deze hosts vindbaar zijn, bijvoorbeeld doordat ze zijn gedefinieerd in
het bestand /etc/hosts of anders in het
plaatselijke DNS.Nu de configuratie op beide knooppunten aanwezig is, kan de
HAST-pool aangemaakt worden . Voer deze 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:&prompt.root; hastctl create test
&prompt.root; service hastd onestartHet is niet mogelijk om GEOM-aanbieders met
een bestaand bestandssysteem te gebruiken (i.e., een bestaande opslag
omzetten naar een door HAST beheerde pool), omdat
deze procedure wat metagegevens op de aanbieder moet opslaan en er
daarvoor niet genoeg beschikbare ruimte is.De rol van een HAST-knooppunt (primair of
secundair) wordt uitgekozen door een beheerder of
software zoals Heartbeat dat het gereedschap
&man.hastctl.8; gebruikt. Voer het volgende commando uit op het
primaire knooppunt (
hasta):&prompt.root; hastctl role primary testVoer dit soortgelijke commando uit op het secundaire knooppunt (
hastb):&prompt.root; hastctl role secondary testDe situatie dat de knooppunten niet met elkaar kunnen
communiceren en beide geconfigureerd zijn als primaire knooppunten;
wordt split-brain genoemd. Volg de stappen zoals
beschreven in om deze situatie op te
lossen.Verifieer met het gereedschap &man.hastctl.8; het resultaat
op elk knooppunt:&prompt.root; hastctl status testDe belangrijke tekst is de regel met status dat
voor alle knooppunten complete dient te bevatten.
Als het degraded bevat, is er iets verkeerd gegaan.
Op dat moment is de synchronisatie tussen de knooppunten al begonnen.
De synchronisatie is compleet wanneer hastctl status
0 bytes aan dirty extents rapporteert.De volgende stap is het aanmaken van een bestandssysteem op de
GEOM-aanbieder
/dev/hast/test en
het aan te koppelen. Dit moet op het primaire
knooppunt gebeuren, aangezien
/dev/hast/test alleen
op het primaire knooppunt verschijnt. Het aanmaken
van het bestandssysteem kan afhankelijk van de grootte van de harde
schijf enkele minuten duren:&prompt.root; newfs -U /dev/hast/test
&prompt.root; mkdir /hast/test
&prompt.root; mount /dev/hast/test /hast/testWanneer het HAST-raamwerk correct is
geconfigureerd, betreft de laatste stap het ervoor zorgen dat
HAST automatisch tijdens het opstarten wordt gestart.
Voeg deze regel toe aan het bestand
/etc/rc.conf:hastd_enable="YES"Failover-configuratieHet doel van dit voorbeeld is om een robuust opslagsysteem te
bouwen dat resistent is tegen het falen van alle knooppunten. Het
scenario is dat een primair knooppunt van het
cluster faalt. Als dit gebeurt, dan neemt het
secundaire knooppunt het feilloos over, controleert
het het bestandssysteem en koppelt het het bestandssysteem aan, en
gaat het verder zonder dat er een bit aan gegevens ontbreekt.Om dit voor elkaar te krijgen, is er een andere eigenschap die
beschikbaar is op &os; dat voorziet in automatische failover van de
IP-laag — CARP.
CARP (Common Address Redundancy Protocol)
maakt het mogelijk dat meerdere hosts in hetzelfde netwerksegment
een IP-adres delen. Stel CARP in op beide
knooppunten van het cluster volgens de documentatie die beschikbaar is
in . Nadat de opzet voltooid is, heeft elk
knooppunt een eigen interface carp0 met een
gedeeld IP-adres 172.16.0.254. Het
primaire HAST-knooppunt van het
cluster moet het meester-CARP-knooppunt
zijn.De HAST-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
NFS, Samba, etc., door
gebruik te maken van het gedeelde IP-adres
172.16.0.254. Het enige overgebleven
probleem is een automatische failover in het geval dat het primaire
knooppunt het begeeft.Als een CARP-interface aan- of uitgaat,
genereert &os; een &man.devd.8;-gebeurtenis, wat het mogelijk maakt om
toestandsveranderingen op de CARP-interfaces in de
gaten te houden. Een toestandsverandering op het
CARP-interface geeft aan dat een van de knooppunten
het begaf of weer online kwam. Deze toestandsveranderingen maken het
mogelijk om een script te draaien dat automatisch de HAST-failover
afhandelt.Voeg, om toestandsverandering op de
CARP-interfaces af te vangen, het volgende
toe aan het bestand
/etc/devd.conf op elk knooppunt: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";
};Herstart &man.devd.8; op beide knooppunten om de nieuwe
configuratie te laten gelden:&prompt.root; service devd restartAls het interface carp0 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
/usr/local/sbin/carp-hast-switch. 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;.Dit zou een voorbeeld van zo'n script kunnen zijn:#!/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
;;
esacIn een notendop neemt het script deze acties wanneer een knooppunt
meester / primair wordt:De HAST-pools opwaarderen naar primair op
een gegeven knooppunt.Het bestandssysteem onder de HAST-pool
controleren.De pools op een juiste plaats aankoppelen.Wanneer een knooppunt back-up /
secundair wordt:De HAST-pools afkoppelen.De HAST-pools degraderen naar
secundair.Houd in gedachte dat dit slechts een voorbeeldscript is 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.Voor 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.Meer gedetailleerde informatie met aanvullende voorbeelden kunnen
gevonden worden op de HAST Wiki-pagina.Problemen oplossenAlgemene tips om problemen op te lossenHAST zou over het algemeen zonder problemen
moeten werken. 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.Wanneer problemen met HAST worden verholpen,
dient het debug-niveau van &man.hastd.8; verhoogd te worden door het
daemon &man.hastd.8; met het argument -d 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. Overweeg ook om het argument
-F te gebruiken, dat het daemon &man.hastd.8; in
de voorgrond zal starten.Herstellen van de Split-brain-conditieSplit-brain treedt op waneer de knooppunten van
het cluster niet met elkaar kunnen communiceren, en beide als primair
zijn geconfigureerd. Dit is een gevaarlijke situatie omdat het beide
knooppunten in staat stelt om incompatibele veranderingen aan de
gegevens te maken. Dit probleem dient handmatig door de
systeembeheerder te worden gecorrigeerd.De beheerder moet besluiten welk knooppunt de belangrijkere
veranderingen bevat (of ze handmatig samenvoegen) en
HAST een volledige synchronisatie op het knooppunt
dat de kapotte gegevens heeft laten uitvoeren. Voer hiervoor deze
commando's uit op het knooppunt dat opnieuw gesynchroniseerd moet
worden:&prompt.root; hastctl role init <resource>
&prompt.root; hastctl create <resource>
&prompt.root; hastctl role secondary <resource>
diff --git a/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml b/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml
index 223684a6c6..de9c548354 100644
--- a/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml
+++ b/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml
@@ -1,913 +1,914 @@
TomRhodesGeschreven door WouterReckmanVertaald door RenéLadanOndersteuning van bestandssystemenOverzichtBestandssystemenOndersteuning bestandssystemenBestandssystemenBestandssystemen zijn een integraal onderdeel van ieder
besturingssysteem. Ze stellen gebruikers in de gelegenheid om
bestanden te uploaden en op te slaan, geven toegang tot gegevens
en maken natuurlijk harde schijven bruikbaar. Verschillende
besturingssystemen hebben gewoonlijk één
gezamenlijk aspect, namelijk het bestandssysteem. Op &os; staat
dit bestandssysteem bekend onder de naam Fast File System ofwel
FFS, dat is gebaseerd op het oorspronkelijke
Unix™ File System, ook bekend als UFS.
Dit is het oorspronkelijke bestandssysteem van &os; dat op
harde schijven wordt geplaatst voor gegevenstoegang.&os; ondersteunt daarnaast ook een groot aantal andere
bestandssystemen om lokaal toegang tot gegevens van andere
besturingssystemen te bewerkstelligen; dat wil zeggen: gegevens
opgeslagen op lokaal aangesloten USB
opslagapparaten, flash drives, en harde schijven. Verder is er
ook ondersteuning voor vreemde bestandssystemen. Dit zijn
bestandssystemen ontwikkeld voor andere besturingssystemen
zoals het &linux; Extended File System (EXT)
en het &sun; Z File System (ZFS).Er zijn verschillende gradaties van ondersteuning voor de
verschillende bestandssystemen op &os;. Sommigen vereisen het
laden van een kernelmodule, voor anderen moet een toolset
worden geïnstalleerd. Dit hoofdstuk is geschreven om
gebruikers van &os; te helpen om op hun systeem toegang te
verkrijgen tot andere bestandssystemen, te beginnen met het
&sun; Z File System.Na het lezen van dit hoofstuk weet de lezer:Het verschil tussen eigen en ondersteunde
bestandssystemen.Welke bestandssystemen zijn ondersteund in &os;.Hoe niet-eigen bestandssystemen geactiveerd,
geconfigureerd, benaderd en gebruikt kunnen worden.Voorafgaand aan het lezen van dit hoofdstuk dient de
lezer:Begrip te hebben van de beginselen van &unix; en &os;
().Bekend te zijn met de beginselen van
kernelconfiguratie en -compilatie
().Vertrouwd te zijn met installatie van software van
derden in &os; ().Enigszins bekend te zijn met schijven, opslag en
apparaatnamen in &os; ().Het Z File System (ZFS)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 tuningHet 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.GeheugenDe 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.KernelconfiguratieHet 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=512Deze 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 tunablesDe 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_size="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 ZFSEr 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; service zfs startIn het resterende deel van dit document wordt aangenomen
dat er drie SCSI-schijven beschikbaar zijn,
en dat hun apparaatnamen respectievelijk
da0,
da1 en
da2 zijn.
Gebruikers van IDE-hardware kunnen de
ad
apparaten gebruiken in plaats van
SCSI-apparaten.Een pool op een enkele schijfVoer het commando zpool uit om een simpele,
niet-redundante ZFS-pool op een enkele schijf aan
te maken:&prompt.root; zpool create example /dev/da0Bestudeer 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% /exampleIn 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 testfileHelaas 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/compressedexample/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/compressedVoer 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% /exampleMount 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/compressedDe 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/dataHet 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/dataMerk 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 exampleSchijven 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.ZFS RAID-ZZoals eerder opgemerkt wordt in deze sectie aangenomen
dat er drie SCSI-schijven bestaan als de
apparaten da0, da1
en da2 (of ad0 en
hoger als IDE-schijven worden gebruikt). Voer het volgende commando
uit om een RAID-Z-pool te creëren:&prompt.root; zpool create storage raidz da0 da1 da2&sun; raadt aan om tussen de drie en negen schijven te gebruiken
voor een RAID-Z-configuratie. Overweeg, als u
een enkele pool met 10 of meer schijven nodig heeft, om deze te
splitsen in kleine RAID-Z-groepen. Overweeg, als
u slechts twee schijven heeft en nog steeds redundantie nodig heeft,
om in plaats hiervan een ZFS-spiegel te
gebruiken. Bekijk de handleidingpagina &man.zpool.8; voor meer
details.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/homeHet 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/homeKopieer, 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/homeDe 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-08Merk 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-08Voer 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/snapshotHet 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-08Na 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/homeHet 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 26320512 0 26320512 0% /storage
storage/home 26320512 0 26320512 0% /homeHiermee 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.confHet herstellen van RAID-ZIedere 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 -xAls alle pools in orde zijn en alles is normaal, dan
wordt het volgende bericht weergegeven:all pools are healthyAls 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
da2 ONLINE 0 0 0
errors: No known data errorsHier 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 da1Het 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 da1Nu 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
da2 ONLINE 0 0 0
errors: No known data errorsZoals te zien in dit voorbeeld lijkt alles normaal te
zijn.GegevensverificatieZoals 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/homeDit 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 storageDit 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
da2 ONLINE 0 0 0
errors: No known data errorsDe voltooiingstijd is in dit voorbeeld duidelijk
zichtbaar. Deze eigenschap helpt om gegevensintegriteit te
garanderen gedurende een langere tijdsperiode.Er zijn vele andere opties voor het Z-bestandssysteem, zie
de handleidingpagina's &man.zfs.8; en &man.zpool.8;.ZFS quotaZFS ondersteunt verschillende soorten quota: de refquota, de
algemene quota, de gebruikersquota en de groepsquota. Deze sectie
legt de beginselen van ieder van deze uit en bevat wat instructies
voor gebruik.Quota beperken de hoeveelheid ruimte die een gegevensverzameling
en zijn afstammelingen kunnen gebruiken en dwingen een limiet af op de
hoeveelheid ruimte dat gebruikt wordt door bestandssystemen en
snapshots voor deze afstammelingen. Vanuit gebruikers zijn quota
handig om de hoeveelheid ruimte die een bepaalde gebruiker kan
gebruiken te beperken.Quota kunnen niet op volumes worden ingesteld, aangezien de
eigenschap volsize als een impliciet quotum
optreedt.De refquota,
refquota=grootte,
beperkt de hoeveelheid ruimte die een gegevensverzameling in beslag
kan nemen door een harde grens aan de gebruikte ruimte te stellen.
Deze harde grens bevat echter niet de ruimte gebruikt door
afstammelingen, zoals bestandssystemen of snapshots.Gebruik het volgende om een algemeen quotum van 10 GB voor
/home/storage/bob af te dwingen:&prompt.root; zfs set quota=10G storage/home/bobGebruikersquota beperken de hoeveelheid ruimte die door de
aangegeven gebruiker kan worden gebruikt. Het algemene formaat is
userquota@gebruiker=grootte
waarbij de gebruikersnaam in één van de volgende
formaten dient te zijn:Naam compatibel met POSIX
(bijvoorbeeld jan).Numeriek POSIX-ID
(bijvoorbeeld 789).SID-naam
(bijvoorbeeld
jan.bloggs@example.com).Numeriek SID-ID
(bijvoorbeeld S-1-123-456-789).Gebruik het volgende om bijvoorbeeld een quotum van 50 GB
voor een gebruiker jan af te
dwingen:&prompt.root; zfs set userquota@jan=50GGebruik in plaats hiervan, om het quotum te verwijderen of er
zeker van te zijn dat er geen is ingesteld:&prompt.root; zfs set userquota@jan=noneEigenschappen van gebruikersquota worden niet weergegeven door
zfs get all. Niet-root
gebruikers kunnen alleen hun eigen quota zien tenzij het privilege
userquota aan ze is gegeven. Gebruikers met dit
privilege kunnen ieders quota bekijken en instellen.Groepsquota beperken de hoeveelheid ruimte die de gespecificeerde
gebruikersgroep in beslag kan nemen. Het algemene formaat is
groupquota@groep=grootte.Gebruik om het quotum voor de groep
eerstegroep op 50 GB in te
stellen:&prompt.root; zfs set groupquota@eerstegroep=50GGebruik in plaats hiervan, om het quotum voor de groep
eerstegroep te verwijderen of om er voor te
zorgen dat deze niet is ingesteld:&prompt.root; zfs set groupquota@eerstegroep=noneNet zoals bij de eigenschappen van gebruikersquota kunnen
niet-root-gebruikers alleen de quota zien die
geassocieerd zijn met de gebruikersgroepen waar ze bij horen, een
root-gebruiker of een gebruiker met het privilege
groupquota kan alle quota voor alle groepen
bekijken en instellen.Het deelcommando zfs userspace geeft de
hoeveelheid ruimte weer die door elke gebruiker op de snapshot van het
gespecificeerde bestandssysteem in beslag wordt genomen, tezamen met
alle ingestelde quota. Het deelcommando zfs
groupspace doet hetzelfde voor groepen. Bekijk
&man.zfs.1; voor meer informatie over ondersteunde opties of het
weergegeven van specifieke opties.Gebruik het volgende om de quota voor
storage/home/bob weer te geven, als u de juiste
privileges heeft of root bent:&prompt.root; zfs get quota storage/home/bobReserveringen in ZFSZFS ondersteunt twee soorten van ruimtereserveringen. Deze sectie
legt de beginselen van elk van de twee uit en bevat enkele instructies
voor gebruik.De eigenschap reservation maakt het mogelijk om
een gegarandeerde minimale hoeveelheid ruimte voor een
gegevensverzameling en zijn afstammelingen te reserveren.
Dit betekent dat als er een reservering van 10 GB is ingesteld
voor storage/home/bob en de schijfruimte op
raakt, er tenminste 10 GB aan ruimte is gereserveerd voor deze
gegevensverzameling. De eigenschap reservation
stelt de minimale hoeveelheid ruimte in die gegarandeerd is voor een
gegevensverzameling exclusief afstammelingen zoals snapshots, of geeft
deze aan. Als er bijvoorbeeld een snapshot is genomen van
storage/home/bob moet er genoeg schijfruimte zijn
buiten de refreservation hoeveelheid om de operatie
te laten slagen omdat afstammelingen van de hoofdgegevensverzameling
niet worden meegeteld in de refreservation
hoeveelheid en dus niet stiekem de vastgestelde ruimte
wijzigen.Reserveringen kunnen in allerlei situaties nuttig zijn,
bijvoorbeeld voor het plannen en testen van de geschiktheid van het
toewijzen van schijfruimte in een nieuw systeem, of om ervoor te
zorgen dat er genoeg schijfruimte beschikbaar is op bestandsssystemen
voor systeemherstelprocedures en bestanden.Het algemene formaat van de eigenschap
reservation is
reservation=grootte, dus
gebruik het onderstaande commando om een reservering van 10 GB op
storage/home/bob te plaatsen:&prompt.root; zfs set reservation=10G storage/home/bobGebruik, om te controleren of er geen reservatie is geplaatst of
om een reservatie te verwijderen:&prompt.root; zfs set reservation=none storage/home/bobHet zelfde principe kan worden toegepast op de eigenschap
refreservation om een refreservation in te stellen,
met het algemene formaat
refreservation=grootte.Gebruik één van de volgende commando's om te kijken
of er een reservatie of refreservation bestaat op
storage/home/bob:&prompt.root; zfs get reservation storage/home/bob
&prompt.root; zfs get refreservation storage/home/bob&linux; bestandssystemenDeze sectie beschrijft enkele van de &linux; bestandssystemen die door
&os; worden ondersteund.Ext2FSDe kernelimplementatie van het &man.ext2fs.5; bestandssysteem was
geschreven door Godmar Back, het eerste stuurprogramma verscheen in
&os; 2.2. In &os; 8 en eerder is de code gelicenseerd onder
de GNU Public License, onder &os; 9 is de code
echter herschreven en nu beschikbaar onder de
BSD-licentie.Het stuurprogramma &man.ext2fs.5; stelt de &os;-kernel in staat om
ext2 bestandssystemen te lezen en er naar te
schrijven.Laad ten eerste de kernelmodule:&prompt.root; kldload ext2fsKoppel daarna een &man.ext2fs.5;-volume aan dat zich op
/dev/ad1s1 bevindt:&prompt.root; mount -t ext2fs /dev/ad1s1 /mntXFSHet X-bestandssysteem, XFS, is origineel
geschreven door SGI voor het besturingssysteem
IRIX, ze hebben het overgebracht naar &linux;. De
broncode is vrijgegeven onder de GNU Public License.
Kijk op deze
pagina voor meer details. De &os;-port werd gestart door
- Russel Cattelan, &a.kan; en &a.rodrigc;.
+ Russel Cattelan, &a.kan.email; en &a.rodrigc.email;.
Om XFS als een kernelmodule te laden:&prompt.root; kldload xfsHet stuurprogramma &man.xfs.5; stelt de &os;-kernel in staat om
XFS-bestandssystemen te benaderen. Momenteel is echter alleen
ondersteuning voor lezen aanwezig. Schrijven naar een volume is niet
mogelijk.Om een &man.xfs.5;-volume wat op /dev/ad1s1 aan
te koppelen:&prompt.root; mount -t xfs /dev/ad1s1 /mntMerk op dat de port sysutils/xfsprogs het gereedschap
mkfs.xfs bevat wat het mogelijk maakt om
XFS-bestandssystemen aan te maken, en verder
gereedschappen om ze te analyseren en repareren.De vlag -p van mkfs.xfs kan
worden gebruikt om een &man.xfs.5;-bestandssysteem aan te maken welke
bevolkt wordt met bestanden en andere meta-gegevens. Dit kan worden
gebruikt om snel een alleen-lezen bestandssysteem aan te maken welke op
&os; getest kan worden.ReiserFSHet Reiser bestandssysteem, ReiserFS, was overgebracht naar &os;
- door &a.dumbbell; en is vrijgegeven onder de GNU
+ door &a.dumbbell.email; en is vrijgegeven onder de GNU
Public License.Het stuurprogramma voor ReiserFS stelt de &os;-kernel momenteel in
staat om ReiserFS bestandssystemen te benaderen en hun inhoud te lezen,
maar het kan ze momenteel niet beschrijven.Laad ten eerste eerst de kernelmodule:&prompt.root; kldload reiserfsOm ten tweede een ReiserFS-volume dat zich op
/dev/ad1s1 aan te koppelen:&prompt.root; mount -t reiserfs /dev/ad1s1 /mnt
diff --git a/nl_NL.ISO8859-1/books/handbook/jails/chapter.xml b/nl_NL.ISO8859-1/books/handbook/jails/chapter.xml
index 340c45d723..6cea5a8a70 100644
--- a/nl_NL.ISO8859-1/books/handbook/jails/chapter.xml
+++ b/nl_NL.ISO8859-1/books/handbook/jails/chapter.xml
@@ -1,1070 +1,1071 @@
MatteoRiondatoBijgedragen door RemkoLodderVertaald door JailsjailsOverzichtDit hoofdstuk levert een uitleg van wat &os; jails zijn en
hoe ze gebruikt kunnen worden. Jails, soms ook wel bekend als
een verbeterde vervanging van
chroot omgevingen, zijn een erg krachtige
tool voor systeem beheerders, maar het standaard gedrag kan ook
interessant zijn voor gevorderde gebruikers.Jails zijn een krachtig gereedschap, maar zijn geen zilveren kogel
qua beveiliging. Hoewel het belangrijk is om op te merken dat het
onmogelijk is voor een gevangen proces om zelf te ontsnappen, zijn er
verschillende manieren waarop een ongeprivilegieerde gebruiker buiten
een jail kan samenwerken met een geprivilegieerde gebruiker binnen de
jail en daarmee verhoogde privileges kan krijgen in de
gastheeromgeving.De meeste van deze aanvallen kunnen worden voorkomen door ervoor te
zorgen dat de jail-root niet beschikbaar is voor ongeprivilegieerde
gebruikers binnen de gastheeromgeving. Buiten dat geldt als algemene
regel dat onvertrouwde gebruikers met geprivilegieerde toegang tot een
jail geen toegang tot de gastheeromgeving moet worden gegeven.Na het lezen van dit hoofdstuk weet de lezer:Wat een jail is, en welk doel het kan dienen in een
&os; installatie.Hoe men een jail opbouwt, start en stopt.De basis over jail beheer, zowel van binnen in de
jail, als van buitenaf.Andere bronnen met nuttige informatie over jails zijn:De &man.jail.8; handleiding. Hier kan de volledige
referentie gevonden worden van het jail
commando — de administratieve tool die in &os; gebruikt
kan worden om &os; jails mee te beheren, te starten en te
stoppen.De mailinglijsten en de archieven hiervan. De archieven
van de &a.questions; en andere mailing lijsten die gehost
worden door de &a.mailman.lists; bevatten reeds een rijke
bron van informatie over jails. Het zou altijd aantrekkelijk
moeten zijn om informatie in de archieven te zoeken, of een
nieuwe vraag stellen aan de &a.questions.name;
mailinglijst.Termen en begrippen van jailsOm een beter begrip te geven over de onderdelen van &os; die
gerelateerd zijn aan jails, de werking ervan, en hoe ze omgaan
met de rest van &os; worden de volgende termen gebruikt in het
hoofdstuk:&man.chroot.8; (commando)Hulpmiddel dat de systeemaanroep &man.chroot.2; van &os;
gebruikt om de rootmap van een proces en alle afstammelingen te
veranderen.&man.chroot.2; (omgeving)Een omgeving van processen die draaien in een
chroot. Dit is inclusief bronnen die
gebruikt worden, zoals bijvoorbeeld het gedeelte van
het bestandssysteem dat zichtbaar is, de gebruiker en
groep ID's welke beschikbaar zijn, netwerkkaarten
en andere IPC-mechanismes, etcetera.&man.jail.8; (commando)De systeem utility die het mogelijk maakt om processen
binnenin een jail te starten.host (systeem, processen, gebruiker, etc.)Het controlerende systeem van een jail omgeving. Het
host systeem heeft toegang tot alle beschikbare hardware
bronnen en kan processen controleren zowel buiten als
binnenin een jail. Één van de belangrijkste
verschillen van het host systeem met een jail zijn de
limitaties die van toepassing zijn op super-gebruiker
processen binnenin een jail, niet geforceerd worden voor
processen in het host systeem.hosted (systeem, processen, gebruiker, etc.)Een proces, gebruiker, of andere entiteit wiens toegang
tot bronnen is gelimiteerd door een &os; jail.IntroductieOmdat systeem beheer een complexe en enorme taak is, zijn er
vele sterke tools ontwikkeld om het leven van een systeem beheerder
makkelijker te maken. Deze tools leveren meestal verbeteringen op
de manier waarop systemen worden geïnstalleerd, geconfigureerd
en onderhouden. Een deel van de taken waarvan verwacht wordt dat
die uitgevoerd wordt door de systeem beheerder is het goed
configureren van de beveiliging van een systeem, zodat het kan
blijven doorgaan met het serveren van de taak, zonder dat er
beveiligingsproblemen optreden.Één van de tools welke gebruikt kan worden om
de beveiliging van een &os; systeem te verbeteren zijn
jails. Jails zijn geïntroduceerd in
- &os; 4.X door &a.phk;, maar zijn grotendeels verbeterd in
+ &os; 4.X door &a.phk.email;, maar zijn grotendeels verbeterd in
&os; 5.X om ze nog sterker en krachtiger te maken. De
ontwikkeling gaat nog steeds door met verbeteringen voor het
gebruik, performance, betrouwbaarheid en beveiliging.Wat is een jailBSD achtige systemen hebben sinds 4.2-BSD ondersteuning
voor &man.chroot.2;. De &man.chroot.8; utility kan gebruikt
worden om de root directory van een set processen te wijzigen
waardoor een veilige omgeving wordt gecreeërd voor de
rest van het systeem. Processen die gemaakt worden in een
chroot omgeving kunnen bestanden en bronnen daarbuiten niet
benaderen. Daardoor zou een compromitering van een dienst die
in een chroot omgeving draait niet direct betekenen dat het hele
systeem gecompromiteerd is. De &man.chroot.8; utility is goed
genoeg voor simpele taken, waarbij flexibiliteit en geavanceerde
en complexe opties niet nodig zijn. Sinds het uitvinden van het
chroot concept, zijn er vele mogelijkheden gevonden om hieruit
te kunnen komen en alhoewel ze verbeterd zijn in moderne versies
van &os;, werd het duidelijk dat &man.chroot.2; niet de meest
ideale oplossing was voor het beveiligen van diensten. Er moest
een nieuw subsysteem ontwikkeld worden.Dit is één van de redenen waarom jails zijn
ontwikkeld.Jails zijn een verbeterd concept van de &man.chroot.2;
omgeving, in verschillende opzichten. In een traditionele
&man.chroot.2; omgeving worden processen alleen gelimiteerd
in het deel van het bestandssysteem die ze kunnen benaderen.
De rest van de systeem bronnen (zoals de set van systeem
gebruikers, de draaiende processen of het netwerk subsysteem)
worden gedeeld door het chrooted proces en de processen op het
host systeem. Jails breiden dit model uit door het niet
alleen virtualizeren van de toegang tot het bestandssysteem maar
ook tot de set van gebruikers, het netwerk subsysteem van de
&os; kernel en een aantal andere delen. Een meer complete set
van gespecificeerde controle mogelijkheden die beschikbaar zijn
voor het personaliseren van de toegang tot een jail omgeving
wordt beschreven in .Een jail heeft vier kenmerken:Een eigen directory structuur — het startpunt
van waaruit een jail benaderd wordt. Zodra men in de jail
zit, mogen processen niet buiten deze directory structuur
komen. Traditionele problemen die &man.chroot.2;'s ontwerp
getart hebben, hebben geen invloed op &os; jails.Een hostname — de hostnaam die gebruikt wordt in
de jail. Jails worden met name gebruikt voor het hosten van
netwerk diensten, daardoor kan het de systeembeheerder heel
erg helpen als er beschrijvende hostnames worden
gekozen.Een IP adres — deze wordt
gekoppeld aan de jail en kan op geen enkele manier worden
gewijzigd tijdens het leven van de jail. Het IP adres van
een jail is meestal een alias op een reeds bestaande
netwerk interface, maar dit is niet noodzakelijk.Een commando — het padnaam van een uitvoerbaar
bestand in de jail. Deze is relatief aan de rootdirectory
van de jail omgeving en verschilt per situatie, afhankelijk
van het type van de specifieke jail omgeving.Buiten deze kenmerken, kunnen jails hun eigen set aan
gebruikers en root gebruiker hebben.
Uiteraard zijn de mogelijkheden van de root
gebruiker beperkt tot de jail omgeving en, vanuit het host
systeem gezien, is de root gebruiker geen
super-gebruiker. Daarnaast is het de root
gebruiker in een jail omgeving niet toegestaan om kritieke
operaties uit te voeren op het systeem buiten de gedefinieerde
jail omgeving. Meer informatie over de mogelijkheden en
beperkingen van de root gebruiker kan
gevonden worden in
hieronder.Creeëren en controleren van jailsSommige beheerders kiezen ervoor om jails op te delen in
de volgende twee types: complete jails, welke
een volledig &os; systeem emuleert en service
jails, gericht op één applicatie of dienst,
mogelijkerwijs draaiende met privileges. Dit is alleen een
conceptuele splitsing, de manier van het opbouwen van een jail
wordt hierdoor niet veranderd. De &man.jail.8; handleiding
is heel duidelijk over de procedure voor het maken van een
jail:&prompt.root; setenv D /here/is/the/jail
&prompt.root; mkdir -p $D
&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make installworld DESTDIR=$D
&prompt.root; make distribution DESTDIR=$D
&prompt.root; mount -t devfs devfs $D/devHet selecteren van een locatie voor een jail is het beste
beginpunt. Hier zal de jail fysiek te vinden zijn binnen
het bestandssysteem van het host systeem. Een goede keuze
kan /usr/jailjailnaam
zijn, waar jailnaam de naam is van de
jail. Het /usr
bestandssysteem heeft meestal genoeg ruimte voor het jail
bestandssysteem, wat voor een complete jail
betekend dat het eigenlijk een replica is van elk bestand
dat standaard aanwezig is binnen het &os; basissysteem.Als u uw userland al heeft herbouwd met
make world of make buildworld,
dan kunt u deze stap overslaan en uw bestaande userland in de nieuwe
jail installeren.Dit commando zal de gekozen fysieke directory vullen
met de benodigde binaire bestanden, bibliotheken,
handleidingen, etc.Het distribution doel voor
make installeert elk benodigd
configuratie bestand. In simpelere termen, het installeert
alle installeerbare bestanden in
/usr/src/etc naar de
/etc directory van
de jail omgeving:
$D/etc.Het koppelen van het &man.devfs.8; bestandssysteem
is niet vereist in een jail. Aan de andere kant, vrijwel
elke applicatie heeft toegang nodig tot minstens
één apparaat, afhankelijk van het doel van
het programma. Het is erg belangrijk om toegang tot
apparaten te controleren binnenin een jail, omdat incorrecte
instellingen een aanvaller de mogelijkheid kunnen geven om
vervelende dingen in de jail te doen. De controle over
&man.devfs.8; wordt gedaan door middel van rulesets, welke
beschreven worden in de &man.devfs.8; en &man.devfs.conf.5;
handleidingen.Zodra een jail is geïnstalleerd, kan het opgestart worden
door de &man.jail.8; applicatie. De &man.jail.8; applicatie
heeft vier benodigde argumenten welke beschreven worden in
. Er kunnen ook andere argumenten
gebruikt worden, om bijvoorbeeld de jail te starten met de
instellingen van een specifieke gebruiker. Het
argument
hangt af van het type jail, voor een
virtueel systeem is
/etc/rc een goede keuze, omdat het de
reguliere opstart procedure nabootst van een &os; systeem.
Voor een dienst jail is het geheel afhankelijk
van de dienst of applicatie die in de jail gaat draaien.Jails worden over het algemeen gestart tegelijkertijd met
de rest van het systeem. Het &os; rc
mechanisme levert een makkelijke manier om dat te doen:Een lijst van jails die opgestart moeten worden tijdens
het opstarten van het systeem, moeten worden toegevoegd aan
het &man.rc.conf.5; bestand:jail_enable="YES" # Stel dit in op NO om te voorkomen dat er jails gestart worden
jail_list="www" # Door spaties gescheiden lijst van jailsDe jail namen in jail_list mogen alleen
alfanumerieke karakters bevatten.Voor elke jail die gespecificeerd is in
jail_list moet een groep van &man.rc.conf.5;
instellingen worden toegevoegd:jail_www_rootdir="/usr/jail/www" # de hoofd directory van de jail
jail_www_hostname="www.example.org" # de hostnaam van de jail
jail_www_ip="192.168.0.10" # het IP adres van de jail
jail_www_devfs_enable="YES" # moet devfs wel of niet gekoppeld worden in de jail
jail_www_devfs_ruleset="www_ruleset" # welke devfs ruleset gebruikt moet worden voor de jailDe standaard opstart variabelen in &man.rc.conf.5;
gebruiken het /etc/rc bestand om de jail
op te starten, wat er vanuit gaat dat de jail een compleet
virtueel systeem is. Voor service jails moet het standaard
opstart commando worden gewijzigd door het aanpassen van de
jail_jailname_exec_start
optie.Voor een complete lijst van beschikbare opties, zie de
&man.rc.conf.5; handleiding.&man.service.8; kan worden gebruikt om jails handmatig te starten en
te stoppen, mits er een overeenkomstige verzameling regels bestaat in
/etc/rc.conf.&prompt.root; service jail start www
&prompt.root; service jail stop wwwEr is op dit moment geen nette methode om een jail te
stoppen. Dit komt omdat de benodigde applicaties die een
nette afsluiting verzorgen, niet beschikbaar zijn in een
jail. De beste manier om een jail af te sluiten is door
het volgende commando van binnenin de jail uit te voeren
of door middel van het &man.jexec.8; commando:&prompt.root; sh /etc/rc.shutdownMeer informatie hierover kan gevonden worden in de
&man.jail.8; handleiding.Optimaliseren en administratieEr zijn meerdere opties beschikbaar die ingesteld kunnen
worden voor elke jail, en er zijn meerdere mogelijkheden om een
&os; host systeem te combineren met jails om een betere scheiding
tussen systeem en applicaties te verkrijgen. Deze sectie
leert:Een aantal opties zijn beschikbaar voor het optimaliseren
van het gedrag en beveiligings beperkingen die
geïmplementeerd worden in een jail.Een aantal high-level applicaties die
gebruikt worden voor het beheren van jails, welke beschikbaar
zijn via de &os; Ports Collectie en kunnen gebruikt worden
om een complete jail-gebaseerde oplossing te
creeëren.Systeem applicaties voor het optimaliseren van jails onder
&os;Het goed kunnen optimaliseren van een jail configuratie wordt
veelal gedaan door het instellen van &man.sysctl.8; variabelen.
Er bestaat een speciale subtak van sysctl voor het organiseren
van alle relevante opties: de security.jail.*
hierarchie binnen de &os; kernel. Hieronder staat een
lijst van de belangrijkste jail-gerelateerde sysctl variabelen,
met informatie over de standaard waarden. De benaming zou
zelf beschrijvend moeten zijn, maar voor meer informatie
kunnen de &man.jail.8; en &man.sysctl.8; handleidingen
geraadpleegd worden.security.jail.set_hostname_allowed:
1security.jail.socket_unixiproute_only:
1security.jail.sysvipc_allowed:
1security.jail.enforce_statfs:
2security.jail.allow_raw_sockets:
0security.jail.chflags_allowed:
0security.jail.jailed: 0Deze variabelen kunnen door de systeem beheerder gebruikt
worden op het host systeem om limitaties
toe te voegen of te verwijderen, welke standaard opgedwongen
worden aan de root gebruiker. Let op,
een aantal beperkingen kan niet worden aangepast. De
root gebruiker mag geen bestandssystemen
koppelen of ontkoppelen binnenin een &man.jail.8;. De
root gebruiker mag ook geen &man.devfs.8;
rulesets laden of ontladen, firewall rules plaatsen of andere
taken uitvoeren die vereisen dat de in-kernel data wordt
aangepast, zoals het aanpassen van de
securelevel variabele in de kernel.Het basis systeem van &os; bevat een basis set van
applicaties voor het inzien van de actieve jails, en voor
het uitvoeren van administratieve commando's in een jail.
De &man.jls.8; en &man.jexec.8; commando's zijn onderdeel van
het basis systeem en kunnen gebruikt worden voor het
uitvoeren van de volgende simpele taken:Het printen van een lijst van actieve jails met het
corresponderende jail ID (JID),
IP adres, de hostnaam en het pad.Het koppelen met een actieve jail vanuit het host
systeem, en voor het uitvoeren van administratieve taken
in de jail zelf. Dit is bijzonder handig wanneer de
root gebruiker een jail netjes
wilt afsluiten. Het &man.jexec.8; commando kan ook
gebruikt worden om een shell te starten in een jail
om daarmee administratieve taken uit te voeren;
bijvoorbeeld met:&prompt.root; jexec 1 tcshAdministratieve applicaties op hoog niveau in de &os;
Ports Collection.Tussen de vele software van derde partijen voor jail
beheer, is één van de meest complete en
bruikbare paketten:
sysutils/jailutils.
Dit is een set van kleine applicaties, die bijdragen aan
&man.jail.8; beheer. Kijk op de web pagina voor meer
informatie.Toepassing van jailsDanielGerzoBijgedragen door Dienst jails
- Deze sectie is gebaseerd op een idee van &a.simon;
+ Deze sectie is gebaseerd op een idee van &a.simon.email;
op ,
en een geupdate artikel door Ken Tom
locals@gmail.com. Deze sectie illusteert hoe een
&os; systeem opgezet kan worden met een extra laag beveiliging
door gebruik te maken van &man.jail.8;. Er wordt vanuit gegaan
dat het betrokken systeem minstens RELENG_6_0 draait en dat de
informatie eerder in dit hoofdstuk goed begrepen is.OntwerpÉén van de grootste problemen met jails is het
beheer van het upgrade proces. Dit is meestal een probleem
omdat elke jail vanaf het begin af aan moet worden opgebouwd
wanneer er geupdate wordt. Meestal is dit voor een enkele jail
geen probleem, omdat het update proces redelijk simpel is, maar
het kan een vervelende tijdrovende klus zijn als er meerdere
jails zijn.Deze opstelling vereist uitgebreide kennis en ervaring
van &os; en zijn mogelijkheden. Als onderstaande stappen
te lastig lijken te zijn, wordt aangeraden om een simpeler
systeem te bekijken zoals sysutils/ezjail, welke
een simpele manier geeft voor het beheren van &os; jails
en niet zo complex is als deze opstelling.Het idee werd geopperd om zulke problemen zoveel als
mogelijk te voorkomen door zoveel als mogelijk te delen
tussen de verschillende jails op een zo veilig mogelijke
manier — door gebruik te maken van alleen-lezen
&man.mount.nullfs.8; koppelingen, zodat het upgraden simpeler
wordt en het inzetten van jails voor enkele diensten
interessanter wordt. Daarnaast geeft het een simpele manier
om nieuwe jails toe te voegen of te verwijderen en om deze te
upgraden.Voorbeelden binnen deze context zijn: een
HTTP server, een DNS
server, een SMTP server
enzovoorts.De doelen van de opstelling zoals beschreven in dit
hoofdstuk zijn:Het creeëren van een simpele en makkelijk te
begrijpen jail structuur. Dit impliceert dat er
niet elke keer een volledige
installworld gedraaid hoeft te worden voor elke
jail.Het makkelijk maken van het aanmaken en verwijderen
van jails.Het makkelijk maken van het updaten en upgraden van
bestaande jails.Het mogelijk maken van het draaien van een eigen
gemaakte &os; tak.Paranoia zijn over beveiliging, zoveel mogelijk
beperken, om de kans op inbraak zo klein mogelijk te
maken.Het zoveel mogelijk besparen van ruimte en inodes.Zoals reeds besproken is dit ontwerp sterk afhankelijk van
het hebben van een master-template, welke
alleen-lezen (beter bekend als
nullfs) gekoppeld is binnen elke
jail, en een beschrijfbaar apparaat per jail. Een apparaat
kan hierin zijn een aparte fysieke schijf, een partitie, of
een door vnodes ondersteunde &man.md.4; apparaat. In dit
voorbeeld wordt gebruik gemaakt van lezen-schrijven
nullfs koppelpunten.Het gebruikte bestandssysteem wordt beschreven door de
volgende lijst:Elke jail zal gekopeld worden onder de /home/j directory./home/j/mroot is
de template voor elke jail en tevens de alleen-lezen
partitie voor elke jail.Voor elke jail zal een lege directory structuur
gemaakt worden, welke valt onder de /home/j directory.Elke jail heeft een /s directory, welke
gekoppeld zal worden aan het beschrijfbare gedeelte van
het systeem.Elke jail zal zijn eigen beschrijfbaar systeem hebben
welke gebaseerd is op /home/j/skel.Elke jail ruimte (het beschrijfbare gedeelte van de
jail), wordt gecreeërd in de /home/js directory.De voorbeelden gaan er vanuit dat de jails geplaatst
worden in /home partitie. Dit kan
uiteraard aangepast worden, maar dan moeten de
voorbeelden hieronder ook worden aangepast naar de plek
die gebruikt zal worden.De template creeërenDeze sectie leert welke stappen er genomen moeten worden
om de master-template te maken. Deze zal het alleen-lezen
gedeelte vormen van de jails.Het is altijd een goed idee om ervoor te zorgen dat het
&os; systeem de laatst beschikbare -RELEASE versie draait.
Zie het corresponderende hoofdstuk in het
Handboek
om te lezen hoe dit gedaan wordt. In het geval dat het de
moeite niet is om te updaten, zal een buildworld nodig zijn
voordat er verder gegaan kan worden. Daarnaast is het
sysutils/cpdup pakket
benodigd. Er wordt gebruik gemaakt van de&man.portsnap.8;
applicatie om de &os; Ports Collectie te downloaden.
Het handbook met het hoofdstuk
over Portsnap, is een aanrader voor nieuwe gebruikers.Als eerste moet er een directory structuur
gecreeërd worden voor het alleen-lezen
bestandssysteem, welke de &os; binaries zal bevatten
voor de jails. Daarna wordt het alleen-lezen
bestandssysteem geïnstalleerd vanuit de
&os; broncode directory in de jail template:&prompt.root; mkdir /home/j /home/j/mroot
&prompt.root; cd /usr/src
&prompt.root; make installworld DESTDIR=/home/j/mrootHierna moet de &os; Ports Collectie worden voorbereid,
evenals de &os; broncode directory, wat voor
mergemaster vereist is:&prompt.root; cd /home/j/mroot
&prompt.root; mkdir usr/ports
&prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract
&prompt.root; cpdup /usr/src /home/j/mroot/usr/srcNu moet er een skelet gecreeërd
worden voor het bechrijfbare gedeelte van het
systeem:&prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles
&prompt.root; mv etc /home/j/skel
&prompt.root; mv usr/local /home/j/skel/usr-local
&prompt.root; mv tmp /home/j/skel
&prompt.root; mv var /home/j/skel
&prompt.root; mv root /home/j/skelDe mergemaster applictie
moet gebruikt worden om de ontbrekende configuratie
bestanden te installeren. Erna moeten alle overtollige
directories die gecreeërd zijn door
mergemaster verwijderd
worden:&prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i
&prompt.root; cd /home/j/skel
&prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr devNu moet er een symbolische link gemaakt worden tussen
het beschrijfbare bestandssysteem en het alleen-lezen
bestandssysteem, zorg ervoor dat de links gemaakt worden
in de juiste /s
directory. Als hier echte directories worden gemaakt
of de directories worden op de verkeerde plak aangemaakt
zal dit resulteren in een mislukte installatie:&prompt.root; cd /home/j/mroot
&prompt.root; mkdir s
&prompt.root; ln -s s/etc etc
&prompt.root; ln -s s/home home
&prompt.root; ln -s s/root root
&prompt.root; ln -s ../s/usr-local usr/local
&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
&prompt.root; ln -s ../../s/distfiles usr/ports/distfiles
&prompt.root; ln -s s/tmp tmp
&prompt.root; ln -s s/var varAls laatste stap moet er een generieke
/home/j/skel/etc/make.conf gemaakt
worden met de volgende inhoud:WRKDIRPREFIX?= /s/portbuildDoor het gebruik van WRKDIRPREFIX
op deze manier, is het mogelijk om per jail &os; ports
te compileren. Onthoud dat de ports directory onderdeel
is van het alleen-lezen bestandssysteem. Het eigen pad
voor WRKDIRPREFIX maakt het mogelijk
dat port builds gedaan worden op het beschrijfbare
gedeelte van elke jail.Jails creeërenNu we een complete &os; template hebben, kunnen we de
jails opzetten en configureren in
/etc/rc.conf. Dit voorbeeld demonstreert
het creeëren van drie jails: NS,
MAIL en WWW.Zet het volgende in /etc/fstab
zodat de alleen-lezen template voor de jails en de
beschrijfbare partititie beschikbaar zijn in de
respectievelijke jails:/home/j/mroot /home/j/ns nullfs ro 0 0
/home/j/mroot /home/j/mail nullfs ro 0 0
/home/j/mroot /home/j/www nullfs ro 0 0
/home/js/ns /home/j/ns/s nullfs rw 0 0
/home/js/mail /home/j/mail/s nullfs rw 0 0
/home/js/www /home/j/www/s nullfs rw 0 0Partities die gemarkeerd zijn met een 0 als
passnummer worden niet gecontroleerd
door &man.fsck.8; tijdens het opstarten, en partities
met een dumpnummer van 0 worden niet
geback-upped door &man.dump.8;. Het is niet gewenst dat
fsck de
nullfs koppelingen controleert
of dat dump een back-up maakt
van de alleen-lezen nullfs koppelingen van de jails.
Daarom worden ze gemarkeerd met 0 0
in de laatste twee kolommen van elke
fstab regel hierboven.Configureer de jails in
/etc/rc.conf:jail_enable="YES"
jail_set_hostname_allow="NO"
jail_list="ns mail www"
jail_ns_hostname="ns.example.org"
jail_ns_ip="192.168.3.17"
jail_ns_rootdir="/usr/home/j/ns"
jail_ns_devfs_enable="YES"
jail_mail_hostname="mail.example.org"
jail_mail_ip="192.168.3.18"
jail_mail_rootdir="/usr/home/j/mail"
jail_mail_devfs_enable="YES"
jail_www_hostname="www.example.org"
jail_www_ip="62.123.43.14"
jail_www_rootdir="/usr/home/j/www"
jail_www_devfs_enable="YES"De reden dat de
jail_name_rootdir
variabele verwijst naar de /usr/home directory in
plaats van naar /home komt doordat het
fysieke pad van de /home directory op een
standaard &os; installatie verwijst naar /usr/home. De
jail_name_rootdir
variabele mag niet ingesteld
worden op een symbolische link, omdat dan de jail
weigert te starten. Gebruik het &man.realpath.1;
programma om te zien welke waarde ingesteld moet worden
voor deze variabele. Zie de &os;-SA-07:11.jail
waarschuwing voor meer informatie.Creeër de benodigde koppelpunten voor het
alleen-lezen bestandssysteem van elke jail:&prompt.root; mkdir /home/j/ns /home/j/mail /home/j/wwwInstalleer de beschrijfbare template in elke jail.
Let op het gebruik van sysutils/cpdup, wat helpt
om een goede kopie te maken in elke directory:&prompt.root; mkdir /home/js
&prompt.root; cpdup /home/j/skel /home/js/ns
&prompt.root; cpdup /home/j/skel /home/js/mail
&prompt.root; cpdup /home/j/skel /home/js/wwwIn deze fase zijn de jails gebouwd en voorbereid om
op te starten. Koppel eerst de benodigde bestandssystemen
voor elke jail, en start ze vervolgens door gebruik te
maken van het rc-bestand voor de jail:&prompt.root; mount -a
&prompt.root; service jail startDe jails zouden nu gestart moeten zijn. Om te zien of ze
correct gestart zijn, wordt het &man.jls.8; programma
gebruikt. Het resultaat hiervan ziet er ongeveer als volgend
uit:&prompt.root; jls
JID IP Address Hostname Path
3 192.168.3.17 ns.example.org /home/j/ns
2 192.168.3.18 mail.example.org /home/j/mail
1 62.123.43.14 www.example.org /home/j/wwwOp dit moment, zou het mogelijk moeten zijn om op elke
jail aan te loggen, nieuwe gebruikers toe te voegen en het
configureren van daemons. De JID kolom
geeft het identificatie nummer voor elke gestarte jail.
Gebruik het volgende commando om administratieve commando's
uit te voeren in de jail met het JID
3:&prompt.root; jexec 3 tcshUpgradenNaarmate de tijd verstrijkt komt de noodzaak om het
systeem te updaten naar een nieuwere versie van &os;,
danwel vanwege een veiligheids waarschuwing danwel vanwege
nieuwe mogelijkheden die geïmplementeerd zijn en nuttig
zijn voor de jails. Het ontwerp van deze opzet levert een
makkelijke manier voor het upgraden van jails. Daarnaast
minimaliseert het de down-time, omdat de jails
alleen in de allerlaatste minuut uitgeschakeld worden. Het
geeft ook de mogelijkheid om terug te keren naar een oudere
versie, voor het geval er problemen ontstaan.De eerste stap is het upgraden van het host systeem
zelf, waarna een nieuwe alleen-lezen template gemaakt
wordt in /home/j/mroot2.&prompt.root; mkdir /home/j/mroot2
&prompt.root; cd /usr/src
&prompt.root; make installworld DESTDIR=/home/j/mroot2
&prompt.root; cd /home/j/mroot2
&prompt.root; cpdup /usr/src usr/src
&prompt.root; mkdir sHet installworld doel
creeërt een aantal onnodige directories, welke
verwijderd moeten worden:&prompt.root; chflags -R 0 var
&prompt.root; rm -R etc var root usr/local tmpMaak opnieuw de beschrijfbare symbolische linken voor
het hoofd bestandssysteem:&prompt.root; ln -s s/etc etc
&prompt.root; ln -s s/root root
&prompt.root; ln -s s/home home
&prompt.root; ln -s ../s/usr-local usr/local
&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
&prompt.root; ln -s s/tmp tmp
&prompt.root; ln -s s/var varDit is het juiste moment om de jails te stoppen:&prompt.root; service jail stopOntkoppel de originele bestandssystemen:&prompt.root; umount /home/j/ns/s
&prompt.root; umount /home/j/ns
&prompt.root; umount /home/j/mail/s
&prompt.root; umount /home/j/mail
&prompt.root; umount /home/j/www/s
&prompt.root; umount /home/j/wwwHet beschrijfbare gedeelte van de jail is
gekoppeld aan het alleen-lezen gedeelte
(/s) en moet
derhalve eerst ontkoppeld worden.Verplaatst het oude alleen-lezen systeem en vervang
het door de nieuwe systeem. Het oude systeem dient als
reservekopie voor het geval er iets misgaat. De
naam moet het zelfde zijn als bij de installatie van het
nieuwe systeem. Verplaats de &os; Ports Collectie naar
het nieuwe bestandssysteem om ruimte en inodes te
besparen:&prompt.root; cd /home/j
&prompt.root; mv mroot mroot.20060601
&prompt.root; mv mroot2 mroot
&prompt.root; mv mroot.20060601/usr/ports mroot/usrOp dit moment is het alleen-lezen gedeelte klaar,
de enig overgebleven taak is nu om alle bestandssystemen
opnieuw te koppelen en om de jails weer op te starten:&prompt.root; mount -a
&prompt.root; service jail startGebruik het &man.jls.8; programma om te zien of de jails
correct zijn opgestart. Vergeet niet om in elke jail het
mergemaster programma te starten. Ook moeten de configuratie
bestanden en de rc.d scripts geupdate worden.