Ceph學習筆記

0.準備條件:node

三個ceph節點(node1,node2,node3),一個客戶端節點(client)分別安裝NTP和ceph-deploy。docker

node1能夠免密ssh到node2,node3.每一個ceph節點上掛3個空白磁盤。bash

1.啓動三個ceph節點服務器

apt install ceph-deploy -y

2.在node1上執行,建立一個ceph集羣網絡

mkdir /etc/ceph ; cd /etc/ceph
ceph-deploy new node1

3.使用ceph-deploy在全部節點上安裝cephssh

ceph-deploy install node1 node2 node3
#保證node1節點能夠ssh免密登陸node1,node2,node3

4.在ceph-node1上建立一個Ceph monitor日誌

ceph-depoly mon create-initial

5.建立Ceph OSD,sdb,sdc,sdd爲節點上掛的空白磁盤:code

#刪除磁盤現有分區表和磁盤內容
ceph-deploy disk zap node1:sdb node1:sdc node1:sdd
#準備磁盤,先用XFS文件系統格式化磁盤,而後激活第一第二分區分別做爲數據分區和日誌分區
ceph-deploy osd create node1:sdb node1:sdc node1:sdd
#查看osd個數
ceph -s

6.在node1上將公共網絡地址添加到/ect/ceph/ceph.conform

public network = 192.168.xx.xx/24it

7.在node2和node3上建立Monitor:

ceph-deploy mon create node2
ceph-deploy mon create node3

8.在node2和node3上重複第五步

9.調整pg_num和pgp_num

ceph osd pool set rbd pg_num 256
ceph osd pool set rbd pgp_num 256

10.遇到

$ rbd map docker_test --name client.admin

rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.

緣由:
rbd鏡像的一些特性,OS kernel並不支持,因此映射失敗。咱們查看下該鏡像支持了哪些特性。

$ rbd info docker_test

rbd image 'docker_test':
    size 4096 MB in 1024 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.43702ae8944a
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags:

能夠看到特性feature一欄,因爲我OS的kernel只支持layering,其餘都不支持,因此須要把部分不支持的特性disable掉。

方法一:
直接diable這個rbd鏡像的不支持的特性:

$ rbd feature disable docker_test exclusive-lock object-map fast-diff deep-flatten

方法二:
建立rbd鏡像時就指明須要的特性,如:

$ rbd create --size 4096 docker_test --image-feature layering

方法三:
若是還想一勞永逸,那麼就在執行建立rbd鏡像命令的服務器中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增長

rbd_default_features = 1
相關文章
相關標籤/搜索