ceph学习之pool
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
rbd, testpool, testpool2,
[root@mon1 ~]# ceph osd dump |grep pool
pool 'rbd' replicated size min_size crush_ruleset object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width
pool 'testpool' replicated size min_size crush_ruleset object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width
pool 'testpool2' replicated size min_size crush_ruleset object_hash rjenkins pg_num pgp_num last_change flags hashpspool crash_replay_interval stripe_width
[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
pool 'pool1' created
[root@mon1 ~]#
创建pool时要设置pg_num
调整POOL副本
[root@mon1 ~]# ceph osd pool set pool1 size
set pool size to
[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 = for pool pool1
[root@mon1 ~]# ceph osd pool set-quota pool1 max_bytes $(( * * * )) #容量大小最大为10G
set-quota max_bytes = 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
rbd
testpool
testpool2
total used
total avail
total space
[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的更多相关文章
- Ceph学习笔记(2)- CRUSH数据分布算法
前言: 分布式存储系统需要让数据均匀的分布在集群中的物理设备上,同时在新设备加入,旧设备退出之后让数据重新达到平衡状态尤为重要.新设备加入后,数据要从不同的老设备中迁移过来.老设备退出后,数据迁移 ...
- Ceph学习笔记(3)- Monitor
Ceph学习笔记(3)- Monitor 前言: Ceph将cluster map与placement rule合并为一张表称为crush map,作为集群表的一部分.由Monitor对集群表的副 ...
- ceph学习
网络: ceph必须要有公共网络和集群网络: public network:负责客户端交互以及osd与mon之间的通讯 cluster network:负责osd之间的复制,均衡,回填,数据恢复等操作 ...
- 在ceph中:pool、PG、OSD的关系
原文:http://www.cnblogs.com/me115/p/6366374.html Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略:支持两种类型:副本(replic ...
- Ceph学习之路(二)之Ceph的工作原理及流程
一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储 ...
- Ceph学习之路(一)之ceph初识
一.元数据和元数据管理 (1)元数据 在学习Ceph之前,需要了解元数据的概念.元数据又称为中介数据.中继数据,为描述数据的数据.主要描述数据属性的信息,用来支持如指示存储位置.历史数据.资源查找.文 ...
- ceph学习之CRUSH
CRUSH的全称是Controlled Replication Under Scalable Hashing,是ceph数据存储的分布式选择算法,也是ceph存储引擎的核心.在之前的博客里介绍过,ce ...
- ceph学习之PG
PG的计算公式: 整个集群PG的计算公式 Total PGs = ((Total_number_of_OSD * ) / max_replication_count) 每个POOL中PG的计算公式: ...
- ceph学习笔记之十二 Ubuntu安装部署Ceph J版本
https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一.安装前准备工 ...
随机推荐
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...
- PA-RISC
http://baike.baidu.com/view/167703.htm PA-RISC处理器 编辑 HP(惠普)公司的RISC芯片PA-RISC于1986年问世. 第一款芯片的型号为PA-8 ...
- mdadm
http://en.wikipedia.org/wiki/Mdadm mdadm From Wikipedia, the free encyclopedia mdadm Original au ...
- Java 序列化Serializable具体解释(附具体样例)
Java 序列化Serializable具体解释(附具体样例) 1.什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描写叙述的过程:反序列化deserializa ...
- docker与jenkins学习
docker命令: docker create <image-id>docker start <container-id>docker run <image-id> ...
- 五、WEB框架基础(1)
框架与架构 Python语言有很多web框架,主要是四个,企业级框架Django,高并发处理框架Tornado,快速开发框架Flask,自定义协议框架Twisted. 全栈网络框架封装了网络通信/线程 ...
- 九度OJ 1116:加减乘除 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1466 解决:902 题目描述: 根据输入的运算符对输入的整数进行简单的整数运算. 运算符只会是加+.减-.乘*.除/.求余%.阶乘!六个运 ...
- Hadoop实战-MapReduce之max、min、avg统计(六)
1.数据准备: Mike,35 Steven,40 Ken,28 Cindy,32 2.预期结果 Max 40 Min 28 Avg 33 3.MapReduce代码如下 import ja ...
- mongodb学习之:数据库
首先来介绍下Mongodb的基本概念: 左边一列是关系数据库的术语,右边这一列是NOSQL也就是mongodb的术语 database: database 数据库 tabl ...
- DTLS学习笔记 -- RFC 4347- 6347
想学习一下dtls,是因为想以后没有公司免费VPN可用的时候,我能买一个主机,自己建一个VPN. 1.介绍 Web, email大多用TLS协议来做安全的网络传输,它们必须跑在可靠的TCP传输通道里. ...