恢復使用 Synology Hyper Backup 建立的 AWS Glacier 數據

恢復使用 Synology Hyper Backup 建立的 AWS Glacier 數據

我正在使用 Synology Hyper backup 將我的 NAS 備份到 AWS S3。為了降低成本,我為 S3 儲存桶添加了生命週期,幾天後將資料移至 AWS Glacier。

現在我想恢復資料。因此,我需要恢復該步驟並將所有資料帶回 S3,以便 Synology 的 hyperbackup 可以檢索它們。

我已經單擊了相應的存儲桶 -> 啟動恢復

它說恢復可能需要 12 - 24 小時,但已經過去幾天了,我看到相應的數據具有存儲類別“深冰川”

知道出了什麼問題嗎?

這是對應儲存桶的快照。正如人們所看到的,儘管我多次為它們啟動了恢復操作,但兩個文件仍然被標記為「Deep Glacier」。在此輸入影像描述

更新
這裡是 stackoverflow 上的一些相關問題/答案(這似乎比 serverfault 不那麼深奧...)

更新2 似乎有問題,我監督的子資料夾中有更多文件。我目前正在嘗試遞歸地恢復儲存桶中的所有內容。完成後會更新。

答案1

所以問題是子資料夾中有很多我忽略的檔案。使用 AWS cli 我終於可以「初始化恢復」所有​​這些。之後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「恢復」將正常工作(等待約 24 小時直至冰川恢復完成)

答案2

這有點奇怪。感謝您提供解決方法。

我之前在備份到 Glacier 時也遇到過一些問題。當備份的大小(即使是增量的)變得太大時,備份似乎在一段時間後陷入困境。

最終我不再返回冰川,這毫無意義。

相關內容