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
相關文章
相關標籤/搜索