启动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