Ext4

Failisüsteem **ext4** on Linuxi failisüsteemi ext3 edasiarendus, mis parandab oluliselt failisüsteemi töökindlust ning suurendab selle võimalikku mahtu.

## Ajalugu
Peamine ext3 erinevus ext2-st oli teatud tüüpi registreerimise – päevikupidamise (*journaling*) lisamine. Stabiilsuse tagamiseks ei võtnud Linuxi tuuma arendajad esialgu vastu ext3 täiendusi, millest paljud lõi Cluster File Systems Lustre failisüsteemi jaoks aastatel 2003–2006. Nende ettepanekul loodi ext3 arendusharu, mis nimetati ext4-ks. See võimaldas kogu arendustegevust teha ext3 kasutajaid häirimata. Täiendused suurendasid jõudlust ja failide salvestusmahtu.
28. juunil 2006 andis Theodore Ts'O teada plaanist hakata arendama ext4.

ext4 eelarendus-versioon tuli Linuxi tuuma 2.6.19. 11. oktoobril 2008 lisati paigad, mis märkisid ext4 kui stabiilse ja kood lisati Linuxi tuuma 2.6.28 koodi repositooriumitesse. Sellega lõppes arendusfaas ja soovitati ext4 kasutusele võtta. 25. detsembril 2008 tuli välja tuum 2.6.28, mis sisaldas ext4-failiüsteemi. 15. jaanuaril 2010 teatas Google, et nad uuendavad oma andmete infrastruktuuri ext2-lt ext4-le. 14. detsembril teatas Google, et ext4 asendab YAFFS-i Android 2.3-l.

## Omadused
### Ühilduvus
Kõiki kasutuses olevaid ext3-failisüsteeme saab muuta ext4-ks. Failisüsteemi saab uuendada ainult siis, kui failisüsteem ei ole kirjutamiseks ühendatud.

ext2-failisüsteemi ext3-ks muutmiseks kasutatav käsk:

` # tune2fs -j /dev/DEV` 

ext4 võimaluste kasutusele võtuks kasutatav käsk:

`# tune2fs -O extents,uninit_bg,dir_index /dev/DEV` 

Pärast viimase käsu kasutamist tuleb käivitada programm fsck, korrigeerimaks failisüsteemi struktuuri, mida tune2fs muutis:

`# e2fsck -fDC0 /dev/DEV`

Vormindamata failisüsteemi uuendamise puhul kasutab ext4 uute andmete jaoks uut failistruktuuri. Uute andmete lisandumisel kirjutatakse need ext4 failisüsteemi. Vanad andmed säilitatakse muutumatu failisüsteemiga. Tagasi muutmine ext3-ks ei ole võimalik, kuid failisüsteemi saab ühendada ext3-na, mis kaotab kõik ext4 pakutavad eelised.

### Failisüsteemi maht
Eelmine failisüsteem ext3 toetab kuni 16 TB mahuga failisüsteemi, kuhu saab paigutada kuni 2-terabaidiseid faile. ext4 puhul lisati 48-bitine plokkide adresseerimine. Selle tulemusel muutus ext4 failisüsteemi tugi suuruseni 1 EB (1 EB = 1 048 576 TB) ning kasutatava faili maht kuni 16 TB. Toimub arendustegevus 64-bitise süsteemi kasutuselevõtuks.

### Alamkataloogid
Suurim võimalik arv alamkatalooge on ext4-s 64 000, mis on rohkem kui ext3 puhul. Seda arvu on võimalik suurendada kasutades dir_nlink võimalust. Lubamaks suuremaid kaustu ja jõudluse hoidmiseks kasutab ext4 Htree indekseerimist. See võimalus on kasutusel alates Linux 2.6.23.

### Ulatused
Ulatused (*[[:en:Extent|extent]]*) asendavad traditsioonilist plokkide kaardistamise skeemi, mis on kasutusel ext2-s ja ext3-s. Ulatus koosneb paljudest järjestikustest plokkidest, parandades suurte failide käsitlemise kiirust ja vähendades fragmenteerumist. Üks ulatus ext4-s suudab ühendada 128 MB ruumi 4 kB suuruselt. Seetõttu saab 4 ulatust ühendada ühte i-kirjesse.
Kui fail koosneb rohkemast kui neljast ulatusest, siis on need indekseeritud Htree'ga
Traditsioonilist kaardistamismeetodit kasutades kuluks 128 MB faili jaoks 25 600 plokki, igaüks neist 4 kB.

### Hilistatud eraldus
Jõudluse parandamiseks ja fragmenteerumise vältimiseks kasutatakse ext4 puhul meetodit, kus andmeplokkide asukoha ülesmärkimine toimub alles pärast andmete täielikku kettale kirjutamist (*delayed allocation*).

### Kiire fsck
Failisüsteemi kontroll kasutades fsck on ext4 puhul kiirem. ext4 loob i-kirjete rühmadele tabelid, milles on märgitud kasutamata i-kirjed. Esmasel fsck kasutamisel tekitatakse vastav tabel. Kasutamata i-kirjeid fsck ei kontrolli. See kiirendab kontrollimisprotseduuri 2–20 korda. Kiiruse muutus sõltub kasutatud i-kirjete hulgast.

### Päeviku räsisumma
Päevik on kasutatavaim osa kettast, seega tõenäoliselt ka kõige enam mõjutatud mehaanilistest riketest. Vigase žurnaali järgi andmete taastamine lõpeb suure tõenäosusega vigaste või kadunud andmetega. Räsisumma kontroll tõstab failisüsteemi usaldusväärsust, võimaldades välistada päeviku vigaste kirjete kasutamise. Räsisumma kontrolli lisaväärtus on see, et kaheetapilisest ext3 päeviku pidamisest saab üheetapiline, mille tulemusena tõuseb kiirus kuni 20%.

### Päeviku mittepidamine
Vajadusel on võimalik ext4 päevikupidamine välja lülitada. Sel juhul jõudlus veidi paraneb. Reeglina seda aga ei kasutata, sest päevikupidamine tagab failisüsteemi tervikluse ja salvestab toimuvad muutused logisse. Päevik võimaldab pärast planeerimatut töökatkestust taastada failisüsteemi tervikliku seisu võimalikult väikeste kadudega.

### Uuendatud ajamärgid
Arvutite kiiremaks muutmine on tekitanud olukorra, kus sekunditel põhinev ajaarvestus ei ole enam piisav. Selle probleemi lahendamiseks kasutatakse ext4 puhul aja märkimiseks nanosekundeid. Kahe biti lisamisega ajamärkimise tabelisse nihkus *[[:en:Year 2038 problem|2038. aasta probleem]]* edasi 204 aastat.

## Kriitika
Ehkki ext4 sisaldab uusi ja parandatud võimalusi, on tegemist siiski vana tehnoloogiaga. Muudatustele vaatamata ei ole tegemist suure edasiminekuga. Loodetakse, et Btrfs on edumeelsem, kasutades paljusid tehnilise lahenduse ideesid, mida kasutab näiteks ZFS.

## Viited

## Välislingid
*Ext4 Howto
*http://kernelnewbies.org/Ext4
*EXT4 Bug