在Ceph存储群集中创建一个池

时间:2020-02-23 14:37:57  来源:igfitidea点击:

Ceph存储是一种自由和开源的软件定义的,分布式存储解决方案,旨在对现代数据分析,人工智能(AI),机器学习(ML),数据分析和新兴任务关键工作负载进行大规模可扩展。
在本文中,我们将讨论如何使用自定义的放置组(PGS)创建Ceph池。

在Ceph术语中,放置组(PGS)是逻辑对象池的碎片或者片段,其将物体作为组放入OSD。
当Ceph在OSD中存储数据时,放置组减少每个对象元数据的数量。

更大数量的放置组(例如,每个OSD)导致更好的平衡。
Ceph客户端将计算对象应该进入哪个展示位置组。
它通过散列对象ID来实现这一点,并根据所定义的池中的PGS的数量和池的ID应用操作。
有关详细信息,请参阅将PGS映射到OSDS。

计算放置组总数。

(OSDs * 100)
Total PGs =  -----------
              pool size

例如,假设群集有9个OSD,默认池大小为3.因此PGS将是

9 * 100
Total PGs =  ------------ = 300
              3

创建一个游泳池

要创建池的语法是:

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

其中:{pool-name} - 池的名称。
它必须是唯一的。
{pg-num} - 池的放置组总数。

我将创建一个名为K8S-UAT的新池,具有100的位置组。

$sudo ceph osd pool create k8s-uat 100
pool 'k8s-uat' created

现在列出可用池以确认它已创建。

$sudo ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
5 k8s-uat

将池与应用程序关联

游泳池需要在使用前与应用程序相关联。
将与RGW自动创建的Cephfs或者池一起使用的池自动关联。

--- Ceph Filesystem --
$sudo ceph osd pool application enable <pool-name> cephfs
--- Ceph Block Device --
$sudo ceph osd pool application enable <pool-name> rbd
--- Ceph Object Gateway --
 $sudo ceph osd pool application enable <pool-name> rgw

例子:

$sudo ceph osd pool application enable k8s-uat-rbd rbd
enabled application 'rbd' on pool 'k8s-uat-rbd'

应使用该池用于RBD使用的池 rbd工具:

sudo rbd pool init k8s-uat-rbd

要禁用应用程序,请使用:

ceph osd pool application disable <poolname> <app> {--yes-i-really-mean-it}

要获取特定池或者全部的I/O信息,请执行:

$sudo ceph osd pool stats [{pool-name}]

从ceph仪表板上操作

登录Ceph Management Dashboard并创建一个新池 - 池>创建

删除池

要删除池,请执行:

sudo ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]