Ext4 pomohlo odhalit „špatně“ napsané aplikace
Ext 4 je označeno za stabilní teprve krátce a nyní se začaly objevovat problémy. Kromě jiného přináší Ext 4 také zpožděnou alokaci. To znamená, že když vytvoříme soubor a zapisujeme do něj data, tak ty se drží stále v paměti a na disk se nic nezapisuje. Některé desktopové aplikace (Firefox) nebo rovnou celá desktopová prostředí (KDE a Gnome) pracují se svými konfiguračními soubory tak, že je smažou a znovu vytvoří. Když se tak stane a systém chvilku po tom zhavaruje, nebudou tyto soubory zapsány na disk a zmíněné programy bez nich třeba již nenajedou. Problém se netýká jen Ext 4, ale také XFS nebo Btrfs.
Dále čtěte…
- Proč je Btrfs lepší než Ext 2/3/4? 10. 1. 2012 9:27
- Btrfs tloustne, XFS hubne 23. 6. 2011 15:00
- Ve Fedoře 16 by mohlo být Btrfs výchozím souborovým systémem 10. 6. 2011 11:05
- Velký test sedmi souborových systémů na HDD i SSD 10. 3. 2011 11:59
- Ext4 a Btrfs jsou v jádře 2.6.36r3 až o 40 % pomalejší 9. 9. 2010 13:27
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoTreba americka pobocka Deutsche Bank po 11. zari 2001 prisla o sedm zamestnancu a vsechna originalni data. Bez funkcnich zrcadel by business uz asi nerozjeli. Podobne si myslim, ze vas prispevek by neocenily spolecnosti sidlici v oblastech suzovanych hurikany, zemetresenimi a dalsimi katastrofami (Kalifornie, Florida, Japonsko, ...).
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoNavic implementace ve windows, kdy registry nejdou rozumne zalohovat (ani admin nema sanci si je nekam rozumne zkopirovat) je obzvlaste nestastna (taky spousta aplikaci do registru uklada veci ktere by tam asi patrit nemely (nacachovane thumbnaily), byt to je spis problem tech aplikaci nez systemu, kazdopadne vysledkem je dosti bordel)
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoAle spousta desktopovych aplikaci potrebuje proste uzivateslka data proste nekam ulozit a pak je v poradku nacist. Tak proc to vyvojarum nezjednodusit - typovost ulozenych hodnot, podpora objektove-relacniho modelu, transakce, zurnal (viz. clanek), zalohovani, system opravneni atd, to vse muze vyvojarum pomoci. Protoze tuhle funkcionalitu si stejne vyvojari musi nejak napsat sami. Kdyz uz pouzivame Qt nebo GTK pro GUI, tak proc nepouzit nejakou knihovnu pro jednotne reseni konfigurace pomoci db? Staci jen nebat se porusit zazita dogmata, ze konfigurak *musi* byt textak, popr. xml.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoA kdo jim to zesložiťuje? :-) Vždyť stačí mít nainstalovanou PostgreSQL (s „ident sameuser“) a každá aplikace ať si založí svoje schéma a do něj si nastavení ukládá. Klidně si do těch tabulek může ukládat třeba XML dokumenty :-)
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoJakmile by tohle existovalo, dalo by se premyslet, jak to implementovat lip a lip. Treba by se nakonec ukazalo, ze nejlepsi by bylo tahle data ukladat na zvlastni diskovy oddil, kde by fungoval zurnal, prava atd... prizpusobene potrebam konfiguraku. Nebo neco jineho (treba soubory v /etc :-)). Podstatne je, ze kazdy by si mohl vybrat, co prave jemu vyhovuje. Nekdo pozaduje rychlost, nekdo zase bezpecnost, nekdo zase aby si mohl konfiguraky cist jako detektivku. A vsechny konfiguraky by vypadaly stejne (a nebo taky ne - neni duvod, proc by cast konfiguraku nemohla byt ulozena jinak nez jina cast - kazdopadne by byly pristupne pomoci jednoho front-endu).
Zapisovani a cteni konfiguraku neni obvykle nejaka kriticka operace, takze to muze byt i pomalejsi, nez by pro dany pripad bylo mozne.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoKonfiguráky do XML ale bez univerzálního DTD.
celé vlákno…bystří už možná vědí…
…ano, XML samo o sobě je takovým stromem, XML jako takové je formát a standard, který se dá dobře používat, není potřeba dělat univerzální DTD platné pro všechny aplikace – tohle je úplně zcestný přístup a nepochopení XML. Je také dobré se zamyslet nad sémantikou – pokud budu mít univerzální DTD (či schéma), mám tam prakticky dvojice klíč=hodnota, zabalené do ostrých závorek, tudíž jen tak nevím, co to je za data (obecně nevím, co znamená klíč "abc.wer.sfg", to ví jen ta aplikace, která ho používá) → proto můžeme pro konfiguráky používat jakékoli XML, stačí, když bude validní – sémantice nebudeme* rozumět tak jako tak, ale v případě, že nevnutíme aplikacím nějaké „jediné správné univerzální DTD pro ukládání konfiguráků“, jim dáme možnost naplno využívat výhody XML, protože každá aplikace si může napsat DTD podle vlastních potřeb (aby odpovídalo strukturám, které je potřeba ukládat).
*) z pohledu nějakého univerzálního nástroje nebo API
Re: Konfiguráky do XML ale bez univerzálního DTD.
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoBinární strukturu lze samozřejmě také opravovat. Viz běžné DB, viz fsck. Možnost porušení binárních struktur existuje i na vlastním FS, ale není to důvod kvůli tomu FS zavrhovat. Navíc se podívejte na existující implementaci. Ve Windows k problémům s poškozením konfigurační DB prakticky vůbec nedochází (nebavíme se o hodnotách v té DB), a navíc je vždy udržována Last Known Good Configuration.
Registry samozřejmě lze zálohovat, umí to i backup vestavěný ve Windows. A které aplikace ukládají do registry thumbnails?
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoBTW, myslenka registry mozna ma neco do sebe, ovsem ne MS prasecina, kde je vse rozptyleno po cele databazi zcela nahodne tak, ze clovek nikdy nedokaze dohledat vsechna nastaveni tykajici se konkretniho programu. Tez, kdyz nekdo prijde s necim, jako je registry, cekal bych, ze jiz od prvni verze k tomu bude opravny nastroj spustitelny z Widli a pro nejhorsi pripady, kdyz uz Widle nenajedou, tez bootovaci disk s opravnou utilitou a podporou FS obvyklych na dane verzi Widli. Na oboji se MS vydlabl s tim, ze se ma zalohovat registry. Uz vidim, jak kazdy honem zalohuje registry po kazdem updatu. Navic clovek nikdy nevi, kdy registry zacalo byt namrsene a jestli uz nezalouhuje nabouranou verzi. A prictete si spolehlivost 3.5" disket...
Jedine, co kdy MS zplodil, bula nepodporovana utilita z doby Win NT 4.0 a od te doby nic. Web se sice hemzi vselijakymi registry cleanery, ale cert jim ver, ze nenadelaji vice skody, nez uzitku.
Textaky maji sice sve slabiny, ale jejich obrowskou silou je opravitelnost ci nahraditelnost i za obzvlaste neprizniveho pocasi, coz se o registry rici neda. Cili ne, dekuji. Spokojim se se zastaralymi textaky, o ktere by si LO ani kolo neoprel.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoJistě, můžeme oprávněně namítat, že Windows 95 a spol. podobnou vlastnost neměly (byť mám neurčitý pocit, že ve Win95B už jakýsi náznak existoval) a že toto řeší následek a nikoli příčinu, ale taky bychom se neměli uchylovat k tvrzením, která byla aktuální před deseti lety, to je jen pozvánka pro fanatické MS trOLy.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoWindows mají na instalačním médiu automatický repair, což je užitečná feature. Záloha Registry se pořizuje automaticky, a vždy máte Last Known Good Configuration, o čemž se vám s konfiguráky může jen zdát. Utilita pro registry cleaning z NT4 se podle všeho starala o HODNOTY zapsané v Registry, ne o vlastní Registry jako úložiště hodnot; a stejné je to s těmi pochybnými "čističi registry" pro lamy. Je to asi podobné, jako byste měl na Linuxu utilitu, která proskenuje /etc a ~/.* na nesmysly (třeba odporující si nastavení, deamony startující z neplatných cest, a duplitity sekcí a klíčů v konfigurácích), a pak tvrdil, že taková aplikace je na Linuxu hrozně potřeba.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoTo, ze jste byl zavisly na 3d hrach nebyla chyba systemu, ale Vasi slabe vule, tak to sem netahejte.
A uzivatele, kterym se ve vistach neco vysere? Uz se mi stalo, ze mi prisel od kamarada pres IM virus.. Pisu mu, ze tam ma viraka, at nepousti sracky z linku, ke kterym mu nikdo nic nenapise, nebo at nainstaluje antivir. "Ja tam antivir mel, ale vypnul jsem ho, protoze rval, a byl jsem zvedavy co mi to ten znamy posila". Pak to svadejte na OS, kdyby takovy clovek mel linux, a program po nem chtel prava, tak 'su -c' to jisti ;]
mnohem jednodušší správu ověřeného sw - fakt? vite o cem mluvite? treba.. digitalni podpisy potrebne pro import do GAC, ..?
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoO těch 3D hrách byla trochu nadsázka, je vaše věc, že mě berete jako závisláka bez vůle. Ok, je to vaše věc. Když o mě nic nevíte, hned nesuďte, nemám to rád.
Co se týče toho viru, tak jsem tu vaší hlášku opravdu nepochopil, můžete mi to přeformulovat do češtiny? Link místo odkazu ještě skousnu, ale z vaší zprávy nevyplývá, zda se vám to stalo na Windows nebo na Linuxu (ano, opravdu jsme na portálu zabývajícím se linuxem, zajímavé, že). Ale ok, vydedukoval jsem, že mluvíte o Windows. Jasně, že mohu použít sudo (konkrétně v Ubuntu), ale jakmile ho používám, vím, že dávám programu neomezené možnosti. Mě to tedy třískne do očí. Pokud je uživatel tak naivní, že su či sudo dává všude, tak :-D pápálálá.
K té správě - repozitáře těch "lepších" distribucí jsou kontrolovány, nemluvím o těch neoficiálních. Teď tu nechci nic plést, ale mám dojem, že základní repozitáře podepsány jsou ;), mám tak problém třeba u Wine, když nepřidám podpis, to pak správce řve při každé instalaci wine atd.
Abych vám jen vše nevyčítal, opravdu nevím, co je GAC, do příště prostuduji. Asi jsem lama ;). A já se za to nestydím.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoMalware už nepotřebuje oprávnění roota. I v kontextu běžného uživatele může malware běžet ve vaší session, odesílat spam, posílat HTTP či DNS požadavky, a stahovat si vlastní "aktualizace".
RE: WTF?? spam?? redakce!
celé vláknohttp://www.youtube.com/watch?v=4fzR4n6o_UE
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoTo co je opravdu problem je nasledujici:
cp file file1
rm file
<reset/crash>
Obavam se, ze v tomhle pripade ext4 neni uplne to prave orechove
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vlákno- Výhoda DB by byla v transakcích – sice přijdeš o nová data, ale zůstanou ti aspoň ta stará (v případě, že ti to spadně ještě před commitem …nebo krátce po něm) – ale nepřijdeš o všechno.
- BTW: Jak se Java vyrovná s transakcemi u souborů.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoNeni nad to, kdyz si system, kazda aplikace, a snad i dvere od pracovny ukladaji vsechno mozne i nemozne nastaveni na jedno misto...
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRegistry ve Windows - ten zdroj problémů a nepřehledná nedokumentovaná změť - prý je řešením :-)))
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoto je jako v textovem editoru: pisete do dokumentu a pak ho(textovy editor) bez ulozeni vypnete a divite se, ze se neco/nic neulozilo, kdyz to prece pred tim, v jine verzi editoru, ktera mela zapnuto automaticke ukladani po 5sec, vzdy fungovalo..
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoAlternativa open("config.tmp"), write(), fsync(), close(), rename("config.tmp", "config") je zbytecne silna. Aplikaci obvykle nezajima aby na disku byla ta novejsi data - chce budto konzistentni stara, nebo konzistentni nova data (nejlepe aniz by aplikace musela cekat na nejakou diskovou operaci). Coz prostredky POSIXu bohuzel neni jak jadru rict - fsync() je prilis silne. Myslim ze pristup ext4 ve 2.6.30+ (vynutit alokaci a tedy i zapis dat pred metadaty pri close() a truncate()) je vicemene spravny.
-Yenya, http://www.fi.muni.cz/~kas/blog/
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoPokud byste prepisovali primo stary soubor, mohlo by se stat, ze system/aplikace spadne v pulce zapisovani a v souboru bude polovina dat z nove verze a polovina ze stare => bude nekonzistentni a nejspis k nicemu.
Pokud pod ext4 toto nefunguje, tak to vidim jako jednoznacny bug FS.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknonejlip se to vyzkousi treba na vmwaru, kde priblizne v 50% kdyz se takhle linux natvrdo zabije, tak uz nikdy bez problemu nenajede (vetsinou treba Xka, serou se aplikace atd).
Windows takhle zabijim ve vmwaru 5x denne a doposud nikdy sebemensi problem ... ze by snad ten princip DB s zurnalem pro konfiguraci - registry, nebyl az tak spatny?:o)
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoTimhle se da pekne udelat transakce ("vsechno nebo nic") na urovni FS. A hodi se to nejen kvuli padum, ale pokud chcete menit soubor, ktery nejaka jina aplikace periodicky otevre-precte-zavre. Vytvorite novou verzi a pak udelate rename a mate zajisteno, ze aplikace precte bud starou, nebo novou verzi. Na Windows tohle nefunguje a obcas mi to docela chybelo.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoO kus vedle jsem popisoval, že Windows Registry má transakční mechanismus, takže každá hodnota v Registry bude obsahovat buď novou, nebo starou hodnotu. V případě Linuxu můžete přijít o celý konfigurák.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoŘeč byla ale primárně o tom, že u Ext4 dochází ještě častěji k tomu, že se konfigurace úplně ztratí. To se vám ve Windows opravdu nestane. Když zapíšete hodnotu do Registry, a dojde k přerušení napájení, tak tam po rebootu najdete buď starou hodnotu, nebo novou. Určitě se nestane, že by vám kvůli tomu odpadnul daný klíč (tj. node stromu) Registry.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknostary problem
celé vláknoRiesenie je jednoduche a imho jedine, /home, /etc a podobne adresare s vyssou frekvenciou zmien suborov ext2/ext3. Na datove adresare XFS/ext4 atd...
Mozete mat crash proof filesystem alebo rychly journal filesystem, oboje asi tazko. Iba tak hodit journal na nejaky SRAM.
Re: stary problem
celé vláknoNa Linuxu i ve Windows je možné při otevírání souboru specifikovat write-through flag (O_FSYNC resp. FILE_FLAG_WRITE_THROUGH). Pak by neměla probíhat delayed allocation, a data by měla být zapsána na disk před návratem z příslušného volání. Otázka je, jestli to tak s Ext4 opravdu funguje. S ohledem na "kvality" Linuxu bych na to nesázel.
Transakce
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vlákno-Yenya, http://www.fi.muni.cz/~kas/blog/
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vlákno-Yenya
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknofsync - synchronize a file’s in-core state with storage device
a file = jednoho souboru. Nevím o tom, že by to někdy dělal pro víc souborů (snad kromě sparse files, ale ty opravdu nejsou velké). Jediný možný problém je v tom, že fsync neflushne drive cache, tam je opravdu nutné flushnout všechno a zavolat sync.
Pořád se může stát, že smáznete starý konfigurák, ale už nestačíte přejmenovat ten dočasný na nový.
Houby, funkce rename je atomická.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoFunkce rename je atomická, ale bohužel unlink(a);rename(b) atomické není. Ve Windows být může, ovšem to jsme vývojově o 10+ let jinde. U konfigurační DB, která tenhle problém nepotřebuje řešit, pak o 20+ let jinde.
RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoRE: Ext4 pomohlo odhalit „špatně“ napsané aplikace
celé vláknoŠpatně pochopeno
celé vláknoRe: Špatně pochopeno
celé vláknozapsat nový konfig
fsync(config.new)
rename(conifg.new, config)
fsync(adresář s konfigurací)
Mimochodem, proč je mažou, když rename umí nahrazovat soubory a je atomické?

