GlusterFS Input/Output error

Heute Morgen war der virtualisierte Mailserver down. Die Console zeigte einen Fehler beim Zugriff auf das Swap-Device, sehr seltsam…

Ein Neustart der QEMU-Instanz brachte keine Besserung, es wurde keine bootbare Platte gefunden. Die Überprüfung des darunter liegenden GlusterFS förderte beim Lesen des Serverimages einen IO-Error zutage.

OK, hatte ich in der Form noch nicht, also eine Herausforderung. Das Anstoßen eines Healings brachte keine Besserung, der Fehler blieb. Hilfe brachte nach viel Rumprobieren schließlich diese Seite.

Das Geheimnis liegt darin, das nicht mehr lesbare File von der darunter liegenden Brick wegzukopieren und dann aus beiden Bricks sowohl die Datei als auch ihre Meta-Infos zu löschen. Die Metas finden wir über:

getfattr -m . -d -e hex /data/gluster/gv0/mailhost.img
trusted.afr.dirty=0x000000000000000000000000
trusted.afr.gv0-client-0=0x000000030000000000000000
trusted.afr.gv0-client-1=0x000000390000000000000000
trusted.bit-rot.version=0x08000000000000005c178f4d000a5cdc
trusted.gfid=0x4802075a4748467abc28c0fff9b108a9

Jetzt können wir die beiden Files löschen:

rm /data/gluster/gv0/mailhost.img /data/gluster/gv0/.glusterfs/48/02/075a4748467abc28c0fff9b108a9

Danach kopieren wir die vorher erstellte Kopie der Datei wieder in den GlusterFS-Mountpoint.

Man wird jeden Tag etwas klüger…