当前位置: 首页 > 科技观察

CephPool操作总结

时间:2023-03-15 15:52:20 科技观察

CephPool操作总结一个ceph集群可以有多个pool,每个pool是一个逻辑隔离单元,不同的pool可以有完全不同的数据处理方式,比如ReplicaSize(副本数),PlacementGroups,CRUSHRules,Snapshots,Owners等打印pool列表cephosdlspools创建pool通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:如果OSD少于5个,设置pg_num为128。5~10OSDs,设置pg_num为512。10~50个OSD,设置pg_num为4096。超过50个OSD,可以参考pgcalc计算。本文测试环境只有2个OSD,所以设置pg_num为128osdpooldefaultpgnum=128osdpooldefaultpgpnum=128createpool语法:cephosdpoolcreate{pool-name}{pg-num}[{pgp-num}][replicated]\[crush-ruleset-name][expected-num-objects]cephosdpoolcreate{pool-name}{pg-num}{pgp-num}erasure\[erasure-code-profile][crush-ruleset-name][expected_num_objects]创建测试-pool,pg_numis128:cephosdpoolcreatetest-pool128设置池配额以支持对象数配额和容量配额。将允许的***对象数设置为100:cephosdpoolset-quotatest-poolmax_objects100将允许的容量限制设置为10GB:cephosdpoolset-quotatest-poolmax_bytes$((10*1024*1024*1024))要取消配额限制,您只需需要将对应的值设置为0即可。renamepoolcephosdpoolrenametest-pooltest-pool-newdeletepool删除一个pool会同时清空pool中的所有数据,所以非常危险。(类似于rm-rf/)。所以ceph在删除pool的时候要求poolname必须输入两次,同时加上--yes-i-really-really-mean-it选项。cephosdpooldeletetest-pooltest-pool--yes-i-really-really-mean-it查看pool状态信息radosdfcreatesnapshotsceph支持为整个pool创建快照(不同于OpenstackCinder一致性组?),作用于这个pool中的所有对象.但请注意,ceph有两种池模式:PoolSnapshot,我们将很快使用的模式。此模式也是创建新池时的默认模式。SelfManagedSnapsoht,用户管理的快照,这个用户指的是librbd,即如果在池中创建了一个rbd实例,它会自动转换成这种模式。这两种模式是互斥的,只能使用其中一种。因此,如果池中已经创建了一个rbd对象(即使当前删除了所有图像实例),也无法再对池进行快照。相反,如果池被快照,则无法创建rbd映像。cephosdpoolmksnaptest-pooltest-pool-snapshotdeletesnapshotcephosdpoolrmsnaptest-pooltest-pool-snapshotsetpoolMetadata通过以下语法设置:cephosdpoolset{pool-name}{key}{value}比如设置pool的冗余副本数to3:cephosdpoolsettest-poolsize3其他配置项参考文档。pool的配置值可以通过get操作获取,比如获取当前pg_num:cephosdpoolgettest-poolpg_num获取当前副本数:cephosdpoolgettest-poolsize,多看这个作者的好文章