• ceph radosgw-admin的操作


    常用操作:

    生成一新用户:

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

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

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

    此时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

    删除一个桶:

    $ radosgw-admin bucket unlink --bucket=foo

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

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

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

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

    只显示所有用户的使用情况汇总:

    $ 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
  • 相关阅读:
    aa
    https php
    字节转换(转载)
    mysql和mariadb中字段拼接类型有两个或多个字段或者一个字段和一个固定字符串拼接
    Qt检测显示器的个数
    QWebEngine自动添加麦克风和摄像头权限
    Qt开启和关闭蓝牙
    cef关闭主窗口并调用CefQuitMessageLoop()后,仍然在后台运行的问题(linux)
    windows安装jq
    Allure2环境准备
  • 原文地址:https://www.cnblogs.com/kuku0223/p/8257813.html
Copyright © 2020-2023  润新知