并不是所有OSS-HDFS中存储的数据都需要频繁访问,但基于数据合规或者存档等原因,部分数据仍然需要继续保存。针对以上问题,OSS-HDFS服务支持数据的冷热分层存储,对于经常需要访问的数据以标准类型进行存储,对于较少访问的数据以低频、归档以及冷归档类型进行存储,从而降低总存储成本。

前提条件

  • 已在OSS-HDFS服务中写入数据。
  • 华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、华北3(张家口)、中国香港、新加坡、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)、印度尼西亚(雅加达)地域支持使用冷热分层存储功能。
  • 提交工单申请使用冷热分层存储功能。
  • 已配置4.4.0及以上版本JindoSDK 。具体操作,请参见非EMR集群接入OSS-HDFS服务快速入门

注意事项

  • 当您需要读取OSS-HDFS归档类型数据时,涉及数据取回费用。因此对于需要频繁访问的数据,应避免使用低频、归档以及冷归档类型。关于这三种类型数据取回费用的更多信息,请参见数据处理费用
  • 不支持在设置为低频、归档以及冷归档存储类型的目录下创建文件。如果您需要在这三种类型的目录下创建文件,可以在标准类型目录下创建并关闭文件后,通过rename操作转移到低频、归档以及冷归档目录。

操作步骤

  1. 指定为写入OSS-HDFS服务的数据设置存储策略。
    场景 执行命令 执行结果
    为写入OSS-HDFS服务的数据设置存储策略为低频访问存储
    jindo fs -setStoragePolicy -path oss://examplebucket/dir1 -policy CLOUD_IA
    dir1/目录下的文件对应的数据块会携带Key为transition-storage-class、Value为IA的标签信息。
    为写入OSS-HDFS服务的数据设置存储策略为归档存储
    jindo fs -setStoragePolicy -path oss://examplebucket/dir2 -policy CLOUD_AR
    dir2/目录下的文件对应的数据块会携带Key为transition-storage-class、Value为Archive的标签信息。
    为写入OSS-HDFS服务的数据设置存储策略为冷归档存储
    jindo fs -setStoragePolicy -path oss://examplebucket/dir3 -policy CLOUD_COLD_AR
    dir3/目录下的文件对应的数据块会携带Key为transition-storage-class、Value为ColdArchive的标签信息。
  2. 开启冷热分层存储。
    1. 登录OSS管理控制台
    2. 单击左侧导航栏的Bucket列表,然后单击目标Bucket。
    3. 在左侧导航栏,选择数据湖管理 > HDFS服务
    4. HDFS服务页签,单击设置冷热分层。
    5. 冷热分层冷热分层基础设置区域,打开状态开关。
      1
      为避免配置错误导致冷热分层无法正常工作,OSS会自动创建同时包含以下三种策略的生命周期规则:
      • 指定OSS-HDFS的数据存储目录.dlsdata/下携带Key为transition-storage-class、Value为IA标签的数据在1天后转为低频访问存储。
      • 指定OSS-HDFS的数据存储目录.dlsdata/下携带Key为transition-storage-class、Value为Archive标签的数据在1天后转为归档存储。
      • 指定OSS-HDFS的数据存储目录.dlsdata/下携带Key为transition-storage-class、Value为ColdArchive标签的数据在1天后转为冷归档存储。
    6. 单击确定
      • OSS-HDFS服务会根据步骤1设置的存储策略应用生命周期中对应的转储策略。
      • 生命周期规则创建后的24小时内,OSS会加载规则。规则加载完成后,OSS会在每天的北京时间08:00开始执行规则,并在随后的24小时内执行完毕。因此,.dlsdata路径下数据可能最长需要48小时转换为指定的存储类型。

相关命令

命令语法 使用说明
jindo fs -setStoragePolicy -path <path> -policy <policy>
该命令用于为某个路径下的数据指定存储策略。
  • -path:指定文件或目录所在路径。
  • -policy:指定存储策略。可选值为:
    • CLOUD_STD:标准存储。
    • CLOUD_IA:低频访问
    • CLOUD_AR:归档存储。
    • CLOUD_COLD_AR:冷归档存储

在没有对文件或子目录设置存储类型的情况下,文件或子目录的存储策略默认继承父目录的存储类型。例如oss://examplebucket/dir的存储类型为CLOUD_STD,则oss://examplebucket/dir/subdir存储类型也为CLOUD_STD

jindo fs -getStoragePolicy -path <path>
该命令用于查询指定路径下数据的存储策略。
jindo fs -unsetStoragePolicy -path <path>
该命令用于取消指定路径下的数据的存储策略。
jindo fs -checkStoragePolicy -path <path>
该命令用于查询指定路径下数据存储策略的转换状态。转换状态分为以下三种:
  • Pending:任务等待提交。
  • Submitted:任务已提交。
  • Finalized:任务已完成。

常见问题

如果误删除冷热分层对应的生命周期规则怎么办?

开启冷热分层后,OSS会自动创建同时包含转换为低频、归档以及冷归档类型三种策略的生命周期规则。如果您误删除了其中一种或多种策略的生命周期规则,可能会造成数据无法执行冷热分层存储。

解决方法:

  1. 关闭冷热分层存储。
    1. 单击设置
      lifecycle
    2. 冷热分层冷热分层基础设置区域,关闭状态开关,然后单击确定
      setting
    3. 在弹出的对话框中单击确定
  2. 重新设置生命周期规则。
    1. HDFS服务页签,单击设置冷热分层。
    2. 冷热分层冷热分层基础设置区域,打开状态开关。
    3. 单击确定
      OSS将重新为您创建包含转换为低频、归档以及冷归档类型三种策略的生命周期规则。