Ceph Pool操作总结

开发 开发工具
Ceph Pool操作总结一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。

[[187345]]

Ceph Pool操作总结一个ceph集群可以有多个pool,每个pool是逻辑上的隔离单位,不同的pool可以有完全不一样的数据处理方式,比如Replica Size(副本数)、Placement Groups、CRUSH Rules、快照、所属者等。

打印pool列表

  1. ceph osd lspools 

创建pool

通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:

  • 若少于5个OSD, 设置pg_num为128。
  • 5~10个OSD,设置pg_num为512。
  • 10~50个OSD,设置pg_num为4096。
  • 超过50个OSD,可以参考pgcalc计算。

本文的测试环境只有2个OSD,因此设置pg_num为128。

  1. osd pool default pg num = 128  
  2. osd pool default pgp num = 128 

创建pool语法:

  1. ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \ 
  2.      [crush-ruleset-name] [expected-num-objects] 
  3. ceph osd pool create {pool-name} {pg-num}  {pgp-num}   erasure \ 
  4.      [erasure-code-profile] [crush-ruleset-name] [expected_num_objects] 

创建一个test-pool,pg_num为128:

  1. ceph osd pool create test-pool 128 

设置pool配额

支持object个数配额以及容量大小配额。

设置允许***object数量为100:

  1. ceph osd pool set-quota test-pool max_objects 100 

设置允许容量限制为10GB:

  1. ceph osd pool set-quota test-pool max_bytes $((10 * 1024 * 1024 * 1024)) 

取消配额限制只需要把对应值设为0即可。

重命名pool

  1. ceph osd poolrename test-pool test-pool-new 

删除pool

删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要求必须输入两次pool名称,同时加上--yes-i-really-really-mean-it选项。

  1. ceph osd pool delete test-pool test-pool --yes-i-really-really-mean-it 

查看pool状态信息

  1. rados df 

创建快照

ceph支持对整个pool创建快照(和Openstack Cinder一致性组区别?),作用于这个pool的所有对象。但注意ceph有两种pool模式:

  • Pool Snapshot,我们即将使用的模式。创建一个新的pool时,默认也是这种模式。
  • Self Managed Snapsoht,用户管理的snapshot,这个用户指的是librbd,也就是说,如果在pool创建了rbd实例就自动转化为这种模式。

这两种模式是相互排斥,只能使用其中一个。因此,如果pool中曾经创建了rbd对象(即使当前删除了所有的image实例)就不能再对这个pool做快照了。反之,如果对一个pool做了快照,就不能创建rbd image了。

  1. ceph osd pool mksnap test-pool test-pool-snapshot 

删除快照

  1. ceph osd pool rmsnap test-pool test-pool-snapshot 

设置pool

通过以下语法设置pool的元数据:

  1. ceph osd pool set {pool-name} {key} {value} 

比如设置pool的冗余副本数量为3:

  1. ceph osd pool set test-pool size 3 

其他配置项参考文档。

通过get操作能够获取pool的配置值,比如获取当前pg_num:

  1. ceph osd pool get test-pool pg_num 

获取当前副本数:

  1. ceph osd pool get test-pool size 

【本文是51CTO专栏作者“付广平”的原创文章,如需转载请通过51CTO获得联系】

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2022-09-28 08:31:13

crush虚拟机设备

2015-07-09 13:19:17

Ceph分布式存储性能调优

2015-09-22 10:39:40

2017-02-27 16:43:34

Golang多线程编程

2011-07-27 18:55:02

Oracle数据库DBLINK操作

2009-08-25 16:49:28

.NET Excel

2009-12-25 10:46:36

WPF Page

2022-09-06 08:00:57

Ceph分布式存储系统

2009-11-17 17:47:56

Oracle Shar

2010-05-05 11:21:37

Unix操作系统

2010-02-04 17:16:30

2009-09-08 10:57:55

LINQ查询操作

2009-09-11 13:29:31

LINQ查询操作

2014-12-26 10:06:44

osd盘ceph monito

2009-12-30 14:22:12

Silverlight

2010-04-13 16:11:15

Unix操作系统

2017-12-06 14:35:01

OpenStackCeph存储

2010-03-16 19:29:26

Java多线程操作

2010-03-03 13:12:56

Python图像处理

2009-01-08 18:49:44

服务器操作系统IBM
点赞
收藏

51CTO技术栈公众号