Synology Hyper Backup으로 생성된 AWS Glacier 데이터 복원

Synology Hyper Backup으로 생성된 AWS Glacier 데이터 복원

저는 Synology Hyper 백업을 사용하여 NAS를 AWS S3에 백업하고 있습니다. 비용을 절감하기 위해 며칠 후에 데이터를 AWS Glacier로 이동하는 수명 주기를 S3 버킷에 추가했습니다.

이제 데이터를 복원하고 싶습니다. 따라서 단계를 되돌리고 Synology의 하이퍼백업이 데이터를 검색할 수 있도록 모든 데이터를 S3으로 다시 가져와야 합니다.

이미 해당 버킷을 클릭했습니다 -> 복원 시작

복원에는 12~24시간이 걸릴 수 있다고 나와 있지만 며칠이 지났고 해당 데이터의 저장 클래스가 "Deep glacier"인 것을 확인했습니다.

무엇이 잘못되고 있는지 아시나요?

이는 해당 버킷의 스냅샷입니다. 보시다시피 두 파일에 대해 복원 작업을 여러 번 시작했지만 여전히 "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 "복원"이 정상적으로 작동합니다(Glacier 복원이 완료될 때까지 최대 24시간 기다린 후).

답변2

좀 이상해요. 해결 방법을 알려주셔서 감사합니다.

또한 이전에 Glacier에 백업하는 데 몇 가지 문제가 있었습니다. 백업 크기(증분분이라도)가 너무 커지면 잠시 후 백업이 중단되는 것처럼 보였습니다.

결국 나는 빙하에 백업하는 것을 중단했는데 그것은 말이 되지 않았습니다.

관련 정보