第⑯讲:Ceph集群Pool资源池管理以及PG的数据分布的核心技术要点

2024-04-23 11:04

本文主要是介绍第⑯讲:Ceph集群Pool资源池管理以及PG的数据分布的核心技术要点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.Pool资源池的管理
      • 1.1.查看Pool资源池列表
      • 1.2.创建一个Pool资源池
      • 1.3.查看Pool资源池的参数信息
      • 1.4.修改Pool资源池的参数信息
      • 1.5.为Pool资源池设置应用模式
      • 1.6.重命名Pool资源池
      • 1.7.设置Pool资源池的限额
      • 1.8.删除Pool资源池
      • 1.9.查看Pool资源池的利用率
    • 2.PG的数据分布概念

1.Pool资源池的管理

1.1.查看Pool资源池列表

[root@ceph-node-1 ~]# ceph osd lspools
1 ceph-rbd-data
2 .rgw.root
3 default.rgw.control
4 default.rgw.meta
5 default.rgw.log
6 default.rgw.buckets.index
7 default.rgw.buckets.data
8 cephfs_metadata
9 cephfs_data

1.2.创建一个Pool资源池

语法格式:ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] [crush-rule-name] [expected-num-objects]

[root@ceph-node-1 ~]# ceph osd pool create pool-test 3 3
pool 'pool-test' created

1.3.查看Pool资源池的参数信息

列出Pool资源池的所有参数

[root@ceph-node-1 ~]# ceph osd pool get pool-test 

image-20220406223637817

查看pool的副本数量
[root@ceph-node-1 ~]# ceph osd pool get pool-test size
size: 3查看pool的pg数量
[root@ceph-node-1 ~]# ceph osd pool get pool-test pg_num
pg_num: 3

1.4.修改Pool资源池的参数信息

设置pool的副本数
[root@ceph-node-1 ~]# ceph osd pool set pool-test size 1
set pool 10 size to 1

1.5.为Pool资源池设置应用模式

查看为Pool设置应用模式的命令格式,支持禁用、启用、查看、删除、设置等方式。

[root@ceph-node-1 ~]# ceph -h | grep application
osd pool application disable <poolname> <app> {-- disables use of an application <app> on pool 
osd pool application enable <poolname> <app> {--  enable use of an application <app> [cephfs,rbd,
osd pool application get {<poolname>} {<app>}     get value of key <key> of application <app> on 
osd pool application rm <poolname> <app> <key>    removes application <app> metadata key <key> on 
osd pool application set <poolname> <app> <key>   sets application <app> metadata key <key> to 

为Pool设置应用模式。

[root@ceph-node-1 ~]# ceph osd pool application enable pool-test rbd
enabled application 'rbd' on pool 'pool-test'

查看Pool设置的应用模式。

[root@ceph-node-1 ~]# ceph osd pool application get  pool-test 
{"rbd": {}
}

1.6.重命名Pool资源池

[root@ceph-node-1 ~]# ceph osd pool rename pool-test pool-rename
pool 'pool-test' renamed to 'pool-rename'

1.7.设置Pool资源池的限额

同个限额可以调整资源池的最大Object文件数量等等参数。

[root@ceph-node-1 ~]# ceph osd pool set-quota pool-rename max_objects 10
set-quota max_objects = 10 for pool pool-rename

1.8.删除Pool资源池

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

直接删除会报错,报错的意思是说删除资源池会对其中的数据永久破坏,如果确认删除,则输入两次资源池的名称,然后根据提示信息加上–yes-i-really-really-mean-it参数进行删除。

[root@ceph-node-1 ~]# ceph osd pool delete pool-rename pool-rename --yes-i-really-really-mean-it
pool 'pool-rename' removed

1.9.查看Pool资源池的利用率

[root@ceph-node-1 ~]# rados df 
POOL_NAME                    USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS      RD WR_OPS      WR USED COMPR UNDER COMPR 
.rgw.root                 768 KiB       4      0     12                  0       0        0    193 193 KiB      4   4 KiB        0 B         0 B 
ceph-rbd-data             192 KiB       3      0      9                  0       0        0    501 1.7 MiB    222  13 MiB        0 B         0 B 
cephfs_data                   0 B       0      0      0                  0       0        0      0     0 B   4272   8 GiB        0 B         0 B 
cephfs_metadata           2.8 MiB      23      0     69                  0       0        0      9 425 KiB    381 647 KiB        0 B         0 B 
default.rgw.buckets.data  1.9 MiB       8      0     24                  0       0        0    102 253 KiB    305 493 KiB        0 B         0 B 
default.rgw.buckets.index     0 B       3      0      9                  0       0        0    366 388 KiB    147  70 KiB        0 B         0 B 
default.rgw.control           0 B       8      0     24                  0       0        0      0     0 B      0     0 B        0 B         0 B 
default.rgw.log               0 B     207      0    621                  0       0        0 287858 281 MiB 191830     0 B        0 B         0 B 
default.rgw.meta            3 MiB      19      0     57                  0       0        0    281 239 KiB    151  55 KiB        0 B         0 B 
pool-rename                   0 B       0      0      0                  0       0        0      0     0 B      0     0 B        0 B         0 B total_objects    275
total_used       7.6 GiB
total_avail      62 GiB
total_space      70 GiB

2.PG的数据分布概念

PG的官方文档:https://docs.ceph.com/en/nautilus/rados/operations/placement-groups/#how-are-placement-groups-used

PG是建立在Pool资源池之上的,一个文件存储在OSD时,首先被拆分成多个Object文件,这些Object文件都是存储在Pool资源池的PG里的,PG最后再通过CRUSH算法将数据存储到OSD中。

如果一个Pool资源池中的PG数量很多,就意味着会通过CRUSH算法将Object数据分散写入到更多的OSD中,数据分散存储在OSD的数量越多,对于数据的安全性就越高,相反,如果Pool中的PG数量过少,那么通过CRUSH算法将数据分散存储到OSD的数量就越少,数据的丢失概率就会很高。

image-20220407105146809

PG的作用有两种:

  • 数据分布情况,如果PG的数量越多,那么数据就会分散在多个OSD中进行存储,降低数据丢失的概率,如果PG的数量很少,那么数据分散在OSD的数量也会随之减少,就会提高数据丢失的概率。
  • 提高计算效率,如果没有PG的概念,一个文件会被拆分成多个Object文件,集群中就会有成千上万个Object,如果这些Object都由CRUSH进行计算,然后同步到OSD里,会大大降低集群的性能,有了PG的概念后,所有的Object都是存储在PG里的,CRUSH只需要根据PG进行计算就可以了,PG的数量远远要比Object的数量少很多。

集群中PG数量分配多少是合理的,是有具体计算公式的,如下所示,通过这个公式可用计算出集群中可以设置多少个PG。

             (OSDs * 100)
Total PGs =  ------------pool size

PG的数量是通过OSD的数量乘以100然后除以Pool的副本数得来的,这个100是指这个OSD中可以承载多少个PG数量。

每个OSD中最多只能容纳250个PG,PG的数量建议在100-200之间。

在使用公式计算PG的数量时,建议使用OSD*200,可以方便后期的数据量的扩展,随着数据量的增长,PG的数量也需要增长,如果一开始设置的数量很多,再后期就不需要扩容了。

注意这个公式只是计算出集群中有多少个PG合理,并不是计算的Pool拥有的PG数量。

例子:集群有200个OSD,Pool资源池的副本数为3。

(200x100)/3=6667

PG的数量建议是2的n次方,最接近6667的2的n次方是4096或者8192,为了方便后期的扩展,建议设置为8196个PG。

Ceph官方提供了一个PG计算器,地址为:http://ceph.com/pgcalc/,现在可能无法使用了。

pgcalc工具可以使用的使用,可用在这里添加Pool的一些参数(副本数、OSD的数量、数据使用比例、OSD可承载的PG数量)就可以计算出集群中PG的数量以及一个Pool设置多少个PG合理。

即使这个工具无法使用了,那也没有关系,还是有公式计算的。

在上面通过公式能够计算出集群合理的PG数量,下面的公式可以计算出一个Pool资源池分配多少个PG合理。

             (OSDs * 100)
Pool PGs =  -------------- * pool data percentpool size

"pool data percent"指的是该Pool将来可能存放的数据量占集群的百分比。

例子:OSD100个、OSD可承载的PG数量为200个、Pool副本数为3、该Pool的数据量占集群的15%。

(100X200)/3X0.15=1000个

1000接近2的n次方的值为1024,那么就建议这个Pool设置1024个PG。

这篇关于第⑯讲:Ceph集群Pool资源池管理以及PG的数据分布的核心技术要点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928605

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

系统优化要点

这是常用的系统优化要考虑的点,在系统设计和代码评审以及代码优化时加以考虑,最大限度提高系统性能:  1. 优化算法,选择合适高效算法,降低不必要递归,循环,多层循环嵌套,避免循环内初始化等。  2. 避免申请过多不必要的内存  3. 及时释放资源,降低资源使用时间,包括内存,IO,网络,数据库等。  4. 使用缓存:缓存常用的,不易变化的。  5. 慎用数据库锁。确