啟動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