Ceph分布式存储集群Pool资源池简介及使用小结

目录
  • 1.Pool资源池的概念
  • 2.Pool资源池的基本操作
    • 2.1.创建一个Pool资源池
    • 2.2.为资源池设置应用模式
    • 2.3.查看资源池设置的应用模式
    • 2.4.查看OSD所有的资源池
    • 2.5.查看资源池的PG数量和PGP数量
    • 2.6.查看资源池的副本数量
    • 2.7.查看资源池的类型
    • 2.8.设置资源池的PG数量以及PGP数量
    • 2.9.设置资源池的副本数量
    • 2.10.设置资源池的最大object对象数量
    • 2.11.重命名资源池
    • 2.12.查看资源池的统计信息
    • 2.13.查看资源池的利用率
    • 2.14.删除资源池

1.Pool资源池的概念

Pool资源池的官方文档:https://docs.ceph.com/en/pacific/rados/operations/pools/#create-a-pool

Pool资源池是Ceph存储数据的逻辑分区,起到Namespace命名空间的作用,不同的客户端可以去使用不同的Pool资源池存储数据,Pool除了可以隔离数据之外,还可以针对不同的Pool资源池设置不同的优化策略,比如副本数、数据清洗次数、数据块及对象大小等等。

在Pool资源池中会包含一定数量的PG,PG里的对象会被存储在不同的OSD中,Pool资源上也是分布到整个集群的

一个文件将数据写入到Pool资源池的过程:

首先客户端会从Cluster Map中读取到集群各节点的信息,要写入存储的文件会被拆分成多个Object对象,这些Object对象都会被写入到Pool资源池中,PG是建立在Pool资源池中的,一个Pool资源池中会有多个PG载体,Object对象文件最终会被存放在Pool资源池的PG目录中,最后再通过CRUSH Rule算法将数据文件写入到不同的OSD中。

Pool资源池与PG载体的关系:

在前面说到过Object对象文件都是存储在OSD中的PG目录中,主要是为了故障迁移时,直接迁移目录会非常方便。

在这里提到了Pool资源池的概念,客户端想要将数据写入到Ceph存储中,首先Ceph需要准备一个Pool资源池,为不同的客户端提供不同的资源池,不同的资源池也可以设置不同的策略。

Pool资源池是建立在OSD之上的逻辑分区,PG载体是建立在Pool资源池中的,一个Pool资源池中有几十个甚至几百个PG载体,还有PGP。

客户端写入的文件被拆分成多个Object对象后,首先会存储在PG载体中,而PG载体是在Pool资源池中,最后通过CRUSH算法写入到OSD中。

File—>Objec—>PG—>Pool—>OSD

Pool资源池中PG与PGP的关系:

PG是用来存放Object对象的,PGP相当于是PG存放在OSD的一种排列组合。

例如集群中有三个OSD,分别是OSD-1、OSD-2、OSD-3,如果Pool的副本数为2,PGP的数量为1,那么所有的PG存放在OSD组合就只有一种情况,例如[OSD-1,OSD-2],此时所有的PG主从副本都会分别存放在OSD-1和OSD-2中,如果PGP的数量为2,那么PG存放在OSD中的组合就会有两种情况,例如[OSD-1,OSD-2]和[OSD-1,OSD-3]。

PG的数量要和PGP的数量保持一致。

2.Pool资源池的基本操作

2.1.创建一个Pool资源池

命令格式:ceph osd create pool ${pool-name} ${pg_num} ${pgp_num}

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

在创建Pool资源池的时候一定要指定pg_num和pgp_num参数,因为Ceph集群不能自动计算PG的数量。

官方建议的PG使用数量:

  • 集群中小于5个OSD,则设置PG的数量为128。
  • 集群有5-10个OSD时,设置PG的数量为512。
  • 集群中有10-50个OSD时,设置PG的数量为1024.

当集群中超过50个OSD时,需要权衡PG的数量,有一种公式:

​ (osd_number * 100)

pg_num = ------------------------------

​ pool size

例如集群有90个OSD,Pool设置的副本数为3:(90*100)÷3=3000

PGP的数量要和PG的数量保持一致。

注意这个PG数量是集群所能承担的总PG数量,每个资源池分配多个PG,还需要通过总的PG数乘以资源池占整个集群数据比例,最终拿到一个资源池应该分配多少个PG的数量。

2.2.为资源池设置应用模式

其实就是为资源池设置一个分类,有rbd、rgw、cephfs三种。

命令格式:ceph osd pool application enable {pool_name} rbd

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

2.3.查看资源池设置的应用模式

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

2.4.查看OSD所有的资源池

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

2.5.查看资源池的PG数量和PGP数量

查看Pool资源池属性的命令格式;ceph osd pool get {poll_name} [parameter]

查看pg的数量
[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 pg_num
pg_num: 64
查看pgp的数量
[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 pgp_num
pgp_num: 64

2.6.查看资源池的副本数量

副本数量默认为3个。

[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-1 size
size: 3

2.7.查看资源池的类型

默认类型为replicated_rule(复制类型)。

[root@ceph-node-1 ~]# ceph osd pool get ceph-pool-2 crush_rule
crush_rule: replicated_rule

2.8.设置资源池的PG数量以及PGP数量

修改Pool资源池属性的命令格式;ceph osd pool set {poll_name} [parameter]

[root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 pg_num 128
set pool 1 pg_num to 128

[root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 pgp_num 128
set pool 1 pgp_num to 128

2.9.设置资源池的副本数量

[root@ceph-node-1 ~]# ceph osd pool set ceph-pool-1 size 2
set pool 1 size to 2

2.10.设置资源池的最大object对象数量

命令格式:ceph osd pool set-quota {pool_name} [max_objects {obj-count}] [max_bytes {bytes}]

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

2.11.重命名资源池

命令格式:ceph osd pool rename {current-pool-name} {new-pool-name}

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

2.12.查看资源池的统计信息

[root@ceph-node-1 ~]# ceph df
RAW STORAGE:
    CLASS     SIZE       AVAIL      USED       RAW USED     %RAW USED
    hdd       30 GiB     27 GiB     10 MiB      3.0 GiB         10.04
    TOTAL     30 GiB     27 GiB     10 MiB      3.0 GiB         10.04 

POOLS:
    POOL            ID     PGS     STORED     OBJECTS     USED     %USED     MAX AVAIL
    ceph-pool-2      1     128        0 B           0      0 B         0        13 GiB

2.13.查看资源池的利用率

[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
ceph-pool-2  0 B       0      0      0                  0       0        0      0 0 B      0 0 B        0 B         0 B 

total_objects    0
total_used       3.0 GiB
total_avail      27 GiB
total_space      30 GiB

2.14.删除资源池

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

到此这篇关于Ceph分布式存储集群Pool资源池的概念以及使用的文章就介绍到这了,更多相关Ceph分布式存储集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Centos7下yum安装Ceph分布式存储教程

    目录 前言 配置yum源,epel源 配置Ceph源 安装Ceph及组件 前言 本文讲述了Ceph应该如何安装,掌握方法后,可自行选择安装哪个版本的Ceph. 配置yum源,epel源 首先机器需要联网,并且配置网络yum源,epel源,可从阿里开源镜像站中下载源文件. 注:EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为"红帽系"的操作系统提供额外的软件包,适用于RHEL.CentOS和Scientific Linu

  • JedisPool资源池优化方法

    背景 合理的JedisPool资源池参数设置能为业务使用Redis保驾护航,本文将对JedisPool的使用.资源池的参数进行详细说明,最后给出"最合理"配置. 一.使用方法 以官方的2.9.0为例子(Jedis Release),Maven依赖如下: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version

  • Ceph分布式存储集群Pool资源池简介及使用小结

    目录 1.Pool资源池的概念 2.Pool资源池的基本操作 2.1.创建一个Pool资源池 2.2.为资源池设置应用模式 2.3.查看资源池设置的应用模式 2.4.查看OSD所有的资源池 2.5.查看资源池的PG数量和PGP数量 2.6.查看资源池的副本数量 2.7.查看资源池的类型 2.8.设置资源池的PG数量以及PGP数量 2.9.设置资源池的副本数量 2.10.设置资源池的最大object对象数量 2.11.重命名资源池 2.12.查看资源池的统计信息 2.13.查看资源池的利用率 2.

  • Minio基本介绍及如何搭建Minio集群

    目录 一.Minio介绍 1.1 Minio简介 1.2 部署方式: 1.3 Minio官网 二.Minio集群 2.1 Minio集群原理 2.2 术语解释 2.3 纠删码 2.4 Minio集群搭建 三.Nginx反向代理与负载均衡 3.1 安装nginx 3.2 创建SSL证书 3.3 配置Nginx 四.minio页面展示 一.Minio介绍 1.1 Minio简介 MinIO 是高性能的对象存储,是为海量数据存储.人工智能.大数据分析而设计的,它完全兼容Amazon S3接口,单个对象

  • Ceph集群CephFS文件存储核心概念及部署使用详解

    目录 1.CephFS文件存储核心概念 1.1.CephFS文件存储简介 1.2.CephFS文件存储架构 1.3.CephFS文件系统的应用场景与特性 2.在Ceph集群中部署MDS组件 3.在Ceph集群中创建一个CephFS文件存储系统 3.1.为CephFS文件存储系统创建Pool资源池 3.2.创建CephFS文件系统 3.3.再次观察Ceph集群的状态 4.内核级别挂载CephFS文件系统 4.1.无需认证的方式挂载CephFS文件系统 4.2.使用认证方式挂载CephFS文件系统

  • ceph集群RadosGW对象存储使用详解

    目录 什么是对象存储 ceph对象存储的构成 RadosGW存储池作用 RadosGW常用操作详解 操纵radosgw 需要先安装好python3环境,以及python的boto模块 python脚本编写 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍对象存储RadosGw功能如何灵活的使用 集群背景: $ ceph -s cluster: id: f0a8789e-6d53-44fa-b76d-efa79bbebbcf health: HEALTH_OK servi

  • springboot整合redis集群过程解析

    简介 在springboot使用搭建好的redis集群 添加redis和连接池依赖 <!--redis连接池 start--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!--redis连接池 end--> <!--redis start-

  • MySQL之PXC集群搭建的方法步骤

    一.PXC 介绍 1.1 PXC 简介 PXC是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步.而且节点与节点之间,他们相互的关系是对等的.PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性: 1.2 PXC特性和优点 完全兼容 MySQL. 同步复制,事务

  • Redis集群节点通信过程/原理流程分析

    目录 简介 通信流程 Gossip消息 消息流程 消息格式 节点选择 1.选择发送消息的节点数量 2.消息数据量 其他网址 简介 本文介绍Redis的Cluster(集群)的节点通信的流程. 通信流程 在分布式存储中需要提供维护节点元数据信息的机制, 所谓元数据是指: 节点负责哪些数据, 是否出现故障等状态信息. 常见的元数据维护方式分为: 集中式和P2P方式. Redis集群采用P2P的Gossip(流言) 协议,Gossip协议工作原理就是节点彼此不断通信交换信息, 一段时间后所有的节点都会

  • Linux中安装配置hadoop集群详细步骤

    一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择2.7.1版本.(前边主要介绍单机版的配置,集群版是在单机版的基础上,主要是配置文件有所不同,后边会有详细说明) 二. 准备工作 2.1 创建用户 创建用户,并为其添加root权限,经过亲自验证下面这种方法比较好. sudo adduser hadoop sudo vim /etc/sudoers

  • Perl集群配置管理系统Rex简明手册

    Rex 是 Perl 编写的基于 SSH 链接的集群配置管理系统,语法上类似 Puppet DSL.官网中文版见 http://rex.perl-china.com .本文仅为本人在部门 Wiki 上编写的简介性文档. 常用命令参数 rex 命令参数很多,不过因为我们的环境是 krb 认证的,所以有些参数只能写在 Rexfile 里.所以一般固定在存放了 Rexfile 的 /etc/puppet/webui 下执行命令,很多配置就自动加载了.那么还需要用到的命令参数基本就只有下面几个:-Tv:

  • Docker构建ELK Docker集群日志收集系统

    当我们搭建好Docker集群后就要解决如何收集日志的问题 ELK就提供了一套完整的解决方案 本文主要介绍使用Docker搭建ELK 收集Docker集群的日志 ELK简介 ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,他可以对你的日志进行收集.过滤,并将

随机推荐