Oke, dus welke partities heb je nodig? Goed, een aantal besturingssystemen geloven niet in het booten vanaf logische partities om volstrekt onbegrijpelijke redenen. Dus je wilt waarschijnlijke je primaire partities reserveren als bootpartities voor je MS-DOS, OS/2 en Linux of wat je ook gebruikt. Denk eraan dat één partitie benodigd is voor een uitgebreide partitie, die als een container optreedt voor de rest van je disk met logische partities.
Het booten van besturingssystemen is een real-mode aangelegenheid die BIOS'sen en 1024 cylinder beperkingen met zich meebrengt. Dus je wilt waarschijnlijk al je bootpartities in de eerste 1024 cylinders van je harddisk plaatsen, gewoon om problemen te voorkomen. Nogmaals, lees de "large-disk" Mini-Howto voor de bloedige details.
Om Linux te installeren heb je op z'n minst één partitie nodig. Als de kernel vanaf deze partitie wordt geladen (bijvoorbeeld door LILO), moet deze partitie leesbaar zijn door je BIOS. Als je andere mogelijkheden gebruikt om je kernel te laden (bijvoorbeeld een opstartdiskette of LOADLIN.EXE, een op MS-DOS gebaseerde Linux loader) kan de partitie zich overal bevinden. In ieder geval zal deze partitie van het type 0x83 "Linux native" zijn.
Je systeem zal wat swapspace nodig hebben. Tenzij je naar bestanden swapt, zul je een hiervoor toegewezen swappartitie nodig hebben. Aangezien deze partitie alleen door de Linux kernel wordt benaderd en de Linux kernel niet aan PC BIOS ontoereikendheden leidt, kan de swap partitie overal worden gepositioneerd. Ik raad je aan er een logische partitie voor te gebruiken (/dev/?d?5 en hoger). Toegewezen Linux swap partities zijn van het type 0x82 "Linux swap".
Dit zijn minimale partitie vereisten. Het zou handig kunnen zijn om meer partities voor Linux aan te maken. Lees verder.
Als je hebt besloten om een toegewezen swap partitie te gebruiken, wat in het algemeen een Goed Idee [tm] is, volg dan deze richtlijnen voor het ramen van z'n grootte:
Dus voor een configuratie met 16 MB RAM, is geen swap nodig voor een minimale configuratie en meer dan 48 MB swap is waarschijnlijk nutteloos. De exacte hoeveelheid geheugen hangt af van de mix aan applicaties op de machine (wat verwachtte je anders?).
Samenvatting: Plaats je swap op een snelle disk met veel koppen die het niet druk heeft met andere zaken. Als je meerdere disks hebt: Splits swap en verspreid het over al je disks of zelfs verschillende controllers.
Zelfs beter: Koop meer RAM.
Diskruimte wordt door het besturingssysteem in eenheden blokken en fragmenten blokken beheerd. In ext2 moeten fragmenten en blokken even groot zijn, dus we kunnen deze verhandeling tot blokken beperken.
Bestanden zijn er in elke grootte. Ze eindigen niet op blokgrenzen. Dus met ieder bestand wordt een deel van het laatste blok van ieder bestand verspild. Ervan uitgaande dat de grootte van bestanden willekeurig is, wordt er bij benadering een half blok verspild voor ieder bestand op je disk. Tanenbaum noemt dit "interne fragmentatie" in zijn boek "Operating Systems".
Je kunt het aantal bestanden op je disk raden door het aantal in beslag genomen inodes op een disk. Op mijn disk
# df -i
Filesystem Inodes IUsed IFree %IUsed Mounted on
/dev/hda3 64256 12234 52022 19% /
/dev/hda5 96000 43058 52942 45% /var
bevinden zich ongeveer 12000 bestanden op /
en ongeveer 44000
bestanden op /var
.
Bij een blokgrootte van 1 KB, gaat ongeveer 6+22 = 28 MB diskruimte
verloren in de laatste blokken van bestanden.
Als ik een blokgrootte van 4 KB had uitgekozen,
had ik 4 keer zoveel ruimte verloren.
Gegevenstransport is echter sneller voor grote aaneengesloten blokken gegevens. Daarom probeert ext2 ruimte in eenheden van 8 aaneengesloten blokken vooraf toe te wijzen aan groeiende bestanden. De ongebruikte vooraf toegewezen ruimte wordt vrijgegeven als het bestand wordt gesloten, dus er wordt geen ruimte verspild.
Het dwingt het besturingssysteem de toegang naar een disk te splitsen en de disk om de kop te verplaatsen. Dit wordt "externe fragmentatie" genoemd of eenvoudigweg "fragmentatie" en het is een algemeen probleem met DOS bestandssystemen.
ext2 heeft verscheidene strategien om externe fragmentatie te voorkomen. Normale fragmentatie is in ext2 geen groot probleem, zelfs niet op zwaar gebruikte partities zoals een USENET nieuwsspool. Ondanks dat er een tool voor defragmentatie is voor ext2 bestandssystemen, gebruikt niemand het ooit en het is niet bijgewerkt met de huidige release van ext2. Gebruik het op eigen risico.
Het MS-DOS bestandssysteem is goed bekend om z'n pathologische beheer van diskruimte. In samenwerking met de bodemloze buffer cache die door MS-DOS wordt gebruikt, zijn de effecten van bestandsfragmentatie op de performance zeer opmerkelijk. DOS gebruikers zijn gewend aan het iedere paar weken defragmenteren van hun disks en een aantal hebben zelfs een ritueel geloof met betrekking tot defragmentatie ontwikkeld. Geen van deze gewoonten zou naar Linux en ext2 moeten worden overgedragen. Linux native bestandssystemen hoeven niet te worden gedefragmenteerd bij normaal gebruik en dit behelst iedere voorwaarde met tenminste 5% vrije ruimte op een disk.
Het MS-DOS bestandssysteem is ook bekend om het verlies van grote hoeveelheden diskruimte te wijten aan interne fragmentatie. Voor partities groter dan 256 MB, wordt de DOS blokgrootte zo groot dat ze niet langer bruikbaar zijn (Dit is tot op zekere hoogte gecorrigeerd met FAT32).
ext2 dwingt je niet om grote blokken voor grote bestandssystemen te kiezen, behalve voor zeer grote bestandssystemen in de range 0.5 TB (dat is terabytes waarbij 1 TB gelijk is aan 1024 GB) en daarboven, waar kleine blokgroottes inefficient worden. Dus in tegenstelling tot DOS is het niet nodig om grote disks in meerdere partities onder te verdelen om de blokgrootte laag te houden. Gebruik zo mogelijk de 1 KB standaard blokgrootte. Voor een aantal partities zou het kunnen dat je met een 2 KB blokgrootte wilt experimenteren, maar ga er maar vanuit een aantal zelden in acht genomen bugs tegen te komen: De meeste mensen gebruiken de standaardwaarde.
Met ext2, zouden partitionerings beslissingen moeten worden geleid door backup overwegingen en om externe fragmentatie door de verschillende levensduur van bestanden te voorkomen.
Bestanden hebben een levensduur. Nadat een bestand is aangemaakt, zal het
een tijd op het systeem blijven bestaan en vervolgens worden
verwijderd. De levensduur van een bestand varieert nogal op het systeem
en is gedeeltelijk afhankelijk van de padnaam van het bestand.
Bijvoorbeeld, bestanden in
/bin
, /sbin
, /usr/sbin
, /usr/bin
en vergelijkbare
directory's zullen waarschijnlijk een zeer lange levensduur hebben:
vele maanden en meer.
Bestanden in /home
zullen vermoedelijk een gemiddelde levensduur
hebben: verscheidene weken of zoiets.
Bestanden in /var
bestaan gewoonlijk maar kort: Bijna geen
enkel bestand in /var/spool/news
zal langer dan een paar dagen
behouden blijven, bestanden in /var/spool/lpd
meten hun levensduur
in minuten of minder.
Voor het backuppen is het handig als de hoeveelheid dagelijkse backup kleiner is dan de capaciteit van een enkel backup medium. Een dagelijkse backup kan een complete backup of een incrementele backup zijn.
Je kunt besluiten om je partitiegroottes klein genoeg te houden zodanig dat ze volledig op een backupmedium passen (kies dagelijks volledige backups). In ieder geval zou een partitie klein genoeg moeten zijn dat z'n dagelijkse delta (alle gewijzigde bestanden) op één backupmedium passen. (kies voor incrementele backup en ga er maar vanuit de backup media voor de wekelijkse/maandelijkse volledige dump te moeten wisselen - geen onbeheerde bewerking mogelijk).
Je backupstrategie hangt af van die beslissing.
Als je diskruimte koopt, denk er dan aan voldoende geld voor backup op zij te leggen. Niet gebackupte gegevens zijn waardeloos! De kosten van reproduceren van gegevens zijn voor eigenlijk iedereen veel hoger dan de backupkosten!
Voor performance is het handig om bestanden met verschillende
levensduur op verschillende partities te houden.
Op deze manier kan het zijn dat de kort bestaande bestanden
op de nieuws-partitie heel erg kunnen zijn gefragmenteerd.
Dit heeft geen impact op de performance van de /
of /home
partitie.