Változó MD5 hash, mi lehet a gond?

BIGFILE egy 3.5G-s file. A következő jelenséget produkálja. (Más, kisebb (1G) fileokkal is könnyen reprodukálható a jelenség ... ) Mi lehet a gond? Disk? Memória?



SERVER:/tmp# md5sum BIGFILE
b42c7584c2af4cd8396d831e0e4bbb59  BIGFILE

SERVER:/tmp# md5sum BIGFILE
cbcec11bb82bb983a26615c7863bf793  BIGFILE

SERVER:/tmp# md5sum BIGFILE
7fddcbc38cbf17c7235726cb476d3c49  BIGFILE

SERVER:/tmp# md5sum BIGFILE
85fdfdd74dec330cad58b636c9bf9bfc  BIGFILE

SERVER:/tmp# echo "1" >/proc/sys/vm/drop_caches
SERVER:/tmp# md5sum BIGFILE
75b5bc8cc140852c6d7ddf1f79512023  BIGFILE

SERVER:/tmp# echo "1" >/proc/sys/vm/drop_caches
SERVER:/tmp# md5sum BIGFILE
87b3e6c187a5afd8bb6c7923719561ce  BIGFILE



Hozzászólások

"Disk? Memória?"
Nem valószínű, mivel ha az egész rendzerben ilyen mértékű hibázás lenne, már magába roskadt volna a rendszer.

"BIGFILE egy 3.5G-s file."
Bár titkoltad, hogy milyen file, de valami azt súgja, hogy azért került a topik a Naplózó filerendszerek (journaling) kategóriába, mert ez egy futó virtualizált rendszer diskimage-e. Ebben az esetben nem csoda, ha a journal rendszeres (rövid) időnként frissül, és ezt tükrözi a hash.

Ha nem így lenne, hanem csak egy sima adatfile, akkor pedig meg kellene nézni, hogy mi nyúl bele (pl.: lsof, audit stb.). Lehet nézni egy stat kimenetet is.

Amit csinálnék:
sudo apt-get install xdelta
cp BIGFILE BIGFILE.orig
xdelta delta BIGFILE.orig BIGFILE difference
xdelta info difference

Ha látsz olyat hogy "patch data" a kimenetben, akkor változik az állomány és amiatt változik az md5sum.

Nem akartam titkolni, csak felesleges részletnek éreztem a filenevet :-).
De nem disk image. Egyszerűen egy betarolt filerendszer bemásolva a /tmp könyvtárba. Semminek(!) sem szabadna hozzányúlnia.

Az lsof kimenetben nem szerepel.


SERVER:/tmp# ls -ladh FILELOGGER-Node07.tgz 
-rw-r--r-- 1 root root 516M 2011-01-10 15:17 FILELOGGER-Node07.tgz

SERVER:/tmp# chattr +i FILELOGGER-Node07.tgz 

SERVER:/tmp# for i in $(seq 1 5); do echo "1" > /proc/sys/vm/drop_caches ; md5sum FILELOGGER-Node07.tgz ; done
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
3b20dbfae19129bbb005f44a565697f2  FILELOGGER-Node07.tgz
082a76d9248a3f8ea099b1fd4f891597  FILELOGGER-Node07.tgz
ec695feca7d2de55046096c645660e2a  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz

SERVER:/tmp# lsattr FILELOGGER-Node07.tgz 
----i------------- FILELOGGER-Node07.tgz

xdelta telepítésre sajnos nincs jogom :-(. "cmp -l" -el megpróbálom majd.

Véletlen lehet hogy ismétlődik az md5sum? Lásd: 51a1967e26781903c7bf273db65581d0 FILELOGGER-Node07.tgz
for i in $(seq 1 15); do echo "1" > /proc/sys/vm/drop_caches ; md5sum FILELOGGER-Node07.tgz ; done

Szintén ad ismétlődést vagy sem?

"xdelta telepítésre sajnos nincs jogom :-(. "cmp -l" -el megpróbálom majd."
Nekem a # jel mást mutat a promptban. :)

md5-sumnál kicsi az esélye a véletlennek, szóval feltehetőleg az a helyes érték.


8fd89e5aa99b44baec281cef7703a29f  FILELOGGER-Node07.tgz
b199d699bf688f92ad60ba568c80b75f  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
81d46e08cf0ab0e81c5320ccebb24507  FILELOGGER-Node07.tgz
c3b9b6496bb2dfd4690ccb5f1047a54f  FILELOGGER-Node07.tgz
cb61d6128bb7faa8ba59f9e70ceabb2c  FILELOGGER-Node07.tgz
3bfff96f7f1f4b84651021f86e2dc501  FILELOGGER-Node07.tgz
7e8272cd7297360966a22b37fc8b4496  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
51a1967e26781903c7bf273db65581d0  FILELOGGER-Node07.tgz
b86e152bb8830e3a7682ca921d854de1  FILELOGGER-Node07.tgz
e85aefe5cd84ffa6e1f5b23468148b51  FILELOGGER-Node07.tgz
e0d557f90cd5737542113b0067ff174a  FILELOGGER-Node07.tgz

# jelem van, de ez még nem elég a dologhoz :-)

[szerk]
Azóta kiderítettem, memtest volt, dmesgben semmi io error. Jelenlegi tippem, hogy túlmelegszik a vinyó!

Két hülye ötletem van. Csinálj két másolatot a FILELOGGER-Node07.tgz állományról. Egyet ugyanarra az fs-re, amin a /tmp is van, másikat lehetőleg másik HDD-n lévő fs-re. Ezeken a másolatokon is futtasd le legalább ötször az md5sum -ot.
Kiváncsi vagyok az eredményekre.

Valoszinuleg egy process meg megnyitva tartja ezt a filet - lsof mit mond rola? Ha mas fileknel is megtortenik akkor miert nem csinalsz egy szep meretes textfilet es nezel bele, hogyan valtozik ?

Az hogy megnyitva tartja az csak egy dolog. Attól még nem változik se a tartalma, se a mérete. tar.gz -t nem ismerem konkrétan, de szerintem tömörítés közben csak a hossza változik és az előző tartalma már nem.
Hossznövekedését meg gyorsan észre lehet venni egy "ls -l" kimeneteként.

"Disk? Memória?"

ha kizártad a fájl tényleges változását akkor:
disk vagy memória ;)

diskre:
fsck - nézd meg hányja-e a hibaüzeneteket

Aztán ha még mindig fennáll a probléma (de akkor is ha ideiglenesen megszűnik) hajítsd ki a vinyót...

`md5sum xyz` helyett `cat xyz | md5sum`?

ja es persze trivialis kerdes: `sha1sum`, `sha224sum`, ...? az mit mond? vagy egy mezei crc32?

Köszönöm a válaszokat! Egyelőre nem tudok semmit sem kipróbálni, mert elcrashelt a szerver :-). Végülis várható volt ....