ceph分布式存儲-用戶管理

一胳喷、 說明

Ceph 把數(shù)據(jù)以對象的形式存于各存儲池中述雾。Ceph 用戶必須具有訪問存儲池的權(quán)限才能夠讀寫數(shù)據(jù)奶卓。

另外评甜,Ceph 用戶必須具有執(zhí)行權(quán)限才能夠使用 Ceph 的管理命令。

二隶校、 授權(quán)能力

Ceph 用 “能力”( capabilities, caps )這個術(shù)語來描述給認證用戶的授權(quán)漏益,這樣才能使用 Mon、 OSD 和 MDS 的功能深胳。

能力也用于限制對某一存儲池內(nèi)的數(shù)據(jù)或某個命名空間的訪問绰疤。 Ceph 管理員用戶可在創(chuàng)建或更新普通用戶時賦予他相應(yīng)的能力。

能力的語法符合下面的形式:

{daemon-type} 'allow {capability}' [{daemon-type} 'allow {capability}']

Monitor 能力: Monitor 能力包括 r 舞终、 w 轻庆、 x 和 allow profile {cap},例如:

mon 'allow rwx'
mon 'allow profile osd'

OSD 能力: OSD 能力包括 r 敛劝、 w 余爆、 x 、 class-read 夸盟、 class-write 和 profile osd 蛾方。

另外, OSD 能力還支持存儲池和命名空間的配置上陕。

osd 'allow {capability}' [pool={poolname}] [namespace={namespace-name}]

MDS 能力: MDS 能力比較簡單桩砰,只需要 allow 或者空白,也不會解析更多選項释簿。

mds 'allow'

注意: Ceph 對象網(wǎng)關(guān)守護進程( radosgw )是 Ceph 存儲集群的一種客戶端亚隅,所以它沒被表示成一種獨立的 Ceph 存儲集群守護進程類型。
下面描述了各種能力辕万。
allow
描述: 在守護進程的訪問設(shè)置之前枢步,僅對 MDS 隱含 rw 。
r
描述: 授予用戶讀權(quán)限渐尿,對 monitor 具有讀權(quán)限才能獲取 CRUSH map醉途。
w
描述: 授予用戶寫對象的權(quán)限。
x
描述: 授予用戶調(diào)用類方法的能力砖茸,即同時有讀和寫隘擎,且能在 monitor 上執(zhí)行 auth 操作。
class-read
描述: 授予用戶調(diào)用類讀取方法的能力凉夯, x 的子集货葬。
class-write
描述: 授予用戶調(diào)用類寫入方法的能力, x 的子集劲够。

描述: 授權(quán)此用戶讀震桶、寫和執(zhí)行某守護進程/存儲池,且允許執(zhí)行管理命令征绎。
profile osd
描述: 授權(quán)一個用戶以 OSD 身份連接其它 OSD 或 Monitor蹲姐。授予 OSD 們允許其它 OSD 處理復(fù)制、心跳流量和狀態(tài)報告。
profile mds
描述: 授權(quán)一個用戶以 MDS 身份連接其它 MDS 或 Monitor柴墩。
profile bootstrap-osd
描述: 授權(quán)用戶自舉引導(dǎo)一個 OSD 忙厌。授予部署工具,像 ceph-disk 江咳、ceph-deploy 等等逢净,這樣它們在自舉引導(dǎo) OSD 時就有權(quán)限增加密鑰了。
profile bootstrap-mds
描述: 授權(quán)用戶自舉引導(dǎo)一個 MDS歼指。授予例如 ceph-deploy 的部署工具爹土,這樣它們在自舉引導(dǎo) MDS 時就有權(quán)限增加密鑰了。

三踩身、管理用戶

用戶管理功能可以讓 Ceph 存儲集群的管理員有能力去創(chuàng)建着饥、更新和刪除集群的普通用戶。當(dāng)創(chuàng)建或刪除一個用戶時惰赋,可能需要把 keys 分發(fā)給各客戶端宰掉,以便它們可以加入到 keyring 文件中。

3.1 羅列用戶

可以使用下面的命令羅列用戶:

ceph auth list

Ceph 會列出集群中的所有用戶赁濒。例如轨奄,在一個只有 2 個 OSD 的簡單環(huán)境中,ceph auth list 將會輸入類似下面的內(nèi)容:

installed auth entries:
 
osd.0
        key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w==
        caps: [mon] allow profile osd
        caps: [osd] allow *
osd.1
        key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA==
        caps: [mon] allow profile osd
        caps: [osd] allow *
client.admin
        key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw==
        caps: [mds] allow
        caps: [mon] allow *
        caps: [osd] allow *
client.bootstrap-mds
        key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==
        caps: [mon] allow profile bootstrap-mds
client.bootstrap-osd
        key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==
        caps: [mon] allow profile bootstrap-osd

注意 TYPE.ID 這種用戶表示方法拒炎,比如 osd.0 表示用戶類型是 osd 且其 ID 是 0 挪拟, client.admin 表示用戶類型是 client 且其 ID 是 admin (即默認的 client.admin 用戶)。

另外击你,每個用戶條目都有一個 key: <value> 對玉组,一個或多個 caps: 條目。

3.2 獲取用戶

獲取某一特定用戶的信息:

ceph auth get {TYPE.ID}

例如:

ceph auth get client.admin

還可以給命令加上 -o {filename} 選項把輸入保存到一個文件中丁侄。

3.3 增加用戶

增加一個用戶就是創(chuàng)建一個用戶名(即 TYPE.ID)惯雳、一個密鑰和任何包含在創(chuàng)建命令中的能力。有以下幾種方式可以新增一個用戶:

ceph auth add:此命令是最權(quán)威的新增用戶方式鸿摇。它回新建一個用戶石景,產(chǎn)生一個 key ,并賦予用戶任何給定的能力拙吉。
ceph auth get-or-create:這種方式通常是最便捷的一種潮孽,因為它的返回值是包含用戶名(在方括號內(nèi))和密鑰的格式。如果用戶已經(jīng)存在筷黔,該命令會返回密鑰文件格式的用戶名和密鑰信息往史。可以使用 -o {filename} 選項把輸入保存到一個文件中佛舱。
ceph auth get-or-create-key:該命令可以很方便地創(chuàng)建用戶椎例,但是只會返回用戶的密鑰揽乱。對于某些只需要密鑰的用戶(如 libvirt )來說是很有用的。如果用戶已經(jīng)存在粟矿,該命令僅僅返回用戶的密鑰∷鹇#可以使用 -o {filename} 選項把輸入保存到一個文件中陌粹。
下面是幾個例子:

ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key

3.4 修改用戶的能力

ceph auth caps 命令允許你指定用戶并改變用戶的能力。設(shè)定新的能力會覆蓋當(dāng)前的能力福压。

查看當(dāng)前的能力可以使用 ceph auth get USERTYPE.USERID 命令掏秩。

要增加能力,你應(yīng)該在如下格式的命令中包含當(dāng)前已經(jīng)存在的能力:

ceph auth caps USERTYPE.USERID {daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]' [{daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]']

例如:

ceph auth get client.john
ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'

要移除某個能力荆姆,你可能需要進行重置蒙幻。如果你想取消某個用戶對特定守護進程的所有訪問權(quán)限,可以指定一個空的字符串胆筒。比如:

ceph auth caps client.ringo mon ' ' osd ' '

3.5 刪除用戶

想要刪除一個用戶邮破,可以用 ceph auth del 命令:

ceph auth del {TYPE}.{ID}

其中, {TYPE} 是 client仆救,osd抒和,mon 或 mds 的其中一種。{ID} 是用戶的名字或守護進程的 ID 彤蔽。

3.6 打印用戶的密鑰

打印某個用戶的授權(quán)密鑰到標準輸出界面摧莽,可以執(zhí)行如下命令

ceph auth print-key {TYPE}.{ID}

其中, {TYPE} 是 client顿痪,osd镊辕,mon 或 mds 的其中一種。{ID} 是用戶的名字或守護進程的 ID 蚁袭。

當(dāng)需要往客戶端軟件中注入 Ceph 用戶(如 libvirt)的密鑰時征懈,打印用戶的密鑰時很有用的。

mount -t ceph serverhost:/ mountpoint -o name=client.user,secret=`ceph auth print-key client.user`

3.7 導(dǎo)入用戶

使用 ceph auth import 命令并指定密鑰文件揩悄,可以導(dǎo)入一個或多個用戶:

ceph auth import -i /path/to/keyring

比如:

sudo ceph auth import -i /etc/ceph/ceph.keyring

四受裹、秘鑰管理

當(dāng)你通過客戶端訪問 Ceph 集群時,Ceph 客戶端會使用本地的 keyring 文件虏束。默認使用下列路徑和名稱的 keyring 文件:

  • /etc/ceph/cluster.name.keyring
  • /etc/ceph/$cluster.keyring
  • /etc/ceph/keyring
  • /etc/ceph/keyring.bin
    你也可以在 ceph.conf 中另行指定 keyring 的路徑棉饶,但不推薦這樣做。

cluster 元變量是你的 Ceph 集群名稱镇匀,默認名稱是 ceph 照藻。name 元變量是用戶類型和 ID 。比如用戶是 client.admin汗侵,那就得到 ceph.client.admin.keyring 幸缕。

本小節(jié)介紹如何使用 ceph-authtool 工具來從客戶端管理 keyring 群发。

4.1 創(chuàng)建密鑰

創(chuàng)建一個空的 keyring 文件,使用 --create-keyring 或 -C 選項发乔。比如:

ceph-authtool --create-keyring /path/to/keyring

創(chuàng)建一個包含多個用戶的 keyring 文件熟妓,推薦使用 $cluster.keyring 作為文件名,并存放于 /etc/ceph 目錄下栏尚。

這樣就無需在本地的 ceph.conf 文件中指定 keyring 的路徑了起愈。

sudo ceph-authtool -C /etc/ceph/ceph.keyring

創(chuàng)建僅包含一個用戶的 keyring 文件時,建議使用集群名译仗、用戶類型和用戶名稱作為文件名抬虽,并存放于 /etc/ceph 目錄下。

4.2 給密鑰文件中增加用戶

為了獲取某個用戶的 keyring 文件纵菌,可以使用 ceph auth get 命令加 -o 選項阐污,

以 keyring 文件格式來保存輸出。比如:

sudo ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring

當(dāng)你想要向 keyring 文件中導(dǎo)入某個用戶時咱圆,可以使用 ceph-authtool 來指定目的和源 keyring 文件笛辟。比如:

sudo ceph-authtool /etc/ceph/ceph.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

4.3 創(chuàng)建用戶

可以在 Ceph 客戶端直接創(chuàng)建用戶、密鑰和能力序苏。然后再導(dǎo)入 Ceph 集群隘膘。比如:

sudo ceph-authtool -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.keyring

創(chuàng)建 keyring 文件、增加用戶也可以同時進行杠览。比如:

sudo ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key

上述步驟中弯菊,新用戶 client.ringo 僅存在于 keyring 文件中,還需要把新用戶加入到 Ceph 集群中踱阿。

sudo ceph auth add client.ringo -i /etc/ceph/ceph.keyring

4.4 修改用戶能力

修改記錄在 keyring 文件中的用戶能力時管钳,需要指定 keyring 、用戶和新的能力選項软舌。比如:

sudo ceph-authtool /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx'

更新 Ceph 存儲集群的用戶才漆,你必須更新 keyring 文件中對應(yīng)用戶入口的信息。

sudo ceph auth import -i /etc/ceph/ceph.keyring

五佛点、命令行使用方法

Ceph 支持通過下列方式使用用戶名稱和密鑰醇滥。

--id | --user

描述: Ceph 通過類型和 ID 來確定用戶,如 TYPE.ID 或 client.admin, client.user1 超营。使用 --id 或 --user 選項指定用戶的 ID鸳玩,比如,指定使用 client.foo 用戶:

ceph --id foo --keyring /path/to/keyring health
ceph --user foo --keyring /path/to/keyring health

--name | -n

描述: 使用 --name 或 -n 選項指定用戶的全名( TYPE.ID )演闭,比如:

ceph --name client.foo --keyring /path/to/keyring health
ceph -n client.foo --keyring /path/to/keyring health

--keyring

描述: 指定包含一個或多個用戶及其密鑰的 keyring 文件路徑不跟。 --secret 選項提供同樣的功能,但對 Ceph RADOS Gateway 不生效( --secret 選項有其他的作用)米碰。比如:

sudo rbd map --id foo --keyring /path/to/keyring mypool/myimage
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窝革,一起剝皮案震驚了整個濱河市购城,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虐译,老刑警劉巖瘪板,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漆诽,居然都是意外死亡侮攀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門拴泌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惊橱,你說我怎么就攤上這事蚪腐。” “怎么了税朴?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵回季,是天一觀的道長。 經(jīng)常有香客問我正林,道長泡一,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任觅廓,我火速辦了婚禮鼻忠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杈绸。我一直安慰自己帖蔓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布瞳脓。 她就那樣靜靜地躺著塑娇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪劫侧。 梳的紋絲不亂的頭發(fā)上埋酬,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音烧栋,去河邊找鬼写妥。 笑死,一個胖子當(dāng)著我的面吹牛审姓,可吹牛的內(nèi)容都是我干的耳标。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邑跪,長吁一口氣:“原來是場噩夢啊……” “哼次坡!你這毒婦竟也來了呼猪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砸琅,失蹤者是張志新(化名)和其女友劉穎宋距,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體症脂,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡谚赎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诱篷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壶唤。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棕所,靈堂內(nèi)的尸體忽然破棺而出闸盔,到底是詐尸還是另有隱情,我是刑警寧澤琳省,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布迎吵,位于F島的核電站,受9級特大地震影響针贬,放射性物質(zhì)發(fā)生泄漏击费。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一桦他、第九天 我趴在偏房一處隱蔽的房頂上張望蔫巩。 院中可真熱鬧,春花似錦快压、人聲如沸批幌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荧缘。三九已至,卻和暖如春拦宣,著一層夾襖步出監(jiān)牢的瞬間截粗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工鸵隧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绸罗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓豆瘫,卻偏偏與公主長得像珊蟀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容