Ceph常用命令总结

查看集群健康状态

  • ceph -s 集群状态总览
  • ceph health detail 集群状态详情
  • ceph df 查看集群容量及使用率

osd相关

  • ceph osd tree 查看osd树形图
  • ceoh osd df 查看osd使用率
  • ceph osd df | sort -nr -k17 | head 查看osd使用率排序
  • ceph osd down <ids> [<ids>...] 将osd设置为down
  • ceph osd find <osdname (id|osd.id)> 查找osd在那个节点上
  • ceph osd in <ids> [<ids>...] 将osd进入集群,将引起数据回填
  • ceph osd out <ids> [<ids>...] 将osd踢出集群,都将引起数据重映射
  • ceph osd ok-to-stop <ids> [<ids>...] 判断osd能否安全停止而不造成数据丢失
  • ceph osd ok-to-stop {0..10} 判断osd.0到osd.10这11个osd能否安全停止
  • ceph osd perf dump osd性能数据
  • ceph osd reweight <osdname (id|osd.id)> <float[0.0-1.0]> 设置osd的权重,如某个osd权重过高,可降低其权重
  • ceph osd set full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub {--yes-i-really-mean-it} 设置osd标志位
  • ceph osd unset full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub {--yes-i-really-mean-it} 取消osd标志位设置
  • osd set-backfillfull-ratio <float[0.0-1.0]> 设置osd会被标记为不可回填的使用率
  • ceph osd set-full-ratio <float[0.0-1.0]> 设置osd被标记为写满的使用率
  • ceph osd set-nearfull-ratio <float[0.0-1.0]> 设置osd被标记为即将写满的使用率
  • ceph osd dump 显示osd map总览

osd标志位参数说明

  • noup OSD启动时,会将自己在MON上标识为UP状态,设置该标志位,则OSD不会被自动标识为up状态。
  • nodown OSD停止时,MON会将OSD标识为down状态,设置该标志位,则MON不会将停止的OSD标识为down状态,设置noup和nodown可以防止网络抖动。
  • noout 设置该标志位,则mon不会从crush映射中删除任何OSD。对OSD作维护时,可设置该标志位,以防止CRUSH在OSD停止时自动重平衡数据。OSD重新启动时,需要清除该flag。
  • noin 设置该标志位,可以防止数据被自动分配到OSD上。
  • norecover 设置该flag,禁止任何集群恢复操作。在执行维护和停机时,可设置该flag。
  • nobackfill 禁止数据回填
  • noscrub 禁止清理操作。清理PG会在短期内影响OSD的操作。在低带宽集群中,清理期间如果OSD的速度过慢,则会被标记为down。可以该标记来防止这种情况发生。
  • nodeep-scrub 禁止深度清理。
  • norebalance 禁止重平衡数据。在执行集群维护或者停机时,可以使用该flag。
  • pause 设置该标志位,则集群停止读写,但不影响osd自检。
  • full 标记集群已满,将拒绝任何数据写入,但可读。

pool相关

  • ceph osd lspools 列出所有的pool
  • ceph osd pool ls detail 列出pool详情
  • ceph osd pool get <poolname> size|min_size 查询pool副本数|最小副本数
  • ceph osd pool set <poolname> size|min_size <val> {--yes-i-really-mean-it} 设置pool副本数|最小副本数
  • ceph osd pool get-quota <poolname> 查询pool容量或对象数配额
  • ceph osd pool set-quota <poolname> max_objects|max_bytes <val> 设置pool容量或对象数配额

pg相关

  • ceph pg ls 列出所有pg
  • ceph pg ls-by-osd <osdname (id|osd.id)> 列出osd上的所有pg
  • ceph pg ls-by-pool <poolstr> 列出pool里的所有pg
  • ceph pg ls-by-primary <osdname (id|osd.id)> 列出所有主副本在该osd上的pg
  • ceph pg map <pgid> 查看pg的副本分布在哪些osd上
  • ceph pg repair <pgid> 执行pg修复,可修复某些pg异常状态(虽然大部分时候不管用)
  • ceph pg scrub/deep-scrub <pgid> 执行数据一致性校验/深度校验
  • ceph pg debug unfound_objects_exist|degraded_pgs_exist 显示pg debug信息
  • ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} 查询异常pg信息
  • ceph pg dump/dump_json 显示pg map/json格式的pg map

常见的pg状态说明

  • creating 创建中
  • down pg处于离线状态
  • repair pg正在被修复
  • peering 等待互联,peering 是由主osd发起的使存放PG副本的所有OSD就PG的所有对象和元素数据的状态达成一致的过程,peering过程完成后,主OSD就可以接受客户端写请求
  • active 可读写状态
  • clean 干净态,副本数完整
  • replay 某OSD崩溃后,PG数据重放
  • degraded 降级,未达到要求副本数
  • inconsistent 不一致,PG副本间出现不一致
  • recoverying 恢复中,通过日志重放恢复数据
  • backfilling 回填,pg数据全量从其余osd拷贝生成副本
  • remapped 重映射,pg重映射至新osd
  • stale 数据老旧
  • scrubbing 在做一致性校验

动态配置相关

  • ceph daemon {daemon-name} config show 查询组件的动态配置
  • ceph daemon osd.0 config show 例如查询osd.0的动态配置
  • ceph daemon /var/run/ceph/client.radosgw.rgw_ec_1.asok config show 例如查询radosgw的动态配置

查询及调整日志级别

  • ceph daemon /var/run/ceph/client.radosgw.rgw_ec_1.asok config show | grep debug_rgw 查询radosgw日志级别
  • ceph daemon /var/run/ceph/client.radosgw.rgw_ec_1.asok config set debug_rgw 20/20 调整日志级别到最高,第一个20表示log level,第二个20表示memory level,详见https://docs.ceph.com/en/latest/rados/troubleshooting/log-and-debug/#subsystem-log-and-debug-settings
  • ceph daemon osd.0 config show | grep debug_osd 查询osd日志级别
  • ceph daemon osd.0 config set debug_osd 0/5 调整osd日志级别
或使用tell方式获取及调整动态配置
  • ceph tell {daemon-type}.{daemon id or *} config set {name} {value} 调整动态配置,例如ceph tell osd.0 config set debug_osd 0/5
  • ceph tell {daemon-type}.{daemon id or *} config get {name} 获取动态配置

慢请求排查

  • ceph daemon osd.id dump_historic_slow_ops

radosgw相关

  • radosgw-admin bucket list 列出所有桶
  • radosgw-admin bucket stats --bucket=[bucket] 获取桶信息,包括用户、对象数
  • radosgw-admin user info --uid=[uid] 获取用户信息,包括AK/SK

相关推荐

  1. Ceph命令总结

    2024-04-03 20:28:03       16 阅读
  2. Docker命令总结

    2024-04-03 20:28:03       43 阅读
  3. Linux命令总结

    2024-04-03 20:28:03       36 阅读
  4. vim命令总结

    2024-04-03 20:28:03       35 阅读
  5. conda命令总结

    2024-04-03 20:28:03       38 阅读
  6. conda命令总结

    2024-04-03 20:28:03       30 阅读
  7. Linux命令总结

    2024-04-03 20:28:03       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 20:28:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 20:28:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 20:28:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 20:28:03       20 阅读

热门阅读

  1. 面试题多态结合线程

    2024-04-03 20:28:03       11 阅读
  2. MATLAB 按照索引提取点云 (56)

    2024-04-03 20:28:03       19 阅读
  3. Qt控件样式设置其一(常见方法及优缺点)

    2024-04-03 20:28:03       10 阅读
  4. Neo4j基础知识

    2024-04-03 20:28:03       16 阅读
  5. Spring中最常用的11个扩展点

    2024-04-03 20:28:03       11 阅读
  6. ctf.show_web11

    2024-04-03 20:28:03       14 阅读
  7. C++ //练习 11.11 不使用decltype重新定义bookstore。

    2024-04-03 20:28:03       14 阅读
  8. 串匹配【C++ 实现】

    2024-04-03 20:28:03       18 阅读
  9. Linux的Shell基础知识总结

    2024-04-03 20:28:03       14 阅读
  10. redis简介

    2024-04-03 20:28:03       16 阅读
  11. Vue-------自定义指令

    2024-04-03 20:28:03       17 阅读
  12. git diff

    2024-04-03 20:28:03       14 阅读
  13. linux ldd依赖拷贝

    2024-04-03 20:28:03       15 阅读
  14. LeetCode 36

    2024-04-03 20:28:03       14 阅读
  15. U3D开发中Json管理器的常用思路

    2024-04-03 20:28:03       11 阅读