Ceph资源池pool管理

目录

[1.Ceph Pool管理命令](#1.Ceph Pool管理命令)

[1.1 创建 Pool 资源池](#1.1 创建 Pool 资源池)

[1.2 查看集群 Pool 信息](#1.2 查看集群 Pool 信息)

[1.3 查看资源池副本、PG 和 PGP的数量](#1.3 查看资源池副本、PG 和 PGP的数量)

[1.4 修改 Pool 副本、PG 和 PGP数量](#1.4 修改 Pool 副本、PG 和 PGP数量)

[1.5 删除 Pool 资源池](#1.5 删除 Pool 资源池)

2.一个pool资源池应该包含多少PG数?


完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可以设置副本 size 大小,默认副本数量为 3。

Ceph 客户端向 monitor 请求集群的状态,并向 Pool 中写入数据,数据根据 PGs 的数量,通过 CRUSH 算法将其映射到不同的 OSD 节点上,实现数据的存储。 这里我们可以把 Pool 理解为存储 Object 数据的逻辑单元;当然,当前集群没有资源池,因此需要进行定义。

1.Ceph Pool管理命令

1.1 创建 Pool 资源池

复制代码
#创建一个 Pool 资源池,其名字为 mypool,PGs 数量设置为 64,设置 PGs 的同时还需要设置 PGP(通常PGs和PGP的值是相同的):
PG (Placement Group),pg 是一个虚拟的概念,用于存放 object,PGP(Placement Group for Placement purpose),相当于是 pg 存放的一种 osd 排列组合
cd /etc/ceph
ceph osd pool create mypool 64 64

1.2 查看集群 Pool 信息

复制代码
ceph osd pool ls或ceph osd lspools

1.3 查看资源池副本、PG 和 PGP的数量

复制代码
ceph osd pool get mypool size
ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

默认创建pool的副本数都为3,如何修改默认副本数

复制代码
admin服务器
cd /etc/ceph
vim ceph.conf
osd_pool_default_size = 2   #添加配置

推送 ceph.conf 配置文件给所有 mon 节点
ceph-deploy --overwrite-conf config push node01 node02 node03

所有节点重启 ceph-mon 服务
systemctl restart ceph-mon.target


1.4 修改 Pool 副本、PG 和 PGP数量

复制代码
ceph osd pool set mypool size 2  #修改 Pool 副本数量为 2

#修改 pg_num 和 pgp_num 的数量为 128
ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128



1.5 删除 Pool 资源池

复制代码
admin节点
1)删除存储池命令存在数据丢失的风险,Ceph 默认禁止此类操作,需要管理员先在 ceph.conf 配置文件中开启支持删除存储池的操作
vim ceph.conf
添加以下
[mon]
mon_allow_pool_delete = true

2)推送 ceph.conf 配置文件给所有 mon 节点
ceph-deploy --overwrite-conf config push node01 node02 node03

3)所有节点重启 ceph-mon 服务
systemctl restart ceph-mon.target

4)执行删除 Pool 命令
ceph osd pool rm mypool mypool --yes-i-really-really-mean-it


2.一个pool资源池应该包含多少PG数?

OSD总数

小于5个,官方推荐 PG数为128

5~10个,官方推荐 PG数为512

10~50 个,官方推荐 PG数为1024

大于50个,参考公式 PG 数=( Target PGs per OSD )* (OSD # )* ( %Data ) / (Size)

Target PGs per OSD:表示每个OSD对应的PG数(如近期不扩容OSD数量可设置为100,如近期要扩容OSD数量可设置为200)
OSD #:表示当前OSD总数
%Data:当前Pool预计会占用ceph总存储空间的百分比
Size:当前Pool的副本数

举例:

现有新建的Ceph集群,OSD不扩容,共60个OSD,Pool占用总空间50%,3个副本:

100x60x50%/3=1000->取最接近2的次方值 1024

相关推荐
斯普信专业组7 小时前
k8s云原生rook-ceph pvc快照与恢复(下)
ceph·云原生·kubernetes
斯普信专业组14 小时前
k8s云原生rook-ceph pvc快照与恢复(上)
ceph·云原生·kubernetes
斯普信专业组19 小时前
Ceph、K8s、CSI、PVC、PV 深入详解
ceph·容器·kubernetes
mixboot13 天前
Ceph OSD.419 故障分析
ceph·osd
赵成ccc13 天前
离线部署三节点 Ceph 分布式存储
分布式·ceph
赵成ccc13 天前
三节点Ceph分布式存储搭建指南
分布式·ceph
免檒13 天前
windows11下基于docker单机部署ceph集群
ceph·后端·docker·容器
mixboot13 天前
Ceph集群OSD崩溃恢复
ceph·osd
羌俊恩17 天前
分布式存储之Ceph使用指南--部署篇(未完待续)
分布式·ceph·pg·osd·rados
大咖分享课23 天前
深度剖析:Ceph分布式存储系统架构
分布式·ceph·架构·分布式存储