Portál AbcLinuxu, 12. května 2025 12:22
V jádře 3.6.2 a novějších byla nalezena chyba v ext4, která způsobuje poškození nebo ztrátu dat. Chyba byla backportována i do řad 3.4 a 3.5.
Tiskni
Sdílej:
Na file serveri vyhrava hlavne vdaka dobremu skalovaniu (scaling) (suvisi s tym, ze vacsina xfs podcasti funguje v style thread na jadro).
Vykon, co sa tyka malych suborov, bol do nedavna skutocne zalostny, ale s prichodom delayed logging sa to zlepsilo a vykon je podobny ako pri ext4 (teda az na to mazanie, tam stale vyhrava ext4, tam uz ide o rozdiel v navrhu filesystemu).
Inak do buducnosti sa ocakava spomalenie v kode xfs kvoli novemu formatu hlaviciek, ktory bude zahrnat aj checksumy kvoli zlepseniu konzistencie dat (aj ked samozrejme pojde to aj vypnut a netyka sa to uz vytvorenych filesystemov).
To, co popisujete je najskor sposobene tym, ze data boli zapisovane asynchronne (ziadny O_DIRECT a pod.). Vtedy maju data az asi 60 sekund, kym su skutocne zapisane. Nieco podobne nedokaze rozchodit ziadny filesystem (a osobne povazujem za horsie tie, ktore sa tvaria, ze ano). Po aktualizacii glibc alebo jadra je vhodne proste zavolat fsync. O nieco podobne by sa mal asi starat uz spravca balikov (nie som si tym uplne isty, ale myslim, ze napr. yum to robi).
Sem-tam sa najdu aj nejake nestastne chyby v kode xfs, ktore sposobia problemy v tychto situaciach, ale nejak moc caste nie su (a pokial ich mavate 'casto', tak sa bez bug reportov neopravia).
Mimochodom starsie jadra s xfs stracali menej suborov. Asi od 2.6.35 totiz xfs zacal z vykonnostnych dovodov podporovat nieco, comu sa vravi 'delayed logging'. V praxi to znamena, ze pokial pracujete s velkym mnozstvom malych suborov, tak sa zapisuju az po nejakom case spolocne. Toto sposobilo obrovsky rychlostny boost v pripadoch, ked mate velmi vela malych suborov (stale sa tym xfs dostalo len priblizne na uroven ext4). Nevyhodou je prave stracanie suborov vo vacsom rozmere (vyvojari xfs preto apeluju na pouzivanie fsync, ked je to potrebne - inak nema ako filesystem vediet, ze ide o velmi dolezite data).
Zaverom: prazdne asynchronne zapisovane subory po vypadku energii skutocne nie su povazovane za chybu file systemu. File system totiz nebol nijak varovany, ze sa o ne ma viac starat.
3.4.6-2.10, update na 3.4.11-2.16 jsem viděl, ale prozatím nechci zasahovat do běžícího systému.
Ja zatiaľ používam ext3 a zatial som nemál problémy s týmto filesystémom. I keď nie je možné vylúčiť súhru nepriaznivých okolnosti, ktoré dokážu poškodiť aj takmer nezničiteľný filesystém.
Je na mieste otázka na aké médium zalohovať data a aký filesystém pritom použiť.
Even though it is a severe bug the chances of it happening to you are low. You have to unmount and immediately remount an EXT4 partition twice in a row for it to happen. On a normally operating system that is not a normal thing to happen. Just wait on your desktop for 5 minutes before rebooting again.At tak ci onak, asi nainstaluju LTS kernel kde by tato chyba byt nemela...
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.