ceph radosgw-admin的操做

经常使用操做:

生成一新用户:python

在两个集群当中都建立相同的管理用户json

radosgw-admin user create --uid=admin --display-name=admin --access_key=admin --secret=123456

这里为了测试方便使用了简单密码swift

此时admin还仅仅是普通的权限,须要经过cap添加user的capabilities,例如:异步

radosgw-admin caps add --uid=admin --caps="users=read, write"
radosgw-admin caps add --uid=admin --caps="usage=read, write"
$ radosgw-admin user create --display-name="johnny rotten" --uid=johnny
{ "user_id": "johnny",
  "rados_uid": 0,
  "display_name": "johnny rotten",
  "email": "",
  "suspended": 0,
  "subusers": [],
  "keys": [
        { "user": "johnny",
          "access_key": "TCICW53D9BQ2VGC46I44",
          "secret_key": "tfm9aHMI8X76L3UdgE+ZQaJag1vJQmE6HDb5Lbrz"}],
  "swift_keys": []}

删除一用户:工具

$ radosgw-admin user rm --uid=johnny

删除一个用户和与他相关的桶及内容:测试

$ radosgw-admin user rm --uid=johnny --purge-data

删除一个桶:ui

$ radosgw-admin bucket unlink --bucket=foo

显示一个桶从 2012 年 4 月 1 日起的日志:this

$ radosgw-admin log show --bucket=foo --date=2012-04-01

显示某用户 2012 年 3 月 1 日(不含)到 4 月 1 日期间的使用状况:url

$ radosgw-admin usage show --uid=johnny \
                --start-date=2012-03-01 --end-date=2012-04-01

只显示全部用户的使用状况汇总:spa

$ radosgw-admin usage show --show-log-entries=false

裁剪掉某用户 2012 年 4 月 1 日以前的使用信息:

$ radosgw-admin usage trim --uid=johnny --end-date=2012-04-01

命令

radosgw-admin 工具备不少命令,可完成各类管理任务:

user create
建立一个新用户。
user modify
修改一个用户。
user info
显示用户信息,以及可能存在的子用户和密钥。
user rm
删除一个用户。
user suspend
暂停某用户。
user enable
从新容许暂停的用户。
user check
检查用户信息。
user stats
显示配额子系通通计的用户状态。
caps add
给用户分配能力。
caps rm
删除用户能力。
subuser create
新建一个子用户(适合使用 Swift API 的客户端)。
subuser modify
修改子用户。
subuser rm
删除子用户
key create
新建访问密钥。
key rm
删除访问密钥。
bucket list
罗列全部桶。
bucket link
把桶关联到指定用户。
bucket unlink
取消指定用户和桶的关联。
bucket stats
返回桶的统计信息。
bucket rm
删除一个桶。
bucket check
检查桶的索引信息。
object rm
删除一个对象。
object unlink
从桶索引里去掉对象。
quota set
设置配额参数。
quota enable
启用配额。
quota disable
禁用配额。
region get
显示 region 信息。
regions list
列出本集群配置的全部 region 。
region set
设置 region 信息(须要输入文件)。
region default
设置默认 region 。
region-map get
显示 region-map 。
region-map set
设置 region-map (须要输入文件)。
zone get
显示区域集群参数。
zone set
设置区域集群参数(须要输入文件)。
zone list
列出本集群内配置的全部区域。
pool add
增长一个已有存储池用于数据归置。
pool rm
从数据归置集删除一个已有存储池。
pools list
罗列归置活跃集。
policy
显示桶或对象相关的策略。
log list
罗列日志对象。
log show
显示指定对象内(或指定桶、日期、桶标识符)的日志。
log rm
删除日志对象。
usage show
查看使用率信息(可选选项有用户和数据范围)。
usage trim
修剪使用率信息(可选选项有用户和数据范围)。
temp remove
删除指定日期(时间可选)以前建立的临时对象。
gc list
显示过时的垃圾回收对象(加 –include-all 选项罗列全部条目,包括未过时的)。
gc process
手动处理垃圾。
metadata get
读取元数据信息。
metadata put
设置元数据信息。
metadata rm
删除元数据信息。
metadata list
罗列元数据信息。
mdlog list
罗列元数据日志。
mdlog trim
裁截元数据日志。
bilog list
罗列桶索引日志。
bilog trim
裁截桶索引日志(须要起始标记、结束标记)。
datalog list
罗列数据日志。
datalog trim
裁截数据日志。
opstate list
罗列含状态操做(须要 client_id 、 op_id 、对象)。
opstate set
设置条目状态(需指定 client_id 、 op_id 、对象、状态)。
opstate renew
更新某一条目的状态(需指定 client_id 、 op_id 、对象)。
opstate rm
删除条目(需指定 client_id 、 op_id 、对象)。
replicalog get
读取复制元数据日志条目。
replicalog delete
删除复制元数据日志条目。

选项

-c  ceph.conf --conf =ceph.conf

用指定的 ceph.conf 配置文件而非默认的 /etc/ceph/ceph.conf 来肯定启动时所需的监视器地址。

-m  monaddress[:port]

链接到指定监视器,而非经过 ceph.conf 查询。

--uid =uid

radosgw 用户的 ID 。

--subuser =<name>

子用户名字。

--email =email

用户的电子邮件地址。

--display-name =name

配置用户的显示名称(昵称)

--access-key =<key>

S3 访问密钥。

--gen-access-key

生成随机访问密钥(给 S3 )。

--secret =secret

指定密钥的密文。

--gen-secret

生成随机密钥。

--key-type =<type>

密钥类型,可用的有: swift 、 S3 。

--temp-url-key [-2]=<key>

临时 URL 密钥。

--system

给用户设置系统标识。

--bucket =bucket

指定桶名

--object =object

指定对象名

--date =yyyy-mm-dd

某些命令所需的日期

--start-date =yyyy-mm-dd

某些命令所需的起始日期

--end-date =yyyy-mm-dd

某些命令所需的终结日期

--shard-id =<shard-id>

执行 mdlog list 时为可选项。对 mdlog trim 、 replica mdlog get/delete 、 replica datalog get/delete 来讲是必须的。

--auth-uid =auid

librados 认证所需的 auid 。

--purge-data

删除用户前先删除用户数据。

--purge-keys

若加了此选项,删除子用户时将一块儿删除其全部密钥。

--purge-objects

删除桶前先删除其内全部对象。

--metadata-key =<key>

用 metadata get 检索元数据时用的密钥。

--rgw-region =<region>

radosgw 所在的 region 。

--rgw-zone =<zone>

radosgw 所在的区域。

--fix

除了检查桶索引,还修复它。

--check-objects

检查桶:根据对象的实际状态重建桶索引。

--format =<format>

为某些操做指定输出格式: xml 、 json 。

--sync-stats

user stats 的选项,收集用户的桶索引状态、并同步到用户状态。

--show-log-entries =<flag>

执行 log show 时,显示或不显示日志条目。

--show-log-sum =<flag>

执行 log show 时,显示或不显示日志汇总。

--skip-zero-entries

让 log show 只显示数字字段非零的日志。

--infile

设置时指定要读取的文件。

--state =<state string>

给 opstate set 命令指定状态。

--replica-log-type

复制日志类型( metadata 、 data 、 bucket ),操做复制日志时须要。

--categories =<list>

逗号分隔的一系列类目,显示使用状况时须要。

--caps =<caps>

能力列表,如 “usage=read, write; user=read” 。

--yes-i-really-mean-it

某些特定操做须要。

配额选项

--bucket

为配额命令指定桶。

--max-objects

指定最大对象数(负数为禁用)。

--max-size

指定最大尺寸(单位为字节,负数为禁用)。

--quota-scope

配额有效范围(桶、用户)。

 

操做管理实例:

用户管理

新建一个用户

执行下面的命令新建一个用户 (S3 接口):

radosgw-admin user create --uid={username} --display-name="{display-name}" [--email={email}]

实例以下:

radosgw-admin user create --uid=johndoe --display-name="John Doe" --email=john@example.com

新建一个子用户

为了给用户新建一个子用户 (Swift 接口) ,你必须为该子用户指定用户的 ID(--uid={username}),子用户的 ID 以及访问级别:

radosgw-admin subuser create --uid={uid} --subuser={uid} --access=[ read | write | readwrite | full ]

实例以下:

radosgw-admin subuser create --uid=johndoe --subuser=johndoe:swift --access=full

Note:full 并不表示 readwrite, 由于它还包括访问权限策略.

获取用户信息

要获取一个用户的信息,你必须使用 user info 子命令而且制定一个用户 ID(--uid={username}) .

radosgw-admin user info --uid=johndoe

修改用户信息

要修改一个用户的信息,你必须指定用户的 ID (--uid={username}),还有 你想要修改的属性值。典型的修改项主要是 access 和secret 密钥,邮件地址,显 示名称和访问级别。举例以下:

radosgw-admin user modify --uid=johndoe --display-name="John E. Doe"

要修改子用户的信息, 使用 subuser modify 子命令而且执行子用户的 ID. 举例以下:

radosgw-admin subuser modify --uid=johndoe:swift --access=full

用户 启用/停用

当你建立了一个用户,用户默认状况下是处于启用状态的。然而,你能够暂停用户权 限并在之后随时从新启用它们。暂停一个用户,使用 user suspend 子命令 而后哦指定用户的 ID:

radosgw-admin user suspend --uid=johndoe

要从新启用已经被停用的用户,使用 user enable 子命令并指明用户的 ID.

radosgw-admin user enable --uid=johndoe

Note:停用一个用户后,它的子用户也会一块儿被停用.

删除用户

删除用户时,这个用户以及他的子用户都会被删除。固然,若是你愿意,能够只删除子用户。要删除用户(及其子用户),可以使用 user rm 子命令并指明用户 ID :

radosgw-admin user rm --uid=johndoe

只想删除子用户时,可以使用 subuser rm 子命令并指明子用户 ID 。

radosgw-admin subuser rm --subuser=johndoe:swift

其它可选操做:

  • Purge Data: 加 --purge-data 选项可清除与此 UID 相关的全部数据。
  • Purge Keys: 加 --purge-keys 选项可清除与此 UID 相关的全部密钥。

删除子用户

在你删除子用户的同时,也失去了 Swift 接口的访问方式,可是这个用户在系统 中还存在。要删除子用户,可以使用 subuser rm 子命令并指明子用户 ID :

radosgw-admin subuser rm --subuser=johndoe:swift

其它可选操做:

  • Purge Keys: 加 --purge-keys 选项可清除与此 UID 相关的全部密钥。

新建一个密钥

要为用户新建一个密钥,你须要使用 key create 子命令。对于用户来讲,须要指明用户的 ID 以及新建的密钥类型为 s3 。要为子用户新建一个密钥,则须要指明子用户的 ID以及密钥类型为 swift 。实例以下:

radosgw-admin key create --subuser=johndoe:swift --key-type=swift --gen-secret

新建/删除 ACCESS 密钥

用户和子用户要能使用 S3 和Swift 接口,必须有 access 密钥。在你新 建用户或者子用户的时候,若是没有指明 access 和 secret 密钥,这两 个密钥会自动生成。你可能须要新建 access 和/或 secret 密钥,不论是 手动指定仍是自动生成的方式。你也可能须要删除一个 access 和 secret 。可用的选项有:

  • --secret=<key> 指明一个 secret 密钥 (e.即手动生成).
  • --gen-access-key 生成一个随机的 access 密钥 (新建 S3 用户的默认选项).
  • --gen-secret 生成一个随机的 secret 密钥.
  • --key-type=<type> 指定密钥类型. 这个选项的值能够是: swift, s3

要新建密钥,须要指明用户 ID.

radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret

你也可使用指定 access 和 secret 密钥的方式.

要删除一个 access 密钥, 也须要指定用户 ID.

radosgw-admin key rm --uid=johndoe

添加/删除 管理权限

Ceph 存储集群提供了一个管理API,它容许用户经过 REST API 执行管理功能。默认状况下,用户没有访问 这个 API 的权限。要启用用户的管理功能,须要为用 户提供管理权限。

执行下面的命令为一个用户添加管理权限:

radosgw-admin caps add --uid={uid} --caps={caps}

你能够给一个用户添加对用户、bucket、元数据和用量(存储使用信息)等数据的 读、写或者全部权限。举例以下:

--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]" 

实例以下:

radosgw-admin caps add --uid=johndoe --caps="users=*"

要删除某用户的管理权限,可用下面的命令:

radosgw-admin caps rm --uid=johndoe --caps={caps}

配额管理

设置用户配额

在你启用用户的配额前 ,你须要先设置配额参数。 例如:

radosgw-admin quota set --quota-scope=user --uid=<uid> [--max-objects=<num objects>] [--max-size=<max size>]

实例以下:

radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024

最大对象数和最大存储用量的值是负数则表示不启用指定的 配额参数。

启用/禁用用户配额

在你设置了用户配额以后,你能够启用这个配额。实例以下:

radosgw-admin quota enable --quota-scope=user --uid=<uid>

你也能够禁用已经启用了配额的用户的配额。 举例以下:

radosgw-admin quota-disable --quota-scope=user --uid=<uid>

设置 BUCKET 配额

Bucket 配额做用于用户的某一个 bucket,经过 uid 指定用户。这些配额设置是独立于用户以外的。:

radosgw-admin quota set --uid=<uid> --quota-scope=bucket [--max-objects=<num objects>] [--max-size=<max size>]

最大对象数和最大存储用量的值是负数则表示不启用指定的 配额参数。

启用/禁用 BUCKET 配额

在你设置了 bucket 配额以后,你能够启用这个配额。实例以下:

radosgw-admin quota enable --quota-scope=bucket --uid=<uid>

你也能够禁用已经启用了配额的 bucket 的配额。 举例以下:

radosgw-admin quota-disable --quota-scope=bucket --uid=<uid>

获取配额信息

你能够经过用户信息 API 来获取每个用户的配额 设置。经过 CLI 接口读取用户的配额设置信息,请执行下面的命令:

radosgw-admin user info --uid=<uid>

更新配额统计信息

配额的统计数据的同步是异步的。你也能够经过手动获 取最新的配额统计数据为全部用户和全部 bucket 更新配额统计数据:

radosgw-admin user stats --uid=<uid> --sync-stats

获取用户用量统计信息

执行下面的命令获取当前用户已经消耗了配额的多少:

radosgw-admin user stats --uid=<uid>

Note:你应该在执行 radosgw-admin user stats 的时候带上 --sync-stats 参数来获取最新的数据.

读取/设置全局配额

你能够在 region map中读取和设置配额。执行下面的命 令来获取 region map:

radosgw-admin regionmap get > regionmap.json

要为整个 region 设置配额,只须要简单的修改 region map 中的配额设置。而后使用 region set 来更新 region map便可:

radosgw-admin region set < regionmap.json

Note:在更新 region map 后,你必须重启网关.

用量管理

Ceph 对象网关会为每个用户记录用量数据。你也能够经过指定日期范围来跟踪用户的用量数据。

可用选项以下:

  • Start Date: 选项 --start-date 容许你指定一个起始日期来过滤用量数据 (format: yyyy-mm-dd[HH:MM:SS]).
  • End Date: 选项 --end-date 容许你指定一个截止日期来过滤用量数据 (format: yyyy-mm-dd[HH:MM:SS]).
  • Log Entries: 选项 --show-log-entries 容许你 指明显示用量数据的时候是否要包含日志条目。 (选项值: true | false).

Note:你能够指定时间为分钟和秒,可是数据存储是以一个小时的间隔存储的.

展现用量信息

显示用量统计数据,使用 usage show 子命令。显示某一个特定 用户的用量数据,你必须指定该用户的 ID。你也能够指定开始日期、结 束日期以及是否显示日志条目。:

radosgw-admin usage show --uid=johndoe --start-date=2012-03-01 --end-date=2012-04-01

经过去掉用户的 ID,你也能够获取全部用户的汇总的用量信息

radosgw-admin usage show --show-log-entries=false

删除用量信息

对于大量使用的集群而言,用量日志可能会占用大量存储空间。你能够为全部用户或者一个特定的用户删除部分用量日志。你也能够为删除操做指定日期范围。:

radosgw-admin usage trim --start-date=2010-01-01 --end-date=2010-12-31
radosgw-admin usage trim --uid=johndoe
radosgw-admin usage trim --uid=johndoe --end-date=2013-12-31
相关文章
相关标签/搜索