手动添加一个osd

手动添加一个osd


我们可以用磁盘vdc手动添加一个osd节点,使用磁盘vdf的分区vdf2作为日志盘

#[id]可以不需要,osd id会自动分配,这个id即是下面步骤要使用的osd.16
ceph osd create [id]
16

#创建osd数据目录
#mkdir /var/lib/ceph/osd/{cluster-name}-{osd-number}
mkdir /var/lib/ceph/osd/ceph-16
chown ceph:ceph -R /var/lib/ceph/osd/ceph-16

#生成一个uuid
uuidgen
a6ad83ec-c161-4667-877f-d24087f38b12
#创建分区vdc1
#sgdisk是GPT分区工具 1:0:0表示创建第1个分区,使用整个磁盘
sgdisk --new=1:0:0 --change-name=1:'ceph data' --partition-guid=1:a6ad83ec-c161-4667-877f-d24087f38b12 --typecode=1:a6ad83ec-c161-4667-877f-d24087f38b12 --mbrtogpt -- /dev/vdc
#格式化
mkfs.xfs /dev/vdc1 -f
#挂载
mount /dev/vdc1 /var/lib/ceph/osd/ceph-16

#初始化osd数据目录
ceph-osd -i 16 --mkfs --mkkey
#--mkfs 创建空的object目录,也会初始化journal,此初始化的journal为文件
#--mkkey 创建osd key

#更改journal日志盘路径
#可能需要清除磁盘分区(重新添加时需要,这里不需要)
#sgdisk --zap-all --clear --mbrtogpt /dev/vdf
#生成一个uuid
uuidgen
b3897364-8807-48eb-9905-e2c8400d0cd4
#新建分区
#1:0:+7G 第一个分区,7G大小
sgdisk --new=0:0:+7G --change-name=1:'ceph journal' --partition-guid=0:b3897364-8807-48eb-9905-e2c8400d0cd4 --typecode=0:b3897364-8807-48eb-9905-e2c8400d0cd4 --mbrtogpt -- /dev/vdf
mkfs.xfs /dev/vdf1
cd /var/lib/ceph/osd/ceph-16
#删除默认生成的journal
rm -f journal
ln -s /dev/disk/by-partuuid/b3897364-8807-48eb-9905-e2c8400d0cd4 journal
chown ceph:ceph -R /var/lib/ceph/osd/ceph-16
chown ceph:ceph /var/lib/ceph/osd/ceph-16/journal
#osd执行不成功手动更改journal权限
#(ceph-osd --mkjournal -i 16 && chown ceph:ceph /var/lib/ceph/osd/ceph-16/journal)

#注册osd key
ceph auth add osd.16 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-16/keyring

#创建client.bootstrap-osd key文件(本节点新建第一个osd时才需要)
ceph auth get-or-create client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
chmod 600 /var/lib/ceph/bootstrap-osd/ceph.keyring
chown ceph:ceph /var/lib/ceph/bootstrap-osd/ceph.keyring

#添加此新节点node4到crush map(本节点新建第一个osd时才需要)
ceph osd crush add-bucket node4 host
#移动到root:default,rack:rack01下面
ceph osd crush move node4 root=default rack=rack01

#添加此osd.16到CRUSH map,才能接收数据
ceph osd crush add osd.16 1.00 root=default rack=rack01 host=node4

#osd添加完成,目前处于down状态,启动osd.16之后,变为up且in
systemctl start ceph-osd@16

你可能感兴趣的:(手动添加一个osd)