Ceph——手動部署(單節點)


啟動Monitor

1. 創建配置文件目錄

mkdir /etc/ceph		//ceph默認目錄

2. 創建配置文件

sudo vim /etc/ceph/ceph.conf		//這是ceph默認目錄,也可根據根據集群名稱更改

3. 運行命令生成唯一ID

uuidgen		//d02db92c-0111-4b9b-a1a5-fdc9a7a3282a

4. 將唯一ID寫入配置文件

fsid = {UUID}

例如:

fsid = d02db92c-0111-4b9b-a1a5-fdc9a7a3282a

5. 將初始監視器寫入配置文件

mon initial members = {hostname}[,{hostname}]

例如:

mon initial members = ceph-admin

6. 把初始監視器的 IP 地址寫入配置文件

mon host = {ip-address}[,{ip-address}]

例如:

mon host = 192.168.0.1

7. 創建密鑰環、並生成監視器密鑰。

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

8. 生成管理員密鑰環,生成 client.admin 用戶並加入密鑰環

ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'

9. 把 client.admin 密鑰加入 ceph.mon.keyring

ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

10. 用規划好的主機名、對應 IP 地址、和 FSID 生成一個監視器圖,並保存為 /tmp/monmap

monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap

例如:

monmaptool --create --add ceph-admin 192.168.0.1 --fsid d02db92c-0111-4b9b-a1a5-fdc9a7a3282a /tmp/monmap

11. 在監視器主機上創建數據目錄

sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}

例如:

sudo mkdir -p /var/lib/ceph/mon/ceph-ceph-admin

12. 用監視器圖和密鑰環組裝守護進程所需的初始數據

ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

例如:

ceph-mon --mkfs -i ceph-admin --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

13. 經過上面配置,配置文件大致如下:

[global]
fsid = d02db92c-0111-4b9b-a1a5-fdc9a7a3282a
mon initial members = ceph-admin
mon host = 192.168.0.1
public network = 192.168.0.0/24
auth cluster required = none
auth service required = none
auth client required = none
osd journal size = 1024
filestore xattr use omap = true
osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 128
osd pool default pgp num = 128
osd crush chooseleaf type = 0

14. 建一個空文件,表示監視器已創建、可以啟動

sudo touch /var/lib/ceph/mon/ceph-ceph-admin/done

15. 啟動監視器

ceph-mon --id=ceph-admin

16. 驗證下 Ceph 是否正常啟動

ceph osd lspools
可能出現的問題:
ImportError: No module named rados

缺少rados的python模塊,如下安裝:

yum install python-rados
ImportError: No module named ceph_argparse

將源碼編譯路徑ceph-fuse/src/pybind下的py文件移動到運行目錄

輸入如下:
0 rbd,		//10.2.11版本默認創建了一個pool

17. 確認集群在運行

ceph –s 或者 ceph status

添加OSD

18. 給 OSD 分配 UUID

uuidgen		//5d8e9843-9eba-484b-8cec-54e502f5688e

19. 使用上面生成的UUID創建 OSD

ceph osd create {uuid}

20. 創建默認目錄

sudo mkdir /var/lib/ceph/osd/{cluster-name}-{osd-number}

例如:

sudo mkdir -p /var/lib/ceph/osd/ceph-0

21. 初始化 OSD 數據目錄

sudo ceph-osd -i {osd-num} --mkfs --mkkey --osd-uuid [{uuid}]

例如:

sudo ceph-osd -i 0 --mkfs --mkkey --osd-uuid 5d8e9843-9eba-484b-8cec-54e502f5688e

22. 注冊OSD 的密鑰

sudo ceph auth add osd.{osd-num} osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/{cluster-name}-{osd-num}/keyring

例如:

sudo ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring

23. 把此節點加入 CRUSH map

ceph [--cluster {cluster-name}] osd crush add-bucket {hostname} host

例如:

ceph osd crush add-bucket ceph-admin host

24. 把此 Ceph 節點放入 default 根下

ceph osd crush move ceph-admin root=default

25. 把osd添加到CRUSH map開始接收數據

ceph [--cluster {cluster-name}] osd crush add {id-or-name} {weight} [{bucket-type}={bucket-name} ...]

例如:

ceph osd crush add osd.0 1.0 host=ceph-admin

26. 啟動osd

ceph-osd --id=0

27. 查看Ceph集群

ceph osd tree
日志存放在/var/log/ceph下面,系統中如果沒有此目錄需手動創建

MDS

28. 創建mds工作目錄

mkdir -p /var/lib/ceph/mds/ceph-admin

29. 注冊mds的密鑰

ceph auth get-or-create mds.ceph-admin mds 'allow *' osd 'allow rwx' mon 'allow profile mds' -o /var/lib/ceph/mds/ceph-admin/keyring

30. 啟動mds進程

ceph-mds --cluster ceph --id ceph-admin --setuser root --setgroup root

存儲池

31. 創建存儲池

ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
        [crush-ruleset-name] [expected-num-objects]
ceph osd pool create {pool-name} {pg-num}  {pgp-num}   erasure \
        [erasure-code-profile] [crush-ruleset-name] [expected_num_objects]

例如:

ceph osd pool create fsdata 128 128
ceph osd pool create fsmetadata 128 128

注意可能會報如下錯誤:

Error EINVAL: crushtool check failed with -22: crushtool: exec failed: (2) No such file or directory

解決方法:將crushtool模塊移動到/usr/bin/目錄下

32. 創建ceph文件系統

ceph fs new <fs_name> <metadata> <data>

例如:

ceph fs new cephfs fsmetadata fsdata

ok,到這里你就可以掛載文件系統了。。。


免責聲明!

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



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