ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ceph crush进阶

2021-11-28 20:31:34  阅读:202  来源: 互联网

标签:crush 进阶 MiB 50 ceph hdd GiB KiB


ceph 集群中由mon服务器维护的5中运行图

 monitor负责监控整个集群的监控状态,以及维护集群成员关系状态、对等节点的状态,和集群的配置信息等。Ceph monitor通过维护cluster map的主复制来实现这些功能。

1,monitor map: 它包含监视节点端到端的信息,包括Ceph集群ID、monitor节点名称(hostname)、IP地址和端口号等。它还保存自monitor map被创建以来的最新版本号(epoch:每种map都维护着其历史版本,每个版本被称为一个epoch,epoch是一个单调递增的序列)。以及最后修改时间等。查看monitor map的命令 

root@ceph-deploy:~# ceph mon dump

2,OSD map: 它保存一些常用的信息,包括集群ID、OSD map自创建以来的最新版本号(epoch)及其最后修改时间,以及存储池相关的信息,包括存储池名称、ID、类型、副本级别(replication level)和PG。它还保存着OSD的信息,比如数量、状态、权重、最后清理间隔(last clean interval)以及OSD节点的信息。查看OSD map的命令 ,每个OSD 6s 汇报一次状态 ,检测到其他OSD状态,检测不到20s后剔除

root@ceph-deploy:~# ceph osd dump

3,PG map:它保存的信息包括PG的版本、时间戳、OSD map的最新版本号(epoch)、容量已满百分比(full ratio,是指集群被认为容量已满时的最大使用百分比,此时Ceph集群禁止客户端读写数据)、容量将满百分比(near full ration,是指集群被认为容量将满时的最大使用百分比,此时Ceph集群将发出告警)等。它还记录了每个PG的ID(其格式为{pool-num}.{pg-id})、对象数量、状态、状态时间戳(state stamp)、up OSD sets(一个up OSD set指某些特定PG map版本的PG的所有副本所在的OSD列表,该I列表是有序的,第一个OSD为主OSD,其余为从OSD)、acting OSD sets(acting OSD set指该PG的所有副本所在的OSD的列表),以及清理(scrub)的信息。查看PG map的命令

root@ceph-deploy:~# ceph pg dump

4,CRUSH map: 基于OSD map创建新的PG组合列表用于存储数据。它保存的信息包括集群设备列表、bucket列表、故障域(failure domain)分层结构、保存数据时用到的为故障域定义的规则(rules)等。查看crush map命令

root@ceph-deploy:~# ceph osd crush dump

5,MDS map: 它保存的信息包括MDS map当前版本号(epoch)、MDS map的创建和修改时间、数据和元数据存储池的ID、集群MDS数量以及MDS状态。查看命令

root@ceph-deploy:~# ceph mds metadata

 

obg--pg hash(oid)%pg==pgig

obj--osd crush根据当前mon运行图返回pg内的最新的OSD组合,数据即可开始往主写然后往副本同步

crush算法针对目的节点选择

5种算法 Uniform List Tree Straw Straw2(默认)

root@ceph-deploy:~# ceph osd df

ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
0 hdd 0.04880 1.00000 50 GiB 73 MiB 51 MiB 4 KiB 22 MiB 50 GiB 0.14 0.90 175 up

WEIGHT

REWEIGHT

root@ceph-deploy:~# ceph osd crush reweight osd.3 10000 #立即生效 加pG

MIN/MAX VAR: 0.52/2.13 STDDEV: 0.09

root@ceph-deploy:~# ceph osd df 
ID  CLASS  WEIGHT       REWEIGHT  SIZE     RAW USE  DATA     OMAP    META     AVAIL    %USE  VAR   PGS  STATUS
 0    hdd      0.04880   1.00000   50 GiB  134 MiB   94 MiB   4 KiB   40 MiB   50 GiB  0.26  1.41  201      up
 1    hdd      0.04880   1.00000   50 GiB   89 MiB   64 MiB   5 KiB   26 MiB   50 GiB  0.17  0.94  172      up
 2    hdd      0.04880   1.00000   50 GiB   80 MiB   48 MiB   4 KiB   31 MiB   50 GiB  0.16  0.84  187      up
 3    hdd  10000.00000   1.00000   50 GiB  205 MiB  161 MiB   4 KiB   44 MiB   50 GiB  0.40  2.16  512      up
 4    hdd      0.04880   1.00000   50 GiB   51 MiB   14 MiB   5 KiB   36 MiB   50 GiB  0.10  0.54    8      up
 5    hdd      0.04880   1.00000   50 GiB   49 MiB   18 MiB   4 KiB   31 MiB   50 GiB  0.10  0.52   12      up
 6    hdd      0.04880   1.00000   50 GiB   74 MiB   38 MiB   3 KiB   35 MiB   50 GiB  0.14  0.77  169      up
 7    hdd      0.04880   1.00000   50 GiB  120 MiB   86 MiB   3 KiB   35 MiB   50 GiB  0.23  1.26  141      up
 8    hdd      0.04880   1.00000   50 GiB   54 MiB   22 MiB   7 KiB   31 MiB   50 GiB  0.11  0.57  134      up
                           TOTAL  450 GiB  856 MiB  546 MiB  43 KiB  309 MiB  449 GiB  0.19   

root@ceph-deploy:~# ceph osd crush reweight osd.3 0  #迁移到0

root@ceph-deploy:~# ceph osd  reweight 0 0.5  #减少pg

root@ceph-deploy:~# ceph osd df 
ID  CLASS  WEIGHT   REWEIGHT  SIZE     RAW USE  DATA     OMAP    META     AVAIL    %USE  VAR   PGS  STATUS
 0    hdd  0.04880   0.50000   50 GiB   72 MiB   27 MiB   4 KiB   45 MiB   50 GiB  0.14  0.70   85      up
 1    hdd  0.04880   1.00000   50 GiB  109 MiB   78 MiB   5 KiB   31 MiB   50 GiB  0.21  1.08  227      up
 2    hdd  0.04880   1.00000   50 GiB  122 MiB   81 MiB   4 KiB   40 MiB   50 GiB  0.24  1.20  200      up
 3    hdd        0   1.00000   50 GiB   62 MiB   12 MiB   4 KiB   50 MiB   50 GiB  0.12  0.61    0      up
 4    hdd  0.04880   1.00000   50 GiB  138 MiB  111 MiB   5 KiB   27 MiB   50 GiB  0.27  1.36  249      up
 5    hdd  0.04880   1.00000   50 GiB  101 MiB   63 MiB   4 KiB   37 MiB   50 GiB  0.20  0.99  263      up
 6    hdd  0.04880   1.00000   50 GiB  107 MiB   66 MiB   3 KiB   40 MiB   50 GiB  0.21  1.05  174      up
 7    hdd  0.04880   1.00000   50 GiB  117 MiB   73 MiB   3 KiB   44 MiB   50 GiB  0.23  1.15  155      up
 8    hdd  0.04880   1.00000   50 GiB   88 MiB   47 MiB   7 KiB   41 MiB   50 GiB  0.17  0.86  183      up
                       TOTAL  450 GiB  915 MiB  558 MiB  43 KiB  357 MiB  449 GiB  0.20                   
MIN/MAX VAR: 0.61/1.36  STDDEV: 0.04

 

crush运行图管理

#导出crush运行图

root@ceph-deploy:~/ceph# ceph osd getcrushmap -o crushmap  
43

#叫运行图转换为文本

root@ceph-deploy:~/ceph# crushtool -d /root/ceph/crushmap > crushmap.txt

root@ceph-deploy:~/ceph# cat  crushmap.txt 
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54

# devices
device 0 osd.0 class hdd
device 1 osd.1 class hdd
device 2 osd.2 class hdd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class hdd
device 6 osd.6 class hdd
device 7 osd.7 class hdd
device 8 osd.8 class hdd

# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 zone
type 10 region
type 11 root

# buckets
host ceph-node01 {
    id -3        # do not change unnecessarily
    id -4 class hdd        # do not change unnecessarily
    # weight 0.146
    alg straw2
    hash 0    # rjenkins1
    item osd.0 weight 0.049
    item osd.1 weight 0.049
    item osd.2 weight 0.049
}
host ceph-node02 {
    id -5        # do not change unnecessarily
    id -6 class hdd        # do not change unnecessarily
    # weight 0.146
    alg straw2
    hash 0    # rjenkins1
    item osd.3 weight 0.049
    item osd.4 weight 0.049
    item osd.5 weight 0.049
}
host ceph-node03 {
    id -7        # do not change unnecessarily
    id -8 class hdd        # do not change unnecessarily
    # weight 0.146
    alg straw2
    hash 0    # rjenkins1
    item osd.6 weight 0.049
    item osd.7 weight 0.049
    item osd.8 weight 0.049
}
root default {
    id -1        # do not change unnecessarily
    id -2 class hdd        # do not change unnecessarily
    # weight 0.439
    alg straw2
    hash 0    # rjenkins1
    item ceph-node01 weight 0.146
    item ceph-node02 weight 0.146
    item ceph-node03 weight 0.146
}

# rules
rule replicated_rule {
    id 0
    type replicated
    min_size 1
    max_size 10
    step take default
    step chooseleaf firstn 0 type host
    step emit
}

# end crush map

 

标签:crush,进阶,MiB,50,ceph,hdd,GiB,KiB
来源: https://www.cnblogs.com/gxc888/p/15550547.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有