Hello,
On Tue, 09 Sep 2014 01:25:17 -0400 JR wrote:
> Greetings
>
> After running for a couple of hours, my attempt to re-balance a near ful
> disk has stopped with a stuck unclean error:
>
Which is exactly what I warned you about below and what you should have
also taken away from fully reading the "Uneven OSD usage" thread.
This also should hammer my previous point about your current cluster
size/utilization home. Even with a better (don't expect perfect) data
distribution, loss of one node might well find you with a full OSD again.
> root@osd45:~# ceph -s
> cluster c8122868-27af-11e4-b570-52540004010f
> health HEALTH_WARN 6 pgs backfilling; 6 pgs stuck unclean; recovery
> 13086/1158268 degraded (1.130%)
> monmap e1: 3 mons at
> {osd42=10.7.7.142:6789/0,osd43=10.7.7.143:6789/0,osd45=10.7.7.145:6789/0},
> election epoch 80, quorum 0,1,2 osd42,osd43,osd45
> osdmap e723: 8 osds: 8 up, 8 in
> pgmap v543113: 640 pgs: 634 active+clean, 6
> active+remapped+backfilling; 2222 GB data, 2239 GB used, 1295 GB / 3535
> GB avail; 8268B/s wr, 0op/s; 13086/1158268 degraded (1.130%)
> mdsmap e63: 1/1/1 up {0=osd42=up:active}, 3 up:standby
>
>From what I've read in the past the way forward here is to increase the
full ratio setting so it can finish the recovery.
Or add more OSDs, at least temporarily. See:
http://ceph.com/docs/master/rados/configuration/mon-config-ref/#storage-capacity
Read that and apply that knowledge to your cluster, I personally wouldn't
deploy it in this state.
Once the recovery is finished I'd proceed cautiously, see below.
>
> The sequence of events today that led to this were:
>
> # starting state: pg_num/pgp_num == 64
> ceph osd pool set rbd pg_num 128
> ceph osd pool set rbd pgp_num 128
> # there was a warning thrown up (which I've lost) and which left pgg_num
> == 64
> # nothing happens since pgp_num was inadvertently not raised
> ceph osd reweight-by-utilization
> # data moves from one osd on a host to another osd on same host
> ceph osd reweight 7 1
> # data moves back to roughly what it had been
Never mind the the lack of PGs to play with, manually lowering the weight
of the fullest OSD (in small steps) at this time might have given you at
least a more level playing field.
> ceph osd pool set volumes pg_num 192
> ceph osd pool set volumes pgp_num 192
> # data moves successfully
This would have been the time to check what actually happened and if
things improved or not (just adding PGs/PGPs might not be enough) and
again to manually reweight overly full OSDs.
> ceph osd pool set rbd pg_num 192
> ceph osd pool set rbd pgp_num 192
> # data stuck
>
Baby steps. As in, applying the rise to 128 PGPs first.
But I guess you would have run into the full OSD either way w/o
reweighting things between steps.
> googling (nowadays known as research) reveals that these might be
> helpful:
>
> - ceph osd crush tunables optimal
Yes, this might help.
Not sure if that works with dumpling, but as I already mentioned dumpling
doesn't support "chooseleaf_vary_r". And hashspool.
And while the data movement caused by this probably will result in a
better balanced cluster (again, with too little PGs it will still do
poorly), in the process of getting there it might still run into a full
OSD scenario.
> - setting crush weights to 1
>
Dunno about then one, my crush weights were 1 when I deployed things
manually for the first time, the size of the OSD for the 2nd manual
deployment and ceph-deploy also uses the OSD size in TB.
Christian
> I resist doing anything for now in the hopes that someone has something
> coherent to say (Christian? ;-)
>
> Thanks
> JR
>
>
> On 9/8/2014 10:37 PM, JR wrote:
> > Hi Christian,
> >
> > Ha ...
> >
> > root@osd45:~# ceph osd pool get rbd pg_num
> > pg_num: 128
> > root@osd45:~# ceph osd pool get rbd pgp_num
> > pgp_num: 64
> >
> > That's the explanation! I did run the command but it spit out some
> > (what I thought was a harmless) warning; should have checked more
> > carefully.
> >
> > I now have the expected data movement.
> >
> > Thanks alot!
> > JR
> >
> > On 9/8/2014 10:04 PM, Christian Balzer wrote:
> >>
> >> Hello,
> >>
> >> On Mon, 08 Sep 2014 18:30:07 -0400 JR wrote:
> >>
> >>> Hi Christian, all,
> >>>
> >>> Having researched this a bit more, it seemed that just doing
> >>>
> >>> ceph osd pool set rbd pg_num 128
> >>> ceph osd pool set rbd pgp_num 128
> >>>
> >>> might be the answer. Alas, it was not. After running the above the
> >>> cluster just sat there.
> >>>
> >> Really now? No data movement, no health warnings during that in the
> >> logs, no other error in the logs or when issuing that command?
> >> Is it really at 128 now, verified with "ceph osd pool get rbd pg_num"?
> >>
> >> You really want to get this addressed as per the previous reply before
> >> doing anything further. Because with just 64 PGs (as in only 8 per
> >> OSD!) massive imbalances are a given.
> >>
> >>> Finally, reading some more, I ran:
> >>>
> >>> ceph osd reweight-by-utilization
> >>>
> >> Reading can be dangerous. ^o^
> >>
> >> I didn't mention this, as it never worked for me in any predictable
> >> way and with a desirable outcome, especially in situations like yours.
> >>
> >>> This accomplished moving the utilization of the first drive on the
> >>> affected node to the 2nd drive! .e.g.:
> >>>
> >>> -------
> >>> BEFORE RUNNING:
> >>> -------
> >>> Filesystem Use%
> >>> /dev/sdc1 57%
> >>> /dev/sdb1 65%
> >>> Filesystem Use%
> >>> /dev/sdc1 90%
> >>> /dev/sdb1 75%
> >>> Filesystem Use%
> >>> /dev/sdb1 52%
> >>> /dev/sdc1 52%
> >>> Filesystem Use%
> >>> /dev/sdc1 54%
> >>> /dev/sdb1 63%
> >>>
> >>> -------
> >>> AFTER RUNNING:
> >>> -------
> >>> Filesystem Use%
> >>> /dev/sdc1 57%
> >>> /dev/sdb1 65%
> >>> Filesystem Use%
> >>> /dev/sdc1 70% ** these two swapped (roughly) **
> >>> /dev/sdb1 92% ** ^^^^^ ^^^ ^^^^^^^ **
> >>> Filesystem Use%
> >>> /dev/sdb1 52%
> >>> /dev/sdc1 52%
> >>> Filesystem Use%
> >>> /dev/sdc1 54%
> >>> /dev/sdb1 63%
> >>>
> >>> root@osd45:~# ceph osd tree
> >>> # id weight type name up/down reweight
> >>> -1 3.44 root default
> >>> -2 0.86 host osd45
> >>> 0 0.43 osd.0 up 1
> >>> 4 0.43 osd.4 up 1
> >>> -3 0.86 host osd42
> >>> 1 0.43 osd.1 up 1
> >>> 5 0.43 osd.5 up 1
> >>> -4 0.86 host osd44
> >>> 2 0.43 osd.2 up 1
> >>> 6 0.43 osd.6 up 1
> >>> -5 0.86 host osd43
> >>> 3 0.43 osd.3 up 1
> >>> 7 0.43 osd.7 up 0.7007
> >>>
> >>> So this isn't the answer either.
> >>>
> >> It might have been, if it had more PGs to distribute things along, see
> >> above. But even then with the default dumpling tunables it might not
> >> be much better.
> >>
> >>> Could someone please chime in with an explanation/suggestion?
> >>>
> >>> I suspect that might make sense to use 'ceph osd reweight osd.7 1'
> >>> and then run some form of 'ceph osd crush ...'?
> >>>
> >> No need to crush anything, reweight it to 1 after adding PGs/PGPs and
> >> after all that data movement has finished slowly dial down any still
> >> overly utilized OSD.
> >>
> >> Also per the "Uneven OSD usage" thread, you might run into a "full"
> >> situation during data re-distribution. Increase PGs in small (64)
> >> increments.
> >>
> >>> Of course, I've read a number of things which suggest that the two
> >>> things I've done should have fixed my problem.
> >>>
> >>> Is it (gasp!) possible that this, as Christian suggests, is a
> >>> dumpling issue and, were I running on firefly, it would be
> >>> sufficient?
> >>>
> >> Running Firefly with all the tunables and probably hashpspool.
> >> Most of the tunables with the exception of "chooseleaf_vary_r" are
> >> available on dumpling, hashpspool isn't AFAIK.
> >> See http://ceph.com/docs/master/rados/operations/crush-map/#tunables
> >>
> >> Christian
> >>>
> >>> Thanks much
> >>> JR
> >>> On 9/8/2014 1:50 PM, JR wrote:
> >>>> Hi Christian,
> >>>>
> >>>> I have 448 PGs and 448 PGPs (according to ceph -s).
> >>>>
> >>>> This seems borne out by:
> >>>>
> >>>> root@osd45:~# rados lspools
> >>>> data
> >>>> metadata
> >>>> rbd
> >>>> volumes
> >>>> images
> >>>> root@osd45:~# for i in $(rados lspools); do echo "$i pg($(ceph osd
> >>>> pool get $i pg_num), pgp$(ceph osd pool get $i pg_num)"; done
> >>>> data pg(pg_num: 64, pgppg_num: 64
> >>>> metadata pg(pg_num: 64, pgppg_num: 64
> >>>> rbd pg(pg_num: 64, pgppg_num: 64
> >>>> volumes pg(pg_num: 128, pgppg_num: 128
> >>>> images pg(pg_num: 128, pgppg_num: 128
> >>>>
> >>>> According to the formula discussed in 'Uneven OSD usage,'
> >>>>
> >>>> "The formula is actually OSDs * 100 / replication
> >>>>
> >>>> in my case:
> >>>>
> >>>> 8*100/2=400
> >>>>
> >>>> So I'm erroring on the large size?
> >>>>
> >>>> Or, does this formula apply on by pool basis? Of my 5 pools I'm
> >>>> using 3:
> >>>>
> >>>> root@osd45:~# rados df|cut -c1-45
> >>>> pool name category KB
> >>>> data - 0
> >>>> images - 0
> >>>> metadata - 10
> >>>> rbd - 568489533
> >>>> volumes - 594078601
> >>>> total used 2326235048 285923
> >>>> total avail 1380814968
> >>>> total space 3707050016
> >>>>
> >>>> So should I up the number of PGs for the rbd and volumes pools?
> >>>>
> >>>> I'll continue looking at docs, but for now I'll send this off.
> >>>>
> >>>> Thanks very much, Christain.
> >>>>
> >>>> ps. This cluster is self-contained and all nodes in it are
> >>>> completely loaded (i.e., I can't add any more nodes nor disks).
> >>>> It's also not an option at the moment to upgrade to firefly (can't
> >>>> make a big change before sending it out the door).
> >>>>
> >>>>
> >>>>
> >>>> On 9/8/2014 12:09 PM, Christian Balzer wrote:
> >>>>>
> >>>>> Hello,
> >>>>>
> >>>>> On Mon, 08 Sep 2014 11:42:59 -0400 JR wrote:
> >>>>>
> >>>>>> Greetings all,
> >>>>>>
> >>>>>> I have a small ceph cluster (4 nodes, 2 osds per node) which
> >>>>>> recently started showing:
> >>>>>>
> >>>>>> root@ocd45:~# ceph health
> >>>>>> HEALTH_WARN 1 near full osd(s)
> >>>>>>
> >>>>>> admin@node4:~$ for i in 2 3 4 5; do sudo ssh osd4$i df -h |egrep
> >>>>>> 'Filesystem|osd/ceph'; done
> >>>>>> Filesystem Size Used Avail Use% Mounted on
> >>>>>> /dev/sdc1 442G 249G 194G 57% /var/lib/ceph/osd/ceph-5
> >>>>>> /dev/sdb1 442G 287G 156G 65% /var/lib/ceph/osd/ceph-1
> >>>>>> Filesystem Size Used Avail Use% Mounted on
> >>>>>> /dev/sdc1 442G 396G 47G 90% /var/lib/ceph/osd/ceph-7
> >>>>>> /dev/sdb1 442G 316G 127G 72% /var/lib/ceph/osd/ceph-3
> >>>>>> Filesystem Size Used Avail Use% Mounted on
> >>>>>> /dev/sdb1 442G 229G 214G 52% /var/lib/ceph/osd/ceph-2
> >>>>>> /dev/sdc1 442G 229G 214G 52% /var/lib/ceph/osd/ceph-6
> >>>>>> Filesystem Size Used Avail Use% Mounted on
> >>>>>> /dev/sdc1 442G 238G 205G 54% /var/lib/ceph/osd/ceph-4
> >>>>>> /dev/sdb1 442G 278G 165G 63% /var/lib/ceph/osd/ceph-0
> >>>>>>
> >>>>>>
> >>>>> See the very recent "Uneven OSD usage" for a discussion about this.
> >>>>> What are your PG/PGP values?
> >>>>>
> >>>>>> This cluster has been running for weeks, under significant load,
> >>>>>> and has been 100% stable. Unfortunately we have to ship it out of
> >>>>>> the building to another part of our business (where we will have
> >>>>>> little access to it).
> >>>>>>
> >>>>>> Based on what I've read about 'ceph osd reweight' I'm a bit
> >>>>>> hesitant to just run it (I don't want to do anything that impacts
> >>>>>> this cluster's stability).
> >>>>>>
> >>>>>> Is there another, better way to equalize the distribution the
> >>>>>> data on the osd partitions?
> >>>>>>
> >>>>>> I'm running dumpling.
> >>>>>>
> >>>>> As per the thread and my experience, Firefly would solve this. If
> >>>>> you can upgrade during a weekend or whenever there is little to no
> >>>>> access, do it.
> >>>>>
> >>>>> Another option (of course any and all of these will result in data
> >>>>> movement, so pick an appropriate time), would be to "use ceph osd
> >>>>> reweight" to lower the weight of osd.7 in particular.
> >>>>>
> >>>>> Lastly, given the utilization of your cluster, your really ought to
> >>>>> deploy more OSDs and/or more nodes, if a node would go down you'd
> >>>>> easily get into a "real" near full or full situation.
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> Christian
> >>>>>
> >>>>
> >>>
> >>
> >>
> >
>
--
Christian Balzer Network/Systems Engineer
[email protected] Global OnLine Japan/Fusion Communications
http://www.gol.com/
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com