冷归档数据恢复最佳实践

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 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版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
6月前
|
存储 弹性计算 数据管理
阿里云OSS收费标准:流量费用、存储费及功能费价格表(详细计费规则)
阿里云OSS收费标准涵盖存储、流量及功能费用,支持按量付费与资源包两种模式。标准存储按量0.09元/GB/月,40GB包年9元,100GB包年99元,500GB预留空间118.99元/年。流量仅公网流出收费,闲时0.25元/GB,忙时0.5元/GB,可购流量包抵扣。开通Bucket免费,上传不收费,下载按流量计费。多种存储类型满足不同需求,成本透明灵活。
|
Linux
安装CentOS7出现dracut:/#......time解决办法
安装CentOS7出现dracut:/#......time解决办法
1249 0
|
7月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
54152 11
|
数据库连接 数据库 Python
Python中的上下文管理器(Context Managers):优雅地管理资源
在Python编程中,上下文管理器是一种用于管理资源的强大机制。通过上下文管理器,你可以确保在代码块的进入和退出时资源得到正确的分配和释放,从而使你的代码更加优雅、可读性更强。本文将深入探讨上下文管理器的基本概念、使用方法以及如何自定义上下文管理器。
|
数据采集 机器学习/深度学习
IP代理
爬虫系列文章
2726 0
|
人工智能 分布式计算 DataWorks
DataWorks
DataWorks是阿里巴巴推出的智能化大数据开发与治理平台,支持数据仓库、数据湖等架构,集成多种阿里云大数据计算服务,如MaxCompute、Hologres等,助力政府、金融、零售等行业实现数据全生命周期管理,推动数字化转型和数据资产增值。
|
存储 数据建模 Linux
SentinelOne Deep Visibility 离线数据处理详细说明
SentinelOne Deep Visibility 是一款强大的EDR工具,支持威胁根源分析与详细洞察,保护企业安全。其功能包括直观数据搜索、基于假设的搜寻、Storyline主动响应监视列表、IOC威胁搜寻及竞争力数据保留。即使设备离线,DV仍能保存关键数据:Mac OS本地存50个数据包(1000事件/包或5分钟),Linux默认3分钟且部分参数可配置,Windows可存储多达15000数据包,所有参数均可调整。上海甫连信息技术有限公司提供相关技术支持。
280 0
SentinelOne Deep Visibility 离线数据处理详细说明
|
存储 人工智能 大数据
阿里云对象存储OSS标准存储、低频访问、归档和冷归档区别对比
阿里云对象存储OSS的Bucket存储类型标准存储、低频访问存储、归档存储和冷归档存储有什么区别?如何选择?
5907 1
阿里云对象存储OSS标准存储、低频访问、归档和冷归档区别对比
|
Kubernetes 安全 持续交付
在K8S中,二进制安装和Kubeadm安装有什么区别?
在K8S中,二进制安装和Kubeadm安装有什么区别?

热门文章

最新文章