TIEDOSTOJEN HALLINTA. II:ssa?

Samankaltaiset tiedostot
TIEDOSTOJEN HALLINTA Käytännön esimerkit

Sisältöä. Linux. Tiedostojen yhteiskäyttö. TIEDOSTOJEN HALLINTA Käytännön esimerkit. LINUX Tiedostojärjestelmät. Käyttöjärjestelmät

Seuraavaksi KJ-II:ssa [Stal 05] [Tane 01] [DDS 04] Linux

Sisältöä. TIEDOSTOJEN HALLINTA Käytännön esimerkit. Ch [Stal 05] Ch , [Tane 01] Ch 20.7 [DDC 04] Linux.

Ch [Stal 05] Ch , [Tane 01] Ch 20.7 [DDC 04] Ch [Stal05]

u saantimenetelmät u kirjanpito vapaista lohkoista (taltiolla!) u hierarkkinen hakemistorakenne: kirjanpito tdstoista u tdstojen käyttö

Sisältöä. Milloin? Vuorotus. Kiinteä ja vaihteleva prioriteetti. Kertaus. Käyttöjärjestelmät. Syksy 2006 / Luento

Käyttöjärjestelmät LUENTO 23. Kertaus

Sisältöä. Milloin? Vuorotus. Kiinteä ja vaihteleva prioriteetti. Käyttöjärjestelmät, Luento 24. Kertaus. Syksy 2007, Tiina Niklander 24-1

Sisältöä. Kertaus. Vuorotus I/O Tiedostojärjestelmä Hajautettu prosessi Tietoturva. Käyttöjärjestelmät, Luento 24. Syksy 2007, Tiina Niklander 24-1

Luento 3. Timo Savola. 7. huhtikuuta 2006

RJESTELMÄ OSA 2 Stallings, Luku PALVELUPYYNNÖT. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Käyttöjärjestelmät II

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Käyttöjärjestelmät II

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Käyttöjärjestelmät: prosessit

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Unix-perusteet. Tiedosto-oikeudet

Linux-ylläpito, kevät -10. Jani Jaakkola

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Booting. Booting, multimedia systems. Exam issues. Key problem: How do you initiate a system using only itself?

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record)

Stallings, Luku

Osio 3: Siirräntä ja tiedostojärjestelmä

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Kernel (Fig 4.10 [Stal 05]) Operating Systems Examples and Process Management

Päivitys käyttäen USB-tikkua

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät, Luento 16

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Luento 9 Järjestelmän ulkoinen muisti

UNIX / Solaris MUISTINHALLINTA

Käyttöjärjestelmät II. Muistinhallinnan esimerkit. UNIX / Solaris MUISTINHALLINTA. UNIX / Solaris (SVR4) UNIX/Solaris: Tietorakenteita

Käyttöjärjestelmät TIEDOSTOJÄRJESTELMÄ. Stallings, Luku KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 8-1

Unix-perusteet. Varmistaminen, tiedon pakkaaminen ja tiivistäminen

HELIA 1 (14) Outi Virkki Tiedonhallinta

Luento 2: Tiedostot ja tiedon varastointi

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät

Luento 9 Järjestelmän ulkoinen muisti

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

TK Palvelinympäristö

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Backup Exec 3600 Appliance

OSI ja Protokollapino

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Hakemistojen sisällöt säilötään linkitetyille listalle.

UNIX / Solaris (SVR4)

Varmuuskopiointi: image

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

TURVAVÄYLÄSEMINAARI. Erilaiset kenttäväylät ja niiden kehitys Jukka Hiltunen

Luento 9 Järjestelmän ulkoinen muisti

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

D B. Tiedostojen käsittely

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Muistihierarkia Kiintolevyt I/O:n toteutus

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola II:ssa?

Internet Protocol version 6. IPv6

Luento 9 Järjestelmän ulkoinen muisti

Windows ja Linux. Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma

Luento 9 Järjestelmän ulkoinen muisti

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

UNIX / Solaris (SVR4)

Luento 1 Tietokonejärjestelmän rakenne

Salasanan vaihto uuteen / How to change password

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

Choose Finland-Helsinki Valitse Finland-Helsinki

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Nimeäminen. Kari Systä. Distributed systems - principles & paradigms kirjan luku /Kari Systä OHJ-5010/Hajautettujen perusteet 1

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Directory Information Tree

Nimeäminen. Distributed systems - principles & paradigms kirjan luku 5. Kari Systä

LUENTO 2. u moniajoa monen käyttäjän ympäristössä, oma KJ versio. u sisältää keskeiset tietoliikenneprotokollat

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Kurssin verkkoalueet

Makrojen mystinen maailma lyhyt oppimäärä

ELM GROUP 04. Teemu Laakso Henrik Talarmo

CE (versio 3) tukee neljää ajurityyppiä: native, stream interface, USB ja NDIS.

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Maventa Connector Käyttöohje

CUDA. Moniydinohjelmointi Mikko Honkonen

Järjestelmän ulkoinen muisti I/O

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Lyhyt kertaus osoittimista

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

Transkriptio:

Käyttöjärjestelmät II LUENTO 10 TIEDOSTOJEN HALLINTA Käytännön esimerkit Ch 12.8-9 9 [Stal[ 05] Ch 10.6.4, 11.6-7 7 [Tane[ 01] Ch 20.7 [DDC 04] 1 Mitä KJ-I:ss I:ssä / KJ-II:ssa II:ssa? KJ-I Tiedostojen organisointi, hakemistot Tiedostojen yhteiskäyttö, tietueet ja lohkot Levytilan hallinta UNIX: tiedostojärjestelmä Seuraavaksi KJ-II:ssa [Stal 05] [Tane 01] [DDS 04] Linux u Virtual File System (Ch. 12.8 [Stal 05]) u ext2fs (Ch 6, Ch 11.6 [Tane 01], Ch 2.7 [DDS 04]) u NFS, Network File System (Ch 10.6 [Tane 01]) Windows u Journaling File System u NTFS - W2K File System (Ch 12.9 [Stal 05], Ch 11.7 [Tane 01]) 2 KJ-II K2006 / Teemu Kerola (lu 10) 1

Käyttöjärjestelmät t II LINUX Tiedostojärjestelmät 3 Linux Tiedosto = tavujono u ei tietueita, ei jaksoja u organisointi sovelluksissa Fig. 6-16 [Tane 01] Tiedostonimi ja attribuutit erillään u attribuutit = i-solmu (i-node, index node) Hakemisto u tiedosto, jossa pareja (tiedostonimi, i-solmunumero) Symbolinen linkki (soft) u tiedosto, jossa tiedoston polkunimi Bovet D.P., Cesati M.: Understanding the LINUX KERNEL. O Reilly, 2001. 4 KJ-II K2006 / Teemu Kerola (lu 10) 2

[Tane01] 5 Tiedostojen yhteiskäytt yttö Sama tiedosto käytössä monta kertaa Hard link u monta omistajaa (vai monella omistajan oikeudet?) u kaikilla samat oikeudet F omistaja poistaa muilla silti käytössä normaalisti Soft link eli symbolinen linkki u tiedoston tyyppi: symbolinen linkki u tiedoston sisältö: merkkijono, joka indikoi varsinaisen tiedoston u vain yksi omistaja F omistaja poistaa muiden linkit epäkelpoja Fig. 6-18 [Tane 01] Fig. 6-19 [Tane 01] 6 KJ-II K2006 / Teemu Kerola (lu 10) 3

[Tane 01] 7 Linux VFS (virtual( file system) Tuki useille tiedostojärjestelmille Fig. 12.15 [Stal 05] u register_filesystem(), unregister_filesystem() Fig. 12.16 [Stal 05] u ext2fs, procfs, FAT, NTFS, minix, NFS, smb,... u superlohko F määrittelee tiedostojärjestelmän F oma paikka levyllä Tarjoaa sovelluksille yhtenäisen rajapinnan u open(), read(), write(), seek(), close(),... u kaikki VFS n kautta viitattu tieto ei ole levylle talletettuja tiedostoja F i-node F KJ-oliot, laitteet, yhteiset muistialueet F tiedon suojaus silti tiedostojen tapaan 8 KJ-II K2006 / Teemu Kerola (lu 10) 4

Linux VFS rakenne Ch. 20.7 [DDC 04] VFS fd file descriptor (file object) u aukiolevalle tiedostolle, missä kohtaa lukemassa/kirjoittamassa u oikeudet (user ID, group ID) u linkki tiedoston dentry yn u sallitut operaatiot VFS dentry directory entry u osoittaa hakemistopuussa kaikkiin lähisukulaisiin (niiden dentry) F isä-hakemisto F lapsi-hakemistot tai tiedostot F sisarus-hakemistot tai tiedostot u linkki tiedoston i-node:en VFS i-node (varsinainen tiedoston metatieto) u tiedostojärjestelmän tunniste ja superlohko (superblock) u tiedostojärjestelmän sisäinen i-node 9 VFS metatiedon välimuistitv VFS ja hakemistohierarkia hidastavat käyttöä u tiedot pitää yleensä hakea levyltä hakemisto kerrallaan u tiedostojärjestelmäkohtainen lookup() dcache (dentry cache) u viimeksi viitattujen tiedostojen dentry u nopea kuvaus filename i-node u tiedoston X dentry välimuistissa myös kaikki tiedoston X esivanhempien dentry välimuistissa i-node cache u viimeksi käytössä olleiden tiedostojen VFS i-nodet F näistä löytyy tiedostojärjestelmän i-node 10 KJ-II K2006 / Teemu Kerola (lu 10) 5

Linux tiedostojärjestelm rjestelmät ext2fs (second extended file system) u Linuxia varten kehitetty tiedostojärjestelmä u esikuvana BSD Fast File System (FFS) /proc F lohkoryhmät u tehokkuus, luotettavuus u erikoistiedostot, luodaan 'lennosta' u esim. ytimen parametrien kysely/asettaminen u KJ-palvelut piilotettu tiedostojärjestelmän käytöksi ext3fs F käytön valvonta tiedostojärjestelmän suojauksen avulla u journaling file system, log-structured file system (LFS) u Red Hat Linux issa 11 Looginen levy yleinen tapaus MBR (master boot record) u fyysinen sektori 0, jonka BIOS lukee F Basic Input Output System F mitä tehdään ennen alustusta tai miten alustetaan u partitiotaulu F kunkin partition alku ja loppu F tiedostojärjestelmän tyyppi F yksi partitioista aktiivinen bootti voidaan valita alustuksen yhteydessä? Fig. 6-11 [Tane 01] Flash BIOS 12 KJ-II K2006 / Teemu Kerola (lu 10) 6

Linux ext2fs levy General: Fig. 6-11 [Tane 01] Linux: Fig. 10-35 [Tane 01] Lohkoryhmät (block groups) yhtenäisesti levyltä allokoitu alue datalohkot ja i-nodet fyysisesti lähellä toisiaan säästä hakuvarren siirroissa Kaikki lohkot samankokoisia (1 KB) Kaikki i-nodet 128B (tavallinen UNIX 64B) 13 [Tane01] 14 KJ-II K2006 / Teemu Kerola (lu 10) 7

ext2fs superlohko (superblock( superblock) 1 lohko Kuvaa koko ext2fs-partition rakenteen Kopio jokaisen lohkoryhmän alussa luotettavuus, virheestä toipuminen Ydin operoi vain lohkoryhmän 0 superblokilla ja ryhmäkuvaajilla muille käyttöä, jos superblock 0 'rikki' /sbin/e2fsck kopioi aika-ajoin muualle Fig. 10-35 [Tane 01] 15 ext2fs superlohko (superblock) 0 8 16 24 32 40 48 56 64 72 80 0 1 Block size Ext2signat. Time of last test Operating system RESUID 2 Number of i-nodes Number of reserved blocks Blocks per group i-nodes per group Time of last write Status 3 Number of free i-nodes RESGID 4 Number of free blocks First data block Fragment size Fragments per group Time of mounting Status Error behav. 5 Number of blocks Max test interval File system revision Pad word 6 7 Max. mnt cnt Pad word blocksize Pad words 16 KJ-II K2006 / Teemu Kerola (lu 10) 8

ext2fs ryhmäkuvaaja (group( descriptor) n lohkoa tietoa kaikista lohkoryhmistä käyttöä valittaessa ryhmää varaukselle ei perustu sylintereihin kopio jokaisen lohkoryhmän alussa yksi kuvaaja 24 B Fig. 10-35 [Tane 01] bg_block_bitmap lohkobittikartan lohkonro (4 B) bg_inode_bitmap i-solmubittikartan lohkonro (4 B) bg_inode_table i-solmutaulun lohkonro (4 B) bg_free_blocks_count vapaiden lohkojen lkm (2 B) bg_free_inodes_count vapaiden i-solmujen lkm (2 B) bg_used_dirs_count hakemistojen lkm ryhmässä (2 B) bg_pad, bg_reserved tyhjää (6 B) 17 ext2fs lohkoryhmän n bittikartat 2 bittikarttaa vapaat lohkot vapaat i-nodet Molemmissa 8192 bittiä (1 KB lohko) 0 = vapaa, 1 = varattu Fig. 10-35 [Tane 01] 18 KJ-II K2006 / Teemu Kerola (lu 10) 9

ext2fs lohkoryhmän i-node taulu n lohkoa i-nodet á 128 B tiedoston attribuutit tiedoston lohkojen numerot Esimerkki 12 suoraa viitettä lohkoihin, viite 4B 3 epäsuoraa viitettä lohkoihin 1 KB bittikartta ryhmässä 8192 lohkoa tai i-nodea i-noden lohkoviite 13225 lohkoryhmä 1, siirtymä 5033 (=13225-8192) root-hakemiston i-node = i-node #2 Fig. 10-35 [Tane 01] 19 ext2fs i-node Access Control List 0 8 16 24 32 40 88 96 104 112 120 0 Mode Access time Gid 1 2 3 4 5 6 File attributes File ACL Uid Time of modification Link counter One-stage indirect block Three-stage indirect block Fragment address Reserved (OS-dependent) 12 direct blocks Fig. 10-35 [Tane 01] File size Time of creation Time of deletion No. of blocks Reserved (OS-dependent) Two-stage indirect block File version Directory ACL Reserved (OS-dependent) 7 20 KJ-II K2006 / Teemu Kerola (lu 10) 10

ext2fs datalohkot (data blocks) Lohkon koko 1 KB 2 KB, 4 KB tai 8 KB?? ei. Suurin tiedostokoko 2 GB kenttä "file size" rajoittaa (ylin bitti ei käytössä!) jos 64-b kone, max 4TB Fig. 10-35 [Tane 01] Tiedosto voi jakautua useamman ryhmän alueelle 21 ext2fs hakemistoalkio 4 B i-node number Hakemisto on tiedosto, joka kuvaa tiedostonimet i-nodeiksi peräkkäinen lista hakemistoalkioita (directory entry) voi olla myös B-puu, jos paljon tiedostoja Hakemistoalkio on vaihtelevanpituinen pituus aina 4:n monikerta (lopussa /0-merkkejä) Tyyppi 2 B entry len 1 B name len 1 B type 1-255 B (1 - EXT2_NAME_LEN) file name 0 = tuntematon, 1 = tavallinen tiedosto, 2 = hakemisto 3 = merkkilaite, 4 = lohkolaite, 5 = nimetty putki 6 = pistoke, 7 = symbolinen linkki Esim: TKTL mail server Polku tässä tiedostossa tai hakemistoalkiossa (fast symbolic link) 22 KJ-II K2006 / Teemu Kerola (lu 10) 11

Linux: tiedoston käyttk yttö (vfs) task_struct uid gid fs files... (osoittimia bittikarttoihin) fs_struct (file system info) cache nimille (ei polkua) count umask inode root i_count pwd i_dev... i_ino files_struct count file i_mode fd[ ] f_count i_uid fd_array[32] f_mode i_gid open_fds f_dentry blocks close_on_exec f_pos...... f_op file-operations (open file info)...... 23 Linux: tiedostojen käyttk yttö (vfs) file_operations llseek( file, offset, whence) read( file, buf, count, offset) write( file, buf, count, offset) readdir( dir, dirent, filldir) poll( file, poll_table) ioctl( inode, file, cmd, arg) map( file, vma) open( inode, file) flush( file) release( inode, file) fsync( file, dentry) fasync( file, on) check_media_change(dev) revalidate(dev) lock( file, cmd, file_lock) Jokaisella tiedostojärjestelmällä omat funktiot File_operations rakenteessa funktion osoite Jos ei toteuta kyseistä operaatiota, osoitin NULL Fig. 6-5 [Tane 01] 24 KJ-II K2006 / Teemu Kerola (lu 10) 12

Linux procfs tiedostojärjestelm rjestelmä Process file system Ei todellinen (fyysinen) tiedostojärjestelmä u kaikki keskusmuistissa, levyllä ei tiedostoja Käyttöliittymä prosessikuvaajiin u hakemistossa /proc u jokainen /proc in alihakemisto määrittelee omat read() ja write() operaationsa F /proc/4321 on prosessin 4321 hakemisto u KJ-tietojen lukeminen ja kirjoittaminen u read() ja write() toteuttavat suojatun tietorakenteen F käytön valvonta tiedostojärjestelmän avulla F samanaikaisuuden hallinta 25 Linux sysfs hakemisto /sys käyttöliittymä laitekuvaajiin u unified device model väylät hakemistossa /sys/bus u pci laitekuvaaja hakemistossa /sys/bus/pci I/O laitteet laitetyypin mukaan u /sys/class/input u laitetyypin nimi, numero, laitteet, ajurit pidetään kirjaa kaikista laitteista, jotka käytössä ja missä ne ovat pollataan aika ajoin väyliä, jos uusia laitteita tulisi tai vanhoja poistuisi u hot swappable devices 26 KJ-II K2006 / Teemu Kerola (lu 10) 13

Käyttöjärjestelmät t II NFS Network File System Ks. esim. Ch 10.6.4 [Tane 01] 27 NFS Etäkoneiden hakemistojen liittäminen omaan hakemistopuuhun u kehittäjä Sun Microsystems NFS-protokolla u pyyntö-vastaus protokolla u ei ota kantaa siihen kuinka toteutetaan F NFS-palvelija, NFS-asiakas Windowsin vastine SMB-protokolla u Server Message Block 28 KJ-II K2006 / Teemu Kerola (lu 10) 14

NFS-arkkitehtuuri Etäkone (Palvelija) u suorittaa NFS-palvelijaa u määrittelee hakemiston julkiseksi hakemistossa /etc/exports Asiakas F mm. käyttöoikeuksien rajaaminen u suorittaa NFS-asiakasprosessia u asemoi ( mounttaa ) hakemiston omaan hakemistopuuhun u mount-point määritelty tiedostossa /etc/fstab Fig. 10-36 [Tane 01] VFS huomaa milloin viitataan toisessa koneessa olevaan (mountattuun) tiedostoon u välitä pyyntö palvelijalle u palvelijan tiedostojärjestelmä ei ole tärkeä 29 (Fig 10-36, [Tane[ 01]) 30 KJ-II K2006 / Teemu Kerola (lu 10) 15

NFS-protokolla mount u asiakas lähettää polkunimen palvelijalle u palvelija palauttaa kahvan (file handle) F tiedostojärj. tyyppi, laite#, inode#, oikeudet F käytetään jatkossa kaikissa pyynnöissä u voidaan tehdä alustusskripteissä (boot) automounting u mountataan, kun viitataan ens. kertaa pyynnöt u normaalit palvelupyynnöt sanomina F read(), write(),... tilaton protokolla u kaikki tarvittava tieto mukana pyynnössä F kahva, lukupositio, paljonko, Fig. 10-37 [Tane 01] 31 (Fig 10-37, [Tane[ 01]) 32 KJ-II K2006 / Teemu Kerola (lu 10) 16

Käyttöjärjestelmät t II Windows 2000 Tiedostojärjestelmä (NTFS) 33 LFS Log-Structured File System Uusi, parempi, fiksumpi, luotettavampi ihan totta! Usein tilanne u paljon päivityksiä, useimmat todelliset levyviitteet kirjoituksia F luvut levyvälimuistista u useimmat kirjoitukset pieniä päivityksiä F levyn hakuvarsi liikkuu paljon, vähän dataa siirtyy Ongelma tavallisen tiedostojärjestelmän uuden tiedoston X luomisessa: u kirjoita hakemiston i-node, hakemisto, tiedoston i-node ja lopulta tiedosto u virta poikki (tms vika) kesken kaiken? Oooops. Ratkaisu: tapahtumaloki, joka takaa tiedostojärjestelmän konsistenssisuuden u pidä lokia sekä metatiedosta (esim. inode) että itse datasta (sektorit) Journaling File System u pidä lokia vain metatiedosta järjestelmä säilyy konsistenssina (data ei) Esim: Microsoft NTFS, Red Hat Linux ext3fs (Ch 6.3.8 [Tane[ 01]) 34 KJ-II K2006 / Teemu Kerola (lu 10) 17

LFS alkuperäinen idea Koko levy on loki tapahtumista u uudet tapahtumat kirjoitetaan loppuun vapaaseen tilaan, peräkkäisiin lohkoihin u nopeata, levyn täysi kapasiteetti hyödynnettävissä Uusi tiedosto X hakemistoon D u kirjoita X:n data-tapahtuma u kirjoita X:n metadata (i-node?) -tapahtuma u kirjoita X:n hakemistoalkio D:ssa tapahtuma systeemi koko ajan konsistensissa tilassa tiedon haku hidasta u ei niin paha, kun useimmat levytapahtumat kirjoittaa u metadata (i-node) välimuistit: i-node map, superblock u cleaner säie etsii tyhjää tilaa ja tiivistää lokeja 35 NTFS: Piirteitä Kaatumisista ja levyvirheistä toipuminen u LFS lokitiedoston avulla Käyttöoikeudet u pääsylistat (security descriptor) Sallii suuret levyt ja tiedostot u FAT32 ssa vain 2 32 lohkoa, suuri allokointitaulu Tiedosto-oliot ovat (arvo, attribuutti) -pareja Mahdollisuus indeksointiin tiedoston käsittelyn nopeuttamiseksi Lohko, cluster u yksi tai useampi peräkkäinen sektori (esim. 512 B - 4 KB) F 32 GB levyllä 128 sektoria/lohko ( lohko 64-512 KB) u varauksen ja kirjanpidon perusyksikkö Partitio, volume u fyysinen levyn looginen osa, jolla oma tiedostojärjestelmä 36 KJ-II K2006 / Teemu Kerola (lu 10) 18

NTFS-partitio Boottilohko u partition ja tiedostojärj. rakenne, boottitietue ja -koodi u MFT:n sijainti MFT u tietoa tiedostoista, hakemistoista (folders) ja vapaasta tilasta System Files (~ 1MB) u kopio MFT:n alkuosasta u virheistätoipumisloki, bittikartta vapaat/varatut lohkot, attribuuttien kuvaustaulu File Area - tiedostojen lohkoille (Fig. 12.17 [Stal 05]) 37 NTFS MFT Fig. 11-36 [Tane 01] 1 KB:n kokoisia MFT-tietueita u jokainen kuvaa yhden taltiolla olevan tiedoston F myös hakemisto on tiedosto u vaihtelevanmittainen osa käytössä Fig. 11-35 [Tane 01] F (attribuutti, arvo) pareja (ei paikkasidonnainen!) F data attribuutti, 'arvo' = lohkojen sijainti 16 ensimmäistä tietuetta varattu ns. metadatalle u 16 $-alkuista tiedostoa Fig. 11-34 [Tane 01] Jos pieni tiedosto, tietue sisältää myös datan Jos iso tiedosto, data erillisellä tallealueella u MFT-tietuessa lohkonumeroita u kuvaus voi jatkua useampaan MFT-tietueseen Fig. 11-37 [Tane 01] 38 KJ-II K2006 / Teemu Kerola (lu 10) 19

[Tane 01] 39 [Tane 01] 40 KJ-II K2006 / Teemu Kerola (lu 10) 20

[Tane 01] 41 [Tane 01] 42 KJ-II K2006 / Teemu Kerola (lu 10) 21

Hakemiston MFT-tietue pieni hakemisto (Fig. 11-38 [Tane01]) Pienissä hakemistoissa MFT-tietueet peräkkäisjärjestyksessä Isoissa hakemistoissa MFT-tietuessa B-puun (B-tree) indeksirakenne u nimen etsintä ei ole peräkkäishakua 43 Tiedoston käyttö Fig. 11-39 [Tane 01] CreateFile( C:\maria\web.htm,...) u etsi ensin oikea taltio u juurihakemiston tietue on MFT:ssä, etsi juurihakemistosta alihakemiston tietue u oliomanageri: luo uusi tiedosto-olio ja palauta kahva siihen u prosessi käyttää kahvaa seuraavissa kutsuissa 44 KJ-II K2006 / Teemu Kerola (lu 10) 22

(Fig. 10-39 [Tane 01]) 45 NTFS API NTFS WIN32 API vs Unix API Fig 11-31 [Tane 01] Tiedoston kopiointi Win32 APIn avulla Fig 11-32 [Tane 01] Fig 6.5 [Tane 01] 46 KJ-II K2006 / Teemu Kerola (lu 10) 23

[Tane 01] 47 [Tane 01] 48 KJ-II K2006 / Teemu Kerola (lu 10) 24

NTFS: Virheistä toipuminen Log FS u kirjaa lokiin kaikki taltiota muuttavat transaktiot u loki aluksi välimuistissa (vain kirjanpidon rakenteista) Muuta taltiota i. talleta lokitapahtuma tiedostovälimuistiin (file cache) ii. iii. iv. tiedostomuutos välimuistiin talleta lokitapahtuma levylle välimuistista talleta muutokset levylle välimuistista v. kommitoidu (commit) Jos köllähtää ennenkuin muutokset levyllä, bootti voi palauttaa edeltävän tilanteen lokin avulla (rollback) u ei takaa etteikö tiedostojen tietoa katoaisi u järjestelmä säilyy eheänä (koherenttina) Fig 12.18 [Stal 05] tapahtuma tapahtuma 49 (Fig 12.18 [Stal05]) 50 KJ-II K2006 / Teemu Kerola (lu 10) 25

NTFS virheistä toipuminen Huono levysektori? u kirjoittamassa? kirjoita muualle OK u lukemassa? too bad, data menetetty u lukemassa master boot recordia tai boot sector ia F really too bad, taltio ehkä menetetty F ellei ehjää kopiota löydy u NTFS Log FS pitää tiedostojärjestelmän muuten eheänä Yleinen lääke: Cluster Remapping u sektori otetaan pois käytöstä ja kyseinen looginen sektori mapataan muualle levylle F voi hidastaa peräkkäiskäyttöä jatkossa 51 Käyttöjärjestelmät t II Linux ext3fs 52 KJ-II K2006 / Teemu Kerola (lu 10) 26

Linux ext3fs ext3fs = ext2fs with journaling u journal in special file, or in special device Problem: time spend in recovering file system after a crash u fsck (e2fsck) takes too long hours for big systems u must have better availability Complete compatibility with ext2fs (ext2fs ext3fs) [Tweedie talk, 20.7.2000] click (http://olstrans.sourceforge.net/release/ols2000-ext3/ols2000-ext3.html) u clean, unmounted ext3fs has no journal, can mount as ext2fs TKTL: ext3fs kaikissa tiedostopalvelimissa 53 Linux ext3fs Extra layer on top of ext2fs: JFS (journaling FS) u independent on actual file system (ext2fs) F ext2fs does not know about journaling! u arbitrary modifications in buffer cache u transactional semantics F do all these 5 updates, or none of them u API to add transactions onto a block device File update u no data to disk until transaction commit F no quarantee when it will be written (write behind) F written to disk from JFS cache of updates u write to log first, commit log, then do file update F disks can guarantee one sector write with power failure F use special sector updates as commit blocks for log 54 KJ-II K2006 / Teemu Kerola (lu 10) 27

Kertauskysymyksiä Mihin tarvitaan VFS:ää? Kuinka ext2 poikkeaa iciwanhasta UNIXin tdstojärjestelmästä? Mistä ext2:n tehokkuus / luotettavuus? Mitä tietoja superlohkossa/indeksisolmussa? Miksi i-solmuja? Miksi ei attribuutit ja nimi samassa paikassa? Mihin tarvitaan NFS-protokollaa? Mitä hyötyä on NFS:n tilattomuudesta? Mitä on journaling ja logging? Windows vs. Linux? 55 KJ-II K2006 / Teemu Kerola (lu 10) 28