ceph常用命令详解_ceph osd

ceph常用命令详解_ceph osd1.OSD概念OSD:ObjectStorageDevice,主要负责响应客户端请求返回具体数据的守护进程,一般一个集群会有多个OSD,每一块盘都会对应一个OSD。2.OSD状态[root@data1~]#cephosdstat4osds:3up(since23m),3in(since13m);epoch:e345OSD状态说明:a.集群内(in)b.集群外(out)c.活着且在运行(up)d.挂了且不再运行(down).

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

OSD进程的启动停止:https://blog.csdn.net/bandaoyu/article/details/119894927

1. OSD概念

OSD:Object Storage Device,主要负责响应客户端请求返回具体数据的守护进程,一般一个集群会有多个OSD,每一块盘都会对应一个OSD。

2. OSD 状态

[root@data1 ~]# ceph osd stat
4 osds: 3 up (since 23m), 3 in (since 13m); epoch: e345

Jetbrains全家桶1年46,售后保障稳定

 OSD状态说明:

a. 集群内(in)

b. 集群外(out)

c. 活着且在运行(up)

d. 挂了且不再运行(down)

正常情况下OSD的状态是up in状态,如果down掉OSD,它的状态会变为down in,等待数据均衡完成后osd变为down out状态,Ceph 会把其归置组迁移到其他OSD, CRUSH 就不会再分配归置组给它。

3. 查看OSD的状态

# 查看集群的osd状态
# 查看指定osd的状态:ceph osd dump 3

[root@node1 ~]# ceph osd dump
epoch 242
fsid a1001d7b-e11e-48b5-9d18-759aeb238b21
created 2020-05-25 15:25:44.802972
modified 2020-05-26 13:22:00.626733
flags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
crush_version 23
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
require_min_compat_client luminous
min_compat_client luminous
require_osd_release nautilus
pool 8 'pool' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 60 flags hashpspool,selfmanaged_snaps max_bytes 214748364800 stripe_width 0 application rbd
	removed_snaps [1~3]
max_osd 4
osd.0 up   in  weight 1 up_from 231 up_thru 235 down_at 230 last_clean_interval [13,228) [v2:192.168.102.21:6800/1518,v1:192.168.102.21:6801/1518] [v2:192.168.102.21:6802/1518,v1:192.168.102.21:6803/1518] exists,up 23438b52-b147-456e-8368-7fcb71daf267
osd.1 up   in  weight 1 up_from 229 up_thru 235 down_at 227 last_clean_interval [13,226) [v2:192.168.102.19:6800/1517,v1:192.168.102.19:6801/1517] [v2:192.168.102.19:6802/1517,v1:192.168.102.19:6803/1517] exists,up f66ea32b-bc4a-4806-92bd-958b6f291676
osd.2 up   in  weight 1 up_from 235 up_thru 235 down_at 228 last_clean_interval [13,227) [v2:192.168.102.20:6800/1501,v1:192.168.102.20:6801/1501] [v2:192.168.102.20:6802/1501,v1:192.168.102.20:6803/1501] exists,up 76ca3ce8-5f01-4272-835b-796881f27f8a
osd.3 down out weight 0 up_from 0 up_thru 0 down_at 0 last_clean_interval [0,0)   exists,new

4. 查看OSD目录树

[root@node1 ~]# ceph osd tree
ID  CLASS WEIGHT  TYPE NAME             STATUS REWEIGHT PRI-AFF 
 -1       0.78119 root default                                  
 -2       0.78119     rack rack                                 
-11       0.19530         host node1                         
  3   ssd 0.19530             osd.3       down        0 1.00000 
 -3       0.19530         host node2                         
  1   ssd 0.19530             osd.1         up  1.00000 1.00000 
 -4       0.19530         host node3                         
  2   ssd 0.19530             osd.2         up  1.00000 1.00000 
 -5       0.19530         host node4                         
  0   ssd 0.19530             osd.0         up  1.00000 1.00000 

5. 下线OSD (down in)

#让ID为3的osd down 掉,此时该 osd 不接受读写请求,但 osd 还是存活的,即对应down in状态
 
[root@node1 ~]# ceph osd down 0

[root@node1 ~]# ceph osd tree
ID  CLASS WEIGHT  TYPE NAME             STATUS REWEIGHT PRI-AFF 
 -1       0.78119 root default                                  
 -2       0.78119     rack rack                                 
-11       0.19530         host node1                         
  3   ssd 0.19530             osd.3       down  1.00000 1.00000 
 -3       0.19530         host node2                         
  1   ssd 0.19530             osd.1         up  1.00000 1.00000 
 -4       0.19530         host node3                         
  2   ssd 0.19530             osd.2         up  1.00000 1.00000 
 -5       0.19530         host node4                         
  0   ssd 0.19530             osd.0         up  1.00000 1.00000 

5. 上线OSD (up in)

#让ID为3的osd up起来,此时该 osd 接受读写请求,对应up in状态
 
[root@node1 ~]# ceph osd up 3

[root@node1 ~]# ceph osd tree
ID  CLASS WEIGHT  TYPE NAME             STATUS REWEIGHT PRI-AFF 
 -1       0.78119 root default                                  
 -2       0.78119     rack rack                                 
-11       0.19530         host node1                         
  3   ssd 0.19530             osd.3       up  1.00000 1.00000 
 -3       0.19530         host node2                         
  1   ssd 0.19530             osd.1         up  1.00000 1.00000 
 -4       0.19530         host node3                         
  2   ssd 0.19530             osd.2         up  1.00000 1.00000 
 -5       0.19530         host node4                         
  0   ssd 0.19530             osd.0         up  1.00000 1.00000 

 6. OSD踢出集群 (down out)

#让ID为3的osd踢出集群,对应down out状态
 
[root@node1 ~]# ceph osd out 3

7. OSD加入集群 (up in)

#让ID为3的osd加入集群,对应up in状态,即上线一个OSD
 
[root@node1 ~]# ceph osd in  3

8. 删除OSD (stop osd)

#在集群中删除一个OSD,需要先停止OSD,即stop osd
 
[root@node1 ~]# ceph osd rm osd.3

9. 从crush map中删除OSD

#在crush map中删除一个OSD
 
[root@node1 ~]# ceph osd crush rm osd.3

10. 删除host节点

#从集群中删除一个host节点
 
[root@node1 ~]# ceph osd crush rm node1

11. 查看最大OSD个数

#查看最大osd个数,默认最大是4osd节点
 
[root@node1 ~]# ceph osd getmaxosd

12. 设置最大OSD个数

#设置最大osd个数,默认最大是4osd节点
 
[root@node1 ~]# ceph osd setmaxosd 60

 13. 设置OSD的crush权重

[root@node1 ~]# ceph osd crush reweight osd.3 3.0

14. 暂停OSD

#暂停后整个集群不再接受数据

[root@node1 ~]# ceph osd pause

15. 开启OSD

#开启后再次接收数据

[root@node1 ~]# ceph osd unpause

16. 查看OSD参数

[root@node1 ~]# ceph --admin-daemon /var/run/ceph/ceph-osd.1.asok config show

17. 查看延迟

# 主要解决单块磁盘问题,如果有问题及时剔除OSD。统计的是平均值
# commit_latency 表示从接收请求到设置commit状态的时间间隔
# apply_latency 表示从接收请求到设置apply状态的时间间隔

[root@node1 ~]# ceph osd perf
osd commit_latency(ms) apply_latency(ms) 
  3                  0                 0 
  2                  3                 3 
  1                  4                 4 
  0                  3                 3 

18. 主亲和性

# Ceph 客户端读写数据时,总是连接 acting set 里的主 OSD (如 [2, 3, 4] 中, osd.2 是主的)。
# 有时候某个 OSD 与其它的相比并不适合做主 OSD (比如其硬盘慢、或控制器慢),最大化硬件利用率时为防止性能瓶颈(特别是读操作),
# 你可以调整 OSD 的主亲和性,这样 CRUSH 就尽量不把它用作 acting set 里的主 OSD 了。
 
#ceph osd primary-affinity <osd-id> <weight>   
 
[root@node1 ~]#  ceph osd primary-affinity 2 1.0

#主亲和性默认为 1 (就是说此 OSD 可作为主 OSD )。此值合法范围为 0-1 ,其中 0 意为此 OSD 不能用作主的,#1 意为 OSD 可用作主的;此权重小于 1 时, CRUSH 选择主 OSD 时选中它的可能性低

19. 查看osd对应盘的利用率

[root@node1 ~]# ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE DATA    OMAP    META     AVAIL   %USE  VAR  PGS STATUS 
 3   ssd 0.19530        0     0 B     0 B     0 B     0 B      0 B     0 B     0    0   0   down 
 1   ssd 0.19530  1.00000 198 GiB  43 GiB  39 GiB  39 KiB 1024 MiB 155 GiB 21.88 1.01 189     up 
 2   ssd 0.19530  1.00000 198 GiB  43 GiB  39 GiB  48 KiB 1024 MiB 155 GiB 21.60 1.00 191     up 
 0   ssd 0.19530  1.00000 198 GiB  42 GiB  38 GiB  41 KiB 1024 MiB 156 GiB 21.20 0.98 188     up 
                    TOTAL 594 GiB 128 GiB 116 GiB 130 KiB  3.0 GiB 466 GiB 21.56                 
MIN/MAX VAR: 0.98/1.01  STDDEV: 0.28

20. 提取crush图

# 提取最新crush图
# ceph osd getcrushmap -o {compiled-crushmap-filename}
 
[root@node1 ~]# ceph osd getcrushmap -o /tmp/crush
 
# 反编译crush图
# crushtool -d {compiled-crushmap-filename} -o {decompiled-crushmap-filename}
[root@node1 ~]# crushtool -d /tmp/crush -o /tmp/decompiled_crush

21. 注入crush图

#例如修改故障域host为osd,需要提取crush图,修改故障域,然后注入crush图

# 编译crush图
# crushtool -c {decompiled-crush-map-filename} -o {compiled-crush-map-filename}
 
[root@node1 ~]# crushtool -c /tmp/decompiled_crush -o /tmp/crush_new

#注入crush图
# ceph osd setcrushmap -i {compiled-crushmap-filename}
[root@node1 ~]# ceph osd setcrushmap -i /tmp/crush_new

22. 停止自动均衡

# 在集群维护过程中,如果某一个机架或者主机故障,而此时不想在停机维护osd过程中让crush自动均衡,提前设置为noout
 
[root@node1 ~]# ceph osd set noout

23. 取消停止自动均衡

# 取消停止自动均衡
 
[root@node1 ~]# ceph osd set noout

24. 删除OSD的痕迹

# 删除OSD的所有痕迹,包括其cephx加密秘钥,OSD ID 和crush map entry


ceph osd purge <osdname (id|osd.id)> {--yes-i-really-mean-it}
 
[root@node1 ~]# ceph osd purge 1 --yes-i-really-mean-it

此时osd已经不在集群中

[root@node1 ~]# ceph osd tree
 -1 0.04799 root default
 -2 0.00999     host luminous0
  5 0.00999         osd.5               up  1.00000          1.00000
 -3 0.01900     host luminous2
  0 0.00999         osd.0               up  1.00000          1.00000
  4 0.00999         osd.4               up  1.00000          1.00000
 -4 0.01900     host luminous1
  2 0.00999         osd.2               up  1.00000          1.00000
  3 0.00999         osd.3               up  1.00000          1.00000

原文:https://www.csdn.net/tags/NtzaAgysODk4MjYtYmxvZwO0O0OO0O0O.html 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223071.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 宽度学习详解(Broad Learning System)

    宽度学习详解(Broad Learning System)宽度学习(BroadLearningSystem)我也是最近才知道除了深度学习,还有一个神经网络叫宽度学习(下文统称BLS)。宽度学习是澳门大学科技学院院长陈俊龙和其学生于2018年1月发表的文章提出的,文章名为《BroadLearningSystem:AnEffectiveandEfficientIncrementalLearningSystemWithoutthe…

  • java中高级面试题总结(全面)_java高级面试题大汇总

    java中高级面试题总结(全面)_java高级面试题大汇总参考了网上的面试题,整理了一份面试题的资料。String,StringBuffer,StringBuilder的区别是什么?String为什么是不可变的?String是字符串常量,后两者是字符串变量。其中,StringBuffer是线程安全的,而StringBuilder是非线程安全的,线程安全会带来额外的开销,所以StringBuilde

  • js对input框的可编辑属性设置

    js对input框的可编辑属性设置

  • string和stringbuffer和stringbuilder的性能(Java是什么意思)

    【学习背景】主要是想通过OpenJDK提供的JMH工具测试下String、StringBuilder及StringBuffer字符串拼接的效率如何~关于JMH的介绍及具体使用,我的这篇博文中有介绍:Java–☀️面试官:LinkedList真的比ArrayList添加元素快?❤️‍本文通过OpenJDKJMH带你揭开真相《⭐建议收藏⭐》当然,除了主要验证三者的字符串拼接效率之外,还会对三者做一些区别分析及常见面试问题总结,希望加深自己对这三者的认知,分享出来,也希望能帮助到有需要的小伙伴~

  • html背景图片拉伸解决办法

    html背景图片拉伸解决办法html背景图片拉伸解决办法body{background-size:100%100%;//关键代码,直接拉伸背景图background-image:url(“img/99.jpg”);//背景图导入background-repeat:no-repeat;//不重复拉伸background-attachment:fixed;//此代码用于页面内容超出屏幕,

  • Java菜鸟教程 标识符

    Java菜鸟教程 标识符笔者作为一名Java新手,在跟随教程的学习过程中首先接触到的,是标识符。标识符,英文名identifier,词根是identity。顾名思义,它的作用就是给变量、类和方法命名。标识符只能以字母,下划线以及美元符号$开头。如:intabc = 3int$=9int _123=4但是,标识符不能包含除了数字,字母,下划线以及美元符号$之外的其他字符,否则

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号