ceph学习之pool

转载 2017年11月15日 12:24:40

pool是ceph存储数据时的逻辑分区,它起到namespace的作用。其他分布式存储系统,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每个pool包含一定数量的PG,PG里的对象被映射到不同的OSD上,因此pool是分布到整个集群的。

除了隔离数据,我们也可以分别对不同的POOL设置不同的优化策略,比如副本数、数据清洗次数、数据块及对象大小等。

 

查看POOL

查看pool有多种方式:

[root@mon1 ~]# rados lspools
rbd
testpool
testpool2

 

[root@mon1 ~]# ceph osd lspools
0 rbd,1 testpool,2 testpool2,
复制代码
[root@mon1 ~]# ceph osd dump |grep pool
pool 0 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 flags hashpspool stripe_width 0
pool 1 'testpool' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 20 flags hashpspool stripe_width 0
pool 2 'testpool2' replicated size 2 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 22 flags hashpspool crash_replay_interval 45 stripe_width 0
[root@mon1 ~]#
复制代码

毫无疑问ceph osd dump输出的信息最详尽,包括pool ID、副本数量、CRUSH规则集、PG和PGP数量等

 创建POOL

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

  • 若少于5个OSD, 设置pg_num为128。
  • 5~10个OSD,设置pg_num为512。
  • 10~50个OSD,设置pg_num为4096。
  • 超过50个OSD,可以参考pgcalc计算。
[root@mon1 ~]# ceph osd pool create pool1 64
pool 'pool1' created
[root@mon1 ~]#

创建pool时要设置pg_num

调整POOL副本

[root@mon1 ~]# ceph osd pool set pool1 size 2
set pool 3 size to 2
[root@mon1 ~]#

删除POOL

复制代码
[root@mon1 ~]# ceph osd pool delete pool1
Error EPERM: WARNING: this will *PERMANENTLY DESTROY* all data stored in pool pool1.  If you are *ABSOLUTELY CERTAIN* that is what you want, pass the pool name *twice*, followed by --yes-i-really-really-mean-it.
[root@mon1 ~]# ceph osd pool delete pool1 pool1  --yes-i-really-really-mean-it
pool 'pool1' removed
复制代码

note:删除pool时,pool名字要输入两次同时要加入--yes-i-really-really-mean-it参数

设置POOL配额

[root@mon1 ~]# ceph osd pool set-quota pool1 max_objects 100           #最大100个对象
set-quota max_objects = 100 for pool pool1
[root@mon1 ~]# ceph osd pool set-quota pool1 max_bytes $((10 * 1024 * 1024 * 1024))    #容量大小最大为10G
set-quota max_bytes = 10737418240 for pool pool1 

重命名POOL

[root@mon1 ~]# ceph osd pool rename pool1 pool2
pool 'pool1' renamed to 'pool2'
[root@mon1 ~]#

查看POOL状态信息

复制代码
[root@mon1 ~]# rados df
pool name                 KB      objects       clones     degraded      unfound           rd        rd KB           wr        wr KB
pool2                      0            0            0            0            0            0            0            0            0
rbd                        0            0            0            0            0            0            0            0            0
testpool                   0            0            0            0            0            0            0            0            0
testpool2                  0            0            0            0            0            0            0            0            0
  total used          118152            0
  total avail       47033916
  total space       47152068
[root@mon1 ~]#
复制代码

创建快照

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

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

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

[root@mon1 ~]# ceph osd pool mksnap pool2 pool2_snap
created pool pool2 snap pool2_snap
[root@mon1 ~]#

删除快照

[root@mon1 ~]# ceph osd pool rmsnap
                                     #remove snapshot <snap> from <pool>
[root@mon1 ~]# ceph osd pool rmsnap pool2 pool2_snap
removed pool pool2 snap pool2_snap
[root@mon1 ~]#

 

CEPH pool 创建使用监控

创建一个名字叫data的pool,它由10个pg组成, 用于存放object [harvis@centos7 build]$ ceph osd pool create data 10 也可以用命令...
  • jiankangshiye
  • jiankangshiye
  • 2017年04月18日 14:50
  • 936

ceph的pool创建流程--代码分析

ceph中的pool有两种类型:replicated pool和erasure pool 这里从rados接口开始跟踪分析一下pool的创建过程 一、rados接口部分 1、rados里创建poo...
  • carny
  • carny
  • 2016年08月18日 14:43
  • 2202

ceph PG故障排除

配置组无法清空有些情况下Ceph的配置组无法清空:1. 只有一个OSD:如果你不是从quick start开始,只有一个OSD的话,你很可能会遇到问题。OSD会向监控上报其他的OSD,当需要拷贝数据的...
  • u011085172
  • u011085172
  • 2017年03月30日 17:40
  • 810

ceph pg+down+peering 故障排查与osd误删恢复

PG又称放置组,是ceph中存放文件object的单位,相当于管理文件的分组。 down+peering 参考ceph pg状态表: Creating Ceph 仍在创建归置组。 Activ...
  • iamygofcug
  • iamygofcug
  • 2017年09月04日 11:22
  • 580

Ceph pool配额设置

功能描述 Ceph pool有限制配额的功能,下面做些试验,体验一下: 试验 查看当前集群状态 [root@ceph3 ceph]# ceph -s cluster cbc99ef...
  • ygtlovezf
  • ygtlovezf
  • 2017年12月05日 12:11
  • 471

openstack 管理三十八 - ceph 与 crushmap

ceph 池管理
  • signmem
  • signmem
  • 2015年07月27日 15:24
  • 2903

ceph存储 ceph集群pool、pg、crush设置

存储池,PG和CRUSH配置的参考 当您创建池和池设置配置组,Ceph的使用默认值,当你不专门覆盖默认值。建议 overridding的一些默认设置。具体来说,我们建议设置池的副本的大小和覆盖默认的...
  • skdkjxy
  • skdkjxy
  • 2014年11月28日 16:58
  • 3987

ceph - crush map 与 pool

管理 ceph 管理 crush map 管理 pool
  • signmem
  • signmem
  • 2017年01月13日 16:14
  • 756

管理ceph的pool(快照,回滚)

pool是ceph存储数据时的逻辑分区,它起到namespace的作用。其他分布式存储系统,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每个pool包含一定数...
  • dengxiafubi
  • dengxiafubi
  • 2017年06月09日 14:40
  • 651

CEPH POOL MIGRATION

CEPH POOL MIGRATION从一个资源池迁移到另一个资源池,特别是资源池参数不可修改的,...
  • heivy
  • heivy
  • 2016年04月12日 15:43
  • 1028
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ceph学习之pool
举报原因:
原因补充:

(最多只允许输入30个字)