erlug
[Top] [All Lists]

Re: [Erlug] RAID, LVM, ext4 e tanto amore mal riposto

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] RAID, LVM, ext4 e tanto amore mal riposto
From: Fabio Muzzi <kurgan@xxxxxxxxxx>
Date: Tue, 10 Jan 2012 12:11:02 +0100
On 10/01/2012 09:38, Davide Alberani wrote:

ho qualche rogna con un filesystem.  Configurazione:

Io non ho ancora fiducia piena in EXT4, personalmente. E se devo dirti la verita` un setup cosi` non l'avrei mai fatto su una mainboard da desktop con ram non ECC.

Non ho grandi suggerimenti da darti, se non quello (distruttivo) di passare a EXT3 e vedere cosa succede, perche` a mio avviso la cosa piu` probabile e` che sia un problema di ext4.


Detto questo, mi ricordo ancora di quando mi si corrompeva il file system (come a te, senza errori di sorta) su un vecchio PC (un Pentium 3, mi pare) con due dischi IDE in RAID1. Alla fine di tre giorni di madonne furibonde (era estate, avevo tempo da perdere) scoprii che sotto carico il controller IDE della mainboard sputtanava i dati, ma questo succedeva SOLO se facevo accessi ai due bus IDE assieme. Spostati i dischi sullo stesso bus (con morte delle prestazioni, ovviamente) il problema e` sparito del tutto. All'epoca, chiamai questo fenomeno "la sindrome della mucca pazza", in quanto la macchina si chiamava "mucca", appunto.

Morale: se vuoi fare un esperimento:

scrivi sul disco un file grossettino (meglio due files grossettini), tanto grossi da non stare in cache (ram) tutti e due assieme. Usa files VERI, non cat /dev/zero > file.

fai un md5 dei files, prima uno, poi l'altro (cosi` non usi la cache) poi di nuovo il primo, poi il secondo, ecc. Vedi se per caso l' md5 cambia ad ogni volta che lo rileggi. E` chiaro che se cambia non ci siamo... ma la cosa veramente interessante sarebbe capire se cambia in modo sistematico, per dire:

a,a,a,b,b,b,c,c,c

oppure se va e viene:

a,a,a,b,a,a,a,c,a,a,a

Perche` e` chiaro che nel primo caso il file e` stato realmente corrotto sul disco da un qualche evento (esterno alla scrittura del file stesso, visto che l'hai fatta una volta sola) e nel secondo caso invece c'e` un errore nella lettura, e il file sul disco e` ancora buono.




Poi, se va tutto bene, prova a ricopiare i files dal disco al medesimo disco, piu` volte, assieme oppure sequenzialmente, prima l'uno e poi l'altro, e poi vai di md5 delle varie copie, sempre in cerca di errori.


Mi sovviene anche un'altra considerazione: se il file system si corrompe spesso e volentieri, mi aspetto che la corruzione avvenga per due motivi:

- bug del codice che gestisce il file system (ovvero del codice che scrive i metadati) il che potrebbe portare a un caso in cui a parte le directory corrotte, i files hanno tutti un contenuto non danneggiato.

- lo stesso caso di prima, se fa casino veramente, ovviamente crosslinkera` i files, allocando gli stessi inodes a piu` files, e questo DEVE dare corruzione dei files.

- probelmi di i/o veri (i dati cambiano mentre li scrivi o mentre li leggi) e allora mi aspetto di avere tanta corruzione anche DENTRO i files, perche` anche il contenuto dei files e` soggetto al danno oltre ai metadati del file system stesso.


alla luce di queste ovvie considerazioni, mi chiedo come mai tu non abbia ancora trovato files il cui contenuto e` corrotto.

Sempre alla luce di queste considerazioni, io proverei a fare un'altra cosa: fsck in dry run (quindi senza modificare nulla sul FS) per piu` volte di seguito: il risultato (cioe` gli errori che ti sono segnalati) sono SEMPRE IDENTICI (come dovrebbero essere) o cambiano?


Tutto questo ovviamente se puoi dedicare ora di tempo al giochino e anche tenere offline il server a lungo.



--

Fabio "Kurgan" Muzzi

- IZ4UFQ -

La diagnosi del tecnico: Piccole variazioni nella velocita` di rotazione della terra

<Prev in Thread] Current Thread [Next in Thread>