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
|