Restic mentés sérülése

Fórumok

Bár évek óta megbízhatóan használom a restic programot B2-re mentéshez, sajnos pár napja az egyik mentésre hibát dobott.

Próbálom javítani a hibát, de bármit is tegyek, olyan snapshotokra hivatkozik, amik már nincsenek, és ezt nehezményezi.

Volt már:

restic cache --cleanup
restic rebuild-index
restic prune
restic check --check-unused --read-data

Sajnos nem használ, a hiba továbbra is fennáll. Annyit elértem, hogy közben mér képes új mentéseket készíteni, de ellenőrzéskor ilyen típusú hibákat ad:

error for tree 188b728e:
  tree 188b728e: file "AW03.7z" blob 10 size could not be found
  tree 188b728e: file "AW03.7z" blob 15 size could not be found
  tree 188b728e, blob 1d6665b4: not found in index
  tree 188b728e, blob 84323b02: not found in index

mindig hibát ad.

Van valakinek ötlete, hogyan lehetne javítani a mentést?

Hozzászólások

Mivel a restic kizárólag inkrementális mentést készít, így nincs más út, mint a legutolsó, még működő snapshotra visszatérni és az összes utána következőt törölni, prunolni, helyét sóval beszántani. Lehet, hogy valalki nálam okosabb és mutat megoldást, de szerintem ezt nem úszod meg adatvesztés nélkül. 

Az adatvesztésre fel vagyok készülve, és nem kritikus, mivel nem kizárólagos mentés. Jelenleg én is arra jutottam, hogy a visszamenőleges snapshotok számát csökkentem, de nem tudom, ez-e a jó út, és hogy nincs-e valami jobb módszer.

És persze az is fura, hogy hogyan sérülhet meg ennyire egy mentés.

Ez eddig lokális hibának tűnik. 

rm -rf ~/.cache/restic

Próbáld meg valami tök üres könyvtárba (akár más gépre) felhúzni ugyanezt a location-t.

A helyzet szomorú. Lefutott a 

/restic forget --keep-last 1 --prune

de még mindig ott a hiba. Lefutott mindenféle cleanup prune rebuild-index, check --check-unused és --read-data is, de a helyzet nem javult.

Egyetlen snapshot van már csak és nem tudom kijavítani a hibát. Tree error egy olyan snapshot id-ra hivatkozik, ami már régen nem létezik.

Kénytelen voltam készíteni egy teljesen új mentést, de a biztonságérzetem erősen lecsökkent. Ha egy restic mentés így el tud romlani, akkor a többi mentésem sincs biztonságban. Emiatt továbbra is örülnék olyan módszereknek, ötleteknek, amivel ki lehetne javítani egy ilyen hibát, vagy pontosabban be lehetne azonosítani, mivel van a baj.

Kipróbáltam úgy is, ahogy a dokumentáció mondja, és úgy is, ahogy Te javasoltad. De sajnos nem cache probléma.

Amúgy érdekes, hogy mindkét sérült repo ugyanabban a b2 objektumban van. Két sérülésből azonban még nem lehet olyan következtetést levonni, hogy a b2-nél történt volna valami. Főleg, hogy a többi repo sértetlen. Igaz, ez a két sérült volt a két legnagyobb.

Inkább gyanakszom arra, hogy a forget és purge műveleteket végző szerver alól fogyott már ki a szünetmentes táp is. Azt el tudom képzelni, hogy ilyenkor valahogyan megsérülhet a repo, de azt azért nehezen, hogy ennyire javíthatatlanul sérüljön meg.

Engem zavar az a tény, hogy csak inkrementális mentéseket tud csinálni. Én biztos, hogy egy olyan megoldásra cserélném, ami tud on-demand full mentést is csinálni, és mondjuk havi-kéthavi szinten csinálnék egy full mentést vele. Tudom, hogy ez tárhelyben sok, de így garantálod azt, hogy ha sérülés is van, akkor se mondjuk fél év adatai mennek a levesbe. Alapból nem jó az, ha folyamatosan csak inkrementális mentés készül hosszú időn át, mert azok egymásra függenek, és maga a mentés így nem feltétlen lesz ellenálló a hibákkal szemben.

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-

Miután biztonságba kerültek az adatok, a sérült repón még próbálkoztam. Mivel már nem volt mit vesztenem, letöltöttem a legfrisseb restic változatot, és lefuttattam a "restic repair index" parancsot. Ez nem segített. Majd a 

restic repair snapshots --forget

parancsot, és lőn! Ez végre észrevette a hibás hivatkozást, és kitörölte a mentésből.

Ezek után lefutott hiba nélkül a "restic check", és most fut a "restic check --read-data" is.

Ez öröm. A kérdés már csak annyi, mennyire keverhetők a restic verziók? Tehát, ha én a legfrissebb változattal helyrehoztam a mentést, az azért továbbra is használhatom még egy elő verzióval, vagy innentől mindenhol már ezt a legfrissebb változatot kell használnom?

Engem az aggasztana, hogy hogyan sérült meg. Ha nem volt se fizikai hw hiba, se fájlrendszer hiba, se dirty shutdown se semmi, akkor mitől kullantott be? Ezek után mindig az lenne a fejemben, hogy nehogy egyszer akkor fossa össze magát, amikor disaster recovery-ben éppen kellene és akkor pont ne tudja magát helyretenni. 

Ha egyszer egy bizalom megrendül ... 

Ismerős a téma, éppen most cseréltem le egy általam 10+ évig használt mentési megoldást, mert egyeztetve a gyártóval kiderült, hogy baszik fejleszteni, karbantartani. Ugyan nagy hibák nem voltak vele, de jövőkép se nagyon. A mentés fontos dolog. Azzal nem játszunk!

trey @ gépház