zoukankan      html  css  js  c++  java
  • PG, Pool之间的一些数量关系

    先说一下我的环境:

    Ceph cluster中包含6台OSD节点 (osd.0 - 5), 一共有10个Pool (0 - 9), 这些Pool共享了144个PG (这个数字是所有Pool的PG_SIZE相加, 并不是通过ceph osd pool create POOLNAME PG_SIZE指定的!), 文件拷贝数量等于2 (osd_pool_default_size = 2)

    查看一下每个osd节点下的/var/local/osd/current目录, 这里面的文件夹就是用来存放对象的, 每个文件夹的格式类似2.3d这样, 小数点的左边表示pool的序号, 右边表示pg的编号. 我统计了一下文件夹数量(注意: TEMP结尾和head结尾的文件夹有区别, TEMP不应该被统计在内, 原因不知)得到了如下结论:

    1. ceph -s 中显示的PG数等于ceph osd pool create POOLNAME PG_SIZE中所有POOL的PG_SIZE之和;

    2. 假设对于Pool 2来说, 所有OSD节点的current目录下的2.XX_head文件夹数量之和除以拷贝份数 (即osd_pool_default_size), 等于PG_SIZE;

    3. PG_SIZE在一开始指定后就不会改变, 除非手动通过ceph osd pool set POOLNAME size PG_SIZE进行修改.

      pool 0 pool 1 pool 2 pool 3 pool 4 pool 5 pool 6 pool 7 pool 8 pool 9 total b=288
    osd 0 15 0 3 2 2 1 2 2 4 3 34
    osd 1 23 2 3 3 2 4 3 5 2 2 49
    osd 2 19 5 2 0 1 4 3 4 2 3 43
    osd 3 25 3 2 6 4 4 4 4 4 4 60
    osd 4 21 6 2 3 2 0 3 3 3 3 46
    osd 5 25 0 4 2 5 3 5 2 5 5 56
    total a=288 128 16 16 16 16 16 20 20 20 20  
    备注 此处的单个对象拷贝份数都是2, 所以128/2=64才是pool 0的PG_SIZE
                           
                           
      pool 0 pool 1 pool 2 pool 3 pool 4 pool 5 pool 6
    (replicated=3)
    pool 7 pool 8 pool 9 total d=298
    osd 0 15 0 3 2 2 1 7 2 4 3 39
    osd 1 23 2 3 3 2 4 4 5 2 2 50
    osd 2 19 5 2 0 1 4 4 4 2 3 44
    osd 3 25 3 2 6 4 4 3 4 4 4 59
    osd 4 21 6 2 3 2 0 4 3 3 3 47
    osd 5 25 0 4 2 5 3 8 2 5 5 59
    total c=298 128 16 16 16 16 16 30 20 20 20  
    备注 此处Pool 6的拷贝份数为3, 其余均为2; 所以30/3=10才是pool 6的PG_SIZE

    附上根据自己的理解画出的示意图:

  • 相关阅读:
    Python3全栈学习目录
    五句话搞定javavscript作用域
    Python线程池
    luogu4016 负载平衡问题
    luogu2756 飞行员配对方案问题
    luogu1251 餐巾计划问题
    luogu3386 【模板】二分图匹配 匈牙利算法 hdu2063 过山车 dinic
    luogu3381 【模板】最小费用最大流
    luogu3376 【模板】网络最大流 dinic
    luogu2740 [USACO4.2]草地排水Drainage Ditches 最大流EK
  • 原文地址:https://www.cnblogs.com/IvanChen/p/4942945.html
Copyright © 2011-2022 走看看