本文介绍如何安装ceph 客户端,部署ceph 块设备(block device)


环境准备:

ip
说明
10.0.31.161
admin,mon,mgr,deploy,osd1
10.0.31.162osd2
10.0.31.163osd3
10.0.31.87
ceph-client


在管理节点上,安装ceph客户端:

最好配置好免密ssh,不然需要多次输入密码

ceph-deploy install ceph-client-ip or hostname

ceph-deploy install 10.0.31.87

ceph-块设备部署_java


在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client:

ceph-deploy admin ceph-client-ip

ceph-deploy admin 10.0.31.87


ceph-块设备部署_java_02


在客户端执行以下命令,确保对 ceph.client.admin.keyring 有正确的操作权限:

sudo chmod +r /etc/ceph/ceph.client.admin.keyring


以下均在客户端执行:

创建存储池:

ceph osd pool create {pool_name} {pg-num}

ceph osd pool create rbd_pool 128


确定pg_num取值是强制性的,因为不能自动计算,下面是几个常用的值

少于5个OSD时,pg_num设置为128

OSD数量在5到10个时,pg_num设置为512

OSD数量在10到50个时,pg_num设置为4096

OSD数量大于50时,理解权衡方法、以及如何自己计算pg_num取值

创建成功后查看:

ceph osd pool ls


创建块设备映像:

在rbd_pool存储池中,创建10G的块设备

rbd create myrbd --pool rbd_pool --size 10240


创建成功后查看:

rbd ls rbd_pool


块设备映射:

sudo rbd map myrbd --pool rbd_pool


因为rbd镜像的一些特性,OS kernel并不支持,所以映射报错:

ceph-块设备部署_java_03

解决方案就是将不支持的特性禁掉:

rbd feature disable rbd_pool/myrbd exclusive-lock object-map fast-diff deep-flatten


再次映射:

ceph-块设备部署_java_04

成功映射/dev/rbd0


格式化:

mkfs.ext4 /dev/rbd0


挂载分区:


mkdir -p /opt/testrbdmount /dev/rbd0 /opt/testrbd


ceph-块设备部署_java_05


数据写入测试:


dd if=/dev/rbd0 of=/opt/testrbd/rbdfile count=100 bs=100M


块设备扩缩容:

扩容:

rbd resize --size 20480 myrbd (to increase)


在线扩容至文件系统:

sudo resize2fs /dev/rbd0df -h


ceph-块设备部署_java_06


缩容:

rbd resize --size 15360 myrbd --pool rbd_pool --allow-shrink (to decrease)

(缩容不能在线缩容文件系统,需要先umount)


删除块设备:

已经映射的块设备需要先取消映射:

rbd unmap /dev/rbd0


删除块设备;

rbd rm rbd_pool/myrbd


查看块设备;

rbd ls rbd_pool