Kirjoittaja Aihe: SATA (IP35) cache flush fail(?), tiedostojen data korruptoituu  (Luettu 2054 kertaa)

Ux64

  • Käyttäjä
  • Viestejä: 586
    • Profiili
Nyt on sellainen ongelma, että tiedostot jotka suljetaan juuri ennen järjestelmän sammuttamista tuntuu korruptoituvan levyllä. Onko kukaan törmännyt siihen että writeback cachen flushaus kiintolevylle epäonnistuisi koneen sammutuksen yhteydessä?

Tuohon oireet viittaavat mielestäni vahvasti. Joku jo sanoi että kiintolevy pitäisi vaihtaa, mutta kun ei siinä ole "mitään vikaa". Useista testeistä huolimatta.

Tuossa hieman taustaa ongelmien kanssa taisteluun:
http://forum.ubuntu-fi.org/index.php?topic=15255.0

Näitä can't set xfermode irq 19 virheitä tulee edelleen bootissa ajoittain, joilla voisi olla joku yhteys asiaan?



Kaikenlaisia ideoita otetaan vastaan. Olen lukenut tämän forumin ja ubuntu forumssin juttuja läpi kasoittain. Eikä ole löytynyt tähän ratkaisua. Paitsi yksi ehdotus jota en ole vielä kokeillut. Kuulemma SATA liittimet pitäisi asentaa "ylhäältä alaspäin" siten että käytetään suurimmat numerot ensin, koska pienempi numeroiset liittimet voivat bugata? Kuulostaa järjettömältä, mutta onhan sitä ennekin ihmeellisiä juttuja nähty.

http://ubuntuforums.org/showthread.php?t=637721&highlight=err_mask+0x40

Tällaista viestiä puskee shutdownin yhteydessä, onko suossa mahdollisesti jotain fataalia?



Tai pitäisikö kaivaa jostain logeista mahdollisesti jotain lisätietoa että ongelma ratkeaisi?

Tulipahan vielä mieleen että on tuossa kiintolevyssäkin 16 megan cache. Joka voisi pahimmassa tapauksessa aiheuttaa ongelmia "nopeassa sammutuksessa".  NCQ:n kanssa sitä ilmeisesti käytetään kirjoitusten puskurointiin. Toisaalta tuon todennäköisyys on mielestäni aika pieni. Koska aikaa tuon datamäärän kirjoittamiseen, nopealla levyllä on enemmän kuin riittävästi. Enemmän viittaisi joko järjestelmän konfigurointi ongelmiin tai ongelmiin IP35 piirisarjan ja ubuntun levy I/O:n kanssa sammutuksessa. Koska käytönaikana data ei korruptoidu, vaan nimen omaan sammutusken yhteydessä.

- Kiitos
« Viimeksi muokattu: 23.01.08 - klo:07.22 kirjoittanut Ux64 »

Ux64

  • Käyttäjä
  • Viestejä: 586
    • Profiili
En ole kokeillut. Ongelmat ilmenee vain satunnaisesti bootissa. Ja datan korruptoituminen tapahtuu satunnaisesti shutdownissa. Mutta mitä lähempänä data on tallennettu levylle (tai cacheen?) ennen shutdownia. Niin sitä todennäköisempää on että se korruptoituu.

Tulee siis fiilis, että cache flushin puuttuminen ennen shutdownia voisi olla ongelman lähde.

Sitten seuraava kysymys. Kuten tuunaus threadissa ilmenee, olen säätänyt koneen palveluita. Onko mikään palvelu mahdollisesti tuon cache flushin osalta välttämätön? Jos on, niin siinä se syy voisi olla. ;) Sellasta se on kun säätää.

Inbox on usein Evolutionissa korruptoitunut ja samoin Deluge korruptoi usein tietoja. Kaikki nämä ovat siis sovelluksia jotka ovat auki kun valitsen shutdown ja näin ollen niiden data menee levylle juuri ennen sammutustaa. Jos flush failaa, niin sehän tiedetään mitä siitä seuraa. Varsinkin kun levy on nyt writeback tilassa.

Väärään paikkaan osoittava pointteri levykirjanpidossa olisi luonnollinen selitys sille, että fileiden sisältönä on "silkkaa roskaa".

- Kiitos lueskelen vielä noi irqpoll jutut läpi.

Tiedä sitten onko ehkä linuxin NCQ tuessa tai IP35 emon NCQ tuessa jotain vikaa? Koska sehän voi mahdollisesti pahentaa assynchronous ongelmia, kun se sallii 32 requestin jonoamisen ja vastaukset satelee myöhemmin. Jostain syystä tuokin näyttäisi olevan disabloituna (0/32)

[   25.482498] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
[   25.703591] ata2.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32)

Pitäs olla ok.

[   25.301596] ata1: SATA max UDMA/133 cmd 0x000000000001f900 ctl 0x000000000001f802 bmdma 0x000000000001f500 irq 19
[   25.482494] ata1.00: ATA-8: SAMSUNG HD501LJ, CR100-11, max UDMA7
[   25.482498] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
[   25.490577] ata1.00: configured for UDMA/133

Hmm. Säädän ton IRQPOLL:in ja katson vaikuttaako se postiivisesti asiaan vai ei. - Kiitos vihjeistä.

Nyt on IRQPOLL päällä, katotaan boottaako vielä. ;)

sync komento näköjään tyhjentää bufferit levylle.

Lähti käyntiin, mikään ei tosin näytä muuttuneen.

dmesgit ja infot...

Koodia: [Valitse]
[    0.000000] Command line: root=UUID=1466f0a6-960d-4c85-9def-f2f0342b16c3 ro irqpoll quiet rootflags=data=writeback
[    0.000000]  BIOS-e820: 000000007fee3000 - 000000007fef0000 (ACPI data)
[    0.000000] PERCPU: Allocating 34696 bytes of per cpu data
[    0.000000] Kernel command line: root=UUID=1466f0a6-960d-4c85-9def-f2f0342b16c3 ro irqpoll quiet rootflags=data=writeback
[   20.543435] Memory: 2054924k/2096000k available (2274k kernel code, 40688k reserved, 1181k data, 296k init)
[   23.837885] libata version 2.21 loaded.
[   24.642797] ata_piix 0000:00:1f.2: version 2.11
[   24.642802] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
[   24.643001] scsi1 : ata_piix
[   24.643038] scsi2 : ata_piix
[   24.643114] ata1: SATA max UDMA/133 cmd 0x000000000001f900 ctl 0x000000000001f802 bmdma 0x000000000001f500 irq 19
[   24.643117] ata2: SATA max UDMA/133 cmd 0x000000000001f700 ctl 0x000000000001f602 bmdma 0x000000000001f508 irq 19
[   24.823804] ata1.00: ATA-8: SAMSUNG HD501LJ, CR100-11, max UDMA7
[   24.823809] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
[   24.833115] ata1.00: configured for UDMA/133
[   25.046745] ata2.00: ATA-7: ST3160812AS, 3.AAH, max UDMA/133
[   25.046750] ata2.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32)
[   25.113339] ata2.00: configured for UDMA/133
[   25.113588] ata_piix 0000:00:1f.5: MAP [ P0 P2 P1 P3 ]
[   25.113653] scsi3 : ata_piix
[   25.113680] scsi4 : ata_piix
[   25.113725] ata3: SATA max UDMA/133 cmd 0x000000000001f200 ctl 0x000000000001f102 bmdma 0x000000000001ee00 irq 19
[   25.113727] ata4: SATA max UDMA/133 cmd 0x000000000001f000 ctl 0x000000000001ef02 bmdma 0x000000000001ee08 irq 19
[   25.447540] scsi5 : pata_jmicron
[   25.447579] scsi6 : pata_jmicron
[   25.447648] ata5: PATA max UDMA/100 cmd 0x000000000001df00 ctl 0x000000000001de02 bmdma 0x000000000001db00 irq 17
[   25.447650] ata6: PATA max UDMA/100 cmd 0x000000000001dd00 ctl 0x000000000001dc02 bmdma 0x000000000001db08 irq 17
[   25.749844] EXT3-fs: mounted filesystem with writeback data mode.
[   25.880211] ata5.01: ATAPI: LITE-ON DVDRW SOHW-1693S, KS06, max UDMA/66
[   26.053361] ata5.01: configured for UDMA/66
[   29.534720] scsi 0:0:0:0: Direct-Access     Kingston DataTraveler U3  6.50 PQ: 0 ANSI: 0 CCS
[   35.304367] EXT3-fs: mounted filesystem with writeback data mode.

Infot:

Koodia: [Valitse]

/dev/sda:

ATA device, with non-removable media
        Model Number:       SAMSUNG HD501LJ                         
        Serial Number:      S0MUJ1NP813697     
        Firmware Revision:  CR100-11
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
Standards:
        Supported: 8 7 6 5
        Likely used: 8
Configuration:
        Logical         max     current
        cylinders       16383   16383
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:   16514064
        LBA    user addressable sectors:  268435455
        LBA48  user addressable sectors:  976773168
        device size with M = 1024*1024:      476940 MBytes
        device size with M = 1000*1000:      500107 MBytes (500 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Recommended acoustic management value: 254, current value: 254
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 udma7
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    NOP cmd
           *    DOWNLOAD_MICROCODE
                SET_MAX security extension
           *    Automatic Acoustic Management feature set
           *    48-bit Address feature set
           *    Device Configuration Overlay feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
           *    General Purpose Logging feature set
           *    64-bit World wide name
           *    WRITE_UNCORRECTABLE command
           *    Segmented DOWNLOAD_MICROCODE
           *    SATA-I signaling speed (1.5Gb/s)
           *    SATA-II signaling speed (3.0Gb/s)
           *    Native Command Queueing (NCQ)
           *    Host-initiated interface power management
           *    Phy event counters
                DMA Setup Auto-Activate optimization
                Device-initiated interface power management
           *    Software settings preservation
           *    SMART Command Transport (SCT) feature set
           *    SCT Long Sector Access (AC1)
           *    SCT LBA Segment Access (AC2)
           *    SCT Error Recovery Control (AC3)
           *    SCT Features Control (AC4)
           *    SCT Data Tables (AC5)
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
                supported: enhanced erase
        168min for SECURITY ERASE UNIT. 168min for ENHANCED SECURITY ERASE UNIT.
Checksum: correct

Ok? Saas nähä sekoileeko data vielä. NCQ on vieläkin 0/32.
« Viimeksi muokattu: 23.01.08 - klo:20.06 kirjoittanut Ux64 »

Ux64

  • Käyttäjä
  • Viestejä: 586
    • Profiili
Nyt ei ole tiedot korruptoitunut...

Mitä tulee muuten writecacheen, se näköjään voi olla 4 gigan systeemi muistilla melkoinen.

sync komennon suorittaminen kesti 10 sekuntia kun se kirjoitti kaiken datan levylle. Olin yllättynyt. Karkeasti laskettuna tuo tarkoittaa noin 400 ja pahimmillaan 800 megan puskurin tyhjentämistä.

Jos siis tuon datamäärän purkaminen write cachesta unohtuu tai purkautuu vain osin, en yhtään ihmettele jos tiedostojärjestelmä ja data korruptoituu.
« Viimeksi muokattu: 24.01.08 - klo:07.06 kirjoittanut Ux64 »