Ceph-Brag » History » Version 1
Jessica Mack, 06/22/2015 01:00 AM
1 | 1 | Jessica Mack | h1. Ceph-Brag |
---|---|---|---|
2 | |||
3 | h3. Summary |
||
4 | |||
5 | Ceph-brag is going to be an anonymized cluster reporting tool designed to collect a "registry" of Ceph clusters for community knowledge. This data will be displayed on a public web page using UUID by default, but users can claim their cluster and publish information about ownership if they so desire. |
||
6 | |||
7 | h3. Owners |
||
8 | |||
9 | * Loic Dachary <loic@dachary.org> |
||
10 | * Patrick McGarry (Inktank) |
||
11 | * Sebastien Han (eNovance) |
||
12 | * Sage Weil (Inktank) |
||
13 | |||
14 | h3. Interested Parties |
||
15 | |||
16 | * Mike Dawson <mike.dawson@cloudapt.com> |
||
17 | * Haomai Wang <haomaiwang@gmail.com> |
||
18 | * Danny Al-Gaaf <danny.al-gaaf@bisect.de> |
||
19 | |||
20 | h3. Current Status |
||
21 | |||
22 | * Use the http://wiki.ceph.com/Brag namespace for publication |
||
23 | * A teuthology task should be able to publish results if given proper credentials |
||
24 | * Setup consists of (declarative - e.g JSON/XML exportable) Topology, Hardware, OSs, Ceph (setup method, command/script steps and/or chef/puppet artifacts, final running ceph configs on node classes). |
||
25 | * *Apdex (Application Performance Index)* is an "open standard":https://en.wikipedia.org/wiki/Open_standard developed by an alliance of companies. It defines a standard method for reporting and comparing the performance of "software applications":https://en.wikipedia.org/wiki/Application_software in "computing":https://en.wikipedia.org/wiki/Computing. Its purpose is to convert measurements into insights about user satisfaction, by specifying a uniform way to analyze and report on the degree to which measured performance meets "user expectations":https://en.wikipedia.org/wiki/User_expectations. http://en.wikipedia.org/wiki/Apdex |
||
26 | * What relationship with https://blueprints.launchpad.net/oslo/+spec/opt-in-stats-tracking ? |
||
27 | * Check the new osd metadata as a way to extract information https://github.com/ceph/ceph/pull/843 |
||
28 | * lshw -xml to extract the hardware configuration |
||
29 | * CAS of the RAM https://github.com/enovance/edeploy/blob/master/build/sources/timings.c |
||
30 | * megacli on dell & hpacucli on HP ... to figure out more about disks |
||
31 | |||
32 | h3. Detailed Description |
||
33 | |||
34 | Client side is a 'ceph brag' or 'ceph-brag' command. Generates a lump of JSON that is anonymous and sends it to brag.ceph.com (or similar). Includes: |
||
35 | * a unique identifier for the cluster. this is not the cluster fsid, but a new uuid, generated once and stored via the config-key interface, so that subsequent ceph-brag commands wil re-use the same id. |
||
36 | * cluster creation date |
||
37 | * number of osds, mons, mdss, pgs |
||
38 | * number of bytes, objects, pools |
||
39 | * number of bytes, ios read/written |
||
40 | * number of unique ips (hosts)? |
||
41 | * count of crush items by type (root, rack, host, osd) |
||
42 | * per-pool metadata |
||
43 | ** replica count |
||
44 | ** type (just rep for now, soon ec) |
||
45 | * os, kernel info (once available) |
||
46 | * hardware information (CPUs,RAM,Network ... maybe reduced to some basic anonymised data) |
||
47 | * ceph version(s) |
||
48 | |||
49 | On each brag, dump the current ownership information for the cluster. By default this is empty/undefined. ceph-brag options can be used to update the following fields: |
||
50 | * Name |
||
51 | * Organization |
||
52 | * Contact email |
||
53 | * Use-case (rgw, openstack, genomics, hpc, log archival, backups, whatever) |
||
54 | |||
55 | We need to make sure to expose no critical information to the public that could be a source to run e.g. exploits or DDoS attacks against a cluster. This is critical, otherwise no big company will ever expose any information via this tool. It could be even a problem to provide information abou the used ceph version. |
||
56 | |||
57 | Usage: |
||
58 | |||
59 | p(. ceph-brag # generate brag json, dump to stdout |
||
60 | ceph-brag publish # post it! |
||
61 | ceph-brag update-metadata --name ... --organization ... --email ... --description ... |
||
62 | ceph-brag clear-metadata |
||
63 | ceph-brag unpublish --yes-i-am-shy |
||
64 | |||
65 | Server side is some WSGI or similar modern/cute REST endpoint. Simply logs the result to a database. |
||
66 | |||
67 | h3. Work items |
||
68 | |||
69 | h4. Coding tasks |
||
70 | |||
71 | # ceph-brag |
||
72 | ## generate all the json |
||
73 | # ceph-brag publish |
||
74 | # ceph-brag update-metadata |
||
75 | # ceph-brag clear-metadata |
||
76 | # ceph-brag unpublish |
||
77 | # ceph-brag server |
||
78 | # basic tool to summarize results |
||
79 | ## number of clusters, bytes, objects |
||
80 | ## os, ceph version histograms |
||
81 | |||
82 | h4. Build / release tasks |
||
83 | |||
84 | # deploy brag server to ceph.com |
||
85 | |||
86 | h4. Documentation tasks |
||
87 | |||
88 | # document security implications of ceph-brag |
||
89 | # document how to obtain the public database |
||
90 | ## programmatically, or by request from a human? |