Ceph

作者: 杰森斯坦sen | 来源:发表于2019-08-12 16:17 被阅读0次

PG数量计算方法

官方给出的计算公式是这样的:

Total PGs = (Total_number_of_OSD * 100) / max_replication_count

结果汇总后应该接近 2 的幂。
例:
有200个osd,3副本,10个pool

(200 * 100)
----------- = 6667. Nearest power of 2: 8192
     3

每个pool 的PG=8192/10=819,那么创建pool的时候就指定PG为819

ceph osd pool create pool_name 819

几个常用的值:

  • 少于 5 个 OSD 时可把 pg_num 设置为 128
  • OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
  • OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
  • OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
    自己计算 pg_num 取值时可借助 pgcalc 工具

pool的容量规划也要考虑,例如对象存储default.rgw.buckets.data要分配多一点的PGs。
所以更准确的计算公式是:

( Target PGs per OSD ) x ( OSD # ) x ( %Data )
-----------
( Size )
RADOS Gateway pgcalc工具计算值 RADOS Gateway pgcalc工具计算值

常用命令

  • 查看状态
ceph osd dump
ceph osd dump | grep 'replicated size'
ceph pg stat
ceph pg dump pgs | grep ^1 | awk '{print $1,$2,$15}'  #grep pool.id
ceph pg map 1.7f  #pg.id
ceph pg 1.7f query  #pg.id
ceph pg dump_stuck inactive|unclean|stale
ceph df
ceph osd df
rados df
  • 集群start/stop
systemctl stop ceph.target
systemctl start ceph.target
systemctl list-units --type=service|grep ceph
  • PG修复
    把down的osd踢出集群
# 先将该osd reweight 到0,也就是将权重降低到0,让数据副本分散到其它osd上
ceph osd reweight 2 0.0

# 待集群重新恢复为ok后执行以下命令将osd踢出集群
service ceph stop osd.2
ceph osd out 2
ceph osd crush remove osd.2
ceph auth del osd.2
ceph osd rm osd.2
  • Unfound objects
# <1>尝试让失败的osd起来,如果起来后集群恢复正常,则结束
# <2>尝试将该PG的unfound对象回滚到上一个版本,如果恢复正常,则结束
ceph pg $pgid mark_unfound_lost revert
# <3>如果还是不行,那只有将该object删除掉了,注意这会导致丢失数据,
ceph pg $pgid mark_unfound_lost delete
  • Stale PG
# 找出所有的stale的PG
ceph pg dump |grep stale
ceph health detail |grep stale
  • 设置某个osd作为主的,某个为副osd:
# 假设只有osd.0和osd.1,要将osd.0作为副本osd,1作为主osd,
# 则可以将osd.0的主亲和力设置为0,这样osd.0就只能做副本osd
ceph tell mon.\* injectargs '--mon_osd_allow_primary_affinity=true'
ceph osd primary-affinity osd.0 0

Reference

存储池、归置组和 CRUSH 配置参考
归置组
Ceph PG介绍及故障状态和修复
Ceph CRUSH算法
ceph-systemd
Ceph 部署完整版(el7+jewel)

相关文章

  • MySQL部署到k8s实例

    k8s && ceph 环境信息 ceph 部署以及配置 搭建ceph集群 ceph 集群配置 ceph 创建My...

  • Ceph luminous 卸载与清理

    清理Ceph 使用 ceph-deploy purge(不保留Ceph packages) 或者 ceph-dep...

  • Ceph Cookbook 中文版

    1、ceph介绍、ceph块存储、ceph对象存储、ceph文件系统、用Calamari监控Ceph、操作和管理c...

  • rancher 创建pv/pvc 卷

    1 添加ceph-secret 2 添加卷ceph PV 卷 3 添加ceph PVC 卷,绑定原来ceph pv...

  • Ceph 基础内容

    Ceph简介 ceph的优势 ceph架构 基础存储系统 基础库librados: 高层应用接口 Ceph的基本组...

  • 客户端-CephFS监控埋点

    1. FS Client Metrics Table ceph daemon /var/run/ceph/ceph...

  • 客户端-RBD监控埋点

    1. perf dump ceph daemon /var/run/ceph/ceph-client.admin....

  • Ceph搭建部署

    修改yum源 添加ceph的repo源文件 整合软件仓库 安装ceph软件 在ceph管理节点安装ceph-dep...

  • Ceph Object Gateway

    Environment 关于ceph的安装可参考ceph luminous安装 1.Installing ceph...

  • 一图看懂Ceph架构原理

    一、 Ceph Ceph介绍 1 Ceph Ceph介绍 在过去几年 中,数据存储需求急剧增长。研究表明大型组织的...

网友评论

      本文标题:Ceph

      本文链接:https://www.haomeiwen.com/subject/sdpujctx.html