abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 10:11 | Nová verze

    GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 09:22 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 0
    11.5. 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 14
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 22
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 60
    9.5. 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 20
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 7
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (70%)
     (7%)
     (12%)
     (13%)
    Celkem 200 hlasů
     Komentářů: 11, poslední 10.5. 18:00
    Rozcestník

    Moderní souborové systémy - 1. část

    27. 11. 2002 | Petr Novický | Systém | 23234×

    Úvod do tématiky žurnálovacích systémů.

    Úvod

    Mnozí z Vás se jistě chtěli seznámit s pojmem souborový systém hlouběji. Ačkoliv si myslím, že se drtivá většina s pojmem souborový systém setkala, přesto ho nejprve objasním. Je to software, který slouží k organizování a používání dat uložených na záznamových médiích (pevný disk, CD apod). Souborový systém zajišťuje integritu dat (přeloženo do českého jazyka ucelenost). Tudíž informace, které uložíme, budeme moci později vyvolat v nezměněné podobě.

    Pro svou činnost filesystém ukládá informace o souborech a informace o sobě samotném (vlastnictví, datum, kontrola přístupu, délka souboru a jeho lokace na disku apod). Bez těchto informací, tzv. metadata, by souborový systém nemohl pracovat. Nebudu se tu zabývat souborovými systémy jako ext2fs (běžně používaný souborový systém v OS Linux), o něm byla jistě již spousta materiálu sepsána a tak nebudu nosit dříví do lesa. Navíc nové filesystémy mají lepší vlastnosti a nemají tak přísná omezení jako třeba právě ext2fs.

    Motivace nových souborových systémů

    Modernější filesystémy použijeme zvlášť, pokud chceme zajistit integritu dat i při náhlém přerušení práce počítače. Existuje několik možností, co se při náhlém přerušení práce může stát:

    • Systém stihl uložit soubor. Nic se neděje, můžeme pokračovat v práci.
    • Systém nestihl uložit soubor (ani nezačal). Přišli jsme tedy o všechny změny, ale alespoň máme zachovánu starou verzi.
    • Systém "spadl" během procesu ukládání. Toto je nejhorší případ! Dostáváme soubor, který se skládá částečně ze starého a částečně z nového. Když navíc zrovna zapisujeme metadata (jako třeba informace o adresářích), mužeme ztratit třeba celý adresář nebo dokonce data na diskovém oddílu (když se poruší metadata týkající se kořenového adresáře)!

    Standardní linuxový souborový systém (ext2fs) svému poškození částečně předchází tím, že udržuje redundantní kopii metadat, takže se většinou nestává, že bychom o ně přišli. Pomocí kontroly integrity souborového systému (fsck), klasicky během bootování, je systém schopen zjistit, kde jsou metadata poškozená a nahradí je prostým zkopírováním redundantní verze. Nebo dojde ke smazání souboru, který byl přerušením poškozen. Samozřejmě že kontrola trvá tím déle, čím větší máme diskový oddíl a kontrola opravdu velkého disku může trvat velmi dlouho. Žádná z uvedených vlastností se samozřejmě nikomu z nás nelíbí, naštěstí existuje alternativa k těmto klasickým druhům filesystémů. Jsou jimi souborové systémy, které pracují s tzv. žurnálem.

    Žurnálovací souborové systémy

    O co se jedná. Stručně řečeno žurnálovací filesystém si uchovává informace o operacích, které provedl a je pak v případě výpadku schopen rychle se dostat zpět do konzistentního stavu. Změny jsou evidovány jako tzv. transakce. Jedná se o nezávislé atomické operace. Po každé transakci následuje potvrzení, když dojde k uskutečnění daného úkonu (např. zápis na disk). Proto pokud systém "spadne", můžeme najít v záznamech informace o provedených změnách a vrátit vše do původního stavu. Mezi tyto souborové systémy patří např. ext3, ReiserFS, XFS a JFS. V našem seriálu se postupně zmíníme o každém z nich podrobněji.

    Omezení souborových systémů

    Problémy při výpadcích však nejsou zdaleka jedinými nevýhodami tradičních souborových systémů jako ext2fs. Všechny byly navrženy v době, kdy záznamová média neměla takovou kapacitu jako v současné době. Dnes máme větší soubory, adresáře a také diskové oddíly a starší souborové systémy už nestačí ať už z hlediska různých omezení velikostí nebo výkonu. Tyto problémy jsou důsledkem interních struktur, na kterých jsou založeny. Hlavním problém je, že mají pevně danou délkou, což limituje jejich možnosti. Také metody, které v dřívější době vyhovovaly, jsou už při dnešních možnostech z hlediska výkonu nedostačující. Souborové systémy nové generace jsou navrhovány tak, aby problémům omezení předcházely.

    V následující tabulce si můžete porovnat omezení jednotlivých souborových systémů:

    Filesystém Max. velikost filesystému Velikost bloků Max. velikost souboru
    Ext2 4 TB 1KB-4KB 2 GB
    Ext3 4 TB 1KB-4KB 2 GB
    ReiserFS 16 TB až 64KB 2^10 PB *1
    XFS 18000 PB *1 512B - 64KB 9000 PB *1
    JFS 512 B / 4 PB *2 512B, 1024B, 2048B, 4096B 512B / 512Tb *2

    *1) 1PB = 10^15 B

    *2) Maximální velikost souborového systému závisí na velikosti bloku dat, velikosti pro ostatní hodnoty dostaneme jednoduše pomocí trojčlenky.

    Optimalizace výkonu nových souborových systémů

    Vyhledávání volných bloků

    Dalším problémem jsou struktury, pomocí kterých souborový systém hledá volné bloky při ukládání dat. Často se jedná o seznam, kde jsou udržována čísla jednotlivých volných bloků. UFS a ext2fs používá bitmapu, což je pole bitů, kde každý z nich odpovídá jednomu logickému bloku na diskovém oddílu. S narůstající kapacitou délka pole narůstá a výkon klesá.

    Problémům, týkajících se hledání volných bloků dat, se vyvarujeme použitím tzv. "extents" a balancovaného stromu. Extents je skupina sousedících logických bloků, které jsou používány některými filesystémy. Deskriptor extents obsahuje 3 údaje:

    • adresa prvního bloku, kde extent začíná
    • velikost v blocích
    • údaj, který nám říká offset v rámci souboru, kde začínají data v daném záznamu uložená

    V případě použití extents nezávisí velikost struktury, kde si uchováváme informace o volném místu, na velikosti filesystému. Také použitím balancovaného stromu místo prostého seznamu dochází k dalšímu zvýšení výkonu.

    Problémy s velkými filesystémy

    V případě velkého počtu položek adresáře je efektivita u starších souborových systému opět slabší. Často jsou položky adresáře ukládány do seznamu, a tudíž jejich následné vyhledávání je zbytečně zdlouhavé. Jedním z řešení je opět použití balancovaného stromu, kde jsou tyto položky uspořádány podle jmen.

    Výkonnost však nedostačuje ani u velkých souborů. Pro vysvětlení této oblasti si musíme neprve objasnit pojem i-node. Jedná se o strukturu, kde souborový systém udržuje informace o souboru, jako jsou práva, typ souboru a hlavně ukazatele na bloky souborového systému, kde je soubor uložený. Obsahuje jednak přímé ukazatele, a také tzv. nepřímé ukazatelé, odkazující na bloky s ukazately přímými. Viz obrázek:

    Obrazek inodu

    Problém spočívá v navržení struktury i-nody. Starší souborové systémy byly vytvářeny převážně pro práci s menšími soubory. Struktura i-nodů je proto ne zrovna efektivní. Čím větší soubor používáme, tím vícekrát přistupujeme k disku díky nepřímým pointrům. Důvodem, proč nepřímé pointry vůbec ext2fs používá, je to, že i-node má pevnou velikost.

    Problém velkých souborů může být odstraněn použitím dynamického alokování i-nodů. Bohužel musíme vyřešit otázky jak zařídit mapování logických bloků i-nodu a jaké použít struktury na vyhledávání v rámci i-nodu. Řešením je většinou použití balancovaných stromů.

    Řídké soubory

    Omezení externí fragmentace a podpora řídkých souborů (sparse files) je také jednou z výhod nových filesystémů (ovšem jejich podpora je už v ext2fs). Pojem fragmentace většina čtenářů jistě zná, jen připomenu že se jedná o rozptýlení jednotlivých bloků souboru po disku a hlavička disku pak při čtení musí přejíždět z místa namísto. Samozřejmě výhodnější je mít bloky za sebou, operace pak budou rychlejší.

    Řídké soubory jsou soubory, které vzniknou následujícím způsobem:

    Zapíšeme například několik počátečních bytů dat a poté se chceme zapsat data uvnitř souboru, která odpovídají offsetu třeba 50000. Pokud nemá náš filesystém podporu pro řídké soubory, alokujeme všechny byty mezi počátkem a těmi bloky uvnitř souboru. Bloky mezi počátkem a offsetem 50000 nás však nezajímají a vůbec by alokovány být nemusely. Pokud použijeme souborové systémy s podporou řídkých souborů, pak se alokuje jen tolik místa, kolik zapisovaná data skutečně zabírají.

    Odkazy a zdroje

           

    Hodnocení: 38 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    27.11.2002 07:59 Quasar
    Rozbalit Rozbalit vše Podivne hodnoty ReiserFS
    Hm... Co se tyka FS, tak jsem uplny neznalec, ale neni mi jasne, jak se na filesystem velikosti 16TB vejde soubor velikosti 2^10 PB - viz ReiserFS. Diky za odpoved.
    27.11.2002 09:31 Petr Adamek
    Rozbalit Rozbalit vše Podivne hodnoty ReiserFS
    Viz ridke soubory
    27.11.2002 09:29 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše 2G
    jakto ze ext3 ma omezeni na max velikost souboru 2G, kdyz mam normalne na disku soubory 4-5G?
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    6.7.2008 15:30 Smajchl | skóre: 39 | blog: Drzy_Nazory | Praha
    Rozbalit Rozbalit vše Re: 2G
    +1
    My máme všechno co chcem, my máme dobrou náladu!
    houska avatar 23.6.2010 11:34 houska | skóre: 41 | blog: HW
    Rozbalit Rozbalit vše Re: 2G

    protoze to je zde uvedeno spatne ... wiki tvrdi ze je to zavisle na velikosti bloku:

    ext3 has a maximum size for both individual files and the entire filesystem. For the filesystem as a whole that limit is 232 blocks.
    Block size	Max file size	Max filesystem size
    1 KB		16 GB		2 TB
    2 KB		256 GB		8 TB
    4 KB		2 TB		16 TB
    8 KB[limits 1]	2 TB		32 TB
    
    27.11.2002 09:34 zacatecnik stoural
    Rozbalit Rozbalit vše velikost spoboru u ext2
    Obavam se, ze omezeni velikosti souboru na 2GB u ext2 nebude uplne pravdive. Sam pouzivam fileserver s ext2 pro ukladani video souboru o velikostech pres 10GB - a bez potizi...
    27.11.2002 10:29 Tom K | skóre: 21
    Rozbalit Rozbalit vše ext2 a velikost souboru
    Mozna by bylo vhodne napsat, ze velikost souboru 2GiB u ext2 bylo u 2.2.x jader, ale u 2.4 uz je tato velikost "trosku" jina (vetsi). Stejne tak maximalni velikost FS nepocita s limity jadra. Jeste u 2.4 lze udelat jen asi 2TiB veky FS. Tento limit je odbouran az od 2.5.42.
    echo -n "u48" | sha1sum | head -c3; echo
    28.11.2002 08:22 Martin Sedlacek
    Rozbalit Rozbalit vše dotaz
    Chtel bych se zeptat na extenty zminene v clanku. Pokud pouziji jen linearni seznam extentu (rekneme trojic: zacatek, delka, treti polozku jsem uplne nepochopil), tak ciste teoreticky muze nastat situace, kdy bude pocet extentu napr. polovina poctu bloku (kdyz bude prave kazdy druhy obsazeny). A to je docela zavisle na velikosti fs. Prehledl jsem neco?
    29.11.2002 11:52 Petr Novický | skóre: 27
    Rozbalit Rozbalit vše Re: dotaz
    Ta treti polozka ukazuje proste na misto v souboru, kam data v danem extentu patri. No a tu tvou otazku jsem tedy tak docela nepochopil. Jestli jsi to myslel tak, ze bude filesystem, kde bude jeden blok obsazeny, druhy bude prazdny a tohle se bude opakovat... tak to bude samozrejme spatne... ale myslim, ze to je jen teorie.. k takovemu zpusobu naplneni jednoduse za normalnich podminek nedojde.
    29.11.2002 16:17 Beda
    Rozbalit Rozbalit vše velikos bloku XFS verze 1.1
    je omezena na linux+x86 architekture velikosti stranky = 4Kbajty nic jineho se nepodari naformatofvat a kdyz jo, tak to stejnak nebude fungovat jako filesystem, ale spis jako hashovaci zarizeni s dalsimi nedokumentovanymi feature ;)
    29.11.2002 16:21 Beda
    Rozbalit Rozbalit vše velikos bloku XFS verze 1.1
    ted me napada, ze novejsi x86 procesory maji vlastne 2 prepinatelny velikosti stranek, ale tusim, ze linux stejne nastavi velikost stranky na 4K a ne na 32K, ci kolik je ta druha velikost stranky.
    22.8.2003 11:18 Mirek
    Rozbalit Rozbalit vše nerozlišuje velká a malá písmena?
    Existuje souborový systém pro linux, který nerozlišuje velká a malá písmena v názvu souboru?
    4.2.2004 14:45 KIIV
    Rozbalit Rozbalit vše nerozlišuje velká a malá písmena?
    tusim ze rozlysovani pomoci dakritiky ponekud nezalezi na FS ale na jadre linuxu... BTW to rozlyseni velikosti je rychlejsi nez muset kazdej znak pri hledani a pod. prevest na nejakej treba upcase...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.