Restic: 䞍完党なスナップショットからのデヌタ。

䜜成日 2018幎08月23日  Â·  30コメント  Â·  ゜ヌス: restic/restic

darwin / amd64でgo1.10.3を䜿甚しおコンパむルされたrestic0.9.1

私はresticを䜿甚しお倧量のデヌタをblackblazeにバックアップしおいたした。 残念ながら、最初のスナップショットが完了する前に、バックアップされおいるボリュヌムでハヌドりェア障害が発生したした。 今すぐリポゞトリからデヌタを取り戻す方法はありたすか レスティックリストのスナップショットずレスティックマりントはどちらも、詊したずきに無期限にハングするようです。 リポゞトリぞのパスワヌドの入力も求められたせん。 それが助けになるなら、バックアップはハヌドりェア障害の前に優雅に䞀時停止されおいたした。

feature suggestion questioproblem

最も参考になるコメント

それで、少し背景の話を远加するために私はgithubの問題を読んでから、シャワヌを济びに行き、「うヌん、それはそれほど難しいこずではない」ず思いたした。 結局、私は正しかったが、そうではなかった。 この機胜が他の人に圹立぀堎合は、埌で適切なコマンドに倉えるこずができたすが、今のずころはそれが機胜し、B2にすでにアップロヌドされおいるデヌタにアクセスできるこずを願っおいたす。

どのくらいのデヌタでしたか どのくらい回埩したしたか

幞運を

党おのコメント30件

ああ、うヌん。 特定のファむルが必芁ですか、それずも「そこにあるすべおのデヌタ」だけが必芁ですか デヌタはそこにあり、resticにはそれを匕き出すためのすべおの手段がありたすが、それはresticの呚りでスクリプトを䜜成するか非垞に遅くなりたす、resticのカスタムコヌドを远加するこずを意味したす。

正盎な質問あなたにずっおデヌタはどれほど重芁ですか 今日は、䜕かを䞀緒にハッキングするために時間を費やすこずができたす。これにより、リポゞトリにアップロヌドされたほがすべおのデヌタにアクセスできるようになりたすが、ほずんどのコヌドほど「本番環境に察応」しおいない可胜性がありたす。 :)

デヌタは私にずっお非垞に重芁であり、残念ながら他のコピヌはありたせん。 それは理想的ではないこずはわかっおいたすが、それは私が解決しようずしおいた問題でした。 ボリュヌムをオンラむンに戻そうずするハヌドりェアの修正を進めおいたすが、珟時点ではあたり期埅できそうにありたせん。 ディレクトリを指定しお、そのディレクトリ内のすべおにアクセスしおダりンロヌドできる方法があれば、それは深刻な呜の恩人になるでしょう。 それは倧量のデヌタその倚くはビデオプロゞェクトですなので、より速いオプションが望たしいでしょう。 そうは蚀っおも、どれだけの䜜業が必芁かはよくわかりたせんし、フリヌ゜フトりェアであるこずに感謝しおいたすが、これが可胜になれば非垞にありがたいです。

わかりたした。䜕ができるかわかりたす。

どうもありがずうございたす。

restic rebuild-index実行するこずから始めるこずができるので、リポゞトリ内のすべおのパックをカバヌする新しいむンデックスがありたす。

今すぐ始めたしょう。

わあ、それはあなたの@ fd0にずおも寛倧です。

これに関連するテストを手䌝うこずができたら、私に知らせおください。

restic rebuild-indexはレポパスワヌドを芁求する必芁がありたすか ただです。 リポゞトリ内のデヌタ量が倚いため、かなり時間がかかるのではないかず思いたす。 週末䞭、たたは必芁に応じお来週たで実行できるこずに完党に満足しおいたす。 長期間無人のたたにする前に、パスワヌドが䞍芁であるこずを確認したいだけです。

うヌん、早い段階でパスワヌドを芁求する必芁がありたす。 リポゞトリ内のすべおのファむルのすべおのヘッダヌを埩号化する必芁がありたす。 環境倉数RESTIC_PASSWORD゚クスポヌトしおいるので、パスワヌドは必芁ありたせんか

早い段階で次のようなものを印刷する必芁がありたす。

repository ed6136ad opened successfully, password is correct

少なくずもむンタラクティブに実行する堎合stdoutをログファむルにリダむレクトしない。

アップロヌドされたデヌタの最埌の15分間がそれほど重芁でない堎合は、 rebuild-indexスキップするこずもできたす。これは、埌でい぀でも行うこずができたす。

RESTIC_PASSWORD環境倉数を蚭定しおいたせんが、蚭定しおコマンドを実行したす。 箄10分間䜕も返さなかったので、 ctrl-cを枡しお再詊行したした。 私の構文は正しいですよね restic -r b2:MY_BUCKET_NAME:/ rebuild-indexいずれにせよ、最埌の15分間のデヌタは、アップロヌドされたデヌタの合蚈に比べお非垞に小さいはずなので、埌でこれに戻っお完党に満足しおいたす。

では、ただrebuild-index実行しないでください。そうすれば、リカバリコヌドを詊すこずができたす:)

ブランチrecover-dataにコミットをプッシュし、restic go run build.go をビルドしお、次のように呌び出したす。

$ restic -r b2:MY_BUCKET_NAME:/ recover

次に、リポゞトリ内のすべおのツリヌを䞀芧衚瀺し、ルヌトツリヌを芋぀けお、すべおのルヌトツリヌを参照する新しいスナップショットを䜜成する必芁がありたす。

repository abe002d6 opened successfully, password is correct
load index files
load 543 trees
tree (543/543)
done
found 2 roots
save tree with 2 nodes
saved new snapshot 26f25bf1

次に、埩元できるスナップショットこの堎合は26f25bf1 を䜜成するか、 restic mountを䜿甚しおスナップショットを参照したす。 リストするこずもできたす

$ restic ls -l 26f25bf1 /
repository abe002d6 opened successfully, password is correct
snapshot aac6d0ed of [/recover] filtered by [/] at 2018-08-23 22:23:56.903268714 +0200 CEST):
drwxr-xr-x     0     0      0 2018-08-23 22:23:56 /0b9e25fb
drwxr-xr-x     0     0      0 2018-08-23 22:23:56 /d0d9386a

最䞊䜍のディレクトリはツリヌIDにちなんで名付けられおいるため、少しわかりにくいですが、次のレベルのディレクトリには通垞の名前が付いおいたす。

それがあなたを助けるかどうか私に知らせおください

それで、少し背景の話を远加するために私はgithubの問題を読んでから、シャワヌを济びに行き、「うヌん、それはそれほど難しいこずではない」ず思いたした。 結局、私は正しかったが、そうではなかった。 この機胜が他の人に圹立぀堎合は、埌で適切なコマンドに倉えるこずができたすが、今のずころはそれが機胜し、B2にすでにアップロヌドされおいるデヌタにアクセスできるこずを願っおいたす。

どのくらいのデヌタでしたか どのくらい回埩したしたか

幞運を

うわヌ それは速かった どうもありがずうございたす リポゞトリのクロヌンを䜜成したばかりで、今すぐビルドを詊みたす。 たた、rebuild-indexが機胜しなかった理由もわかりたした。 サヌバヌが接続されおいるネットワヌク䞊のDNSの問題でした。 私はそれを修正しおFatal: unable to create lock in backend: repository is already locked by PID 41208取埗したので、結局、アップロヌドが正垞に停止しなかったようです。 unlockコマンドは、upおよびrebuild-indexが珟圚実行䞭であるこずをクリアしたようです。

今日はできる限りのこずをしたすが、週末にミシガン州北郚に向けお玄15分で出発したす。そこでは、むンタヌネットアクセスがあたり良くないず思いたす。 これは私が戻っおきた月曜日に私の完党な泚意を匕くでしょう、そしお私はあなたにもっず詳现を埗るでしょう:-)

どうもありがずうございたした ぶら䞋げお申し蚳ありたせんが、月曜日にご連絡いたしたす。

この機胜が他の人に圹立぀堎合は、埌で適切なコマンドに倉えるこずができたす

私はできる限りこれを手䌝いたいです。 ここでのアップロヌド速床は1Mbpsであるため、最初のバックアップには最倧3〜6か月かかる堎合がありたす。 あなたが蚀うように、それがそれほど難しくない堎合は特に、完了する前に埩元する方法があるこずは優れた機胜です。 私がどのように圹立぀こずができるか教えおください これに取り組んでくれおありがずう D

たた、あなたの゜リュヌションは非垞に玠晎らしいず思いたす。 ゚レガントでかなりシンプル。

ぶら䞋げお申し蚳ありたせんが、月曜日にご連絡いたしたす。

それに぀いお心配しないでください、それがうたくいくかどうか私はただ興味がありたすサングラス

デヌタはB2で安党であり、消えるこずはありたせん。 recoverコマンドでさえデヌタを倉曎せず、デヌタを読み取り、別のファむルずスナップショットを远加するだけです。それだけです。

したがっお、少し背景を説明したす埌でブログ投皿に展開したす内郚では、resticリポゞトリには、 snapshotやdataなどのさたざたな皮類のファむルが含たれおいたす。

  • dataファむルには、短いtreeたたはdataブロブが倚数含たれおおり、ファむルの内容ず堎所を正確に説明するヘッダヌが最埌にありたす。
  • snapshotファむルには、スナップショットを説明する小さなJSONドキュメントが含たれおいたす。これはtreeを参照したす。

ファむルをresticで保存するず、ファむルはdataブロブに分割され、リポゞトリ内の1぀以䞊のファむルにたずめお保存されたす。 次に、ファむルの名前ずdata BLOBぞの参照IDのリストがツリヌに保存されたす。 ディレクトリのアヌカむブが完了するず、ファむルのリスト dataブロブの名前ず参照がtreeブロブずしお別のdataファむルに保存されたす。

サブディレクトリの堎合、resticは、サブディレクトリの名前を、コンテンツを説明するtree blobの参照ずずもに別のtree栌玍したす。

restic backup実行の最埌に、他のツリヌによっお参照されおいないルヌトtreeがありたすが、すべおのトップレベルツリヌぞのすべおの参照が含たれおいるため、間接的にすべおのファむルぞの参照が含たれおいたす。およびバックアップのサブディレクトリ。 最埌のステップずしお、 resticは、ルヌトtreeを参照する新しいsnapshotファむルを䜜成したす。

resticに特定のスナップショットを忘れるように指瀺するず、ルヌトツリヌは参照されなくなりたす。 restic pruneはこれを怜出し、ツリヌず他のすべおの䞍芁なtreeおよびdataブロブを削陀したす。

䞀般に、 treeは、リポゞトリ内のすべおのファむルずサブディレクトリが正垞に保存された堎合にのみリポゞトリに保存されたす。 したがっお、 tree BLOBが存圚するずすぐに、それが参照するデヌタサブディレクトリを含むも存圚するず想定できたす。

バックアップ䞭にresticが䞭止されるず、リポゞトリ内に倚数のtreeブロブが、それらが参照するファむル内のデヌタずずもに存圚したす。 したがっお、デヌタを回埩するために、resticは以䞋を実行するだけで枈みたす。

  • すべおのツリヌIDのリストを䜜成し、参照されおいるツリヌをメモしたす最初はなし。
  • 各ツリヌに぀いお

    • ツリヌをロヌドする

    • ツリヌの゚ントリごずに



      • がディレクトリの堎合、別のツリヌを参照し、そのツリヌをリストで参照されおいるものずしおマヌクしたす



次に、朚のリストをもう䞀床調べお、参照されおいるものをすべお砎棄したす。 残りのツリヌはルヌトツリヌです。これは、スナップショットによっお盎接参照されおいるたたは参照されおいるツリヌ、たたはrestic backup実行が䞭止された結果ずしお「ぶら䞋がっおいる」ツリヌを意味したす。

最埌のステップずしお、すべおのルヌトツリヌを䞀芧衚瀺する新しいツリヌを䜜成し、それをリポゞトリに保存しおから、この新しいツリヌを参照する新しいスナップショットを䜜成したす。

その埌、ディレクトリの䞍可解な名前芋぀かったルヌトツリヌの短いツリヌIDを陀いお、この新しいスナップショットを通垞どおりに䜿甚できたす。

これをマスタヌにマヌゞする前に、次のこずを行う必芁があるず思いたす。

  • recoverオプションを远加しお、既存のスナップショットによっお参照されるルヌトツリヌを陀倖したす。これにより、実際にぶら䞋がっおいるルヌトツリヌのみが取埗されたす。 たぶん、この振る舞いはデフォルトでさえあるはずです、ほずんどのナヌザヌはおそらく既存のスナップショットを通しおアクセスできるデヌタにそれほど興味がありたせん 
  • たた、参照されおいないdata BLOBを新しいスナップショットで䜿甚できるようにしお、ナヌザヌがtreeオブゞェクトにただ含たれおいないファむルの䞀郚を぀なぎ合わせるこずができるようにしたす。
  • 新しいツリヌず新しいスナップショットの䞡方に適切なメタデヌタを蚭定したす。 珟時点では、それは非垞に醜いですそれが機胜するのに十分なだけです。
  • より良い進捗報告、それは今非垞にハッキヌです

これに関する小さな曎新先週の朚曜日に出発する前にrebuild-indexを開始したした。 それは私がread: connection reset by peer戻る前に死にたした。 昚日、b2ぞの䞊列接続の数を増やしお再起動したしたが、正垞に動䜜しおいるようです。 珟圚は5に過ぎたせんが、しばらく時間がかかるず思いたす。 b2バケットには玄90TBが含たれおおり、バックアップしおいたディレクトリにはおそらく玄110〜120TBが含たれおいたした。

アップロヌド䞭、resticが非垞に安定しおいたこずに正盎に感銘を受けたした。 私はresticを詊す前にMac甚のcloudberryを詊したしたが、それほど倚くのデヌタで動䜜させるこずができたせんでした。 私は自宅でラップトップをバックアップするためにresticを䜿甚しおいたすが、それが倧奜きなので、これを詊しおみようず思いたした。 最初のアップロヌドも完了しおいないので、 pruneようなものがどうなるかわかりたせんが、倧量のデヌタでresticがどのように動䜜するかに関するデヌタが必芁な堎合は、最新情報をお知らせしたす。 。 毎週のバックアップを1週間以内に維持するために必芁なすべおの操䜜を完了するこずができれば、これらのバックアップを凊理するための優れた候補になるず思いたす。

ずりあえず、いく぀か質問がありたす。 recoverを詊す前に、このrebuild-index実行しお完了する必芁がありたすか そうしないず䜕かを倱うでしょうか 私はこれに぀いお考えおいお、これだけのデヌタで実行するには時間がかかるので、可胜であれば最初にできるだけ回埩したいず思いたすが、これを殺したほうがよい堎合は、 recover実行したすrebuild-index埌で、私はそれを行うこずができたす。 rebuild-indexたたはrecoverを--quietフラグで実行するず、 backupコマンドの堎合ず同じように速床が䞊がりたすか

うんいいね 次のこずをお勧めしたす。

  • rebuild-index䞭止したす
  • restic recover実行したす
  • 新しく䜜成されたスナップショットに含たれるデヌタを確認しおください

詊しおみたい堎合は、 rebuild-index再床実行しお、残りのメガバむトのデヌタをリポゞトリから取埗できたす。 おそらくそれは数癟メガバむト未満であり、これによっおスナップショットにただ含たれおいない新しいデヌタが明らかにならない可胜性がありたす。 しかし、あなたはそれを詊すこずができたす:)

rebuild-index実行䞭は、リポゞトリにアクセスできたせん。

再構築むンデックスを実行するか、-quietフラグを䜿甚しお回埩するず、バックアップコマンドの堎合ず同じように速床が向䞊したすか

いいえ。

私は物事を䞀晩実行させたした、そしおそれはハヌドドラむブをいっぱいにしお倱敗したようです

found 755 roots Fatal: unable to save new tree to the repo: fs.TempFile: open /var/folders/tq/67qp8py137n_5nzf563qlylr0000gn/T/restic-temp-pack-913168611: no space left on device

この操䜜でダりンロヌドする必芁のあるデヌタの量を知る簡単な方法や、ダりンロヌドする量を枛らす方法はありたすか

たた、このディスク領域を解攟したい堎合は、 restic cache --cleanupその方法ですか

いいえ、30日間䜿甚されおいないキャッシュディレクトリのみが削陀されたす。 キャッシュディレクトリを削陀するだけです。これは、ホヌムディレクトリのどこかにあるはずです。

どのコマンドを正確に実行したしたか rebuild-indexずrecoverはどちらも、メタデヌタキャッシュを陀いお、ハヌドディスクに倚くのデヌタを保存しないはずです...

珟時点では私の机にはありたせん。 しかし、それは次のようなもの./restic -o b2.connections=x -r b2:mybucket:/ recover  -o b2.connections=xビットなしで再起動できたす。 キャッシュディレクトリを芋぀けお削陀したした。

たず第䞀に、玠晎らしいツヌルです。
たた、䜎速の接続を介しおテラバむトのデヌタをバックアップする必芁があり、ただ完了しおいないのにバックアップが倱敗する可胜性がありたす。 䞀床に数個のファむルのみをバックアップするための掚奚される方法はありたすか

䞀床に数個のファむルのみをバックアップするための掚奚される方法はありたすか

通垞は機胜したすが聞いたこずがありたす、゜ヌスデヌタの個々の郚分単䞀のディレクトリなどを保存し、それが完了するず、すべおのディレクトリを䞀緒に保存したす。 ゜ヌスデヌタが倉曎されおいない堎合、組み蟌みの重耇排陀により、resticはほずんど䜕もアップロヌドしないはずです。

そのような質問のためのより良い堎所はhttps://forum.restic.netのフォヌラムであり、質問そしお答えはそこではるかに発芋可胜です。

@pauletgでは、どうでしたか

2056で新しいコマンドrecoverを提案したした。

前回の投皿以来、レスティックの回埩に぀いおはあたり進んでいたせん。 幞いなこずに、サヌバヌを埩掻させるこずができ、クラッシュしおもデヌタが損なわれなかったので、デヌタを入手できたした。 回埩コマンドは、完了する前に、私のマシンのHDを埋めおいるようです。 これは、いく぀かの芁因が原因である可胜性がありたす。バックアップが膚倧で、アップロヌドにb2ぞの接続を倚数䜿甚しおおり、リカバリに䜿甚しおいたマシンのHDが比范的小さかった。 私のバックアップがもっず劥圓なサむズであれば、おそらくうたくいくず確信しおいたす。 あなたに圹立぀情報が他にあるかどうか教えおください。 これに取り組んでいただきありがずうございたす。この機胜をラップトップのバックアップに䜿甚できるのは本圓に玠晎らしいこずです。

フィヌドバックをお寄せいただきありがずうございたす 必芁に応じおそしお時間があれば、 --no-cacheでこれを再詊行できたすが、さらに時間がかかりたす。 2056がマヌゞされたら、この問題を解決したす。

远加のフィヌドバックがある堎合はお知らせください。 :)

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡