Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
This project is now read‑only. Starting Monday, February 2, please use https://ibm-ceph.atlassian.net/ for all bug tracking management.

Bug 1194022

Summary: RFE: Improve 'ceph osd crush show-tunables' output
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Tupper Cole <tcole>
Component: DistributionAssignee: Dan Mick <dmick>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Harish NV Rao <hnallurv>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 1.2.2CC: adeza, dmick, flucifre, icolle, kdreyer, tcole
Target Milestone: rc   
Target Release: 1.3.4   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-08 18:01:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Show tunables output for various crush profiles none

Description Tupper Cole 2015-02-18 19:18:42 UTC
Created attachment 993266 [details]
Show tunables output for various crush profiles

Description of problem:
The output of `ceph osd crush show-tunables` is confusing to users. Now on a Firefly cluster default is equivalent to bobtail, optimal is equivalent to firefly and legacy is equivalent to argonaut.

As far as I can tell the optimal, legacy and profile are all related, but appear to be three different values to the user. 

I suggest that:
The "profile:" field be used to reflect argonaut, bobtail, firefly or custom. 

Setting "optimal" or "legacy" be reflected by showing "firefly" or "argonaut" in the profile field. 

The documentation needs to be cleaned up to be more clear to customers. It is not clear in the docs that setting firefly will enable chooseleaf_vary_r, and it is not reflected in `ceph osd crush show-tunables` in 0.80.7. Additinoally, looking at the output of `ceph osd crush show-tunables` the only apparent difference if the profile name and the "optimal" field. 
 

Actual results:
Attached. 

Expected results:


Additional info:

Comment 1 Federico Lucifredi 2015-03-26 00:29:46 UTC
Alfredo, master of usability, what say you?

Comment 2 Alfredo Deza 2015-03-27 16:33:26 UTC
This is how the output looks for Ceph version 0.80.9 (minus logging which I have no idea why I was getting it):

$ sudo ceph osd crush show-tunables
{ "choose_local_tries": 0,
  "choose_local_fallback_tries": 0,
  "choose_total_tries": 50,
  "chooseleaf_descend_once": 1,
  "chooseleaf_vary_r": 0,
  "straw_calc_version": 1,
  "profile": "unknown",
  "optimal_tunables": 0,
  "legacy_tunables": 0,
  "require_feature_tunables": 1,
  "require_feature_tunables2": 1,
  "require_feature_tunables3": 0,
  "has_v2_rules": 0,
  "has_v3_rules": 0}

------------------

It looks like unformatted JSON output which is OK for machine consumption but not for readability.

A nice tabular representation with the profile as the title with Tupper's recommendation would be much better.

Since we would be returning a text representation of the JSON output, we would also be able to add more prose if needed that would be difficult (or just not possible) with JSON output.
That output is *beyond* confusing. We should get rid of all those log messages that do not belong in the output of for the command.

Comment 3 Ken Dreyer (Red Hat) 2015-04-08 18:22:37 UTC
I'm not clear on what it would take to fix this bug. It sounds like we need some doc improvements, and some "ceph osd crush show-tunables" output improvements?

Comment 4 John Poelstra 2015-04-20 16:03:57 UTC
Interpreting icolle's set of release flag to "+" mean "+" for devel ack

Comment 5 John Poelstra 2015-04-20 16:09:06 UTC
Nevermind... I see what happened. Resetting.

Comment 7 Harish NV Rao 2015-04-21 05:06:27 UTC
Will this bug be fixed via code change or doc change or both? Please clarify. Also, please share the expected output if the fix is going to be in code.

Comment 8 Harish NV Rao 2015-07-15 15:21:53 UTC
Please refer to my comment 7 and provide the details requested there so i can ACK this bug.

Comment 9 Dan Mick 2015-07-15 21:25:04 UTC
I wasn't aware this bug was assigned to me until today.  I have no plans or design.

Comment 10 Dan Mick 2015-07-15 23:04:13 UTC
Reviewing the code that creates the lists briefly, it's not as simple as all that; the tunables are both individually settable (either by tunable
keywords in the crush map source or with an osd crush tunables command)
and settable as a lump (osd crush tunables only).  The output indicates whether the tunables exactly match the ones set by the 'group' name.  As I understand it, the main source of confusion is that multiple tests can match the set tunables, but only the first match is output as 'profile'.

I guess I would personally prefer to have "profile" multivalued, outputting all matching profiles rather than, apparently, just the first one tested.  If we did that, we could potentially roll up the idea of 'optimal' and 'legacy' into that same list.  It's still a bit opaque, as the question of "what exactly does optimal mean" isn't queryable either.

Separately, the JSON output, and its lack of sorting, is common to many Ceph commands, so I don't think it should change.  We could address this with a non-JSON form of the command, specified by "ceph osd crush show-tunables --format=plain" (since we can't change the default 'output JSON' form of the existing command without breaking backward compatibility).

What say you, BZ universe?

Comment 11 Harish NV Rao 2015-07-22 07:15:23 UTC
Hi Dan,

Will this be fixed in 1.3.1?

Can you please provide the steps and expected cli output to test this fix?

Regards,
Harish

Comment 12 Harish NV Rao 2015-07-23 11:02:56 UTC
Dan,

Can you please change the Target Release for this defect if it's not going to be fixed in 1.3.1?

Regards,
Harish

Comment 13 Ken Dreyer (Red Hat) 2015-07-23 14:50:00 UTC
(In reply to Harish NV Rao from comment #12)
> Can you please change the Target Release for this defect if it's not going
> to be fixed in 1.3.1?

Changed :)

Comment 15 Ken Dreyer (Red Hat) 2015-12-15 15:57:56 UTC
Dan's listed two code improvements here (comment #10):

    1. Make "profile" multivalued
    2. Introduce a "--format=plain" option

Tupper, will these suggestions work for you?

Dan can you please file bug(s) upstream at tracker.ceph.com to track these features, if they are not already implemented for Jewel?

Comment 16 Dan Mick 2015-12-17 19:10:46 UTC
I haven't made anything like a plan to do this; I've gotten no feedback at all from Tupper, so am considering this stalled until I get any kind of answer...

Comment 18 Dan Mick 2016-08-08 18:01:48 UTC
A long time with no update; I'm assuming this is no longer desired.

Comment 19 Red Hat Bugzilla 2023-09-14 23:58:11 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 500 days