博客 / 詳情

返回

[Ceph 14.2.22] 使用Ceph原生命令部署單機集羣

1. 前言

os-recommend

上表中是 Ceph 官方文檔給出的 Ceph 14 版本的系統和內核推薦,其中在centos 7、ubuntu 14.04、ubuntu 16.04、ubuntu 18.04上都做了完整的測試。本文將介紹如何在ubuntu 18.04中使用 ceph 原生命令部署一個完整的 ceph 集羣,ceph 版本為14.2.22

2. 準備

2.1. 集羣規劃

component name            component type    node ip         node name
----------------------------------------------------------------------
[mon.a, mon.b, mon.c]     mon               192.168.3.10    node0
[mgr.a, mgr.b, mgr.c]     mgr               192.168.3.10    node0
[mds.a, mds.b, mds.c]     mds               192.168.3.10    node0
[rgw.a, rgw.b, rgw.c]     rgw               192.168.3.10    node0
[osd.0, osd.1, osd.2]     osd               192.168.3.10    node0

2.2. 設置 ceph apt 源

為了加快下載速度,此處使用阿里雲開源鏡像站:

echo "deb https://mirrors.aliyun.com/ceph/debian-nautilus/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ceph.list

2.3. 添加 release key

wget -q -O- 'https://mirrors.aliyun.com/ceph/keys/release.asc' | apt-key add -

2.4. 更新

apt update

2.5. 安裝 ceph

apt install ceph ceph-mon ceph-mgr ceph-osd ceph-mds radosgw

3. 集羣部署

3.1. 創建 client.admin key

在 Ceph 的 cephx 認證體系中,client.admin 是一個預定義的特殊用户,擁有對整個集羣的完全訪問權限,它可以執行幾乎所有管理操作。沒有 client.admin,你就沒有一個默認的“root”賬户來管理集羣。換句話説,client.admin 是部署和運維的操作入口。

幾乎所有 Ceph 命令行工具(如 ceph, rados, rbd, cephfs 等)在未指定用户時,默認嘗試加載 client.admin 的密鑰。ceph 14.2.22 中不會自動創建 client.admin key,必須手動創建。測試發現 client.admin key 必須在初始化 mon 之前就創建好,否則後續不好導入到 mon 的 auth 庫中,導致 ceph 所有命令都無法使用。

ceph-authtool  /etc/ceph/keyring --create-keyring --gen-key -n client.admin \
  --cap mon 'allow *' \
  --cap osd 'allow *' \
  --cap mds 'allow *' \
  --cap mgr 'allow *'

除了 client.admin key 外,ceph 14.2.22 中會自動創建以下 bootstrap 系列的 key:

client.bootstrap-mds
  key: AQD7BW9p5/zTBRAApwYsv603jzAqC2HVZRulgw==
  caps: [mon] allow profile bootstrap-mds
client.bootstrap-mgr
  key: AQD7BW9pyyPUBRAAD+InmsW8kdJD7RaO9P64Fg==
  caps: [mon] allow profile bootstrap-mgr
client.bootstrap-osd
  key: AQD7BW9prkfUBRAAOQDCSLcQJv7KyuE7Shzscw==
  caps: [mon] allow profile bootstrap-osd
client.bootstrap-rbd
  key: AQD7BW9pHm/UBRAACRWOnAmiy2l64lIWDGIwgA==
  caps: [mon] allow profile bootstrap-rbd
client.bootstrap-rbd-mirror
  key: AQD7BW9po5LUBRAAQSyL0ES1DRxW9X0QdknyDQ==
  caps: [mon] allow profile bootstrap-rbd-mirror
client.bootstrap-rgw
  key: AQD7BW9pE7XUBRAAmG9hElRA2jb1ChRZ/gVkNQ==
  caps: [mon] allow profile bootstrap-rgw

3.2. 創建 mon

在部署集羣時,必須先部署 mon,mon 是 Ceph 集羣的大腦,責維護集羣的全局狀態信息,負責分發其他組件的通信密鑰。所有其他組件在啓動和加入集羣時,必須與 mon 建立通信。只有 mon 就緒並形成 quorum 後,其他組件服務才能正確加入並協同工作。因此,在部署時必須優先創建 mon。

3.2.1. 創建 mon data

mkdir -p /var/lib/ceph/mon/mon.a
mkdir -p /var/lib/ceph/mon/mon.b
mkdir -p /var/lib/ceph/mon/mon.c

3.2.2. 創建 mon key

Ceph 通信機制中使用基於密鑰的身份驗證機制,mon 之間的通信也是如此。mon key 是整個集羣信任體系的起點。如果沒有預先生成 mon key,mon 將無法完成認證,也就無法形成初始 quorum,導致集羣無法啓動。雖然 Ceph 其他組件的密鑰通常是由 mon 動態分發,但是 mon 自己的密鑰不能從自己獲取,必須在啓動前靜態生成。

ceph-authtool /etc/ceph/keyring --gen-key -n mon.  --cap mon 'allow *'

因為我將所有的 key 全部寫入到同一個文件中:/etc/ceph/keyring,所以只在第一次創建 client.admin key 的時候,才使用--create-keyring參數,這個參數會新建一個 keyring 文件,不管這個文件之前有沒有。所以在創建 mon key 的時候,就不再使用--create-keyring參數。後續創建其他組件 key 的過程也同樣不在使用--create-keyring參數。

測試發現,在創建 mon key 的時候,mon name 必須是mon.,不能是具體的mon.a這種形式,也不能單獨為每個 mon 創建 key。

3.2.3. 創建 monmap

monmaptool --create --clobber  --fsid `uuidgen` /etc/ceph/monmap
monmaptool --add a 192.168.3.10:50000 /etc/ceph/monmap
monmaptool --add b 192.168.3.10:50001 /etc/ceph/monmap
monmaptool --add c 192.168.3.10:50002 /etc/ceph/monmap

monmap 創建好之後,可以使用monmaptool --print /etc/ceph/monmap命令來輸出 monmap 內容。內容如下:

monmaptool: monmap file /etc/ceph/monmap
epoch 0
fsid 334c5c34-8214-477f-95ba-00991d868126
last_changed 2026-01-17 06:57:21.606165
created 2026-01-17 06:57:21.606165
min_mon_release 0 (unknown)
0: v2:192.168.3.10:50000/0 mon.a
1: v2:192.168.3.10:50001/0 mon.b
2: v2:192.168.3.10:50002/0 mon.c

3.2.4. 配置 ceph.conf

新建/etc/ceph/ceph.conf,並追加一下內容:

[global]
  fsid = 334c5c34-8214-477f-95ba-00991d868126
  mon host = [v2:192.168.3.10:50000] [v2:192.168.3.10:50001] [v2:192.168.3.10:50002]
  auth cluster required = cephx
  auth service required = cephx
  auth client required = cephx
  auth allow insecure global id reclaim = false

[mon.a]
  mon data = /var/lib/ceph/mon/mon.a

[mon.b]
  mon data = /var/lib/ceph/mon/mon.b

[mon.c]
  mon data = /var/lib/ceph/mon/mon.c
  • 上述global配置中mon host的值必須和monmaptool --add中匹配。
  • 上述 mon data是 mon data 目錄,這個參數必須要添加,因為在後面初始化 mon data 的時候,如果不指定 mon data 路徑,默認會使用/var/lib/ceph/mon/<cluster>-<id>

3.2.5. 初始化 mon data

ceph-mon --mkfs -i a --monmap=/etc/ceph/monmap --keyring=/etc/ceph/keyring
ceph-mon --mkfs -i b --monmap=/etc/ceph/monmap --keyring=/etc/ceph/keyring
ceph-mon --mkfs -i c --monmap=/etc/ceph/monmap --keyring=/etc/ceph/keyring

3.2.6. 修改 mon data 歸屬

chown -R ceph:ceph /var/lib/ceph/mon

3.2.7. 啓動 mon

systemctl start ceph-mon@a.service
systemctl enable ceph-mon@a.service

systemctl start ceph-mon@b.service
systemctl enable ceph-mon@b.service

systemctl start ceph-mon@c.service
systemctl enable ceph-mon@c.service

至此,如果 mon 正常啓動,ceph -s命令可以正常執行並有結果輸出。

ceph -s
---------
  cluster:
    id:     334c5c34-8214-477f-95ba-00991d868126
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum a,b,c (age 2s)
    mgr: no daemons active
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

如果ceph -s命令沒有輸出結果或者卡住了,一定是部署失敗了。可以在 ceph.conf 文件中global配置項添加debug ms = 1打開客户端調試功能查看問題。

3.3. 創建 mgr

3.3.1. 創建 mgr data

mkdir -p /var/lib/ceph/mgr/mgr.a
mkdir -p /var/lib/ceph/mgr/mgr.b
mkdir -p /var/lib/ceph/mgr/mgr.c

3.3.2. 配置 ceph.conf

[mgr.a]
  mgr data =/var/lib/ceph/mgr/mgr.a

[mgr.b]
  mgr data = /var/lib/ceph/mgr/mgr.b

[mgr.c]
  mgr data = /var/lib/ceph/mgr/mgr.c

3.3.3. 創建 mgr key

ceph-authtool /etc/ceph/keyring --gen-key -n mgr.a \
  --cap mon 'allow profile mgr' \
  --cap mds 'allow *' \
  --cap osd 'allow *'
ceph-authtool /etc/ceph/keyring --gen-key -n mgr.b \
  --cap mon 'allow profile mgr' \
  --cap mds 'allow *' \
  --cap osd 'allow *'
ceph-authtool /etc/ceph/keyring --gen-key -n mgr.c \
  --cap mon 'allow profile mgr' \
  --cap mds 'allow *' \
  --cap osd 'allow *'

3.3.4. 導入 mgr key 到 auth 庫中

ceph auth add mgr.a -i /etc/ceph/keyring
ceph auth add mgr.b -i /etc/ceph/keyring
ceph auth add mgr.c -i /etc/ceph/keyring

導入 key 到 auth 庫中的目的是為了執行ceph auth ls命令能夠直接查看到。測試發現,在使用ceph-authtool工具創建 key 的時候,只有 mon 和 client 這兩種類型的 key 能夠自動添加到 ceph rados 對象中,其他類型的 key 需要手動導入。

3.3.5. 添加 mgr key 到 mgr data

ceph auth export mgr.a > /var/lib/ceph/mgr/mgr.a/keyring
ceph auth export mgr.b > /var/lib/ceph/mgr/mgr.b/keyring
ceph auth export mgr.c > /var/lib/ceph/mgr/mgr.c/keyring

3.3.6. 修改 mgr data 目錄的歸屬

chown -R ceph:ceph /var/lib/ceph/mgr

3.3.7. 啓動 mgr

systemctl start ceph-mgr@a.service
systemctl enable ceph-mgr@a.service

systemctl start ceph-mgr@b.service
systemctl enable ceph-mgr@b.service

systemctl start ceph-mgr@c.service
systemctl enable ceph-mgr@c.service

至此,mgr 服務已經完成部署,如果一切正常,使用 ceph -s 命令查看集羣狀態,可以看到 mgr 服務的信息。

ceph -s
---------
  cluster:
    id:     334c5c34-8214-477f-95ba-00991d868126
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 3 daemons, quorum a,b,c (age 3m)
    mgr: a(active, since 23s), standbys: c, b
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

3.4. 創建 osd

Ceph 支持 2 種存儲引擎:filestorebluestore。filestore 是一個過時的技術,在後續版本中逐漸被 Ceph 棄用,filestore 已經沒有任何研究價值,因此本文默認以 bluestore 為準。

3.4.1. 創建 osd data

mkdir -p /var/lib/ceph/osd/osd.0
mkdir -p /var/lib/ceph/osd/osd.1
mkdir -p /var/lib/ceph/osd/osd.2

3.4.2. 掛載 osd data 為 tmpfs

mount -t tmpfs tmpfs /var/lib/ceph/osd/osd.0
mount -t tmpfs tmpfs /var/lib/ceph/osd/osd.1
mount -t tmpfs tmpfs /var/lib/ceph/osd/osd.2

3.4.3. 修改 osd block dev 歸屬

chown -R ceph:ceph /dev/sdb
chown -R ceph:ceph /dev/sdc
chown -R ceph:ceph /dev/sdd

3.4.4. 創建 osd block

ln -snf /dev/sdb /var/lib/ceph/osd/osd.0/block
ln -snf /dev/sdc /var/lib/ceph/osd/osd.1/block
ln -snf /dev/sdd /var/lib/ceph/osd/osd.2/block

3.4.5. 配置 osd

[osd.0]
  osd objectstore = bluestore
  osd data = /var/lib/ceph/osd/osd.0
  crush_location = root=default host=virtual-node0

[osd.1]
  osd objectstore = bluestore
  osd data = /var/lib/ceph/osd/osd.1
  crush_location = root=default host=virtual-node1

[osd.2]
  osd objectstore = bluestore
  osd data = /var/lib/ceph/osd/osd.2
  crush_location = root=default host=virtual-node2

crush_location是更改 osd 的 crush 位置,ceph 默認最小容災域級別是host,因為當前是在一台物理機上部署的,為了後續成功創建副本 pool,此時有必要更改。當然也可以在創建 pool 之前新建一個 crush rule 來自定義 crush 規則。

3.4.6. 創建 osd key

ceph-authtool /etc/ceph/keyring --gen-key -n osd.0 \
  --cap mon 'allow profile osd' \
  --cap mgr 'allow profile osd' \
  --cap osd 'allow *'
ceph-authtool /etc/ceph/keyring --gen-key -n osd.1 \
  --cap mon 'allow profile osd' \
  --cap mgr 'allow profile osd' \
  --cap osd 'allow *'
ceph-authtool /etc/ceph/keyring --gen-key -n osd.2 \
  --cap mon 'allow profile osd' \
  --cap mgr 'allow profile osd' \
  --cap osd 'allow *'

3.4.7. 導入 osd key 到 auth 庫中

ceph auth add osd.0 -i /etc/ceph/keyring
ceph auth add osd.1 -i /etc/ceph/keyring
ceph auth add osd.2 -i /etc/ceph/keyring

3.4.8. 添加 osd key 到 osd data

ceph auth export osd.0 > /var/lib/ceph/osd/osd.0/keyring
ceph auth export osd.1 > /var/lib/ceph/osd/osd.1/keyring
ceph auth export osd.2 > /var/lib/ceph/osd/osd.2/keyring

3.4.9. 添加 osd key json 到 osd data

echo "{\"cephx_secret\": \"`ceph auth get-key osd.0`\"}" > /var/lib/ceph/osd/osd.0/keyring.json
echo "{\"cephx_secret\": \"`ceph auth get-key osd.1`\"}" > /var/lib/ceph/osd/osd.1/keyring.json
echo "{\"cephx_secret\": \"`ceph auth get-key osd.2`\"}" > /var/lib/ceph/osd/osd.2/keyring.json

3.4.10. 創建 osd 並初始化 osd data

uuid=`uuidgen`
ceph osd new $uuid 0 -i  /var/lib/ceph/osd/osd.0/keyring.json
ceph-osd -i 0 --mkfs --osd-uuid $uuid --keyring /var/lib/ceph/osd/osd.0/keyring

uuid=`uuidgen`
ceph osd new $uuid 1 -i  /var/lib/ceph/osd/osd.1/keyring.json
ceph-osd -i 1 --mkfs --osd-uuid $uuid --keyring /var/lib/ceph/osd/osd.1/keyring

uuid=`uuidgen`
ceph osd new $uuid 2 -i  /var/lib/ceph/osd/osd.2/keyring.json
ceph-osd -i 2 --mkfs --osd-uuid $uuid --keyring /var/lib/ceph/osd/osd.2/keyring

3.4.11. 修改 osd data 歸屬

chown -R ceph:ceph /var/lib/ceph/osd

3.4.12. 啓動服務

systemctl start ceph-osd@0.service
systemctl enable ceph-osd@0.service

systemctl start ceph-osd@1.service
systemctl enable ceph-osd@1.service

systemctl start ceph-osd@2.service
systemctl enable ceph-osd@2.service

上述使用systemctl start ceph-osd@0.service方式啓動 osd 服務時會失敗,原因是/usr/lib/systemd/system/ceph-osd@.service文件會先執行/usr/lib/ceph/ceph-osd-prestart.sh腳本,在這個腳本中需要將data="/var/lib/ceph/osd/${cluster:-ceph}-$id"修改成實際 osd 目錄data="/var/lib/ceph/osd/osd.$id"

以上創建 OSD 的所有過程都可以使用 ceph-volume create 這條命令一步完成,這條命令實際上也是一步步執行上面過程,之所以不使用 ceph-volume 工具,主要原因是 osd data 目錄沒法自定義。ceph-volume 已經將 osd data 目錄寫死成 /var/lib/ceph/osd/${cluster:-ceph}-$id

到此,一個簡單的 Ceph 集羣已經部署完成,使用ceph -s查看集羣狀態如下:

ceph -s
---------
  cluster:
    id:     334c5c34-8214-477f-95ba-00991d868126
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum a,b,c (age 30m)
    mgr: a(active, since 24m), standbys: b, c
    osd: 3 osds: 3 up (since 9m), 3 in (since 9m)

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 12 GiB / 15 GiB avail
    pgs:

4. 文件存儲部署

4.1. 創建 mds

4.1.1. 創建 mds data

mkdir -p /var/lib/ceph/mds/mds.a
mkdir -p /var/lib/ceph/mds/mds.b
mkdir -p /var/lib/ceph/mds/mds.c

4.1.2. 配置 ceph.conf

[mds.a]
  mds data =/var/lib/ceph/mds/mds.a

[mds.b]
  mds data =/var/lib/ceph/mds/mds.b

[mds.c]
  mds data =/var/lib/ceph/mds/mds.c

4.1.3. 創建 mds key

ceph-authtool  /etc/ceph/keyring --gen-key -n mds.a \
  --cap mon 'allow profile mds' \
  --cap osd 'allow *' \
  --cap mds 'allow' \
  --cap mgr 'allow profile mds'
ceph-authtool  /etc/ceph/keyring --gen-key -n mds.b \
  --cap mon 'allow profile mds' \
  --cap osd 'allow *' \
  --cap mds 'allow' \
  --cap mgr 'allow profile mds'
ceph-authtool  /etc/ceph/keyring --gen-key -n mds.c \
  --cap mon 'allow profile mds' \
  --cap osd 'allow *' \
  --cap mds 'allow' \
  --cap mgr 'allow profile mds'

4.1.4. 導入 mds key 到 auth 庫中

ceph auth add mds.a -i /etc/ceph/keyring
ceph auth add mds.b -i /etc/ceph/keyring
ceph auth add mds.c -i /etc/ceph/keyring

4.1.5. 添加 mds key 到 mds data

ceph auth export mds.a > /var/lib/ceph/mds/mds.a/keyring
ceph auth export mds.b > /var/lib/ceph/mds/mds.b/keyring
ceph auth export mds.c > /var/lib/ceph/mds/mds.c/keyring

4.1.6. 修改 mds data 歸屬

chown -R ceph:ceph /var/lib/ceph/mds

4.1.7. 啓動 mds

systemctl start ceph-mds@a.service
systemctl enable ceph-mds@a.service

systemctl start ceph-mds@b.service
systemctl enable ceph-mds@b.service

systemctl start ceph-mds@c.service
systemctl enable ceph-mds@c.service

4.2. 創建數據池

ceph osd pool create cephfs_data 1 1

其中cephfs_data是數據池的名字,1 1分別表示 pg 和 pgp 的數量,因為是測試,所以都設置為 1。

4.3. 創建元數據池

ceph osd pool create cephfs_metadata 1 1

其中cephfs_metadata是元數據池的名字,1 1分別表示 pg 和 pgp 的數量,因為是測試,所以都設置為 1。

4.4. 創建文件系統

ceph fs new cephfs cephfs_metadata cephfs_data

其中cephfs 為文件系統的名字,該命令將會創建一個名為 cephfs 的文件系統,文件系統的元數據將存在 cephfs_metadata 元數據池中,文件系統的數據將存在 cephfs_data 數據池中。

再次查看集羣狀態:

ceph -s
---------
  cluster:
    id:     334c5c34-8214-477f-95ba-00991d868126
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum a,b,c (age 105m)
    mgr: a(active, since 99m), standbys: b, c
    mds: cephfs:1 {0=a=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 44m), 3 in (since 84m)

  data:
    pools:   2 pools, 2 pgs
    objects: 22 objects, 2.2 KiB
    usage:   3.0 GiB used, 12 GiB / 15 GiB avail
    pgs:     2 active+clean

5. 對象存儲部署

5.1. 創建 rgw

5.1.1. 創建 rgw data

mkdir -p /var/lib/ceph/rgw/rgw.a
mkdir -p /var/lib/ceph/rgw/rgw.b
mkdir -p /var/lib/ceph/rgw/rgw.c

5.1.2. 配置 rgw

[client.rgw.a]
  rgw frontends = "civetweb port=192.168.3.10:50003"
  rgw data =/var/lib/ceph/rgw/rgw.a

[client.rgw.b]
  rgw frontends = "civetweb port=192.168.3.10:50004"
  rgw data =/var/lib/ceph/rgw/rgw.b

[client.rgw.c]
  rgw frontends = "civetweb port=192.168.3.10:50005"
  rgw data =/var/lib/ceph/rgw/rgw.c

上述port=192.168.3.10:50003表示只啓動 tcp4 端口監聽。如果設置成port=50003,表示同時啓動 tcp4 和 tcp6 端口監聽。

5.1.3. 創建 rgw key

ceph-authtool  /etc/ceph/keyring --gen-key -n client.rgw.a \
  --cap mon 'allow rw' \
  --cap osd 'allow rwx' \
  --cap mgr 'allow rw'
ceph-authtool  /etc/ceph/keyring --gen-key -n client.rgw.b \
  --cap mon 'allow rw' \
  --cap osd 'allow rwx' \
  --cap mgr 'allow rw'
ceph-authtool  /etc/ceph/keyring --gen-key -n client.rgw.c \
  --cap mon 'allow rw' \
  --cap osd 'allow rwx' \
  --cap mgr 'allow rw'

測試發現,rgw 的 name 必須是以client.為前綴。因為 ceph 中沒有rgw這個類別,類別只有auth, mon, osd, mds, mgr, client這幾種。

5.1.4. 導入 rgw key 到 auth 庫中

ceph auth add client.rgw.a -i /etc/ceph/keyring
ceph auth add client.rgw.b -i /etc/ceph/keyring
ceph auth add client.rgw.c -i /etc/ceph/keyring

5.1.5. 添加 rgw key 到 rgw data

ceph auth export client.rgw.a > /var/lib/ceph/rgw/rgw.a/keyring
ceph auth export client.rgw.b > /var/lib/ceph/rgw/rgw.b/keyring
ceph auth export client.rgw.c > /var/lib/ceph/rgw/rgw.c/keyring

5.1.6. 修改 rgw data 歸屬

chown -R ceph:ceph /var/lib/ceph/rgw

5.1.7. 啓動 rgw

systemctl start ceph-radosgw@rgw.a.service
systemctl enable ceph-radosgw@rgw.a.service

systemctl start ceph-radosgw@rgw.b.service
systemctl enable ceph-radosgw@rgw.b.service

systemctl start ceph-radosgw@rgw.c.service
systemctl enable ceph-radosgw@rgw.c.service

默認情況下,啓動 rgw 服務後,會自動創建與 rgw 服務相關的 pool。再次查看集羣狀態:

ceph -s
---------
  cluster:
    id:     334c5c34-8214-477f-95ba-00991d868126
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum a,b,c (age 106m)
    mgr: a(active, since 101m), standbys: b, c
    mds: cephfs:1 {0=a=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 46m), 3 in (since 85m)
    rgw: 3 daemons active (a, b, c)

  task status:

  data:
    pools:   6 pools, 130 pgs
    objects: 135 objects, 3.4 KiB
    usage:   3.0 GiB used, 12 GiB / 15 GiB avail
    pgs:     130 active+clean

  io:
    client:   21 KiB/s rd, 0 B/s wr, 27 op/s rd, 17 op/s wr

6. 塊存儲部署

6.1. 創建數據池

ceph osd pool create rbd_pool 1 1

其中rbd_pool是數據池的名字,1 1分別是 pg 和 pgp 的數量,因為是測試集羣,所以都設置為 1。

6.2. 創建 rbd image

rbd create --pool rbd_pool --image image1 --size 1024 --image-format 2 --image-feature layering

其中rbd_pool是數據池的名字,image1是鏡像的名字,1024是鏡像的大小,其他參數不變即可。上述命令將創建一個名為image1的 rbd 鏡像。後續通過鏡像映射操作就可以像操作磁盤一樣來讀寫 rbd 塊設備。

7. 參考資料

  • https://docs.ceph.com/en/nautilus/start/os-recommendations
  • https://docs.ceph.com/en/nautilus/install
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.