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í
×
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 3
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    23.4. 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 9
    23.4. 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 24
    23.4. 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 29
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 726 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu

    3. 9. 2010 | Jirka Bourek | Jaderné noviny | 5127×

    Aktuální verze jádra: 2.6.36-rc1. Citáty týdne: Christian Hammond, Paul McKenney, Valerie Aurora, Al Viro. Poznámky z Bostonského minisummitu Linux Power Management. Poznámky z úložné koleje LSF. K dispozici jsou prezentace z KVM Forum. Testování crypto ovladačů při bootu. Závěr začleňovacího okna 2.6.36. Miliarda souborů v Linuxu. Konec blokových bariér.

    Obsah

    Aktuální verze jádra: 2.6.36-rc1

    link

    Současné vývojové jádro je 2.6.36-rc1 vydané (bez oznámení) 15. srpna. Od shrnutí z minulého týdne bylo začleněno mnoho patchů; nejvýznamnější vizte níže. V krátkém shrnutí řekněme, že v tomto vývojovém cyklu přibyl bezpečnostní modul AppArmor, nový mechanismus uspávání, který by mohl – ale nemusel – vyhovovat potřebám projektu Android, sada ovladačů LIRC pro infračervené ovladače, nový zabiják při nedostatku paměti a háčky pro fanotify sloužící aplikacím pro odstraňování malwaru. Kdo chce znát všechny detaily, k dispozici je mu kompletní changelog.

    Od 2.6.36-rc1 bylo začleněno pár patchů; mezi ně patří patch škálovatelnosti VFS Nicka Piggina. Na tyto patche se blíže podíváme příští týden.

    Stabilní aktualizace: Jádra 2.6.27.51, 2.6.32.19, 2.6.34.42.6.35.2 byla vydána 13. srpna. Greg k nim říká: Už mě unavuje, že se lidé pokouší moje slova rozebírat, jako bych byl předseda Federálních rezerv. Prostě mazejte aktualizovat. Naši analytici věří, že to znamená, že trh s dluhopisy je nervózní, úrokové sazby budou stabilní a pravděpodobně jsou k dispozici důležité opravy.

    Greg také poznamenává, že aktualizace 2.6.34 se blíží ke konci a plánuje se již jenom jedna. V době psaní tohoto článku se reviduje další aktualizace 2.6.27; budoucnost 2.6.27 také není moc dlouhá, protože Greg již nemůže na žádném hardwaru, který má k dispozici, nabootovat tak staré jádro.

    Předtím vyšly 10. srpna aktualizace 2.6.27.50, 2.6.32.18, 2.6.34.32.6.35.1.

    Citáty týdne: Christian Hammond, Paul McKenney, Valerie Aurora, Al Viro

    link

    Takže si, chlapi, pamatujte. Uspávání/probouzení ve Windows může fungovat dobře. Na Macu taky. Ale linuxové uspávání/probouzení není jenom zachybovaná hromada hnoje. Je to inteligentní zachybovaná hromada hnoje, která chce jenom to, aby ji někdo měl rád.

    -- Christian Hammond

    Můj původní dojem byl také takový, že úspora energie byla nejvyšším cílem Androidu, ale pozorné čtení tohoto vlákna a vláken předcházejících mě přesvědčilo o opaku. Níže vizte můj aktuální náhled na to, čeho se snaží docílit.

    -- Paul McKenney

    Když uživatel řekne „Ukaž mi změny v souborovém systému na nižší úrovni v souborovém systému, který ho překrývá“, myslí tím ve skutečnosti „Nahraď všechno v /bin, ale ne /etc/hostname, spoj nižší databázi balíčků s vyšší databází balíčků a aktualizuj /etc/resolv.conf, pokud to není mailserver…“

    -- Valerie Aurora

    Ve skutečnosti to není tak komplikované:

    1) základ a přípony určují možné typy
    2) pořadí typů je vždy stejné: int -> unsigned -> long -> unsigned long -> long long -> unsigned long long
    3) vždy volíme první typ, do kterého se hodnota vejde
    4) L v příponě == "přinejmenším long"
    5) LL v příponě == "přinejmenším long long"
    6) U v příponě == "unsigned"
    7) bez U v příponě, základ 10 == "signed"

    Toť vše.

    -- Jazykové lekce Ala Viro

    Poznámky z Bostonského minisummitu Linux Power Management

    link

    Několik vývojářů, kteří se zabývají správou napájení v Linuxu, se 9. srpna těsně před konferencí LinuxCon setkalo na minisummitu v Bostonu. Bylo diskutováno mnoho témat včetně výkonnosti uspávání, přístupu Androidu a MeeGo ke správě napájení a dalších. Len Brown zaslal poznámky z tohoto setkání; přečíst si je můžete níže.

    Celý článek na LWN.net

    Poznámky z úložné koleje LSF

    link

    Čtenáři LWN si mohli přečíst reportáž z Linux Storage and Filesystem Summit (první den, druhý den), který se konal 8. a 9. srpna v Bostonu. Jonathan Corbet, autor výše zmíněných článků, se bohužel nemohl zúčastnit přednášek specifických pro úložiště, takže ty v článcích zmíněny nejsou. Naštěstí si James Bottomley pořídil podrobné poznámky, které nyní zveřejnil. Pod odkazem níže najdete iSCSI, správu SAN, thin provisioning, zkrácení [trim] a zahazování [discard], úložiště bez rotujících částí, vícecestná úložiště a další.

    Celý článek na LWN.net

    K dispozici jsou prezentace z KVM Forum

    link

    KVM Forum se konalo paralelně s konferencí LinuxCon 9. a 10. srpna. Slajdy ze všech prezentací, které se konaly, jsou k dispozici ke stažení ve formátu PDF.

    Testování crypto ovladačů při bootu

    link

    napsal Jake Edge, 18. srpna 2010

    Vývojáři vcelku pochopitelně chtějí, aby se jejich kód používal, ale zapínání nových věcí ve výchozí konfiguraci je často považováno za postup, který zachází až příliš daleko. Herbert Xu a další vývojáři subsystému crypto nedávno na tuto politiku narazili, když nastavili novou volbu, která řídí testování crypto ovladačů při bootu, na „ano“. Bezpochyby si mysleli, že je tato vlastnost důležitá – špatná kryptografie může vést k narušení systému nebo dat – ale Linux dlouhodobě dodržuje politiku, že nové vlastnosti by měly být ve výchozím nastavení vypnuté. Když David Howells narazil na problém způsobený chybou při nahrávání modulu cryptomgr, Linus rychle a ostře Herbertovi tuto politiku připomněl.

    Přibližná příčina Davidových problémů je v tom, že modul cryptomgr vracel hodnotu, kvůli které se zdálo, že se nenahrál. To způsobilo na začátku bootování kaskádu problémů, protože se zavaděč modulů pokoušel zapsat chybové hlášení do /dev/console, který ještě neexistoval. Herbert zaslal patch, který problém opravil, ale David pomocí dělení půlením [bisect] ukázal na commit, který přidával možnost zakázat testování ovladačů a přitom testování ve výchozím nastavení zapínal.

    Linus byl charakteristicky nevybíravý: Lidi si vždycky myslí, že jejich magický kód je tak důležitý. Na rovinu ti říkám, že absolutně není. Prostě to svinstvo úplně odstraň, prosím. Linuse nepotěšilo, že s výchozím nastavení na všech počítačích bude při každém bootu probíhat test. Herbert má ale obavy z poškození dat a potenciálně vadného hardwaru pro šifrování:

    Účelem těchto testů je zpřístupnit konkrétní ovladač nebo implementaci jenom v případě, že testy projde. Tvůj zašifrovaný disk/souborový systém tedy nebude podléhat kombinaci hardware/software, která neprošla alespoň nějakým testováním.

    Poslední věc, kterou bys mohl chtít, je aktualizovat na jádro s novým ovladačem, který zjistí, že máš téměř nepoužívaný hardware pro šifrování, a následně se rozhodne ho použít a zlikvidovat tak data.

    Linuse ale nepřesvědčil: Tu věc má otestovat vývojář. Tohle je absolutně nulová omluva pro to, aby byl každý uživatel nucen při každém bootu test znovu a znovu opakovat. Ostatní si ale tak jistí nebyli. Kyle Moffett poznamenal, že jeho osobně pokousaly nové ovladače, které neprošly testem a tak se místo nich použila softwarová implementace. Proto by byl rád, kdyby se provádělo více testování:

    Jsou zde tedy unikátní a přesvědčivé důvody pro povolení základních testů kryptografie při bootu ve výchozím nastavení. Abych byl upřímný, technik pro testování a integraci ve mě by byl rád, kdyby v jádře byly intenzivnější POST testy, které by se povolovaly jaderným parametrem nebo tak něčím a které by se daly použít pro vysoce spolehlivá embedded zařízení.

    Linus ale tvrdí, že nutit každého uživatele platit náklady na testování při bootu, je příliš. Ovladače by měly být spolehlivé, nebo by neměly být v jádře. Pak pokračoval: A jestli máš obavu z alfa částic, měl bys při každém bootu testovat RAM. Ale nechtěj po mně, abych to dělal taky.

    Herbert tedy zaslal patch, který testy ve výchozím nastavení vypíná, i když ten se ještě do hlavní řady nedostal. Vzhledem k Linusovým výrokům se tak nicméně pravděpodobně stane relativně brzy. Pokud distribuce s jeho názorem nebudou souhlasit, pak nejspíš ve svých jádrech tuto volbu zapnou.

    Závěr začleňovacího okna 2.6.36

    link

    napsal Jonathan Corbet, 16. srpna 2010

    Začleňovací okno 2.6.36 se uzavřelo vydáním 2.6.36-rc1 15. srpna. Od shrnutí z minulého týdne bylo do hlavní řady začleněno přibližně 1000 sad změn; tento článek shrne významné změny počínaje změnami viditelnými pro uživatele:

    • Souborový systém Squashfs získal podporu pro souborové systémy komprimované pomocí LZO.

    • Souborový systém Ceph má nyní podporu pro doporučené zámky [advisory locking].

    • V subsystému pro multimediální karty (MMC) je nyní podpora pro operace výmazu [erase] a zkrácení [trim] (včetně „bezpečných“ variant). Bloková vrstva byla rozšířena o příznak REQ_SECURE a nový ioctl() příkaz BLKSECDISCARD, který tuto funkcionalitu podporuje.

    Mezi změny viditelné pro vývojáře jádra patří:

    • Souborová operace ioctl() byla odstraněna, všichni uživatelé ve stromě byli konvertováni na verzi unlocked_ioctl(), která nezabírá velký jaderný zámek [big kernel lock]. Odstranění BKL se o další krok přiblížilo.

    • Téměř nepoužívaná funkce dma_is_consistent(), která měla zjišťovat, jestli lze na specifické oblasti paměti provést cache-koherentní DMA, byla odstraněna.

    • Kvůli snazšímu používání a výkonnosti bylo přepracováno API kfifo. Nějaké příklady, jak API používat, byly přidány do samples/kfifo.

    • Je zde nová sada funkcí, které se mají vyhnout souběhům s přístupem k parametrům modulů přes sysfs:

      kparam_block_sysfs_read(name);
      kparam_unblock_sysfs_read(name);
      kparam_block_sysfs_write(name);
      kparam_unblock_sysfs_write(name);

      name je jméno parametru, které se předává module_param() ve stejném souboru zdrojových kódů. Funkce jsou implementovány pomocí mutexu.

    • Byla přidána experimentální podpora pro multiplexované I2C sběrnice.

    Během tohoto začleňovacího okna bylo začleněno nějakých 7700 změn. Tentokrát nebylo mnoho změn, kterým by byl vstup znemožněn. Největší nezačleněnou vlastností jsou nejspíš transparentní obrovské stránky [transparent hugepages], ale to lze s největší pravděpodobností přičíst chybějícímu požadavku na přetažení od správce.

    Nyní začíná stabilizační období. Linus naznačil, že hodlá zopakovat svoji snahu nepřijímat po -rc1 jakékoliv změny, které zjevně nejsou důležité opravy; uvidíme, jak to bude v praxi.

    Miliarda souborů v Linuxu

    link

    napsal Jonathan Corbet, 18. srpna 2010

    Co se stane, když se pokusíte do linuxového souborového systému vložit miliardu souborů? To by se dalo považovat za akademickou otázku; i ten nejvíc nadšený stahovač hudby by musel pracovat hodně dlouho, než by nasbíral tolik dat. Pro miliardu souborů by bylo potřeba rozbalit 30 000 kopií (čistého) jaderného stromu. I na současných desktopových systémech, které často vytvářejí spoustu malých souborů velice statečně, by bylo obtížné dočkat se miliardy. Jak ale říká Ric Wheeler, jedná se o problém, kterým bychom se měli zabývat nyní, jinak nebudeme schopni škálovat na úložné systémy zítřka. Jeho přednáška na LinuxConu používala pracovní zátěž s miliardou souborů jako způsob, jak prozkoumat škálovatelnost linuxového kódu pro úložiště.

    První, nad čím se možná zamyslíme, když se před nás postaví představa práce s miliardou souborů, je, jak problém obejít. Místo toho rvát všechny tyto soubory na jediný souborový systém, proč je prostě nerozmístit na několik menších souborových systémů? Problém tohoto přístupu je v tom, že (1) omezuje schopnost jádra optimalizovat pohyb hlavičkami, což snižuje výkonnost, a (2) nutí vývojáře (nebo správce) potýkat se s problémy spojenými s distribucí souborů na jednotlivé souborové systémy. Věci se pak nevyhnutelně vychýlí z rovnováhy a vynutí přemisťování souborů.

    Další možnost je místo souborového systému použít databázi. Souborové systémy jsou ale s operačními systémy spjaty od počátku a vývojáři i uživatelé jsou na ně zvyklí. Souborové systémy také lépe zvládají částečné selhání; u databází se naopak většinou jedná o záležitost všechno, nebo nic.

    [Ric Wheeler]

    Kdyby někdo chtěl experimentovat se souborovým systémem s miliardou souborů, jak přijít k hardwaru, který to zvládne? Aktuálně je nejsnazší použít externí diskové pole – ta se dodávají s nonvolatilním cachováním a hierarchií úložných technologií. Poměrně často jsou rychlá při práci s proudy dat, ale náhodný přístup může být rychlý i pomalý podle toho, kde jsou uložena data, o která je zájem. Stojí od 20 000 dolarů výše.

    Co se týče úložišť bez rotujících částí, Ric řekl jenom to, že 1 TB stále stojí dobrých 1000 dolarů, takže rotující disky tady s námi ještě nějaký rok pobudou.

    Co když si budete chtít vytvořit 100TB pole sami? To zkusili v Red Hatu. Systém se skládal mimo jiné ze čtyř rozšiřujících polic, které obsahovaly 64 2TB disků. Stálo přes 30 000 dolarů a jak řekl Ric, obecně to byl špatný nápad. Jestli někdo chce velké úložné pole, nejlépe udělá, když půjde a koupí si ho.

    Životní cyklus souborového systému podle Rica začíná operací mkfs. Pak je souborový systém zaplněn, různě se používá a občas je zapotřebí fsck. Někdy v budoucnu jsou soubory odstraněny. Ric sestavil sérii grafů, ve kterých ukazoval, jak se ext3, ext4, XFS a btrfs chovaly při každé této operaci na souborovém systému s milionem souborů. Výsledky se různily, ale konzistentní bylo, že ext4 se obecně chová lépe než ext3. Při vytváření souborového systému jsou ext3/4 mnohem pomalejší než ostatní, protože musí vytvořit statické tabulky inodů. Na druhou stranu nejhůře si při vytváření milionu souborů vedly ext3 a XFS. Všechny kromě ext3 si vedly přiměřeně dobře při fsck – i když u btrfs se objevuje prostor pro optimalizaci. Velký propadák při odstraňování milionu souborů předvedl XFS.

    Grafy můžete vidět v Ricových slidech [PDF].

    Jedna věc je do souborového systému vložit milion souborů, ale co miliarda? Ric tento experiment zkusil na ext4 a ,udělej si sám‘ poli popsaném výše. Jenom vytvoření souborového systému nebylo pro netrpělivé; trvalo to přibližně čtyři hodiny. Vytvoření miliardy souborů potom zabralo čtyři dny. Překvapivé je, že fsck na tomto souborovém systému trvalo jenom 2,5 hodiny – procházka parkem. Jinými slovy Linux miliardu souborů zvládne.

    Z tohoto pokusu nicméně vyplynuly nějaké informace; z nich se dá určit, kde se objeví problémy. První z nich byl, že fsck na souborovém systému zabralo hodně paměti: Na 70TB souborovém systému s miliardou souborů bylo zapotřebí 10 GB RAM. Toto číslo se zvyšuje na 30 GB, když se použije XFS, takže věci mohou být i horší. Krátký závěr: Do malého serveru lze nacpat obrovské úložiště, ale nebudete na něm schopni spustit kontrolu. To je omezení, o kterém je dobré vědět.

    Další lekce: XFS má i přes své přednosti potíže, když pracuje se zátěžemi, kde se intenzivně pracuje s metadaty. Na zlepšení v této oblasti se pracuje, ale ext3 se zatím v takových situacích chová lépe.

    Podle Rica je spuštění ls na obrovském souborovém systému „špatný nápad“; iterace přes mnoho souborů může vygenerovat spoustu I/O aktivity. Když se snažíte podívat na tolik souborů, je potřeba vyhnout se řazení a volání stat() na každý soubor. Některé souborové systémy dokáží vrátit typ souboru se jménem ve volání readdir(), takže v mnoha situacích není nutné volat stat(); v tomto případě to může hodně pomoci.

    Obecně je vypisování souborů pomalé; přinejlepším lze zvládnout několik tisíc souborů za sekundu. Zdá se to být hodně, ale pokud je cílem miliarda souborů, projít celý seznam trvá velmi dlouho. S tím spojený problém je zálohování/replikace. Obojí také zabere spoustu času a může to negativně ovlivnit výkon dalších věcí, které běží paralelně. To může být problém, protože i když záloha může trvat několik dní, je opravdu potřeba ji spustit na produkčním systému. V takových situacích by mohly výkonnost systému zachránit řídící skupiny [control groups] a řadiče I/O propustnosti.

    A nakonec vývojáři aplikací musí mít na paměti, že procesy, které běží takhle dlouho, se nevyhnutelně budou dříve či později potýkat se selháními. Je tedy nutné navrhnout je s nějakou možností vytvořit kontrolní body a k těm se později vrátit. Také musíme vynechat opakované pokusy, když I/O operace selže – dlouhá čekání na opakování mohou způsobit, že se z pomalého procesu stane proces, který nelze ukončit.

    V krátkosti: Jak se věci zvětšují, narazíme na problémy se škálovatelností. Na tom není nic nového, takové problémy jsme v minulosti vždy překonali a rozhodně bychom měli být schopni překonávat je i v budoucnu. Nicméně je vždycky lepší o těchto věcech mluvit dřív, než je jejich řešení urgentní, takže Ricova přednáška a podobné poskytují komunitě cennou službu.

    Konec blokových bariér

    link

    napsal Jonathan Corbet, 18. srpna 2010

    Jedno z viditelnějších rozhodnutí, ke kterému se dospělo na nedávném Linux Storage and Filesystem summit, bylo zbavit se podpory bariér v blokovém subsystému linuxového jádra. Toto rozhodnutí se líbilo, ale bylo trochu nepochopeno (dost možná nejvíce autorem článku). Nyní nová sada patchů od Tejuna Heo ukazuje, jak bude pravděpodobně v budoucnu řešeno řazení požadavků v blokové vrstvě.

    Bloková vrstva musí být schopna změnit pořadí I/O operací s diskem, pokud se má zachovat výkonnost, kterou uživatelé od svých systémů očekávají. Na rotujících discích lze hodně získat minimalizací pohybu hlavičkami a tohoto cíle lze nejlépe dosáhnout tak, že se všechny požadavky v jedné oblasti zpracují naráz bez ohledu na pořadí, v jakém byly zadány. I u flashových zařízení lze získat tím, že se sousedící požadavky seskupí; obzvláště to platí v případě, že je možné menší požadavky sloučit do větších. Vysílání požadavků je normálně úkolem pro I/O plánovač; ten v blahé nevědomosti změní jejich pořadí, protože nemá tušení o rozhodnutích na vyšší úrovni, která tato požadavky vygenerovala.

    Zde je potřeba vzpomenout, že ke změně pořadí dochází i v zařízení samotném; požadavky se ukládají do (potenciálně volatilní) cache a zápisy se provedou, když hardware usoudí, že je to vhodné. Tato změna pořadí je typicky pro operační systém neviditelná.

    Problém samozřejmě spočívá v tom, že není vždy bezpečné libovolně měnit pořadí I/O požadavků. Klasickým příkladem je chování žurnálovacího souborového systému, který funguje přibližně takto:

    1. Zahájí se nová transakce
    2. Všechny plánované změny metadat se zapíší do žurnálu. V závislosti na souborovém systému a jeho konfiguraci se do žurnálu mohou zapsat i data.
    3. Zapíše se záznam o provedení [commit record], který transakci uzavírá.
    4. Zahájí se proces zapisování změn v žurnálu do souborového systému.
    5. Jdi na 1.

    Jestliže systém spadne před dokončením bodu 3, všechno v žurnálu se ztratí, ale integrita souborového systému zůstane neporušena. Jestliže systém spadne po bodě 3, ale před zapsáním změn do souborového systému, změny se přehrají při příštím připojení, takže jsou zachována metadata i integrita souborového systému. Díky žurnálování je tedy souborový systém relativně páduvzdorný.

    Představme si ale, co by se mohlo stát, kdyby se změnilo pořadí požadavků. Jestliže je záznam o provedení zapsán předtím, než se všechny změny zapíší do žurnálu, přehraje se po pádu nekompletní žurnál, což souborový systém poškodí. Nebo pokud transakce uvolňuje nějaké bloky na disku, ty jsou následně znovu použity jinde a zapíší se do nich data předtím, než je provedena transakce, která je uvolnila, opět dojde při pádu k poškození. Souborový systém tedy zjevně musí být schopen vynutit řazení toho, jak jsou požadavky prováděny; jinak může být jeho snaha garantovat integritu za všech okolností k ničemu.

    Několik let byly řešením požadavky na bariéru. Když souborový systém zadá požadavek blokové vrstvě, může ho označit jako bariéru, což znamená, že by bloková vrstva měla provést všechny požadavky zadané před bariérou dřív než požadavky zadané po ní. Bariéry tedy zajistí, že se operace na médiu projeví ve správném pořadí, přičemž bloková vrstva není příliš omezena a může měnit pořadí operací mezi bariérami.

    V praxi mají ale bariéry nepříjemnou pověst zabijáků výkonnosti I/O; až do té míry, že jsou správci často v pokušení risknout to a vypnout je. Přestože značkované operace ve frontě [tagged queue operations] dostupné na současném hardwaru by měly bariéry implementovat dostatečně dobře, pokusy použít tyto vlastnosti obecně naráží na obtíže. Ve skutečném světě jsou tedy bariéry implementovány jednoduše tak, že se fronta I/O požadavků nechá vyprázdnit před zadáním bariérové operace; do toho se přihazují nějaké operace, které hardware donutí, aby data opravdu zapsal na trvalé úložiště. Vyprázdnění fronty zařízení brzdí a omezuje to paralelismus potřebný pro maximální výkon; není tedy překvapivé, že používání bariér může být problematické.

    Ve svých diskuzích o tomto problému si vývojáři úložišť a souborových systémů uvědomili, že sémantika řazení poskytovaná blokovou vrstvou je mnohem silnější, než je zapotřebí. Souborové systémy potřebují zajistit, aby byly některé požadavky vykonány v daném pořadí a aby se specifické požadavky dostaly na fyzické médium předtím, než je možné zahájit jiné. Kromě toho souborové systémy nemusí zajímat řazení většiny ostatních požadavků, takže používání bariér omezuje blokovou vrstvu více, než je nutné. Obecně se došlo k závěru, že souborové systémy by se samy měly starat o řazení, protože k tomu mají nejlepší informace, a neházet problém na blokovou vrstvu.

    Aby to implementoval, odstraňuje Tejunův patch operace tvrdých bariér; jakýkoliv souborový systém, který se pokusí je použít, dostane přes svou veškerou snahu veselou chybu EOPNOTSUPP. Souborový systém, který chce, aby operace proběhly ve specifickém pořadí, je prostě musí v daném pořadí zadat a čekat na dokončení tam, kde je potřeba. Bloková vrstva pak požadavky může řadit libovolně.

    Co bloková vrstva udělat nemůže, je vyhnout se zodpovědnosti za to, aby se důležité požadavky dostaly na fyzické médium, když to souborový systém potřebuje. Takže zatímco bariéry mizí, nahradí je „požadavky na zápis“ [flush request]. Na dostatečně schopných zařízeních může mít požadavek na zápis dvě různé potřeby: (1) zápisová cache musí být před zahájením operace vyprázdněna a (2) data spojená s požadavkem na zápis musí být zapsána na fyzickém médiu před dokončením požadavku. Druhá část se obvykle nazývá požadavek na vynucení přístupu k jednotce [force unit access, FUA].

    V takovém světě může žurnálovací souborový systém zadat všechny požadavky pro zápis do žurnálu vztahující se k dané transakci a pak počkat na jejich dokončení. V tu chvíli souborový systém ví, že se zápisy dostaly do zařízení, ale mohou být v interní cache. Zápis záznamu o provedení pak může následovat s nastavenými bity „flush“ a „FUA“; to zajistí, že se všechna data žurnálu dostanou na fyzické médium před záznamem o provedení a že záznam o provedení bude zapsán, když se požadavek dokončí. Mezitím se může pracovat na všech ostatních I/O operacích – pracujících s předchozími transakcemi nebo na těch, které běží bez transakcí – čímž nedojde ke zbrždění fronty, která charakterizuje bariérové operace implementované v současných jádrech.

    Tato sada patchů byla přijata dobře, ale stále je potřeba dodělat nějakou práci obzvláště na konverzi souborových systémů tak, aby věci dělaly novým způsobem. Za tímto účelem zaslal sadu patchů Christoph Hellwig. Také bude potřeba spousta testování; vzhledem k tomu, jak závažné jsou důsledky selhání, by si jenom málokdo přál zavést v této oblasti nějaké chyby. Vývojový cyklus ale teprve začal, takže zbývá poměrně mnoho času věci setřást a rozchodit před otevřením začleňovacího okna 2.6.37.

           

    Hodnocení: 100 %

            š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ář

    3.9.2010 14:17 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu

    ...nový zabiják při nedostatku paměti a háčky pro fanotify...

    Ještě někomu kromě mě přijde tahle snaha o doslovné přeložení každého slova za každou cenu retardovaná?

    3.9.2010 14:23 chrono
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Tie slová sú rovnako hlúpe aj v angličtine a z kontextu som pochopil o čo ide, takže mne ten preklad nevadí.
    Ruža Becelin avatar 3.9.2010 15:24 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Jo, je to trochu krecovitejsi, ale porad je to houby proti tomu, co v posledni dobe predvadeji na Rootu - Bezpecnostni stripky snad hrnou rovnou z Google translatoru, protoze to se fakt prestava dat cist :-(
    5.9.2010 21:31 Sten
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    fanotify je přeložené? :)

    Ne, nepřijde, je to jenom nezvyk, známá psychologická vlastnost člověka, když to známe pod původním názvem. Pokud bychom to od začátku znali pod přeloženým názvem, tak by nám to přišlo úplně normální. Komu třeba přijde divný doslovný překlad „počítač“ místo „computer“?
    5.9.2010 21:36 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Pokud, kdyby...

    Jedna věc je přeložit "computer" a druhá věc je překládat každou ... Přirozenost prvního nevylučuje uhozenost druhého.
    6.9.2010 19:55 msaft | skóre: 7
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    imho zabiják je dobrý a na háčky jsem si už zvykl (aspoň je obtížné nepochopit co byl míněno)
    9.9.2010 23:02 tomfi
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Jsem si vzpomněl na krásný český hemenex versus hrozný anglický název "Ham and Eggs" :D
    4.9.2010 18:06 Mepho
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Hm zaujimave, hodil som si na desktop testovaciu verziu, zkompiloval som a zistujem, ze je podstatne rychlejsia / mensia (rychlejsi boot podla bootchartu o 10percent, velkost -14 percent). Porovnane s 35 verziou z gentoo-sources repozitara (dake patche na gentoo).

    Zaujimave, no nehadam sa.
    7.9.2010 20:54 m;)
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    tak velka pamatova a aj casova narocnost fsck na obrovskych filesystemoch (terabajty) bola vo freebsd na ufs2 problemom uz istu dobu. vyriesili to kombinaciou soft-updates + journaling a vysledkom je kontrola a oprava filesystemu do niekolkych sekund. a je to zavisle nie na pocte suborov, ale pocte transakcii v case padu. krasa :-)
    Heron avatar 8.9.2010 08:38 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    A to je kontrola celého FS?

    Žurnál má i ext3,4 a xfs, ale v článku se jedná o vynucenou kontrolu celého FS, bez ohledu na jeho čistotu. Za několik sekund se těžko stihnou přečíst všechny datové struktury daného FS.
    8.9.2010 21:41 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Jaderné noviny – 18. 8. 2010: Miliarda souborů v Linuxu
    Pekne, pekne.
    If you hold a Unix shell up to your ear, you can you hear the C.

    Založit nové vláknoNahoru

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