Synology Hyper Backup で作成された AWS Glacier データを復元する

Synology Hyper Backup で作成された AWS Glacier データを復元する

私は Synology Hyper Backup を使用して NAS を AWS S3 にバックアップしています。コストを削減するために、S3 バケットにライフサイクルを追加し、数日後にデータを AWS Glacier に移動するようにしました。

ここで、データを復元したいと思います。そのため、手順を元に戻し、すべてのデータを S3 に戻して、Synology のハイパーバックアップでデータを取得できるようにする必要があります。

それぞれのバケットをクリックしました -> 復元を開始

復元には12~24時間かかると書かれていますが、すでに数日が経過しており、それぞれのデータのストレージクラスが「Deep glacier」になっていることがわかります。

何が間違っているのか分かりますか?

これはそれぞれのバケットのスナップショットです。ご覧のとおり、復元アクションを複数回開始したにもかかわらず、2 つのファイルは依然として「Deep Glacier」としてマークされています。ここに画像の説明を入力してください

アップデート
こここれは、stackoverflow に関する関連する質問 / 回答です (serverfault ほど難解ではないようです...)

アップデート2 どうやら、私が監視していたサブフォルダーにさらに多くのファイルがあったという問題があったようです。現在、バケット内のすべてを再帰的に復元しようとしています。完了したら更新します。

答え1

問題は、サブフォルダに私が見落としていた多数のファイルがあったことです。AWS CLIを使用して、最終的にそれらすべてを「init restore」することができました。その後、SynologyのHyper Backupの復元は正常に機能しました。ここで、

aws cli を使用して、Glacier からすべてのファイルを S3 に復元します。

# create a text file with all glacier files:
aws s3api list-objects-v2 \
  --bucket my-bucket \
  --query "Contents[?StorageClass=='DEEP_ARCHIVE']" \
  --output text  | awk '{print substr($0, index($0, $2))}' | awk '{NF-=3};3' > filelist_of_glacier_files.txt

# init restore on all files in that filelist:
while read filename; do \
  aws s3api restore-object \
     --bucket my-bucket --key $filename \
     --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}' ; 
done < filelist_of_glacier_files.txt

その後、Synology の Hyper-Backup の「復元」は正常に機能します (Glacier 復元が完了するまで約 24 時間待機した後)

答え2

それはちょっと変ですね。回避策をありがとうございます。

以前、Glacier にバックアップするときにもいくつか問題がありました。バックアップのサイズ (増分であっても) が大きくなりすぎると、しばらくするとバックアップが停止してしまうようでした。

結局、Glacier へのバックアップをやめました。意味がなかったのです。

関連情報