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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM