搜索

3.10. bucket 生命周期

download PDF

作为存储管理员,您可以使用存储桶生命周期配置来管理对象,以便它们在整个生命周期中有效地存储。例如,您可以将对象转换为成本较低的存储类、存档甚至根据您的用例删除它们。

注意

radosgw-admin lc reshard 命令在 Red Hat Ceph Storage 3.3 中已弃用,Red Hat Ceph Storage 4 及更新的版本中不被支持。

3.10.1. 创建生命周期管理策略

您可以使用标准 S3 操作来管理 bucket 生命周期策略配置,而不是使用 radosgw-admin 命令。RADOS 网关仅支持应用于 bucket 的 Amazon S3 API 策略语言的子集。生命周期配置包含为一组 bucket 对象定义的一个或多个规则。

先决条件

  • 正在运行的红帽存储集群。
  • 安装 Ceph 对象网关.
  • Ceph 对象网关节点的根级别访问权限.
  • 已创建一个 S3 存储桶。
  • 创建的用户具有访问权限的 S3 用户。
  • 使用安装的 AWS CLI 软件包访问 Ceph 对象网关客户端。

流程

  1. 为生命周期配置创建 JSON 文件:

    示例

    [user@client ~]$ vi lifecycle.json

  2. 在 文件中添加特定生命周期配置规则:

    示例

    {
    	"Rules": [
            {
    		    "Filter": {
    			    "Prefix": "images/"
    		    },
    		    "Status": "Enabled",
    		    "Expiration": {
    			    "Days": 1
    		    },
    		    "ID": "ImageExpiration"
    	    }
        ]
    }

    生命周期配置示例在 images 目录中过期对象,这些对象超过 1 天。

  3. 在存储桶上设置生命周期配置:

    语法

    aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api put-bucket-lifecycle-configuration --bucket BUCKET_NAME --lifecycle-configuration file://PATH_TO_LIFECYCLE_CONFIGURATION_FILE/LIFECYCLE_CONFIGURATION_FILE.json

    示例

    [user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://lifecycle.json

    在本例中,cluster .json 文件存在于当前目录中。

验证

  • 检索存储桶的生命周期配置:

    语法

    aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-lifecycle-configuration --bucket BUCKET_NAME

    示例

    [user@client ~]$ aws --endpoint-url=http://host01:80 s3api get-bucket-lifecycle-configuration --bucket testbucket
    {
    	"Rules": [
            {
    		    "Expiration": {
    			    "Days": 1
    		    },
    		    "ID": "ImageExpiration",
    		    "Filter": {
    			    "Prefix": "images/"
    		    },
    		    "Status": "Enabled"
    	    }
        ]
    }

  • 可选:在 Ceph 对象网关节点中登录 Cephadm shell 并检索存储桶生命周期配置:

    语法

    radosgw-admin lc get --bucket=BUCKET_NAME

    示例

    [root@rgw ~]# radosgw-admin lc get --bucket=testbucket
    {
    	"prefix_map": {
    		"images/": {
    			"status": true,
    			"dm_expiration": false,
    			"expiration": 1,
    			"noncur_expiration": 0,
    			"mp_expiration": 0,
    			"transitions": {},
    			"noncur_transitions": {}
    		}
    	},
    	"rule_map": [
            {
    		"id": "ImageExpiration",
    		"rule": {
    			"id": "ImageExpiration",
    			"prefix": "",
    			"status": "Enabled",
    			"expiration": {
    				"days": "1",
    				"date": ""
    			},
    			"mp_expiration": {
    				"days": "",
    				"date": ""
    			},
    			"filter": {
    				"prefix": "images/",
    				"obj_tags": {
    					"tagset": {}
    				}
    			},
    			"transitions": {},
    			"noncur_transitions": {},
    			"dm_expiration": false
    		}
    	}
      ]
    }

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.