ceph cluster extremely unbalanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi guys,

recently I took over a care of Ceph cluster that is extremely unbalanced. Cluster is running on Quincy 17.2.7 (upgraded Nautilus -> Octopus -> Quincy) and has 1428 OSDs (HDDs). We are running CephFS on it.

Crush failure domain is datacenter (there are 3), data pool is EC 3+3.

This cluster had and has balancer disabled for years. And was "balanced" manually by changing OSDs crush weights. So now it is complete mess and I would like to change it to have OSDs crush weight same (3.63898)  and to enable balancer with upmap.

From `ceph osd df ` sorted from the least used to most used OSDs:

ID    CLASS  WEIGHT   REWEIGHT  SIZE     RAW USE  DATA OMAP     META     AVAIL     %USE   VAR   PGS  STATUS
MIN/MAX VAR: 0.76/1.16  STDDEV: 5.97
                         TOTAL  5.1 PiB  3.7 PiB  3.7 PiB  2.9 MiB  8.5 TiB   1.5 PiB  71.50  428    hdd  3.63898   1.00000  3.6 TiB  2.0 TiB  2.0 TiB    1 KiB  5.6 GiB   1.7 TiB  54.55  0.76   96      up  223    hdd  3.63898   1.00000  3.6 TiB  2.0 TiB  2.0 TiB    3 KiB  5.6 GiB   1.7 TiB  54.58  0.76   95      up
...

...

...

 591    hdd  3.53999   1.00000  3.6 TiB  3.0 TiB  3.0 TiB    1 KiB  7.0 GiB   680 GiB  81.74  1.14  125      up  832    hdd  3.59999   1.00000  3.6 TiB  3.0 TiB  3.0 TiB    4 KiB  6.9 GiB   680 GiB  81.75  1.14  114      up  248    hdd  3.63898   1.00000  3.6 TiB  3.0 TiB  3.0 TiB    3 KiB  7.2 GiB   646 GiB  82.67  1.16  121      up  559    hdd  3.63799   1.00000  3.6 TiB  3.0 TiB  3.0 TiB      0 B  7.0 GiB   644 GiB  82.70  1.16  123      up                          TOTAL  5.1 PiB  3.7 PiB  3.6 PiB  2.9 MiB  8.5 TiB   1.5 PiB  71.50
MIN/MAX VAR: 0.76/1.16  STDDEV: 5.97


crush rule:

{
    "rule_id": 10,
    "rule_name": "ec33hdd_rule",
    "type": 3,
    "steps": [
        {
            "op": "set_chooseleaf_tries",
            "num": 5
        },
        {
            "op": "set_choose_tries",
            "num": 100
        },
        {
            "op": "take",
            "item": -2,
            "item_name": "default~hdd"
        },
        {
            "op": "choose_indep",
            "num": 3,
            "type": "datacenter"
        },
        {
            "op": "choose_indep",
            "num": 2,
            "type": "osd"
        },
        {
            "op": "emit"
        }
    ]
}

My question is what would be proper and most safer way to make it happen.

* should I first enable balancer and let it do its work and after that change the OSDs crush weights to be even?

* or should it otherwise - first to make crush weights even and then enable the balancer?

* or is there another safe(r) way?

What are the ideal balancer settings for that?

I'm expecting a large data movement, and this is production cluster.

I'm also afraid that during the balancing or changing crush weights some OSDs become full. I've tried that already and had to move some PGs manually to another OSDs in the same failure domain.


I would appreciate any suggestion on that.

Thank you!
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux