Razlika između inačica stranice XFS
(Nova stranica: XFS je dnevnički datotečni sustav visokih performansi kojeg je stvorio Silicon Graphics za svoj IRIX operacijski sustav, a koji je kasnije portan za Linux. XFS je izrazito dobar u b…) |
|||
Nisu prikazane 2 međuinačice istog suradnika | |||
Redak 9: | Redak 9: | ||
Prva verzija XFS-a je ušla u generički Linux kernel 2.4, što ga je efektivno učinilo dostupno svim Linux distrama. Instalacijski programi Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva, Slackware, Ubuntu, VectorLinux i Zenwalk Linux omogućuju XFS kao izbor za instalaciju, no nije previše popularan zbog problema sa GRUB-om. FreeBSD za sada podržava samo čitanje XFS particija, no ne i pisanje. | Prva verzija XFS-a je ušla u generički Linux kernel 2.4, što ga je efektivno učinilo dostupno svim Linux distrama. Instalacijski programi Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva, Slackware, Ubuntu, VectorLinux i Zenwalk Linux omogućuju XFS kao izbor za instalaciju, no nije previše popularan zbog problema sa GRUB-om. FreeBSD za sada podržava samo čitanje XFS particija, no ne i pisanje. | ||
+ | == Specifikacije == | ||
− | |||
− | |||
− | |||
== Kapacitet == | == Kapacitet == | ||
Redak 20: | Redak 18: | ||
== Dnevnik == | == Dnevnik == | ||
− | |||
Dnevnik (journaling) je mehanizam koji garantira konzistentnost sustava unatoč mogućim prekidima u napajanju ili padu sustava. XFS osigurava dnevnik za sistemske meta-podatke, gdje su sustavne nadogradnje prvo zapisane u serijski dnevnik prije nego što se stvarni blokovi osvježe. Dnevnik je "kružni" međuspremnik disk blokova kojeg se normalno nikada ne čita u normalnim datotečnim operacijama. | Dnevnik (journaling) je mehanizam koji garantira konzistentnost sustava unatoč mogućim prekidima u napajanju ili padu sustava. XFS osigurava dnevnik za sistemske meta-podatke, gdje su sustavne nadogradnje prvo zapisane u serijski dnevnik prije nego što se stvarni blokovi osvježe. Dnevnik je "kružni" međuspremnik disk blokova kojeg se normalno nikada ne čita u normalnim datotečnim operacijama. | ||
XFS dnevnik je ograničen maksimalnom veličinom od 64k blokova do 128 MB, gdje najmanja veličina ovisi o kalkulaciji veličine bloka i direktorija. Dnevnik se može staviti i na odvojeni uređaj ili ga se može držati unutar datotečnog sustava. Dnevnik na XFS-u sadrži "logičke" unose koji opisuju na razini više apstrakcije koje se operacije trebaju izvršiti, za razliku od uobičajenog načina gdje se drže kopije blokova modificirane u svakoj transakciji. | XFS dnevnik je ograničen maksimalnom veličinom od 64k blokova do 128 MB, gdje najmanja veličina ovisi o kalkulaciji veličine bloka i direktorija. Dnevnik se može staviti i na odvojeni uređaj ili ga se može držati unutar datotečnog sustava. Dnevnik na XFS-u sadrži "logičke" unose koji opisuju na razini više apstrakcije koje se operacije trebaju izvršiti, za razliku od uobičajenog načina gdje se drže kopije blokova modificirane u svakoj transakciji. | ||
Dnevnik se nadopunjuje asinkrono kako bi se izbjeglo smanjenje performansi. U slučaju pada sustava, operacije odmah prije pada se mogu izvršiti tijekom oporavka prilikom ponovnog pokretanja koristeći dnevnik (što osigurava konzistentnost XFS datotečnog sustava). Oporavci i duljina popravaka nemaju korelacijju sa veličinom diska. XFS zapisuje nule na sve blokove koji nisu zapisani tijekom ponovnog pokretanja kako bi se izbjegle sigurnosne rupe na rezidualnim podatcima. | Dnevnik se nadopunjuje asinkrono kako bi se izbjeglo smanjenje performansi. U slučaju pada sustava, operacije odmah prije pada se mogu izvršiti tijekom oporavka prilikom ponovnog pokretanja koristeći dnevnik (što osigurava konzistentnost XFS datotečnog sustava). Oporavci i duljina popravaka nemaju korelacijju sa veličinom diska. XFS zapisuje nule na sve blokove koji nisu zapisani tijekom ponovnog pokretanja kako bi se izbjegle sigurnosne rupe na rezidualnim podatcima. | ||
− | |||
− | |||
− | |||
== Alokacijske grupe == | == Alokacijske grupe == |
Trenutačna izmjena od 14:21, 15. ožujka 2011.
XFS je dnevnički datotečni sustav visokih performansi kojeg je stvorio Silicon Graphics za svoj IRIX operacijski sustav, a koji je kasnije portan za Linux. XFS je izrazito dobar u baratanju sa velikim datotekama i osiguranju laminarnog transfera podataka.
Sadržaj
Povijest razvoja
Razvoj XFS-a je započeo Silicon Graphics 1993, a prva verzija spremna za korištenje se pojavila na IRIX-u v5.3, 1994. Datotečni sustav je izdan na GNU GPL licenci u svibnju 2000 i portan na Linux 2001. Omogućen je u gotovo svim modernim Linux distribucijama.
Prva verzija XFS-a je ušla u generički Linux kernel 2.4, što ga je efektivno učinilo dostupno svim Linux distrama. Instalacijski programi Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva, Slackware, Ubuntu, VectorLinux i Zenwalk Linux omogućuju XFS kao izbor za instalaciju, no nije previše popularan zbog problema sa GRUB-om. FreeBSD za sada podržava samo čitanje XFS particija, no ne i pisanje.
Specifikacije
Kapacitet
XFS je 64-bitni datotečni sustav. Podržava datotečne sustave do 8 exabajta minus 1 bajt, no ovo je subjekt limita operacijskog sustava na kojem se nalazi. Na 32 bitnim Linuxima, ovaj limit je 16 terabajta.
Dnevnik
Dnevnik (journaling) je mehanizam koji garantira konzistentnost sustava unatoč mogućim prekidima u napajanju ili padu sustava. XFS osigurava dnevnik za sistemske meta-podatke, gdje su sustavne nadogradnje prvo zapisane u serijski dnevnik prije nego što se stvarni blokovi osvježe. Dnevnik je "kružni" međuspremnik disk blokova kojeg se normalno nikada ne čita u normalnim datotečnim operacijama. XFS dnevnik je ograničen maksimalnom veličinom od 64k blokova do 128 MB, gdje najmanja veličina ovisi o kalkulaciji veličine bloka i direktorija. Dnevnik se može staviti i na odvojeni uređaj ili ga se može držati unutar datotečnog sustava. Dnevnik na XFS-u sadrži "logičke" unose koji opisuju na razini više apstrakcije koje se operacije trebaju izvršiti, za razliku od uobičajenog načina gdje se drže kopije blokova modificirane u svakoj transakciji. Dnevnik se nadopunjuje asinkrono kako bi se izbjeglo smanjenje performansi. U slučaju pada sustava, operacije odmah prije pada se mogu izvršiti tijekom oporavka prilikom ponovnog pokretanja koristeći dnevnik (što osigurava konzistentnost XFS datotečnog sustava). Oporavci i duljina popravaka nemaju korelacijju sa veličinom diska. XFS zapisuje nule na sve blokove koji nisu zapisani tijekom ponovnog pokretanja kako bi se izbjegle sigurnosne rupe na rezidualnim podatcima.
Alokacijske grupe
XFS datotečni sustav je interno particioniran u alokacijske grupe, koje su jednako velike linearne regije unutar datotečnog sustava. Datoteke i direktoriji mogu biti preko više alokacijskih grupa. Svaka alokacijska grupa obrađuje svoje inode i slobodni prostor, što omogućuje skalabilnost i paralelizam – višestruki threadovi i procesi mogu vršiti paralelne operacije I/O u isto vrijeme. Ova arhitektura pomaže optimizaciji paralelnih I/O na višeprocesorskim sustavima (meta-podatci su isto subjekt paralelizacije).
Extent bazirana alokacija
Blokovi koji se zapisuju na XFS se obrađuju extentima prilagodljive duljine, gdje su ekstenti opisani blokovima u fizičkom nizu. Ovo bitno skraćuje liste koje opisuju blokove, ako se usporedi sa datotečnim sustavima koji zapisuju svaki individualni blok koji opisuje datoteku. XFS obrađuje prostornu alokaciju pomoću extent baziranih struktura koje koriste par B+ stabla (B+ tree) za svaku datotečnu alokacijsku grupu (AG). Jedan od B+ stabala se indeksira duljinom slobodnih extenta, dok se drugi indeksira početnim blokom slobodnih extenta. Ova dualna shema indeksiranja stvara visokoefikasnu alokaciju slobodnih extenta.
Direktni I/O
Aplikacijama kojima treba velika propusnost XFS osigurava direktni I/O podataka koji nisu u međuspremniku prema korisničkom prostoru. Podatci se prenose između aplikacijskog međuspremnika i diska koristeći DMA, koji omogućuje pristup punoj I/O vezi između uređaja.
Garantirana razina I/O
XFS-ov garantirani I/O sustav ima API koji dozvoljava aplikacijama da rezerviraju određenu propusnost podataka. XFS dinamički izračuna performanse na konkretnom uređaju i rezervira traženi protok podataka za specifizirano vrijeme. Garancije mogu biti "tvrde" ili "meke" prezentirajući razliku između pouzdanosti i performansi, iako će XFS dozvoliti jedino "tvrde" garancije ako ga konkretni uređaj na kojem se nalazi podržava. Ova se funkcija koristi za aplikacije koje trebaju protočnost u stvarnom vremenu poput video streaminga.
Online defragmentacija
Iako zbog korištenja extenta i odgođene alokacije XFS ima veoma visoku otpornost prema fragmentaciji, postoji alat xfs_fsr (xfs filesystem reorganizer) koji može defragmentirati montirani datotečni sustav.
Online povećavanje
XFS ima alat xfs_growfs koji može povećati XFS datotečni sustav dok je isti u pogonu i pod uvjetom da postoji slobodni prostor na disku. Ovo zahtijeva suradnju sa dodatnim programima jer se particija kao takva ne povećava i potreban je eksterni program koji će povećati particiju kao takvu. XFS se ne može smanjiti, ali se na tome radi.
Ugrađeni backup/restore alati
Posotje alati xfsdump i xfsrestore koji služe za stvaranje i vraćanje backupa podataka na XFS datotečnom sustavu. xfsdump radi rezervnu kopiju u inodnom poretku i za razliku od klasičnog UNIX načina gdje se za dump mora demontirati particija, xfsdump može napraviti kopiju na montiranom disku. Ovo je različito od snapshota jer se ne treba smrznuti sav I/O. xfsdump je također prilagođen višeprocesorskim/jezgrenim računalima kao i mogućnost slanja dumpa na više lokacija odjednom što radikalno povećava brzinu i protok. Slanje na više lokacija nije za sada podržano na Linux.
Atomske disk kvote
Kvote su na XFS datotečnim sustavim uključene kada se disk montira; ovo popravlja situaciju kod većine ostalih sustava gdje se prvo montira particija, a onda se poziva quotation() što stvara jednu sigurnosnu rupu.