1. 程式人生 > >ceph rgw 對象存儲 對象 生命周期 設置 -- lifecycle

ceph rgw 對象存儲 對象 生命周期 設置 -- lifecycle

inux 單獨 重啟 4.3 Coding enable 相關 oss int

1、簡介

1.1 介紹

    對於 存儲 來說,容量 當然是 越大越好了,最好 可以 無限 寫入(哈哈,哪有 那麽 好的 事);但是 我們 可以 刪除 老舊 無用的數據,不過 總不能 時時刻刻 的手動 刪除 數據吧;我們 可以 根據 一定的規則 刪除 老舊的數據,此時 就可以 設置 對象 生命周期規則,制定 數據 刪除 規則,對於 客戶來說,集群 好像 就可以 無限量 寫入了(哈哈哈,所以 後端 才是 真實的,但是 刪除 數據 有風險,謹慎操作哦!!!)
    

1.2 前提 條件

    你要 設置 對象 生命 周期,說明 你的 集群 已經 在 正常 使用了,對象 網關 服務 正常 對外 提供服務

    

2、服務端 配置

    不管 進行 什麽 配置,你都需要 對你的 服務進程 進行 相關 的配置吧,ceph 對象網關 生命周期 也是一樣的道理,需要 對 提供 對象 網關 服務的
    
????

## 配置 設置
# vim /etc/ceph/ceph.conf
    ...
    ## 運行的時間段
    rgw_lifecycle_work_time = "00:00-24:00"

    ## 時間 間隔
    rgw_lc_debug_interval = "10" 
    ...

## 重啟 對象網關 服務
# systemctl restart ceph-radosgw.target

    
????

3、s3 browser 設置 生命周期(Windows 客戶端)

    通過 s3 browser 客戶端 軟件(這個 暫時 不想 詳細描述,後期 編寫 文章 單獨 介紹)
技術分享圖片
    

4、設置 生命周期(Linux 客戶端)

4.1 安裝 boto3

    安裝 boto3,也可以 安裝 boto;(但是本文 的 後續 腳本 是 根據 boto3 編寫的,boto 需要的 自己 寫寫嘍,差別不大,或者 聯系我哦,免費 幫助!!!)
    

# pip install boto3

    

4.3 配置 腳本(python)

# cat rgw_lifecycle_set.py
#!/usr/bin/env python2.7
#-*- coding: utf-8 -*.

import boto3
from botocore.client import Config
import datetime

## 根據 對象 網關 用戶 信息 
aws_access_key_id = ‘XXX‘
aws_secret_access_key = ‘XXX‘

## 需要 設置 規則 的 bucket
bucket_name = ‘XXX‘

# aws2
s3 = boto3.client(‘s3‘, region_name=None,
                  use_ssl=False,
                  ## url 根據 實際 情況 配置
                  endpoint_url=‘{http://ceph.com}‘,
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key,
                  config=Config(s3={‘addressing_style‘: ‘path‘}))

print s3.put_bucket_lifecycle( 
    Bucket=bucket_name, 
    LifecycleConfiguration={
        ‘Rules‘: [
            {
                ‘Status‘: ‘Enabled‘, 
                ‘Prefix‘: ‘/‘, 
                ‘Expiration‘: 
                    {
                        ‘Days‘: 1
                    }, 
                ‘ID‘: ‘79m9n5aucsjb1nqi1687nzcbelqdkli3qwbtgzsm7n4nkfv6‘
            }
        ], 
    }
)
print s3.get_bucket_lifecycle(Bucket=bucket_name)

ceph rgw 對象存儲 對象 生命周期 設置 -- lifecycle