使用冷热分层存储

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

前提条件

  • 已在OSS-HDFS服务中写入数据。

  • 华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、华北3(张家口)、中国香港、新加坡、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)、印度尼西亚(雅加达)地域支持使用冷热分层存储功能。

  • 提交工单申请使用冷热分层存储功能。

  • 已安装4.4.0及以上版本JindoSDK 。具体操作,请参见非EMR集群接入OSS-HDFS服务快速入门

注意事项

  • 读取OSS-HDFS归档类型数据时,涉及数据取回费用。因此对于需要频繁访问的数据,应避免使用低频、归档以及冷归档类型。关于这三种类型数据取回费用的更多信息,请参见数据处理费用

  • 为OSS-HDFS服务的数据设置存储策略时,涉及数据块添加标签操作。数据块标签费用遵循OSS对象标签计费规则。更多信息,请参见对象标签费用

  • 当使用的JindoSDK版本低于6.4.0时,不支持在设置为低频、归档以及冷归档存储类型的目录下创建文件。如果您需要在这三种类型的目录下创建文件,可以在标准类型目录下创建并关闭文件后,通过rename操作转移到低频、归档以及冷归档目录。

    如果您希望在低频、归档以及冷归档存储类型的目录下直接创建文件,您需要升级JindoSDK至6.4.0及以上版本。

  • 数据转换为归档或者冷归档存储类型时,系统开销大,解冻取回慢,请谨慎选择。

  • 支持数据从归档类型转换为冷归档存储类型,不支持数据从冷归档类型转换为归档类型。

操作步骤

  1. 配置环境变量。

    1. 连接ECS实例。具体操作,请参见连接ECS实例

    2. 进入已安装的JindoSDK JAR包下的bin目录。

      以下以jindosdk-x.x.x-linux为例,如使用其他版本的JindoSDK,请替换为对应的JAR包名称。

      cd jindosdk-x.x.x-linux/bin/
      说明

      x.x.x表示JindoSDK JAR包版本号。

    3. 授予bin目录下的jindo-util文件的读、写、执行的权限。

      chmod 700 jindo-util
    4. jindo-util文件重命名为jindo

      mv jindo-util jindo
    5. 新建配置文件jindosdk.cfg,然后在配置文件中添加以下配置项。

      [common]保持以下默认配置。
      logger.dir = /tmp/jindo-util/
      logger.sync = false
      logger.consolelogger = false
      logger.level = 0
      logger.verbose = 0
      logger.cleaner.enable = true
      hadoopConf.enable = false
      
      [jindosdk]自定义以下配置项。
      <!-- 以下以杭州地域为例,其他地域请根据实际情况替换。 -->
      fs.oss.endpoint = cn-hangzhou.oss-dls.aliyuncs.com
      <!-- 配置访问OSS-HDFS服务的AccessKeyId、AccessKeySecret。 -->
      fs.oss.accessKeyId = LTAI********    
      fs.oss.accessKeySecret = KZo1********                                        
    6. 设置环境变量。

      export JINDOSDK_CONF_DIR=<JINDOSDK_CONF_DIR>

      <JINDOSDK_CONF_DIR>填写jindosdk.cfg 配置文件所在的绝对路径。

  2. 指定为写入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的标签信息。

  3. 开启冷热分层存储。

    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天后转为冷归档存储。

      重要

      请勿编辑分层存储开启后自动创建的包含转换为低频、归档以及冷归档类型三种策略的生命周期规则,否则可能导致OSS-HDFS数据及服务异常。

    6. 单击确定

      • OSS-HDFS服务会根据步骤2设置的存储策略应用生命周期中对应的转储策略。

      • 生命周期规则创建后的24小时内,OSS会加载规则。规则加载完成后,OSS会在每天的北京时间08:00开始执行规则,具体执行时间取决于文件数量,最快48小时内转换为指定的存储类型。

相关命令

命令语法

使用说明

./jindo fs -setStoragePolicy -path <path> -policy <policy>

该命令用于为某个路径下的数据指定存储策略。

  • -path:指定文件或目录所在路径。

  • -policy:指定存储策略。可选值为:

    • CLOUD_STD:标准存储。

    • CLOUD_IA:低频访问

    • CLOUD_AR:归档存储。

    • CLOUD_COLD_AR:冷归档存储

    • CLOUD_AR_RESTORED:归档存储类型临时解冻后的类型,有过期时间要求。

    • CLOUD_COLD_AR_RESTORED:冷归档存储类型临时解冻后的类型,有过期时间要求。

重要
  • 单次提交将归档或者冷归档转换为标准或者低频的数据量不能超过5 TB,且同时处于Processing状态的数据量不能超过50 TB。

  • 在没有对文件或子目录设置存储类型的情况下,文件或子目录的存储策略默认继承父目录的存储类型。例如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:任务已提交。

  • Processing:任务正在执行。

  • Finalized:任务已完成。

说明

该命令只用于查询OSS-HDFS元数据转换任务的状态,不能反映已提交到OSS的任务处理状态。

./jindofs fs -setStoragePolicy -path <path> -policy <policy> -restoreDays <restoreDays>

该命令用于临时解冻指定路径下的归档或者冷归档存储类型的数据。

  • -path:指定文件或目录所在路径。

  • -policy:指定存储策略。可选值为:

    • CLOUD_AR_RESTORED:对应的原存储类型为归档存储。

    • CLOUD_COLD_AR_RESTORED:对应的原存储类型为冷归档存储。

  • -restoreDays:指定临时解冻的天数,默认值为1天。

    • 如果原存储类型为归档存储,则restoreDays支持的范围为1~7天。

    • 如果原存储类型为冷归档存储,则则restoreDays支持的范围为1~365天。

临时解冻归档或者冷归档数据时,有以下注意事项:

重要
  • 使用CLOUD_AR或者CLOUD_COLD_AR的策略进行存储之后,必须间隔超过2天才可以进行解冻。

  • 解冻任务完成后,数据仍不能立即可读。通常归档类型解冻后需要数分钟后可读,冷归档类型解冻后需要数小时后可读。

  • 超出指定的临时解冻天数后,数据回到不可读状态。处于临时解冻状态时,仍可以再次进行解冻,但是间隔必须超过2天以上。

常见问题

相关文档