Project

General

Profile

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?