230 likes | 304 Views
File System. Filsystemet og harddisken. Diskens opbygning Den Fysiske Disk. En hard-disk består af en til flere plader For hver pladeside er der et læse/skrive hoved Disken roterer med en konstant hastighed (5.400, 7.200 eller 10800 RPM). Diskens geometri. Tilgang til sectoren.
E N D
File System Filsystemet og harddisken
Diskens opbygningDen Fysiske Disk • En hard-disk består af en til flere plader • For hver pladeside er der et læse/skrive hoved • Disken roterer med en konstant hastighed (5.400, 7.200 eller 10800 RPM)
Tilgang til sectoren • For at læse/skrive data skal disk-controlleren have oplysninger om Cylindernr., Tracknr. og Sector-nr. • Access-tiden til en specifik sector, og dermed data der skal læses/skrives består af 4 dele: • Seek-time – flytning af armen til aktuelle Cylinder – gennemsnitlig tid omkring 5 – 10 msec • Valg af læse/skrive hoved – ren elektrisk, ubetydelig • Rotational delay – ventetid ved rotationen, at rigtige sector passerer læse/skrive-hovedet – omkring 3 – 6 msec • Overførsel af data 50 – 60 MB/sec; ca 0,02 msec for 1024 bytes • Hver sector har en header, hvor sectorens adresse er lagret – Dette gøres ved diskens low-level formattering – typisk fra fabikkens side
Interleave factor and skewing distance • Normalt lagres data på harddisken i sectorer efter hinanden, på samme spor – og cylinder efter cylinder • Interleave factor • En hardisk controller kan læse en sector eller et helt spor • Ved sector-vis læsning/skrivning skal controllogikken give ny command, administrere buffere o.lign. – dette kan ikke klares under rotationstiden fra en sector til den næste. • I sector nummereringen springes en eller flere sectorer over, for at elektronikken kan følge med rotationshastigheden • Skewing distance • For at læse/skrive næste sector på efterfølgende cylinder, skal disk-armen flyttes. Tiden for denne flytning, bevirker at flere sectorer er passeret • For ar tage højde for denne forsinkelse, nummereres sectorerne i efterfølgende cylinder forskudt i forhold til forrige
Interleave factor and skewing distance forts. • Interleave factor- her en: • Skewing distance – her 2
File Management System (FMS) • I/O subsystem (kap 10) – beskrives i kap 11 som File mamanegent System, og hertil kan Driver-rutinerne (device drivers) også henføres
Partitions and filesystem • En harddisk rummer i dag flere hundrede giga bytes. • Oftest deles en harddisk op i flere logiske disks – partitions, der hver i sær, set fra File manegers side, betragtes som selvstændige harddiske • Boot block – indeholder oplysninger om diskens opbygning; sectorstørrelse, ant. sectorer/spor, antal cylindere, antal spor, samt adressen på programmet der skal loades: Operativsystem eller boot-manager • Partition table – partitionernes placering (cylinder nr.) og størrelse • Usable area – her kan der placeres et Fil System, der set fra brugerens synspunkt er en ”selvstændig harddisk” – I Windows drive c:, d: o.s.v. og i Unix en ”harddisk” (mount cmd)
Filsystemet generelt • Filsystemet skal forberedes/dannes før brugeren kan anvende det – Windows: format cmd, Unix: mkfs cmd • Filsystemet består af directories (folders) og selve filens data. Disse placeres normalt hver for sig • Directories indeholder beskrivelse af filen: • Ejer • Datoer (oprettelse, ændring, sidst tilgået, sidste back-up) • Beskyttelse – Access Rights • Fil type – hvad indeholder filen • Filens størrelse • Filens fysiske placering på disken • Data i filen
Allokering af plads til filens data - generelt • Sammenhængende allokering (Contiguous al.) • Alle sectorer til filen ligger efter hinanden • Den næste fil ligger i umiddelbart forlængelse • Directory indhold: Filens begyndelses adresse og længde • Hvis filen skal udvides, skal der findes plads et andet sted på disken • Mulighed for stor ekstern fragmentering, ingen eller lille intern fragmentering • Linked Allokering • Filen ligger spredt, men hvor adressen på næste område findes i slutningen af det forrige område • Directory indhold: som ved Sammenhængende al. • God metode hvis alle data skal tilgås sekventielt, men ikke hvis filens data skal tilgåes ”Random” – der ønskes at springe rundt i filen efter data • Mindre ekstern fragmentering, ingen eller lille intern fragmentering • Indexed Allokering • Den metode der primært anvendes i nutidige filsystemer • Hele data området inddeles i lige store Blokke, typisk 1024, 2048, 4096 bytes. • En blok er altid et antal sectorer placeret efter hinanden på samme spor • Directoriet indeholder en liste med de bloknumre der hører til filen • Ingen ekstern fragmentering, lille intern fragmentering (max blokstørrelsen – 1)
Boot block Superblock I-node’s Data (directories og filer) Fil systemet i Unix • Boot block :som før omtalt • Superblock: Oplysninger om blokstørrelse (allokerings faktor), liste over free I-nodes • Liste over free data blokke • I-nodes: Oplysninger om den enkelte fil • Directory: Filnavn ell. Directory navn, samt nummer på den I-node der beskriver filen
Filstør- relsen Mode Bits User ID Group ID Link Count Datoer: ændret, refereret,opdateret Bloknumre til data blokke -Index I-node indhold • Mode-bits (4 bits): • Filetype – ordinary file, directory, special-files: (char. eller block), Symbolic Link, Named Pipes • Access-rights (9 bits): R,W,X for user, group, others • SUID-bit – Set User ID • GUID-bit – Set Group ID • Link Count – Antal links til denne I-node – Hvornår kan I-noden slettes
Listen over blok numre • 12 direkte bloknumre • 1 1-level indirekte • 1 2-level indirekte • 1 3-level indirkte
En anden detaljeret forklaring om allokering og administration af fri plads i Unix File System • Link til animeret forklaring og præsentation af Unix file System; Specielt allokering
Directoriet i Unix • I Unix indeholder et directory blot navnet på filer og sub-directories samt nummeret på de I-noder der beskriver filen/sub-directoriet • Ved delete af en fil/directory fjernes blot navnet i directoriet • Alle directories bliver ”født” med navnene . og .. , der peger på hhv. directoriet selv og på forældre directoriet • I-noden der beskriver filen fjernes først når link-count er 0 (for directories 2) • Root-directory for filsystemet er placeret på en fast location, f.eks. henvisning via I-node 2
Brugerens syn på Unix filsystemet • Hierakisk filstruktur • Brugeren ser kun et sammenhængende filsystem (til for forskel fra window’s C:-drev, D:-drev osv. , hvor brugeren skal vide på hvilken harddisk filen befinder sig) • Andre harddiske ”mountes” på Root-file- system
Operationer på fil systemet • Unix commands: • Opret directory – mkdir • Delete directory – rmdir • Skift aktuelle directory – cd • Slet fil – rm • Flyt fil til andet directory- mv • Kopier fil – cp • Link, opret nyt pathname til eksisterende fil – ln [-s] (hardlink eller symbolik link)
Operationer på data i filenKald fra et program (C kald) • Bemærk at syntaksen på nedenstående kald ikke er korrekt i hht. C • Create() – Opret en ikke eksisterende fil • Der skal angives et filnavn evt. Pathname • Opret I-noden og placer navnet i Directoriet med I-node henvisningen • Create returnerer en file-descriptor • Hvis create() angiver en eksisterende fil bliver denne trunkeret til 0 bytes • Open() – open en eksisterende fil • Der skal angives et filnavn evt. pathname, flags og evt. access-rights • Flags angiver readonly, writeonly eller readwrite • FMS checker om filen eksisterer og om adgangsrettigheder er OK • Filens I-node indlæses i main-memory • Open returnerer en filedescriptor • Read(fd, buffer, length) • Read returnerer længden på det indlæste evt. EOF • Write(fd, buffer, length) • Write returnerer 0 hvis skrivningen lykkes • Lseek(fd, placering) • Placer Filepointer til et bestemt sted i filen evt. I slutningen for at appende data ved write • Close(fd) • Udskriv den sidste buffer; opdater I-node; frigiv filens ressourcer i main-memory
Datastrukturer internt i operativsystemet ved file access • File system descriptors indeholder bl.a. Incore I-nodes • File meta descriptors indeholder bl.a. filepointer, open mode (read/write) og bufferadresser
Sikkerhed i Fil Systemet • Adgangskontrol • Dette opnås i Unix gennem allerede berørte rettigheder for User, Group og Others (r,w,x) • Root (Superuser) har alle rettigheder • se evt. på Windows Access-Control • Fysisk sikkerhed • Strømsvigt • Disk Crash
Fysisk sikkerhed ved strømsvigt • Problemet: Den store mængde af data opbevaret i RAM under normal drift, specielt i operativsysemet • Tænk på logikken for at allokere plads? – Hvad med oprettelsen af ny fil? - Hvad berøres på disken? Superblock, I-node, Directory • Buffere • Brugerens buffere der endnu ikke er fyldte og dermed frigivet til skrivning • Operativsytemets store buffer-puljer af hensyn til optimering • I-nodes kopier i RAM • for filer der arbejdes på – Open og endnu ikke Closed
Fysisk sikkerhed ved strømsvigt forts. • UPS – Uninterruptable Power Sypply • Batteri back-up – anvendes hovedsagelig ved servere – større computer installationer • Check filsystemet for integritet – typisk ved Boot – Unix ->fsck; Windows -> checkdisk • En tidskrævende process, specielt ved store filsystemer • Journaling File System – Linux eks. EXT3-file-system – Speeder restart op • Oprethold en log-fil med informationer omkring operationer på Superblock, I-nodes, Directories • Samme ide som transaktionsloggen i databasesystemer
Fysisk sikkerhed i filsystemet • Disk Crash – disk enheden bryder sammen • Sikring gennem back-up • RAID-systemerne (level 2 – 5) • RAID – Redundant Array of Inexpensive Disks • RAID-levels spænder fra spejling (Mirrors) til systemer med Error Correcting Codes (f.eks. Hamming)