Drift/Partisjonering

From Programvareverkstedet
Jump to: navigation, search

Dette dokumentet skal være en kort innføring i hvilke typer partisjonering som finnes, hvordan disse kan brukes sammen, og foreslå verktøy for å modifiere partisjonene. -- steinarh@pvv.org

PC-partisjoner (primær)

Det er 4 PC-partisjoner per disk. (Ved å sette størrelse til 0 sier du at partisjonen ikke er i bruk.) Partisjonstabellen ligger lagret i MBR (Master Boot Record.)

En av disse skal være merket «aktiv». Det betyr at bootprogrammet i MBR skal overlate kontrollen til bootprogrammet på partisjonen. (Enkelte bootprogrammer f.eks LILO bryr seg imidlertid ikke om dette.)

Alle partisjonene har en «sysid» eller «type», som er et tall som forteller hvaslags OS eller filsystem som ligger inni partisjonen.

Programmer: Alle fdisk-programmer klarer dette. Linux sin fdisk anbefales spesielt.

Extended og Logiske PC-partisjoner

Extended/Logiske-partisjoner partisjoner er et hack for å få mer en 4 partisjoner på en disk. En (og bare en) av primær-partisjonene på en disk kan ha sysid=5 som betyr at dette er en extended-partisjon.

En Extended-partisjon deles videre opp i logiske partisjoner etter et «lenket-liste»-prinsipp. På «begynnelsen» av hver logiske partisjon ligger informasjon om størrelse, aktiv, sysid osv, men også en «peker» til hvor på disken neste logiske partisjon ligger. Det er derfor i teorien ingen begrensning på antall partisjoner (i praksis varierer grensen for hvert enkelt OS.)

Programmer: Slett ikke alle fdisk-programmer klarer dette. Linux sin fdisk anbefales spesielt.

BSD-disklabel, (slices)

(OBS! FreeBSD bruker i all dokumentasjon ordene partisjon/slice på motsatt måte av det jeg gjør her. Jeg har valgt å holde med til begrepene slik de brukes i Solaris og flere andre unixer, fordi ordet partisjon er mest innarbeidet som PC-Type-partisjon.)

På tradisjonelle UNIX-plattformer ligger disklabelen først på disken, som eneste type partisjonering.

På PC-systemer ligger normalt disklabel-partisjoneringen inne i en (normalt primær) PC-partisjon. (FreeBSD og HURD støtter også disklabelpartisjonering inni logiske partisjoner.) Vanligvis vil et OS kun finne slicene på den første PC-partisjonen med riktig sysid og disklabel. (Igjen, FreeBSD og HURD støtter og bruk av disklabelpartisjonering av flere PC-partisjoner på samme disk.)

Alle slicene/partisjonene i en disklabel er ment å bli brukt av samme OS, så du har ikke noe som ligner på sysid. (Men du kan derimot sette defaultparametre for filsystemer som lages på en slice (*BSD) eller parametre som forteller hva partisjonen blir brukt til root/home/swap/backup (Solaris).)

En BSD-disklabel deler opp disken i opptil 8 «partisjoner» eller «slices». Disse navngies normalt 0-7 (Solaris) eller a-h (alle BSD). (OpenBSD/NetBSD har har 16 partisjoner a-p på noen platformer.) Man har følgende konvensjoner for bruk av partisjonsnumrene (dette er konvensjoner og ikke absolutte regler, ofte godtar OSet at du avviker fra dem.):

0/a: root/boot-partisjonen (bootprogrammet leter etter kjernen på denne partisjonen.)

1/b: swap.

2/c: «backup»-partisjon som spenner over hele «disken» (dvs den delen av disken som disklabelen rår over.) På OpenBSD er dette likevel hele disken.

d: På NetBSD/i386 (og antagelig ingen andre?) Er dette en kjempepartisjon som dekker hele disken, inkludert alle andre PC-partisjoner.

Solaris/x86 har i tillegg spesialpartisjonene (8 boot og 9 alternates)

Programmer:

  • BSD bruk "disklabel"

SunOS/Solaris bruk "format" IRIX bruk "fx"

Sammenslåtte partisjoner

Den del OS har teknikker for å slå sammen mindre partisjoner til større enheter. For at dette skal brukes må du allerede ha lagd (på en måte som beskrevet ovenfor) de partisjonene som skal slåes sammen.

Det er flere måter å slå sammen partisjoner på: 1. konkatenering. (legge partisjonene (hele) etterhverandre.) 2. striping(RAID-0). (legge små biter av partisjonene etter hverandre) 3. speiling(RAID-1). (en partisjon er en kopi av en annen.) 4. RAID-5/RAID-4. (striping med paritet.)

Alle systemer støtter konkatenering. Enkelte systemer støtter også andre metoder. Alle andre metoder enn konkatenering, krever at partisjonene du setter sammen er like store.

I tillegg er kobinasjonen RAID-1+0 (striping og speiling) vanlig for å få sikkerheten ved speiling sammen med striping.

[om utslag i ytelse på søking/transfer og lesing/skriving]

Programmer: FreeBSD/NetBSD: ccdconfig Linux: /etc/raidtab, /proc/mdstat, mk{raid,pv}, raid* IRIX: /etc/lvtab, mklv NetBSD: raidctl

Dynamisk partisjonering. (PP-basert)

Brukes av AIX og HP-UX og Linux (LVM).

Dette består i at du dedikerer hver enkelt disk ("Physical Volume") til en volumgruppe. En volumgruppe kan bestå av mange disker.

Alle diskene i en volumgruppe er oppdelt i et stort antall like store PP-er. (Physical Partition) PP-størrelsen er normalt 4MB eller 8MB.

På en volumgruppe kan du lage "Logiske Volumer" (partisjoner). Et logisk volum består av mange PP-er fra en og samme volumgruppe.

Programmer: HP-UX: vgdisplay, lvdisplay, pvdisplay og andre vg* lv* pv* AIX: lspv, lsvg, lslv og andre *pv *vg *lv

Dynamisk partisjonering. (Veritas / subdisk-/plex-basert)

Du har "disker", som på veritas ligger i en "diskgruppe". På vinum er en "disk" egentlig en partisjon.

En "subdisk" er en sammenhengende range av data på en "disk". Det er ingen grense for hvor mange subdisker du kan ha på en disk. Subdisker skal ikke overlappe.

En "plex" er en samling av subdisker satt sammen på en av flere måter: 1. En eller flere konkaternerte subdisker. (Concatenated plex) 2. Flere stripede subdisker. (Striped plex) 3. Subdisker satt sammen med RAID-5, altså stripet med paritet. (RAID-5 plex)

"volumer" eller "partisjoner" består av en eller flere plexer. Plexene er duplikater av "volumets" data. Dersom du har 2 plexer som hver er 1GB store. Så får du en 1GB stor partisjon som er mirroret.

Programmer: FreeBSD: vinum Solaris(Veritas): vxprint og andre vx*