本文介绍如何安装ceph 客户端,部署ceph 块设备(block device)
环境准备:
ip | 说明 |
10.0.31.161 | admin,mon,mgr,deploy,osd1 |
10.0.31.162 | osd2 |
10.0.31.163 | osd3 |
10.0.31.87 | ceph-client |
在管理节点上,安装ceph客户端:
最好配置好免密ssh,不然需要多次输入密码
ceph-deploy install ceph-client-ip or hostname
ceph-deploy install 10.0.31.87
在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client:
ceph-deploy admin ceph-client-ip
ceph-deploy admin 10.0.31.87
在客户端执行以下命令,确保对 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并不支持,所以映射报错:
解决方案就是将不支持的特性禁掉:
rbd feature disable rbd_pool/myrbd exclusive-lock object-map fast-diff deep-flatten
再次映射:
成功映射/dev/rbd0
格式化:
mkfs.ext4 /dev/rbd0
挂载分区:
mkdir -p /opt/testrbdmount /dev/rbd0 /opt/testrbd
数据写入测试:
dd if=/dev/rbd0 of=/opt/testrbd/rbdfile count=100 bs=100M
块设备扩缩容:
扩容:
rbd resize --size 20480 myrbd (to increase)
在线扩容至文件系统:
sudo resize2fs /dev/rbd0df -h
缩容:
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