冷归档数据恢复最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 对象存储OSS冷归档对象的读取需要先恢复出来,才可以读取,本文从用户角度介绍整个恢复的操作过程。

对象存储OSS提供标准、低频访问、归档、冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景。提供了高持久性的对象存储服务,存储费用在四种存储类型中最低。数据需解冻后访问,解冻时间根据数据大小和选择的解冻模式决定,解冻会产生数据取回费用。适用于需要超长时间存放的极冷数据,例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等业务场景。本文主要通过解冻的优先级时效性、批量解冻、感知解冻状态几个方面来介绍解冻的整个过程。


1 如何解冻Object

1.1 发起Restore请求进行解冻

使用OSS OpenAPI接口发起RestoreObject请求,冷归档解冻天数最短为1天,最长支持365天,解冻后在此解冻天数内文件均可读。不同解冻优先级的首字节取回时间如下:

  • 高优先级(Expedited):表示1小时内完成解冻。
  • 标准(Standard):表示2~5小时内完成解冻。如果不传入JobParameters节点,则默认为Standard。
  • 批量(Bulk):表示5~12小时内完成解冻。

请求发起后,需要等待以上时间解冻完成。优先级越高,取回价格越贵,一般而言,批量取回流量费用是标准的1/2,是高优先级的1/7。如果不着急的需求,建议使用批量(Bulk)取回


1.2 通过ossutil来批量恢复Object

通过ossutil restore加上-r可以递归把指定目录下的object批量恢复出来,如:

./ossutil restore -r oss://testforcashanghai/abc/   -i XXX -k XXX -e oss-cn-shanghai.aliyuncs.com

image.png

另外可以在使用ossutil时携带xml指定优先级和解冻天数,如:

./ossutil restore -r oss://testforcashanghai/abc/  cold_archive_xml  -i XXX -k XXX -e oss-cn-shanghai.aliyuncs.com

xml格式如下:

<RestoreRequest>
    <Days>3</Days>
    <JobParameters>
        <Tier>Bulk</Tier>
    </JobParameters>
</RestoreRequest>

文件较多时,可以加上-j参数来加大并发任务数。

image.png


2 如何感知解冻过程

2.1 通过事件通知来被动感知解冻完成

第一步,先在mns控制台创建好收消息的队列,注意mns队列所属的区域需要和oss bucket所属的区域一致。

image.png

image.png


第二步,在oss控制台找到事件通知配置入口。

image.png


第三步,创建FinishRestore事件规则

image.png

image.png

 1.事件类型选择FinishRestore;

 2.如果想要接收该bucket所有的object FinishRestore事件,前后缀填空即可;

 3.队列填入在mns同区域创建的queue的名字,当然也可以使用另一种http方式作为接收终端。


第四步,触发restore,验证完整链路。

image.png

假如选用的是最高优先级,SLA承诺时间是1小时。等待一小时后,可以通过mns控制台或API接口查收到如下消息:

image.png

收到此消息表示该文件已经解冻完成,用户可以下载此文件了。


2.2 通过HeadObject来主动感知解冻过程

OSS提供HeadObject OpenAPI来获取单个object描述信息,将在header中返回恢复进程,如:

X-Oss-Restore:ongoing-request="true",表示正在恢复中;

X-Oss-Restore:ongoing-request=”false”, expiry-date=”Sun, 16 Apr 2017 08:12:33 GMT”,表示已经恢复完成,expiry-date是Restore完成后Object进入可读状态的过期时间。

示例

./ossutil stat oss://bucket/object -i xxx -k xxx -e oss-cn-hangzhou.aliyuncs.com

image.png


2.3 通过ListObject来主动感知解冻过程

OSS提供ListObject/ListObjectVersions OpenAPI来枚举object/版本,返回body中将根据以下3种情况返回RestoreInfo信息来表示恢复进程:

  • 如果没有提交Restore或者Restore已经超时,则不返回该字段。
  • 如果已经提交Restore,且Restore没有完成,则返回的RestoreInfo值为ongoing-request=”true”。
  • 如果已经提交Restore,且Restore已经完成,则返回的RestoreInfo值为ongoing-request=”false”, expiry-date=”Sun, 16 Apr 2017 08:12:33 GMT”,其中expiry-date是Restore完成后Object进入可读状态的过期时间。

示例

bucket为bucketA,

分别有三个文件,

aaa,ColdArchive类型,未提交restore,

bbb,ColdArchive类型,提交了restore,还未完成,

ccc,ColdArchive类型,提交了restoer,且restore完成。

请求

GET / HTTP/1.1
Host: bucketA.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

响应

HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Mon, 24 Jun 2020 12:01:27 GMT
Content-Type: application/xml
Content-Length: 1866
Connection: keep-alive
Server: AliyunOSS
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”>
  <Name>bucketA</Name>
  <Prefix></Prefix>
  <Marker></Marker>
  <MaxKeys></MaxKeys>
  <Delimiter></Delimiter>
  <IsTruncated>false</IsTruncated>
  <Contents>
        <Key>aaa</Key>
        <LastModified>2020-06-22T11:42:32.000Z</LastModified>
        <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag>
        <Type>Normal</Type>
        <Size>344606</Size>
        <StorageClass>ColdArchive</StorageClass>
        <Owner>
            <ID>0022012****</ID>
            <DisplayName>user-example</DisplayName>
        </Owner>
  </Contents>
  <Contents>
        <Key>bbb</Key>
        <LastModified>2020-06-22T11:42:32.000Z</LastModified>
        <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag>
        <Type>Normal</Type>
        <Size>344606</Size>
        <StorageClass>Standard</StorageClass>
        <RestoreInfo>ongoing-request="true"</RestoreInfo>
        <Owner>
            <ID>0022012****</ID>
            <DisplayName>user-example</DisplayName>
        </Owner>
  </Contents>
  <Contents>
        <Key>ccc</Key>
        <LastModified>2020-06-22T11:42:32.000Z</LastModified>
        <ETag>"5B3C1A2E053D763E1B002CC607C5A0FE1****"</ETag>
        <Type>Normal</Type>
        <Size>344606</Size>
        <StorageClass>Standard</StorageClass>
        <RestoreInfo>ongoing-request="false", expiry-date="Thr, 24 Mon 2020 12:40:33 GMT"</RestoreInfo>
        <Owner>
            <ID>0022012****</ID>
            <DisplayName>user-example</DisplayName>
        </Owner>
  </Contents>
</ListBucketResult>


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
6月前
|
存储 数据管理 数据库管理
DMS问题之从归档目标手动恢复数据到源如何解决
DMS(Data Management Service)是阿里云提供的一站式数据管理服务,支持数据开发、维护、治理等多种功能;本合集着重于介绍DMS的功能特点、操作流程和最佳实践,帮助用户高效进行数据管理和维护。
|
2月前
|
数据安全/隐私保护
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
419 3
|
6月前
|
数据库
HBR混合云备份中的影响是在全量备份还是增量备份
【1月更文挑战第3天】【1月更文挑战第13篇】HBR混合云备份中的影响是在全量备份还是增量备份
51 5
|
存储 数据挖掘 数据库
XSAN数据恢复-数据迁移时误格式化存储系统的XSAN数据恢复案例
XSAN数据恢复环境: 昆腾存储,MAC OS操作系统,划分了9个数据卷(1个META信息卷,8个DATA信息卷),存放视频类数据,MXF、MOV等格式文件。 XSAN故障&分析: 将存储空间从XSAN架构迁移到STORNEXT架构,迁移完成后发现存储空间中数据全部丢失。 北亚企安数据恢复工程师分析META信息卷,读取其中的元信息,发现存储空间中数据丢失的原因是迁移的时候误将整个存储系统格式化。
XSAN数据恢复-数据迁移时误格式化存储系统的XSAN数据恢复案例
|
存储 Unix BI
数据备份和恢复方案(1)
数据备份和恢复方案(1)
243 0
|
弹性计算 NoSQL MongoDB
快照技术使用
因为很多的快照技术都是在存储设备上(如基于磁盘阵列的、基于NAS的),所以很多快照方法都接触不到,本文主要是介绍我接触到COW和ROW两种快照原理的使用。
1475 0
|
数据库
数据库异地备份及不还原快速查询备份集最佳实践
传统数据库异地备份和查询中,有两个大的痛点,一个是备份数据集的管理,另外一个是备份数据的查询,本方案将通过阿里云DBS、OSS、DLA的组合,搭建一整套数据库本地/异地自动化备份和管理的方案。在备份的基础上,实现分钟级全备数据集的查询,节省大量数据库还原时间。
3162 0