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

相关推荐
深度Linux10 天前
深入探讨Ceph:分布式存储架构的未来
分布式·ceph·架构·c/c++
斯普信专业组10 天前
基于Rook的Ceph云原生存储部署与实践指南(下)
ceph
斯普信专业组10 天前
基于Rook的Ceph云原生存储部署与实践指南(上)
ceph
大新新大浩浩19 天前
k8s环境中的rook-ceph的osd报Permission denied无法正常运行问题的处理方式
java·ceph·kubernetes
大新新大浩浩22 天前
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
ceph·ansible
我科绝伦(Huanhuan Zhou)22 天前
共享存储-一步一步部署ceph分布式文件系统
ceph
野猪佩挤22 天前
Ceph集群搭建2025(squid版)
ceph
野猪佩挤22 天前
Rook-ceph(1.92最新版)
ceph
斯普信专业组1 个月前
从零到一:基于Rook构建云原生Ceph存储的全面指南(上)
ceph·云原生
斯普信专业组1 个月前
从零到一:基于Rook构建云原生Ceph存储的全面指南(下)
ceph·云原生