前言

这个工具最开始是从sebastien的blog里面看到的,这个是 Gregory Charot(工具的作者)写的,通常我们在获取一个ceph的信息的时候,需要敲一连串的命令去获得自己需要的信息,可能需要一大堆的解析才能完成,而经常出现的是,使用了后,下次使用的时候,又要重来一遍,所以作者把这些常用的操作做了一些归纳,形成了一个查询的工具,很多人有个相同的观点就是,越懒,就会想办法提高效率,当然,首先得有提高效率的意识,否则只剩下懒了

我做的事情就是把作者用shell的逻辑转换成了python的版本,这样也方便自己以后的扩展,这里感谢作者做的一些工作,让我很快就能完成了,这里并不是重复造车轮,本来自己就不会python,权当练手了

在linux下面我是不建议用中文的,但是这个工具里面还是改成用中文提示,因为中文可能看上去更清楚需要做的是一个什么事情,这个仅仅是一个查询工具

有一段时间没有更新blog了,主要是最近比较忙,没有时间去看太多的资料,没有时间来写下更多的东西,有时间还是会坚持写下去

项目地址

原作者项目地址:https://github.com/gcharot/ceph-lazy

我重写的地址:https://github.com/zphj1987/ceph-lazy/tree/lazy-python

安装方法

wget -O /sbin/ceph-lazy https://raw.githubusercontent.com/zphj1987/ceph-lazy/lazy-python/ceph-lazy.py
chmod 777 /sbin/ceph-lazy

详细使用说明

列出节点上的所有的OSD

命令:ceph-lazy host-get-osd {hostname}

[root@lab8106 ~]# ceph-lazy host-get-osd lab8106
osd.0
osd.1

列出所有的存储主机节点

命令:ceph-lazy host-get-nodes

[root@lab8106 ~]# ceph-lazy host-get-nodes
lab8106
lab8107

列出存储节点上的存储使用的情况(detail看详细信息)

命令:ceph-lazy host-osd-usage {hostname} {detail}

[root@lab8106 ceph-lazy]# ceph-lazy  host-osd-usage lab8106
Host:lab8106 | OSDs:2 | Total_Size:556.5GB | Total_Used:13.0GB | Total_Available:543.5GB
[root@lab8106 ceph-lazy]# ceph-lazy host-osd-usage lab8106 detail
OSD:0 | Size:278.3GB | Used:4.6GB | Available:273.6GB
OSD:1 | Size:278.3GB | Used:8.4GB | Available:269.8GB
Host:lab8106 | OSDs:2 | Total_Size:556.5GB | Total_Used:13.0GB | Total_Available:543.5GB

列出所有存储节点上的存储使用的情况(detail看详细信息)

命令:ceph-lazy host-all-usage {detail}

[root@lab8106 ceph-lazy]# ceph-lazy host-all-usage
----------------------------------------------
Host:lab8106 | OSDs:2 | Total_Size:556.5GB | Total_Used:13.0GB | Total_Available:543.5GB
----------------------------------------------
Host:lab8107 | OSDs:1 | Total_Size:278.3GB | Total_Used:3.8GB | Total_Available:274.4GB [root@lab8106 ceph-lazy]# ceph-lazy host-all-usage detail
----------------------------------------------
OSD:0 | Size:278.3GB | Used:4.6GB | Available:273.6GB
OSD:1 | Size:278.3GB | Used:8.4GB | Available:269.8GB
Host:lab8106 | OSDs:2 | Total_Size:556.5GB | Total_Used:13.0GB | Total_Available:543.5GB
----------------------------------------------
OSD:2 | Size:278.3GB | Used:3.8GB | Available:274.4GB
Host:lab8107 | OSDs:1 | Total_Size:278.3GB | Total_Used:3.8GB | Total_Available:274.4GB

列出PG所在的节点(first is primary)

命令: ceph-lazy pg-get-host {pg_id}

[root@lab8106 ceph-lazy]# ceph-lazy pg-get-host   10.2
OSD:osd.2 | Host :lab8107
OSD:osd.1 | Host :lab8106

列出写操作最多的PG ( operations number)

命令:ceph-lazy pg-most-write

[root@lab8106 ceph-lazy]# ceph-lazy pg-most-write
PG:10.3 | OSD:osd.1 | Host:lab8106

列出写操作最少的PG ( operations number)

命令:ceph-lazy pg-less-write

[root@lab8106 ceph-lazy]# ceph-lazy pg-less-write
PG:11.3 | OSD:osd.1 | Host:lab8106

列出写操作最多的PG (data written)

命令:ceph-lazy pg-most-write-kb

[root@lab8106 ~]# ceph-lazy pg-most-write-kb
PG:10.0 | OSD:osd.1 | Host:lab8106

列出写操作最少的PG (data written)

命令:ceph-lazy pg-less-write-kb

[root@lab8106 ~]# ceph-lazy pg-less-write-kb
PG:11.3 | OSD:osd.1 | Host:lab8106

列出读操作最多的PG (operations number)

命令:ceph-lazy pg-most-read

[root@lab8106 ~]# ceph-lazy pg-most-read
PG:10.1 | OSD:osd.0 | Host:lab8106

列出读操作最少的PG (operations number)

命令:ceph-lazy pg-less-read

[root@lab8106 ~]# ceph-lazy pg-less-read
PG:11.3 | OSD:osd.1 | Host:lab8106

列出读操作最多的PG (data read)

命令:ceph-lazy pg-most-read-kb

[root@lab8106 ~]# ceph-lazy pg-most-read-kb
PG:10.4 | OSD:osd.0 | Host:lab8106

列出读操作最少的PG (data read)

命令:ceph-lazy pg-less-read-kb

[root@lab8106 ~]# ceph-lazy pg-less-read-kb
PG:11.3 | OSD:osd.1 | Host:lab8106

列出空的PG (没有存储对象)

命令:ceph-lazy pg-empty

[root@lab8106 ~]# ceph-lazy pg-empty
11.3
11.2
11.1
11.0
11.7
11.6
11.5
11.4

列出RBD的prefix

命令:ceph-lazy rbd-prefix {poolname} {imgname}

[root@lab8106 ~]# ceph-lazy rbd-prefix rbd zp
rbd_data.1b93a6b8b4567

列出RBD的对象数目

命令:ceph-lazy rbd-count {poolname} {imgname}

[root@lab8106 ~]# ceph-lazy rbd-count rbd zp

    RBD image rbd/zp has prefix rbd_data.1b93a6b8b4567; now couning objects...
count: 27

列出RBD的Primary所在的存储主机

命令:ceph-lazy rbd-host {poolname} {imgname}

[root@lab8106 ~]# ceph-lazy rbd-host rbd zp
Primary Host: lab8107
Primary Host: lab8106

列出RBD的Primary所在的OSD节点

命令:ceph-lazy rbd-osd {poolname} {imgname}

[root@lab8106 ~]# ceph-lazy rbd-osd rbd zp
Primary Osd: 0
Primary Osd: 1
Primary Osd: 2

列出RBD的Image的真实大小

命令:ceph-lazy rbd-size rbd zp

[root@lab8106 ~]# ceph-lazy rbd-size rbd zp
Pool: rbd | Image:zp | Real_size:71.5586 MB

列出容量使用最多的OSD

命令:ceph-lazy osd-most-used

[root@lab8106 ~]# ceph-lazy osd-most-used
OSD:osd.1 | Host: lab8106 | Used: 8 GB

列出容量使用最少的OSD

命令:ceph-lazy osd-less-used

[root@lab8106 ~]# ceph-lazy osd-less-used
OSD:osd.2 | Host: lab8107 | Used: 3 GB

列出指定OSD上所有的primary PG

命令: ceph-lazy osd-get-ppg {osd_id}

[root@lab8106 ~]# ceph-lazy osd-get-ppg 1
11.3
10.3
10.0
11.7
10.6
11.6
10.7
11.5

列出指定OSD上的所有PG

命令:ceph-lazy osd-get-pg {osd_id}

[root@lab8106 ~]# ceph-lazy osd-get-pg 1
11.3
10.2
10.3
10.0
10.1
11.7
10.6
11.6
10.7
11.5
10.4
10.5

列出指定对象所在的主机(第一个是主)

命令:ceph-lazy object-get-host {poolname} {obj_name}

[root@lab8106 ~]# ceph-lazy object-get-host   rbd rbd_data.1b93a6b8b4567.00000000000000a0
Pg: 10.4
OSD:osd.0 | Host :lab8106
OSD:osd.1 | Host :lab8106

总结

本篇只是暂时结束了,目前完成了原作者的一些想法,等有空再写点自己比较注重的数据

最近一直在关注冯大辉的事情,看完后还是原来的感觉,在利益面前,公司总是会追求最大化,当出现分离的时候,总会显得无情,还是自己让自己强大一点,拿到属于自己的那一部分就好

变更记录

Why Who When
创建 武汉-运维-磨渣 2016-08-19

重写ceph-lazy的更多相关文章

  1. ceph-deploy离线部署ceph集群及报错解决FAQ

    ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...

  2. ios Swift 特性

    特性提供了关于声明和类型的更多信息.在Swift中有两类特性,用于修饰声明的以及用于修饰类型的.例如,required特性,当应用于一个类的指定或便利初始化器声明时,表明它的每个子类都必须实现那个初始 ...

  3. D-温暖的签到题

    链接:https://ac.nowcoder.com/acm/contest/892/D 题意: 给你一个长度为n的序列,初始为1,2,3...n,对其进行m次操作. 操作有两种: 1 l r  表示 ...

  4. swift 声明特性 类型特性

    原文地址:http://www.cocoachina.com/newbie/basic/2014/0612/8801.html 特性提供了关于声明和类型的很多其它信息.在Swift中有两类特性,用于修 ...

  5. Ceph: A Scalable, High-Performance Distributed File System译文

    原文地址:陈晓csdn博客 http://blog.csdn.net/juvxiao/article/details/39495037 论文概况 论文名称:Ceph: A Scalable, High ...

  6. “Ceph浅析”系列之五——Ceph的工作原理及流程

    本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和 ...

  7. Swift - 懒加载(lazy initialization)

    Swift中是存在和OC一样的懒加载机制的,在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间 懒加载 格式: lazy var 变量: 类型 = { 创建变量代码 }() 懒 ...

  8. Swift 懒加载(lazy) 和 Objective-C 懒加载的区别

    在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都会这样写 Objective-C - ( ...

  9. iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)

    Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...

  10. Swift lazy 修饰符和方法

    LAZY 修饰符和 LAZY 方法 由 王巍 (@ONEVCAT) 发布于 2015/10/07 延时加载或者说延时初始化是很常用的优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间 ...

随机推荐

  1. CentOS 7操作系统基础优化介绍

    01 前言 操作系统部署完毕后,需要做一些基础的简单优化操作,可以为系统未来的使用过程带来更多便捷. 02 操作系统安全优化配置 系统安装完毕后,默认系统中会存在两个重要的安全服务程序,建议将其首先进 ...

  2. 【C语言C++编程入门】——编译机制和语言标准!

    编程机制 编写程序时必须遵循确切步骤主要是取决于你的计算机环境.因为 C语言是可以移植的,所以它在许多环境中可用,其中包括 UNIX,Linux,Windows等等 . 不过,让我们首先来看一看许多环 ...

  3. linux(centos8):用uniq去除文本中重复的行(去重)

    一,uniq命令的用途 1, 作用: 从输入文件或标准输入中找到相邻的匹配行, 并写入到输出文件或标准输出 2, 使用时通常会搭配sort使用 说明:刘宏缔的架构森林是一个专注架构的博客,地址:htt ...

  4. ansible使用file模块管理受控机的目录与文件(ansible2.9.5)

    一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  5. linux创建www用户组和用户

    linux创建www用户组和用户 wdcp中的nginx服务启动需要依赖www用户,因此若没有此用户就可能会启动失败.创建这个用户的方法: [root@bogon local]# id www [ro ...

  6. 服务器同一个tomcat部署2两个相同的项目

    项目A,B(B 是A 的复制) 若把A,B工程同时部署到tomcat下,会发生只能访问A,B工程中的其中一个,而另一个会出现404错误(或者无法访问),此时可参照如下方法解决: 步骤1:找到工程下的w ...

  7. JS XMLHttpRequest请求

    前言 我们知道jq的请求非常简短好用,但是其实js原生的请求也不差,并且不用插件更能说明自己本身的技术已经很强了,别人看自己代码一脸懵逼的时候,这时就可以一一解释这些代码的用处,更能让别人敬佩! JS ...

  8. 接口中字段的修饰符:public static final(默认不写) 接口中方法的修饰符:public abstract(默认不写)abstract只能修饰类和方法 不能修饰字段

    abstract只能修饰类和方法 不能修饰字段

  9. 通过代码实现 `OutOfMemory

    通过代码实现 OutOfMemory Intro 来尝试写一个发生 OutOfMemoryException 的代码吧,开启煞笔代码第三篇 -- OutofMemory OutOfMemory Out ...

  10. Sec-Fetch-*请求头,了解下?

    如果你使用76+版本的chrome浏览器,通过开发者面板查看每个网络请求,会发现都有几个Sec-Fetch开头的请求头,例如访问百度首页https://www.baidu.com/的请求: Sec-F ...