简单版ceph-disk:
ceph-disk prepare /dev/sdb
ceph-disk activate --mark-init systemd --mount /dev/sdb
详细
生成uuid
uuidgen
4c0a02e2-e577-4778-b775-8b636926bb2d
创建OSD
ceph osd create 4c0a02e2-e577-4778-b775-8b636926bb2d
创建OSD目录
mkdir -p /var/lib/ceph/osd/ceph-0
改权限
chown ceph.ceph /var/lib/ceph/osd/ceph-0
格式化OSD磁盘
mkfs -t xfs /dev/vdb
挂载OSD磁盘
mount /dev/vdb /var/lib/ceph/osd/ceph-0/
初始化OSD
ceph-osd -i 0 --mkfs --mkkey --osd-uuid 4c0a02e2-e577-4778-b775-8b636926bb2d
如果报错: WARNING: max attr value size (1024) is smaller than osd_max_object_name_len (2048). Your backend filesystem appears to not support attrs large enough to handle the configured max rados name size. You may get unexpected ENAMETOOLONG errors on rados operations or buggy behavior
在ceph.conf加:
osd max object name len = 256
osd max object namespace len = 64
注册OSD keyring
ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
把此节点加入 CRUSH 图
ceph [--cluster {
cluster-name}] osd crush add-bucket {
hostname} host
ceph osd crush add-bucket node1 host
把此 Ceph 节点放入 default 根下
ceph osd crush move node1 root=default
把此 OSD 加入 CRUSH 图之后,它就能接收数据了。你也可以反编译 CRUSH 图、把此 OSD 加入设备列表、对应主机作为桶加入(如果它还不在 CRUSH 图里)、然后此设备作为主机的一个条目、分配权重、重新编译、注入集群
ceph [--cluster {
cluster-name}] osd crush add {
id-or-name} {
weight} [{
bucket-type}={
bucket-name} ...]
ceph osd crush add osd.0 1.0 host=node1
要让守护进程开机自启,必须创建一个空文件
sudo touch /var/lib/ceph/osd/ceph-0/sysvinit
启动osd
ceph-osd --id 0
参考
https://www.jianshu.com/p/ea126909457e
http://docs.ceph.org.cn/install/manual-deployment/