Kirjoittaja Aihe: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota  (Luettu 3089 kertaa)

Senior

  • Vieras
http://www.h-online.com/open/Possible-data-loss-in-Ext4--/news/112821

Olemassa mahdollisuus että luotua dataa katoaa. Aiemmissa tiedostojärjestelmissä järjestelmän mahdollinen kaatuminen ei aiheuttanut sitä että tietoa ei olisi ehditty kirjoittaa mutta EXT4:ssä tällainen mahdollisuus on huomattavasti suurempi.

"A bug report posted in the bug tracker for the next version of Ubuntu 9.04 (Jaunty Jackalope) describes a massive data loss problem when using Ext4, the future standard file system for Linux, available as an option when installing Ubuntu 9.04. The report describes a crash occurring shortly after the KDE 4 desktop files had been loaded, resulting in the loss of all of the data that had been created, including many KDE configuration files.
---
"In a reply, Ext4 Developer Ted Ts'o explains the background of the problem. Like other modern file systems, such as XFS, Ext4 implements delayed allocation – writing new data can take up to 60 seconds. This increases the performance and allows for optimisation of the data organisation on the hard drive platter."

Ts'o says that the application should be fixed so it does not write and rewrite small files. He advises that "this is really more of an application design problem more than anything else."

mikkokan

  • Käyttäjä
  • Viestejä: 180
    • Profiili
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #1 : 12.03.09 - klo:16.34 »
Jep tätä on puitu jo tälläkin foorumilla. Itsellä yhdellä koneella hävisikin firefoxin kirjanmerkit kun kone kaatu juuri kun firefox oli käynnistymässä. Joten ehkä vielä kannattaa odottaa jos tietokone on tärkeässä tuotannollisessa käytössä.

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #2 : 13.03.09 - klo:00.19 »
Ei ole vika Ext4 tiedostojärjestelmässä. Käyttöjärjestelmä hoitaa edelleen tiedostojärjestelmän ja Ext4 noudattaa aivan tarkalleen POSIX standardia.

Ext3 kohdalla oli vain kirjoitus levylle viivästetty 5 sekunttia. Ext4 myötä tämä viivästys on siirretty 150s eli 2.5 minuuttia.

Ongelma on itse ohjelmissa. Kun ohjelma antaa käyttöjärjestelmälle write() käskyn niin se ei vielä ole kirjoittanut sitä levylle. Kun ohjelma antaa käyttöjärjestelmälle käskyn close() niin se kertoo vain että se on lopettanut kyseisen tiedoston käsittelyn. Sitä ei vielä kirjoiteta levylle. Väärin ohjelmoitu ohjelma käsittelee tietoa kuin se olisi varmennetusti kirjoitettu levylle, vaikka sitä ei nii ole.

Oikeaoppisesti ohjelman kuuluu antaa fsync() käsky käyttöjärjestelmälle jolloin käyttis varmentaa että tieto on kirjoitettu levylle.

Tässä tapauksessa Ext4ssa ei ole mitään vikaa, se toimii siis juuri kuten POSIX standardi määrää ja aivan samat ongelmat ovat NTFS, Ext3, XFS ja monella muulla modernilla tiedostojärjestelmällä.

vaihtoehtoja korjata tämä on oikeasti liittää tiedostojärjestelmä -sync optiolla jolloin kaikki luku/kirjoitus-operaatiot tapahtuvat synkronoidusti mutta tällöin nopeus kärsii välittömästi.
Se olisi kuin käyttäisi MS-DOS käyttistä. Linux käyttis (ydin) on kuitenkin suunniteltu juuri Unix kaltaiseksi käyttikseksi. Se pitää tiedot muistissa ennen kuin se siirtää ne kiintolevylle sopivana aikana. Tässä tämä Ext4 2.5 minuuttia tulee että tuon ajan se voi odottaa että tulee sellainen hetki että tiedostot saadaan nopeasti kiintolevylle tallennettua. Jos samaan aikaan on raskas luku/kirjoitusoperaatio toisessa kohtaa levyä niin Linux ei ala kirjoittamaan tietoa ja häiritsemään tätä toista vaan odottaa että kiintolevyn lukupää voidaan siirtää tarvittaville urille kun on aikaa.

Ongelma on ns. kolmivaiheinen.

1. Ohjelma kirjoittaa tiedostoon
2. Ohjelma ohjelma tyhjentää/uudelleennimeää tiedoston (rename())
3. Ohjelma kirjoittaa tiedostoon

2-3 välissä voi kulua 2.5 minuuttia ennen kui oikeasti operaatio suoritetaa. Jos tänä aikana tietokone kaatuu niin ohjelma vielä kuvittelee että tiedosto on 1. tilassa, kun sitä ei ole vielä kirjoitettukkaan levylle vaikka levykirjanpito (journalointi) niin kertoisikin ja tällöin tietoa häviää kun muistissa ollutta uutta tietoa ei ole missään levyllä.

Vikaa Ext4ssa ei siis ole, linux käyttis on edelleen toimiva kuten kuuluu ja vika löytyy muualta.

Tekno

  • Käyttäjä
  • Viestejä: 209
    • Profiili
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #3 : 17.03.09 - klo:01.10 »
Mistähän voisi johtua kun otin tuon ext4:n käyttöön jauntyn kanssa, niin parin viikon kuluttua tiedostot alkoivat hajoilemaan? Niitä ei voinut poistaa, nimetä jne ja koko oli 0 tavua. Terminaaliin tuli muistaakseni jotain I/O erroria, kun niille yritti tehdä mitä tahansa.
Kun FSCK:lla sain korjattua tilanteen, niin jo hetken päästä ol läjä uusia rikkinäisiä tiedostoja.. oli pakko poistaa osiot ja asentaa käyttis uusiksi.
tuttu ja turvallinen ext3 käytössä ja toimii hienosti.

Storck

  • Vieras
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #4 : 17.03.09 - klo:01.21 »
Mistähän voisi johtua kun otin tuon ext4:n käyttöön jauntyn kanssa, niin parin viikon kuluttua tiedostot alkoivat hajoilemaan? Niitä ei voinut poistaa, nimetä jne ja koko oli 0 tavua. Terminaaliin tuli muistaakseni jotain I/O erroria, kun niille yritti tehdä mitä tahansa.
Kun FSCK:lla sain korjattua tilanteen, niin jo hetken päästä ol läjä uusia rikkinäisiä tiedostoja.. oli pakko poistaa osiot ja asentaa käyttis uusiksi.
tuttu ja turvallinen ext3 käytössä ja toimii hienosti.

Ei välttis EXT4 vika/syyllinen, Jaunty on EDELLEEN A/B versio joten odotettavissa on ihan mitä vaan. Mitä kyseiset tiedostot piti sisällään? Missä ne oli?

Tekno

  • Käyttäjä
  • Viestejä: 209
    • Profiili
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #5 : 17.03.09 - klo:01.40 »
siellä sun täällä. lopulta niin paljon ettei käynnistynyt grubia pidemmälle.

Ux64

  • Käyttäjä
  • Viestejä: 586
    • Profiili
Vs: EXT4:stä löytyi paha ongelmakohta - dataa voi kadota
« Vastaus #6 : 01.05.09 - klo:13.52 »
http://www.h-online.com/open/Possible-data-loss-in-Ext4--/news/112821

Olemassa mahdollisuus että luotua dataa katoaa. Aiemmissa tiedostojärjestelmissä järjestelmän mahdollinen kaatuminen ei aiheuttanut sitä että tietoa ei olisi ehditty kirjoittaa mutta EXT4:ssä tällainen mahdollisuus on huomattavasti suurempi.

Ei taida olla mikään uusi juttu tuo. ;) Muistan jo joskus 90 luvun alkupuolella käyttäneeni erittäin loistavaa HyperDisk nimistä levyvälimuistisoftaa dossille. Se helposti tuhatkertaisti levykäsittelyn nopeuden pienillä tiedostoilla. Siinä oli 60 sekunnin viivästetty kirjoitus (tietysti säädettävissä).

Muistan oikein hyvin sen, että muokkasin tiettyjä tiedostoja esim autoexec.bat:ia tai config.sysiä. Painoin save softasta ja painoin reset nappia että kone boottasi. Ensimmäisen bootin jälkeen olin hämilläni. Tein muutokset uudestaan ja varmistin vielä että talletin kaiken. Toisen bootin jälkeen kun avasin tiedostot, kiroilin että mikä hlv on kun ei tallennu. Ihan varmasti muutin ja talletin. Kunnes muistin että en ollut flushannut write cachea ennen boottia.

Ei siis todellakaan ole mitään uutta näillä lakeuksilla.

Päivitin justiin data levyn ext4:n ja olen kohta päivittämässä system levyä. Mutta en ole ihan varma vielä päätöksestäni. Ehkä turhan paljon riskiä. Kaikki data (jolla on jotain väliä) on tallessa, mutta jos systeemin saa solmuun on siinä kuitenkin ihan turhan paljon töitä pistää se jälleen kuntoon.

Mutta ilmeisesti tää jauntyn Grub osaa sitten kaikesta huolimatta bootata ext4:lta, kuten Wikissä (Ubuntu Suomi) sanottiin. Vaikkakaan virallisessa ext4 wikissä sanotaan että boot kannattaisi jättää ext3ksi.

ext4 käytössä ja hyvin pelaa. Tuntuu selvästi nopeammalta, käyttölittymää on myös parannettu jauntyyn.
« Viimeksi muokattu: 05.05.09 - klo:14.37 kirjoittanut Ux64 »