├── Results ├── 2015 │ └── 20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35 │ │ ├── EXAMPLE_sysctl.conf │ │ ├── EXAMPLE_CBT-results.out │ │ ├── EXAMPLE_hardware.json │ │ ├── EXAMPLE_crush.map │ │ └── EXAMPLE_results.json └── 2016 │ └── 20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4 │ ├── EXAMPLE_sysctl.conf │ ├── EXAMPLE_CBT-results.out │ ├── results.json │ ├── crush.map │ └── hardware.json ├── bootstrapping ├── README.md ├── ceph-tests-data-4kr.csv ├── ceph-tests-data-4ms.csv ├── create-jsons.py └── create-jsons.ipynb ├── README.md ├── example.json ├── upload_tests.py └── kibana-export.json /Results/2015/20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35/EXAMPLE_sysctl.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Results/2016/20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4/EXAMPLE_sysctl.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Results/2015/20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35/EXAMPLE_CBT-results.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Results/2016/20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4/EXAMPLE_CBT-results.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootstrapping/README.md: -------------------------------------------------------------------------------- 1 | # Bootstrapping Ceph-brag benchmarking JSON documents 2 | 3 | Before there are enough JSON documents describing Ceph-brag benchmarks in the expected format (see [README.md in the rood directory](../README.md)), we are producing some. Those are based on benchmarks done in the past, with information collected in csv files ([ceph-tests-data-4kr.csv] and [ceph-tests-data-4ms.csv]). 4 | 5 | The process for producing the JSON documents, in a format suitable for being consumed by the script producing the ElasticSearch index, is as follows (a working Python3 envirionment is assumed): 6 | 7 | * Install Pandas: 8 | 9 | ``` 10 | pip3 insttall pandas 11 | ``` 12 | 13 | * Run the generator script: 14 | 15 | ``` 16 | python3 create-jsons.py 17 | ``` 18 | 19 | This will produce several JSON documents (files with .json extension) that can be used as input for the script generating the ElasticSearch index. To do that, go to the [README.md file in the main directory](../README.md) and follow instructions. 20 | 21 | The file create-jsons.ipynb is a Jupyter Python notebook producing the same results than the script. In fact, the script is just the notebook, saved as Python code. In case changes are needed to the script, the process would be changing the notebook, and re-generating the script from there. 22 | 23 | 24 | -------------------------------------------------------------------------------- /bootstrapping/ceph-tests-data-4kr.csv: -------------------------------------------------------------------------------- 1 | person,company,osd_servers_test,osd_test,osd_devices_test,osd_media,cost_raw_tb,ceph_data_protection,cost_usable_tb,,4KRR_IOPS_OSD,4KRR_media_cost_IOP,4KRR_IOPS_cluster,4KRR_latency_avg,4KRR_latency_95,4KRW_IOPS_OSD,4KRW_media_cost_IOP,4KRW_IOPS_cluster,4KRW_latency_avg,4KRW_latency_95,vendor,model,3_5_hdds,2_5_hdds,2_5_ssds,pcie_nvm,osd_device_model,osds_device,journal_drives,journal_model,cpu,cpu_sockets,ram_ddr,controller,hba_raid_model,network_interface,os_version,kernel,ceph_version,ceph_groups,net_public,net_cluster,client_nodes,client_os,client_vms,ceph_client,load_cbt,load_utility,load_io_queue,published,link,observations 2 | Blinick,Intel,5,80,20,PCIe flash,,Rep 2x,,,"57500",,"1150000",1.1,20.59,"8550",,"171000",6,127.69,Supermicro,1028U,0,0,0,4,Intel P3700,4,0,n/a,E5-2699v3,2,128,NVMe,n/a,1x 10GbE,CentOS 7.1,3.10-229,Hammer v0.94.3,,10GbE,not separate,6,CentOS 7.1,n/a,librados,Y,librbdfio,32,Y,http://sssslide.com/www.slideshare.net/Inktank_Ceph/accelerating-cassandra-workloads-on-ceph-with-allflash-pcie-ssds, 3 | Ramakrishna,Cisco,3,21,21,SAS SSD,,Rep 3x,,,"7952",,"167000",,,"1190",,"25000",,,Cisco,C220,0,0,7,0,Samsung SM1625,1,0,n/a,E5-2680v3,2,256,,,,,,,,,,,,,,,,,Y,https://www.youtube.com/watch?v=73w7JqU7lGM, 4 | Blinick,Intel,5,80,20,PCIe flash,,Rep 2x,,,"53600",,"1072001",1.77,35.28,"9910",,"198219",4.81,58.72,Supermicro,1028U,0,0,0,4,Intel DC P3700,4,0,n/a,E5-2699v3,2,128,NVMe,n/a,1x 10GbE,CentOS 7.1,3.10-229,Infernalis v9.2.0,4096,10GbE,not seperate,6,CentOS 7.1,n/a,librados,Y,librbdfio,32,Y,https://www.docdroid.net/X0kJcIp/quick-hammer-vs-infernalis-nvme-comparison.pdf.html, 5 | -------------------------------------------------------------------------------- /Results/2015/20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35/EXAMPLE_hardware.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardware": [ 3 | { 4 | "hostname": "burnupi01", 5 | "manufacturer": "Dell Inc.", 6 | "product_name": "PowerEdge R515", 7 | "cpu_version": "AMD Opteron(tm) Processor 4184", 8 | "cpu_speed_mhz": 2600, 9 | "core_count": 6, 10 | "memory_size_kb": 16418424, 11 | "controller": "PERC H700" 12 | }, 13 | { 14 | "hostname": "burnupi02", 15 | "manufacturer": "Dell Inc.", 16 | "product_name": "PowerEdge R515", 17 | "cpu_version": "AMD Opteron(tm) Processor 4184", 18 | "cpu_speed_mhz": 2600, 19 | "core_count": 6, 20 | "memory_size_kb": 16418424, 21 | "controller": "PERC H700" 22 | }, 23 | { 24 | "hostname": "burnupi03", 25 | "manufacturer": "Dell Inc.", 26 | "product_name": "PowerEdge R515", 27 | "cpu_version": "AMD Opteron(tm) Processor 4184", 28 | "cpu_speed_mhz": 2600, 29 | "core_count": 6, 30 | "memory_size_kb": 16418424, 31 | "controller": "PERC H700" 32 | } 33 | ], 34 | "disk": [ 35 | { 36 | "hostname": "burnupi01", 37 | "dev_path": "/dev/sda", 38 | "vendor": "TOSHIBA", 39 | "product": "MK1001TRKB", 40 | "revision": "DCA8", 41 | "capacity_bytes": "1000204886016", 42 | "rotation_rate": "7200 rpm", 43 | "type": "operating system" 44 | }, 45 | { 46 | "hostname": "burnupi01", 47 | "dev_path": "/dev/sdb", 48 | "vendor": "TOSHIBA", 49 | "product": "MK1001TRKB", 50 | "revision": "DCA8", 51 | "capacity_bytes": "1000204886016", 52 | "rotation_rate": "7200 rpm", 53 | "type": "unknown" 54 | }, 55 | { 56 | "hostname": "burnupi01", 57 | "dev_path": "/dev/sdc", 58 | "vendor": "TOSHIBA", 59 | "product": "MK1001TRKB", 60 | "revision": "DCA8", 61 | "capacity_bytes": "1000204886016", 62 | "rotation_rate": "7200 rpm", 63 | "type": "osd", 64 | "osd_id": "osd.0" 65 | }, 66 | { 67 | "hostname": "burnupi01", 68 | "dev_path": "/dev/sdi", 69 | "vendor": "", 70 | "product": "MZ-5S71000-0D3", 71 | "revision": "VBC3CD3Q", 72 | "capacity_bytes": "100030242816", 73 | "rotation_rate": "Solid State Device", 74 | "type": "osd", 75 | "osd_id": "osd.9" 76 | } 77 | ], 78 | } 79 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ceph-brag 2 | Ceph performance testing results repository. 3 | 4 | # Submission Requirements 5 | In order to have your Ceph performance results included in this repository you need to meet a few simple requirements: 6 | * Tests must be run with the CBT test harness (to ensure comparability) 7 | * Test setups must include >= 3 OSD servers 8 | * Test setups must include >= 2 OSD devices per server 9 | * IOPS/latency must be measured from the client perspective 10 | * Submitter must be willing to make results public 11 | 12 | # What to submit 13 | A properly formatted submission should come in the format of a pull request with a named folder in the format of: 14 | * "[Date]\_[Time(HHMMSS)]\_[cluster_uuid]" 15 | 16 | Which should contain the following: 17 | * JSON file following the format of example.json 18 | * A hardware info dump 19 | * A copy of sysctl 20 | * A copy of your crushmap 21 | * A pruned version of CBT results set 22 | 23 | For instructions on how to generate these files, read below: 24 | 25 | [To be done] 26 | 27 | # How to generate an ElasticSearch index from submissions 28 | 29 | We can use performance testing submissions to produce an ElasticSearch index, which can be shown with Kibana dashboards (see below). 30 | 31 | To produce that index, run the [upload_tests.py script](upload_tests.py), as follows (a working Python3 environment is assumed): 32 | 33 | * Install ElasticSearch-dsl: 34 | 35 | ``` 36 | pip3 install elasticsearch_dsl 37 | ``` 38 | 39 | * Run the script to generate the index. In this example, we will use the bootstrapping JSON documents to produce the index, assuming the ElasticSearch instance is at `http://elastic-ceph.bitergia.com:80`, with auth credentials ceph / XXX, and that the index to be created is `ceph-tests`. For more information about the bootstrapping JSON documents, read the [corresponding READM.md file](bootstrapping/README.md) 40 | 41 | ``` 42 | python3 upload_tests.py --dir bootstrapping/ \ 43 | --elasticsearch https://elasticsearch.bitergia.com/ceph ceph-tests --esauth ceph XXX 44 | ``` 45 | 46 | You can use any name for the index, but if you intend to use the Kibana dashboard provided in this directory, the index should be named `ceph-tests`. 47 | 48 | # How to produce a Kibana dashboard to visualize submissions 49 | 50 | Once the ElasticSearch index is created, we can produce a Kibana4 dashboard for visualizing its contents. For that, deploy a Kibana instance which uses the ElasticSearch instance where the index was uploaded (see above). Then, upload the [dashboard description kibana-export.json](kibana-export.json). For that, in Kibana4, click on "Settings", "Objects", "Import", and when prompted, select the mentioned file. Three dashboards, and all the needed visualizations, will be imported into Kibana: `Simple`, `Simple Random`, `Simple Sequential`. 51 | -------------------------------------------------------------------------------- /example.json: -------------------------------------------------------------------------------- 1 | { 2 | "information": { 3 | "cluter_uuid": "5e4eeae5-edf4-4d53-8ed5-5675207f9a35", 4 | "date": "2014-05-04T20:00:34", 5 | "submitter": { 6 | "person": "...", 7 | "company": "..." 8 | } 9 | }, 10 | "platform": { 11 | "osds": 23, 12 | "osd_servers": 11, 13 | "osd_devices": 23, 14 | "osd_media": "SAS HDD", 15 | "cost_raw_tb": 23.3, 16 | "ceph_data_protection": "Rep 3x", 17 | "cost_usable_tb": 22.1, 18 | "v_fio": "2.2.13", 19 | "v_sysbench": "0.5", 20 | "v_radosbench": "9.2.0", 21 | "v_collectl": "4.0.2" 22 | }, 23 | "osd_servers": { 24 | "server_vendor": "Quanta QCT", 25 | "server_model": "21P-4U/Dual", 26 | "3_5_hdds_for_osds": 12, 27 | "2_5_hdds_for_osds": 0, 28 | "2_5_ssds_for_osds": 0, 29 | "nvme_for_osds": 0, 30 | "journal_model": "Intel DC P3700", 31 | "CPU": "E5-2650v3", 32 | "CPU_sockets": 2, 33 | "RAM_GB": 128, 34 | "HBA/RAID": "HBA", 35 | "HBA/RAID_model": "LSI SAS3018", 36 | "Network_Interface": "1x 40G Quanta mezz, MLNX", 37 | "v_OS": "RHEL 7.1", 38 | "v_kernel": "3.10.0-229.14.1.el7" 39 | }, 40 | "pools": [ 41 | { 42 | "pool_id": 0, 43 | "pool_name": "data", 44 | "pool_pgpnum": 512, 45 | "pool_size": 2 46 | }, 47 | { 48 | "pool_id": 32, 49 | "pool_name": "ssd", 50 | "pool_pgpnum": 512, 51 | "pool_size": 1 52 | } 53 | ], 54 | "ceph": { 55 | "v_ceph": "RHCS 1.3", 56 | "pg_count": 10 57 | }, 58 | "network": { 59 | "pub_network": "10Gb", 60 | "cluster_network": "40Gb" 61 | }, 62 | "clients": { 63 | "client_node_count": 16, 64 | "client_OS": "RHEL", 65 | "client_vm_count": 10, 66 | "ceph_client": "librados" 67 | }, 68 | "load": { 69 | "CBT": 1, 70 | "load_test_util": "rados bench", 71 | "IO_queue_depth": 10 72 | }, 73 | "publication": { 74 | "published": 1, 75 | "publication_url": "" 76 | }, 77 | "notes": { 78 | "observations": "insufficient quantities of clients to drive load" 79 | }, 80 | "benchmarks": [ 81 | { 82 | "suite": "CBT_Throughput-optimized", 83 | "kind": "4M Sequential Read", 84 | "mbsec_osd_device": 90, 85 | "cost_usable_tb_mbsec": 3.4, 86 | "mbsec_cluster": 12540, 87 | "avg_latency": 650, 88 | "95th_latency": 3000 89 | }, 90 | { 91 | "suite": "CBT_Throughput-optimized", 92 | "kind": "4M Sequential Write", 93 | "mbsec_osd_device": 90, 94 | "cost_usable_tb_mbsec": 3.4, 95 | "mbsec_cluster": 3324, 96 | "avg_latency": 2480, 97 | "95th_latency": 6700 98 | }, 99 | { 100 | "suite": "CBT_IOPS-optimized", 101 | "kind": "4K Random Read", 102 | "iops_osd": 57500, 103 | "cost_usable_tb_iop": 23, 104 | "iops_cluster": 1150000, 105 | "avg_latency": 1.1, 106 | "95th_latency": 20.59 107 | }, 108 | { 109 | "suite": "CBT_IOPS-optimized", 110 | "kind": "4K Random Write", 111 | "iops_osd": 8550, 112 | "cost_usable_tb_iop": 34, 113 | "iops_cluster": 171000, 114 | "avg_latency": 6, 115 | "95th_latency": 127.69 116 | }, 117 | { 118 | "suite": "COSBench_object-optimized", 119 | "kind": "Not yet implemented" 120 | }, 121 | { 122 | "suite": "CBT_DB-optimized", 123 | "kind": "Not yet implemented" 124 | } 125 | ] 126 | } 127 | -------------------------------------------------------------------------------- /Results/2015/20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35/EXAMPLE_crush.map: -------------------------------------------------------------------------------- 1 | device 0 osd.0 2 | device 1 osd.1 3 | device 2 osd.2 4 | device 3 osd.3 5 | device 4 osd.4 6 | device 5 osd.5 7 | device 6 osd.6 8 | device 7 osd.7 9 | 10 | host ceph-osd-ssd-server-1 { 11 | id -1 12 | alg straw 13 | hash 0 14 | item osd.0 weight 1.00 15 | item osd.1 weight 1.00 16 | } 17 | 18 | host ceph-osd-ssd-server-2 { 19 | id -2 20 | alg straw 21 | hash 0 22 | item osd.2 weight 1.00 23 | item osd.3 weight 1.00 24 | } 25 | 26 | host ceph-osd-platter-server-1 { 27 | id -3 28 | alg straw 29 | hash 0 30 | item osd.4 weight 1.00 31 | item osd.5 weight 1.00 32 | } 33 | 34 | host ceph-osd-platter-server-2 { 35 | id -4 36 | alg straw 37 | hash 0 38 | item osd.6 weight 1.00 39 | item osd.7 weight 1.00 40 | } 41 | 42 | root platter { 43 | id -5 44 | alg straw 45 | hash 0 46 | item ceph-osd-platter-server-1 weight 2.00 47 | item ceph-osd-platter-server-2 weight 2.00 48 | } 49 | 50 | root ssd { 51 | id -6 52 | alg straw 53 | hash 0 54 | item ceph-osd-ssd-server-1 weight 2.00 55 | item ceph-osd-ssd-server-2 weight 2.00 56 | } 57 | 58 | rule data { 59 | ruleset 0 60 | type replicated 61 | min_size 2 62 | max_size 2 63 | step take platter 64 | step chooseleaf firstn 0 type host 65 | step emit 66 | } 67 | 68 | rule metadata { 69 | ruleset 1 70 | type replicated 71 | min_size 0 72 | max_size 10 73 | step take platter 74 | step chooseleaf firstn 0 type host 75 | step emit 76 | } 77 | 78 | rule rbd { 79 | ruleset 2 80 | type replicated 81 | min_size 0 82 | max_size 10 83 | step take platter 84 | step chooseleaf firstn 0 type host 85 | step emit 86 | } 87 | 88 | rule platter { 89 | ruleset 3 90 | type replicated 91 | min_size 0 92 | max_size 10 93 | step take platter 94 | step chooseleaf firstn 0 type host 95 | step emit 96 | } 97 | 98 | rule ssd { 99 | ruleset 4 100 | type replicated 101 | min_size 0 102 | max_size 4 103 | step take ssd 104 | step chooseleaf firstn 0 type host 105 | step emit 106 | } 107 | 108 | rule ssd-primary { 109 | ruleset 5 110 | type replicated 111 | min_size 5 112 | max_size 10 113 | step take ssd 114 | step chooseleaf firstn 1 type host 115 | step emit 116 | step take platter 117 | step chooseleaf firstn -1 type host 118 | step emit 119 | } 120 | -------------------------------------------------------------------------------- /Results/2015/20150504_200034_5e4eeae5-edf4-4d53-8ed5-5675207f9a35/EXAMPLE_results.json: -------------------------------------------------------------------------------- 1 | { 2 | "information": { 3 | "cluter_uuid": "5e4eeae5-edf4-4d53-8ed5-5675207f9a35", 4 | "date": "2014-05-04T20:00:34", 5 | "submitter": { 6 | "person": "...", 7 | "company": "...", 8 | }, 9 | "note": "a note about this test", 10 | }, 11 | "platform": { 12 | "osds": 23, 13 | "osd_servers": 11, 14 | "osd_devices": 23, 15 | "osd_media": "SAS HDD", 16 | "cost_raw_tb": 23.3, 17 | "ceph_data_protection": "Rep 3x", 18 | "cost_usable_tb": 22.1, 19 | "v_fio": "2.2.13", 20 | "v_sysbench": "0.5", 21 | "v_radosbench": "9.2.0", 22 | "v_collectl": "4.0.2", 23 | }, 24 | "osd_servers": { 25 | "server_vendor": "Quanta QCT", 26 | "server_model": "21P-4U/Dual", 27 | "3_5_hdds_for_osds": 12, 28 | "2_5_hdds_for_osds": 0, 29 | "2_5_ssds_for_osds": 0, 30 | "nvme_for_osds": 0, 31 | "journal_model": "Intel DC P3700", 32 | "CPU": "E5-2650v3", 33 | "CPU_sockets": 2, 34 | "RAM_GB": 128, 35 | "HBA/RAID": "HBA", 36 | "HBA/RAID_model": "LSI SAS3018", 37 | "Network_Interface": "1x 40G Quanta mezz, MLNX", 38 | "v_OS": "RHEL 7.1", 39 | "v_kernel": "3.10.0-229.14.1.el7", 40 | }, 41 | "pools": [ 42 | { 43 | "pool_id": 0, 44 | "pool_name": "data", 45 | "pool_pgpnum": 512, 46 | "pool_size": 2 47 | }, 48 | { 49 | "pool_id": 32, 50 | "pool_name": "ssd", 51 | "pool_pgpnum": 512, 52 | "pool_size": 1 53 | } 54 | ], 55 | "ceph": { 56 | "v_ceph": "RHCS 1.3", 57 | "pg_count": , 58 | }, 59 | "network": { 60 | "pub_network": "10GB", 61 | "cluster_network": "40GB", 62 | }, 63 | "clients": { 64 | "client_node_count": 16, 65 | "Client_OS": , 66 | "client_vm_count": , 67 | "ceph_client": "librados", 68 | }, 69 | "load": { 70 | "CBT": "Y", 71 | "load_test_util": "rados bench", 72 | "IO_queue_depth": , 73 | }, 74 | "publication": { 75 | "published": "Y", 76 | "publication_url": "", 77 | }, 78 | "notes": { 79 | "observations": "insufficient quantities of clients to drive load" 80 | }, 81 | "benchmarks": [ 82 | { 83 | "suite": "CBT_Throughput-optimized", 84 | "kind": "4M Sequential Read", 85 | "mbsec_osd_device": 90, 86 | "cost_usable_tb_mbsec": 3.4, 87 | "mbsec_cluster": 12540, 88 | "avg_latency": 650, 89 | "95th_latency": , 90 | }, 91 | { 92 | "suite": "CBT_Throughput-optimized", 93 | "kind": "4M Sequential Write", 94 | "mbsec_osd_device": 90, 95 | "cost_usable_tb_mbsec": 3.4, 96 | "mbsec_cluster": 3324, 97 | "avg_latency": 2480, 98 | "95th_latency": , 99 | }, 100 | { 101 | "suite": "CBT_IOPS-optimized", 102 | "kind": "4K Random Read", 103 | "iops_osd": 57500, 104 | "cost_usable_tb_iop": , 105 | "iops_cluster": 1150000, 106 | "avg_latency": 1.1, 107 | "95th_latency": 20.59, 108 | }, 109 | { 110 | "suite": "CBT_IOPS-optimized", 111 | "kind": "4K Random Write", 112 | "iops_osd": 8550, 113 | "cost_usable_tb_iop": , 114 | "iops_cluster": 171000, 115 | "avg_latency": 6, 116 | "95th_latency": 127.69, 117 | }, 118 | { 119 | "suite": "COSBench_object-optimized", 120 | "kind": "Not yet implemented", 121 | }, 122 | { 123 | "suite": "CBT_DB-optimized", 124 | "kind": "Not yet implemented", 125 | }, 126 | ] 127 | } 128 | 129 | 130 | -------------------------------------------------------------------------------- /Results/2016/20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4/results.json: -------------------------------------------------------------------------------- 1 | { 2 | "information": { 3 | "cluster_uuid": "5e4eeae5-edf4-4d53-8ed5-5675207f9a35", 4 | "date": "2014-05-04T20:00:34", 5 | "submitter": { 6 | "person": "Orlando Moreno", 7 | "company": "Intel Corporation" 8 | }, 9 | "note": "All-NVMe Ceph Cluster, Updated after OSS 2015" 10 | }, 11 | "platform": { 12 | "osds": 80, 13 | "osd_servers": 5, 14 | "osd_devices": 4, 15 | "osd_media": "NVMe", 16 | "cost_raw_tb": 23.3, 17 | "ceph_data_protection": "Rep 2x", 18 | "cost_usable_tb": 22.1, 19 | "v_fio": "2.2.11", 20 | "v_sysbench": "0.5", 21 | "v_radosbench": "9.2.0", 22 | "v_collectl": "4.0.2" 23 | }, 24 | "osd_servers": { 25 | "server_vendor": "SuperMicro", 26 | "server_model": "1028U-TN10RT+", 27 | "3_5_hdds_for_osds": 0, 28 | "2_5_hdds_for_osds": 0, 29 | "2_5_ssds_for_osds": 0, 30 | "nvme_for_osds": 4, 31 | "journal_model": "Intel DC P3700", 32 | "CPU": "E5-2699v3", 33 | "CPU_sockets": 2, 34 | "RAM_GB": 128, 35 | "HBA/RAID": "", 36 | "HBA/RAID_model": "", 37 | "Network_Interface": "Intel X540-AT2 10GbE", 38 | "v_OS": "RHEL 7.1", 39 | "v_kernel": "3.10.0-229.14.1.el7" 40 | }, 41 | "pools": [ 42 | { 43 | "pool_id": 0, 44 | "pool_name": "rbd", 45 | "pool_pgpnum": 512, 46 | "pool_size": 3 47 | }, 48 | { 49 | "pool_id": 1, 50 | "pool_name": "cbt-librbdfio", 51 | "pool_pgpnum": 4096, 52 | "pool_size": 2 53 | } 54 | ], 55 | "ceph": { 56 | "v_ceph": "RHCS 1.3", 57 | "pg_count": "" 58 | }, 59 | "network": { 60 | "pub_network": "10GB", 61 | "cluster_network": "" 62 | }, 63 | "clients": { 64 | "client_node_count": 6, 65 | "Client_OS": "RHEL 7.1", 66 | "client_vm_count": "", 67 | "ceph_client": "librados" 68 | }, 69 | "load": { 70 | "CBT": "Y", 71 | "load_test_util": "FIO", 72 | "IO_queue_depth": 32 73 | }, 74 | "publication": { 75 | "published": "Y", 76 | "publication_url": "" 77 | }, 78 | "notes": { 79 | "observations": "Low write performance, more room for further optimizations" 80 | }, 81 | "benchmarks": [ 82 | { 83 | "suite": "CBT_IOPS-optimized Reads", 84 | "kind": "100% 4K Random Read", 85 | "iops_osd": 13898, 86 | "cost_usable_tb_iop": "", 87 | "iops_cluster": 1111902, 88 | "avg_latency": 1.67, 89 | "95th_latency": 2.99 90 | }, 91 | { 92 | "suite": "CBT_IOPS-optimized Writes", 93 | "kind": "100% 4K Random Write", 94 | "iops_osd": 2403.4, 95 | "cost_usable_tb_iop": "", 96 | "iops_cluster": 192272, 97 | "avg_latency": 9.86, 98 | "95th_latency": 28.6 99 | }, 100 | { 101 | "suite": "OLTP", 102 | "kind": "70%R/30%W Random Mix", 103 | "iops_osd": 5076.1, 104 | "cost_usable_tb_iop": "", 105 | "iops_cluster": 406088, 106 | "avg_latency": 4.66, 107 | "95th_latency": 28.85 108 | }, 109 | { 110 | "suite": "Sequential Write Performance", 111 | "kind": "512K 100% 16QD Sequential Write", 112 | "mbsec_osd_device": 40.18, 113 | "cost_usable_tb_mbsec": "", 114 | "mbsec_cluster": 3214.46, 115 | "avg_latency": 152.20, 116 | "95th_latency": 483.00 117 | }, 118 | { 119 | "suite": "Sequential Read Performance", 120 | "kind": "512K 100% 16QD Sequential Read", 121 | "mbsec_osd_device": 73.60, 122 | "cost_usable_tb_mbsec": "", 123 | "mbsec_cluster": 5888.07, 124 | "avg_latency": 83.42, 125 | "95th_latency": 276.44 126 | }, 127 | { 128 | "suite": "Sequential Mixed Performance", 129 | "kind": "512K 70%R/30%W 16QD Sequential Mix", 130 | "mbsec_osd_device": 70.39, 131 | "cost_usable_tb_mbsec": "", 132 | "mbsec_cluster": 5631.31, 133 | "avg_latency": 87.06, 134 | "95th_latency": 639.54 135 | }, 136 | { 137 | "suite": "Cassandra-like Workload", 138 | "kind": "8K/12K 50%R/50%W 8QD Sequential Mix", 139 | "iops_osd": 2580.68, 140 | "cost_usable_tb_iop": "", 141 | "iops_cluster": 206455, 142 | "avg_latency": 2.29, 143 | "95th_latency": 9.95 144 | } 145 | ] 146 | } 147 | 148 | 149 | -------------------------------------------------------------------------------- /bootstrapping/ceph-tests-data-4ms.csv: -------------------------------------------------------------------------------- 1 | person,company,osd_servers_test,osd_test,osd_devices_test,osd_media,cost_raw_tb,ceph_data_protection,cost_usable_tb,,4MSR_mbsec_osd_device,4MSR_cost_usable_tb_mbsec,4MSR_mbsec_cluster,4MSR_latency_avg,4MSR_latency_95,4MSW_mbsec_osd_device,4MSW_cost_usable_tb_mbsec,4MSW_mbsec_cluster,4MSW_latency_avg,4MSW_latency_95,vendor,model,3_5_hdds,2_5_hdds,2_5_ssds,pcie_nvm,osd_device_model,osds_device,journal_drives,journal_model,cpu,cpu_sockets,ram_ddr,controller,hba_raid_model,network_interface,os_version,kernel,ceph_version,ceph_groups,net_public,net_cluster,client_nodes,client_os,client_vms,ceph_client,load_cbt,load_utility,load_io_queue,published,link,observations 2 | Huang,Quanta/QCT,4,140,140,SAS HDD,,Rep 3x,,,90,,12540,650,,24,,3324,2480,,Quanta QCT,T21P-4U/Dual,35,0,0,0,Seagate Model: ST6000NM0034 Size: 6TB,1,2,Intel DC P3700,E5-2650v3,2,128,HBA,LSI SAS3018,"1x 40G (Quanta mezz, MLNX)",RHEL7.1,3.10.0-229.14.1.el7,RHCS 1.3,,10Gb,40Gb,16,,n/a,librados,Y,rados bench,,N (Dec15),, 3 | Shankar,Red Hat,5,60,60,SAS HDD,,Rep 3x,,,88,,5275,964,,22,,1300,3911,,Quanta QCT,D51PH-1ULH,12,0,0,0,Seagate 2T 7200rpm SAS (ST2000NM0023),1,3,Intel DC S3710 (200G),E5-2660v3,2,64,HBA,LSI SAS3008,dual port 10G,,3.10.0-229.14.1.el7,RHCS 1.3,,10Gb,10Gb,10,,n/a,librados,Y,rados bench,,N (Dec15),, 4 | Ramakrishna,Cisco,8,224,224,SAS HDD,,Rep 3x,,,80,,18000,455,,18,,4000,4311,,Cisco,C3160,28,0,0,0,Seagate 6T 7200 rpm SAS3 12GbS,1,0,n/a,E5-2695v2,2,256,RAID,Mega RAID 12-Gbps,2x dual-port 10Gb UCS VIC 1227,RHEL 7.1,,RHCS 1.2.3,,4x10Gb (bonded),combined,16,,n/a,librados,Y,rados bench,,Y,http://www.cisco.com/c/en/us/products/collateral/servers-unified-computing/ucs-c-series-rack-servers/whitepaper-C11-735004.html, 5 | Bader,Red Hat,5,60,60,SATA HDD,,Rep 3x,,,74,,4427,920,,25,,1487,2743,,Supermicro,SSG-6028R-OSD072P,12,0,0,0,HGST 3T 7200rpm SATA,1,1,Intel DC P3700 (800GB),E5-2630v2,1,128,HBA,LSI SAS2308,dual-port 10G,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,10Gb,10Gb,8,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers, 6 | Bader,Red Hat,5,60,60,SATA HDD,,EC 3+2,,,73,,4406,463,,16,,943,2169,,Supermicro,SSG-6028R-OSD072P,12,0,0,0,HGST 3T 7200rpm SATA,1,0,n/a,E5-2630v2,1,128,HBA,LSI SAS2308,dual-port 10G,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,10Gb,10Gb,8,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers, 7 | Ramakrishna,Cisco,3,168,168,SAS HDD,,Rep 3x,,,58,,9800,434,,15,,2500,2331,,Cisco,C3160,56,0,0,0,Seagate 6T 7200 rpm SAS3 12GbS,1,0,n/a,E5-2695v2,2,256,RAID,Mega RAID 12-Gbps,2x dual-port 10Gb UCS VIC 1227,RHEL 7.1,,RHCS 1.2.3,,4x10Gb (bonded),combined,16,,n/a,librados,Y,rados bench,,Y,http://www.cisco.com/c/en/us/products/collateral/servers-unified-computing/ucs-c-series-rack-servers/whitepaper-C11-735004.html, 8 | Ramakrishna,Cisco,8,448,448,SAS HDD,,Rep 3x,,,42,,19000,323,,14,,6200,1211,,Cisco,C3160,56,0,0,0,Seagate 6T 7200 rpm SAS3 12GbS,1,0,n/a,E5-2695v2,2,256,RAID,Mega RAID 12-Gbps,2x dual-port 10Gb UCS VIC 1227,RHEL 7.1,,RHCS 1.2.3,,4x10Gb (bonded),combined,16,,n/a,librados,Y,rados bench,,Y,http://www.cisco.com/c/en/us/products/collateral/servers-unified-computing/ucs-c-series-rack-servers/whitepaper-C11-735004.html, 9 | Bader,Red Hat,3,180,180,SATA HDD,,Rep 3x,,,37,,6607,309,,10,,1804,1134,,Supermicro,SSG-6048R-OSD432,60,0,0,0,Seagate 6T 7200 rpm SAS3 (ST6000MN0034),1,12,Seagate ST200FM0053 (200G),EF-2697v2,2,256,HBA,3x LSI SAS2308,1x 40G Mellanox Connect X-3,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,40Gb,combined,4,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 10 | Bader,Red Hat,6,216,216,SATA HDD,,Rep 3x,,,34,,7444,323,,14,,3128,913,,Supermicro,SSG-6048R-OSD216,36,0,0,0,HGST 3T 7200rpm SATA,1,2,Intel DC P3700 (800GB),E5-2630v2,2,128,HBA,2x LSI SAS2308,1x 40G Mellanox Connect X-3,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,40Gb,combined,8,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 11 | Bader,Red Hat,5,180,180,SATA HDD,,Rep 3x,,,30,,5404,754,,11,,1943,2100,,Supermicro,SSG-6048R-OSD216,36,0,0,0,HGST 3T 7200rpm SATA,1,2,Intel DC P3700 (800GB),E5-2630v2,2,128,HBA,2x LSI SAS2308,dual-port 10G (Intel 82599ES),RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,10Gb,10Gb,8,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 12 | Bader,Red Hat,3,216,216,SATA HDD,,Rep 3x,,,28,,6080,336,,6,,1302,1724,,Supermicro,SSG-6048R-OSD432,72,0,0,0,Seagate 6T 7200 rpm SAS3 (ST6000MN0034),1,0,n/a,EF-2697v2,2,256,HBA,3x LSI SAS2308,1x 40G Mellanox Connect X-3,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,40Gb,combined,4,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 13 | Bader,Red Hat,5,180,180,SATA HDD,,EC 3+2,,,25,,4481,910,,12,,2162,1887,,Supermicro,SSG-6048R-OSD216,36,0,0,0,HGST 3T 7200rpm SATA,1,0,n/a,E5-2630v2,2,128,HBA,2x LSI SAS2308,dual-port 10G (Intel 82599ES),RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,10Gb,10Gb,8,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 14 | Bader,Red Hat,3,216,216,SATA HDD,,EC 2+1,,,14,,2944,843,,11,,2427,843,,Supermicro,SSG-6048R-OSD432,72,0,0,0,Seagate 6T 7200 rpm SAS3 (ST6000MN0034),1,0,n/a,EF-2697v2,2,256,HBA,3x LSI SAS2308,1x 40G Mellanox Connect X-3,RHEL 7.1,3.10.0-229.el7.x86_64,RHCS 1.2.3,,40Gb,combined,4,,n/a,librados,Y,rados bench,,Y,http://www.redhat.com/en/resources/red-hat-ceph-storage-clusters-supermicro-storage-servers,insufficent quantity of clients to drive load 15 | -------------------------------------------------------------------------------- /Results/2016/20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4/crush.map: -------------------------------------------------------------------------------- 1 | # begin crush map 2 | tunable choose_local_tries 0 3 | tunable choose_local_fallback_tries 0 4 | tunable choose_total_tries 50 5 | tunable chooseleaf_descend_once 1 6 | tunable straw_calc_version 1 7 | 8 | # devices 9 | device 0 osd.0 10 | device 1 osd.1 11 | device 2 osd.2 12 | device 3 osd.3 13 | device 4 osd.4 14 | device 5 osd.5 15 | device 6 osd.6 16 | device 7 osd.7 17 | device 8 osd.8 18 | device 9 osd.9 19 | device 10 osd.10 20 | device 11 osd.11 21 | device 12 osd.12 22 | device 13 osd.13 23 | device 14 osd.14 24 | device 15 osd.15 25 | device 16 osd.16 26 | device 17 osd.17 27 | device 18 osd.18 28 | device 19 osd.19 29 | device 20 osd.20 30 | device 21 osd.21 31 | device 22 osd.22 32 | device 23 osd.23 33 | device 24 osd.24 34 | device 25 osd.25 35 | device 26 osd.26 36 | device 27 osd.27 37 | device 28 osd.28 38 | device 29 osd.29 39 | device 30 osd.30 40 | device 31 osd.31 41 | device 32 osd.32 42 | device 33 osd.33 43 | device 34 osd.34 44 | device 35 osd.35 45 | device 36 osd.36 46 | device 37 osd.37 47 | device 38 osd.38 48 | device 39 osd.39 49 | device 40 osd.40 50 | device 41 osd.41 51 | device 42 osd.42 52 | device 43 osd.43 53 | device 44 osd.44 54 | device 45 osd.45 55 | device 46 osd.46 56 | device 47 osd.47 57 | device 48 osd.48 58 | device 49 osd.49 59 | device 50 osd.50 60 | device 51 osd.51 61 | device 52 osd.52 62 | device 53 osd.53 63 | device 54 osd.54 64 | device 55 osd.55 65 | device 56 osd.56 66 | device 57 osd.57 67 | device 58 osd.58 68 | device 59 osd.59 69 | device 60 osd.60 70 | device 61 osd.61 71 | device 62 osd.62 72 | device 63 osd.63 73 | device 64 osd.64 74 | device 65 osd.65 75 | device 66 osd.66 76 | device 67 osd.67 77 | device 68 osd.68 78 | device 69 osd.69 79 | device 70 osd.70 80 | device 71 osd.71 81 | device 72 osd.72 82 | device 73 osd.73 83 | device 74 osd.74 84 | device 75 osd.75 85 | device 76 osd.76 86 | device 77 osd.77 87 | device 78 osd.78 88 | device 79 osd.79 89 | 90 | # types 91 | type 0 osd 92 | type 1 host 93 | type 2 chassis 94 | type 3 rack 95 | type 4 row 96 | type 5 pdu 97 | type 6 pod 98 | type 7 room 99 | type 8 datacenter 100 | type 9 region 101 | type 10 root 102 | 103 | # buckets 104 | host hswNode01 { 105 | id -2 # do not change unnecessarily 106 | # weight 16.000 107 | alg straw 108 | hash 0 # rjenkins1 109 | item osd.0 weight 1.000 110 | item osd.1 weight 1.000 111 | item osd.2 weight 1.000 112 | item osd.3 weight 1.000 113 | item osd.4 weight 1.000 114 | item osd.5 weight 1.000 115 | item osd.6 weight 1.000 116 | item osd.7 weight 1.000 117 | item osd.8 weight 1.000 118 | item osd.9 weight 1.000 119 | item osd.10 weight 1.000 120 | item osd.11 weight 1.000 121 | item osd.12 weight 1.000 122 | item osd.13 weight 1.000 123 | item osd.14 weight 1.000 124 | item osd.15 weight 1.000 125 | } 126 | host hswNode02 { 127 | id -4 # do not change unnecessarily 128 | # weight 16.000 129 | alg straw 130 | hash 0 # rjenkins1 131 | item osd.16 weight 1.000 132 | item osd.17 weight 1.000 133 | item osd.18 weight 1.000 134 | item osd.19 weight 1.000 135 | item osd.20 weight 1.000 136 | item osd.21 weight 1.000 137 | item osd.22 weight 1.000 138 | item osd.23 weight 1.000 139 | item osd.24 weight 1.000 140 | item osd.25 weight 1.000 141 | item osd.26 weight 1.000 142 | item osd.27 weight 1.000 143 | item osd.28 weight 1.000 144 | item osd.29 weight 1.000 145 | item osd.30 weight 1.000 146 | item osd.31 weight 1.000 147 | } 148 | host hswNode03 { 149 | id -5 # do not change unnecessarily 150 | # weight 16.000 151 | alg straw 152 | hash 0 # rjenkins1 153 | item osd.32 weight 1.000 154 | item osd.33 weight 1.000 155 | item osd.34 weight 1.000 156 | item osd.35 weight 1.000 157 | item osd.36 weight 1.000 158 | item osd.37 weight 1.000 159 | item osd.38 weight 1.000 160 | item osd.39 weight 1.000 161 | item osd.40 weight 1.000 162 | item osd.41 weight 1.000 163 | item osd.42 weight 1.000 164 | item osd.43 weight 1.000 165 | item osd.44 weight 1.000 166 | item osd.45 weight 1.000 167 | item osd.46 weight 1.000 168 | item osd.47 weight 1.000 169 | } 170 | host hswNode04 { 171 | id -6 # do not change unnecessarily 172 | # weight 16.000 173 | alg straw 174 | hash 0 # rjenkins1 175 | item osd.48 weight 1.000 176 | item osd.49 weight 1.000 177 | item osd.50 weight 1.000 178 | item osd.51 weight 1.000 179 | item osd.52 weight 1.000 180 | item osd.53 weight 1.000 181 | item osd.54 weight 1.000 182 | item osd.55 weight 1.000 183 | item osd.56 weight 1.000 184 | item osd.57 weight 1.000 185 | item osd.58 weight 1.000 186 | item osd.59 weight 1.000 187 | item osd.60 weight 1.000 188 | item osd.61 weight 1.000 189 | item osd.62 weight 1.000 190 | item osd.63 weight 1.000 191 | } 192 | host hswNode05 { 193 | id -7 # do not change unnecessarily 194 | # weight 16.000 195 | alg straw 196 | hash 0 # rjenkins1 197 | item osd.64 weight 1.000 198 | item osd.65 weight 1.000 199 | item osd.66 weight 1.000 200 | item osd.67 weight 1.000 201 | item osd.68 weight 1.000 202 | item osd.69 weight 1.000 203 | item osd.70 weight 1.000 204 | item osd.71 weight 1.000 205 | item osd.72 weight 1.000 206 | item osd.73 weight 1.000 207 | item osd.74 weight 1.000 208 | item osd.75 weight 1.000 209 | item osd.76 weight 1.000 210 | item osd.77 weight 1.000 211 | item osd.78 weight 1.000 212 | item osd.79 weight 1.000 213 | } 214 | rack localrack { 215 | id -3 # do not change unnecessarily 216 | # weight 80.000 217 | alg straw 218 | hash 0 # rjenkins1 219 | item hswNode01 weight 16.000 220 | item hswNode02 weight 16.000 221 | item hswNode03 weight 16.000 222 | item hswNode04 weight 16.000 223 | item hswNode05 weight 16.000 224 | } 225 | root default { 226 | id -1 # do not change unnecessarily 227 | # weight 80.000 228 | alg straw 229 | hash 0 # rjenkins1 230 | item localrack weight 80.000 231 | } 232 | 233 | # rules 234 | rule replicated_ruleset { 235 | ruleset 0 236 | type replicated 237 | min_size 1 238 | max_size 10 239 | step take default 240 | step chooseleaf firstn 0 type host 241 | step emit 242 | } 243 | 244 | # end crush map 245 | -------------------------------------------------------------------------------- /bootstrapping/create-jsons.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # # Create JSON files from Ceph tests data in CSV format 5 | # 6 | # This notebook reads a CSV file with one Ceph test per row, and produces one JSON file for each test, using the proposed JSON format. This notebook is intended only for having some JSON files to test the production of the Ceph-brag dashboard. Please, note that the CSV file may include incorrect data. In particular, date and cluster_uuid are fake. 7 | 8 | # First of all, read the csv file into a Pandas dataframe (just because it is convenient to later produce the JSON files). 9 | 10 | # In[23]: 11 | 12 | import pandas as pd 13 | 14 | tests_4ms_df = pd.read_csv("ceph-tests-data-4ms.csv") 15 | tests_4kr_df = pd.read_csv("ceph-tests-data-4kr.csv") 16 | 17 | 18 | # The function create_description produces a dictionary ready to be exported as a JSON file. It takes as arguments the data for one test (which correspons to one row in the CSV file), and an integer (which corresponds to the position of the row in the CSV file, starting with 0). The integer is used only for helping in producing the date (we don't have real dates in the CSV file). The data specific for the benchmarks is not produced here. 19 | 20 | # In[24]: 21 | 22 | from collections import OrderedDict 23 | def create_description (test, order): 24 | """Fill a description dictionary from information in a dataframe row.""" 25 | 26 | description = OrderedDict() 27 | description["information"] = { 28 | "cluster_uuid": "5e4eeae5-edf4-4d53-8ed5-5675207f9a35", 29 | "date": "2014-05-" + "{0:0=2d}".format(order+1) + "T20:00:34", 30 | "submitter": { 31 | "person": test["person"], 32 | "company": test["company"] 33 | } 34 | } 35 | description["platform"] = { 36 | "osds": test["osd_test"], 37 | "osd_servers": test["osd_servers_test"], 38 | "osd_devices": test["osd_devices_test"], 39 | "osd_media": test["osd_media"], 40 | "cost_raw_tb": test["cost_raw_tb"], 41 | "ceph_data_protection": test["ceph_data_protection"], 42 | "cost_usable_tb": test["cost_usable_tb"], 43 | "v_fio": "2.2.13", 44 | "v_sysbench": "0.5", 45 | "v_radosbench": "9.2.0", 46 | "v_collectl": "4.0.2", 47 | } 48 | description["osd_servers"] = { 49 | "server_vendor": test["vendor"], 50 | "server_model": test["model"], 51 | "3_5_hdds_for_osds": test["3_5_hdds"], 52 | "2_5_hdds_for_osds": test["2_5_hdds"], 53 | "2_5_ssds_for_osds": test["2_5_ssds"], 54 | "nvme_for_osds": test["pcie_nvm"], 55 | "journal_model": test["journal_model"], 56 | "CPU": test["cpu"], 57 | "CPU_sockets": test["cpu_sockets"], 58 | "RAM_GB": test["ram_ddr"], 59 | "HBA/RAID": test["controller"], 60 | "HBA/RAID_model": test["hba_raid_model"], 61 | "Network_Interface": test["network_interface"], 62 | "v_OS": test["os_version"], 63 | "v_kernel": test["kernel"] 64 | } 65 | description["pools"] = [ 66 | { 67 | "pool_id": 0, 68 | "pool_name": "data", 69 | "pool_pgpnum": 512, 70 | "pool_size": 2 71 | }, 72 | { 73 | "pool_id": 32, 74 | "pool_name": "ssd", 75 | "pool_pgpnum": 512, 76 | "pool_size": 1 77 | } 78 | ] 79 | description["ceph"] = { 80 | "v_ceph": test["ceph_version"], 81 | "pg_count": test["ceph_groups"], 82 | } 83 | description["network"] = { 84 | "pub_network": test["net_public"], 85 | "cluster_network": test["net_cluster"] 86 | } 87 | description["clients"] = { 88 | "client_node_count": test["client_nodes"], 89 | "Client_OS": test["client_os"], 90 | "client_vm_count": test["client_vms"], 91 | "ceph_client": test["ceph_client"] 92 | } 93 | description["load"] = { 94 | "load_test_util": test["load_utility"], 95 | "IO_queue_depth": test["load_io_queue"] 96 | } 97 | if test["load_cbt"] == "Y": 98 | description["load"]["CBT"] = 1 99 | else: 100 | description["load"]["CBT"] = 0 101 | description["publication"] = { 102 | "publication_url": test["link"] 103 | } 104 | if test["published"] == "Y": 105 | description["load"]["published"] = 1 106 | else: 107 | description["load"]["published"] = 0 108 | description["notes"] = { 109 | "observations": test["observations"] 110 | } 111 | return description 112 | 113 | 114 | # create_benchmarks_4ms is a function for creating the benchmarks property of a description, when that information relates to 4M Sequential tests. 115 | 116 | # In[25]: 117 | 118 | def create_benchmarks_4ms (test): 119 | benchmarks = [ 120 | { 121 | "suite": "CBT_Throughput-optimized", 122 | "kind": "4M Sequential Read", 123 | "mbsec_osd_device": test["4MSR_mbsec_osd_device"], 124 | "cost_usable_tb_mbsec": test["4MSR_cost_usable_tb_mbsec"], 125 | "mbsec_cluster": test["4MSR_mbsec_cluster"], 126 | "avg_latency": test["4MSR_latency_avg"], 127 | "95th_latency": test["4MSR_latency_95"] 128 | }, 129 | { 130 | "suite": "CBT_Throughput-optimized", 131 | "kind": "4M Sequential Write", 132 | "mbsec_osd_device": test["4MSW_mbsec_osd_device"], 133 | "cost_usable_tb_mbsec": test["4MSW_cost_usable_tb_mbsec"], 134 | "mbsec_cluster": test["4MSW_mbsec_cluster"], 135 | "avg_latency": test["4MSW_latency_avg"], 136 | "95th_latency": test["4MSW_latency_95"] 137 | } 138 | ] 139 | return benchmarks 140 | 141 | 142 | # create_benchmarks_4kr is a function for creating the benchmarks property of a description, when that information relates to 4K Random tests. 143 | 144 | # In[26]: 145 | 146 | def create_benchmarks_4kr (test): 147 | benchmarks = [ 148 | { 149 | "suite": "IOPS-optimized", 150 | "kind": "4K Random Read", 151 | "mbsec_osd_device": test["4KRR_IOPS_OSD"], 152 | "cost_usable_tb_mbsec": test["4KRR_media_cost_IOP"], 153 | "mbsec_cluster": test["4KRR_IOPS_cluster"], 154 | "avg_latency": test["4KRR_latency_avg"], 155 | "95th_latency": test["4KRR_latency_95"] 156 | }, 157 | { 158 | "suite": "IOPS-optimized", 159 | "kind": "4K Random Write", 160 | "mbsec_osd_device": test["4KRW_IOPS_OSD"], 161 | "cost_usable_tb_mbsec": test["4KRW_media_cost_IOP"], 162 | "mbsec_cluster": test["4KRW_IOPS_cluster"], 163 | "avg_latency": test["4KRW_latency_avg"], 164 | "95th_latency": test["4KRW_latency_95"] 165 | } 166 | ] 167 | return benchmarks 168 | 169 | 170 | # Function file_name produces a file name from the date and cluster_uuid in the description of a test. 171 | 172 | # In[27]: 173 | 174 | def file_name (description): 175 | """Produce the file name for a test description""" 176 | 177 | name = description["information"]["date"] 178 | name = name.replace("T", "_") 179 | name = name + "_" + description["information"]["cluster_uuid"] 180 | return name 181 | 182 | 183 | # Now, the rest is simple. Just loop through all rows in the dataframe, produce a description (dictionary ready to be exported as JSON) for each of them, produce a file name for each of them, and then write the dictionary to the file. 184 | 185 | # In[28]: 186 | 187 | import json 188 | 189 | def create_json (df, benchmark_func, previous_id): 190 | id = previous_id 191 | for index, row in df.iterrows(): 192 | id = id + 1 193 | description = create_description(row, id) 194 | description["benchmarks"] = benchmark_func(row) 195 | name = file_name(description) + ".json" 196 | with open(name, 'w') as f: 197 | print(name) 198 | json.dump(dict(description), f, ensure_ascii=False, indent=2) 199 | return (id) 200 | 201 | id = 0 202 | id = create_json(tests_4ms_df, create_benchmarks_4ms, id) 203 | id = create_json(tests_4kr_df, create_benchmarks_4kr, id) 204 | 205 | 206 | # In[ ]: 207 | 208 | 209 | 210 | -------------------------------------------------------------------------------- /upload_tests.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | ## Copyright (C) 2015 Bitergia 5 | ## 6 | ## This program is free software; you can redistribute it and/or modify 7 | ## it under the terms of the GNU General Public License as published by 8 | ## the Free Software Foundation; either version 3 of the License, or 9 | ## (at your option) any later version. 10 | ## 11 | ## This program is distributed in the hope that it will be useful, 12 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | ## GNU General Public License for more details. 15 | ## 16 | ## You should have received a copy of the GNU General Public License 17 | ## along with this program; if not, write to the Free Software 18 | ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | ## 20 | ## Authors: 21 | ## Jesus M. Gonzalez-Barahona 22 | ## 23 | 24 | description = """ 25 | Read JSON files, each corresponding to a Ceph test, and upload to ElasticSearch. 26 | 27 | Example: 28 | 29 | python3 upload_tests.py --dir bootstrapping/ \ 30 | --elasticsearch http://elastic-ceph.bitergia.com:80 ceph-tests --esauth ceph XXX 31 | """ 32 | 33 | import argparse 34 | import os 35 | import json 36 | from elasticsearch_dsl.connections import connections 37 | from elasticsearch_dsl import DocType, String, Date, Integer, Float, Object, Index 38 | 39 | def parse_args (): 40 | """ 41 | Parse command line arguments 42 | 43 | """ 44 | parser = argparse.ArgumentParser(description = description) 45 | parser.add_argument("--dir", 46 | help = "Directory with test files") 47 | parser.add_argument("--files", nargs='+', 48 | help = "Test files (paths)") 49 | parser.add_argument("--elasticsearch", nargs=2, 50 | help = "Url of elasticsearch, and index to use " + \ 51 | "(eg: http://localhost:9200 project)") 52 | parser.add_argument("--esauth", nargs=2, default = None, 53 | help = "Authentication to access ElasticSearch" + \ 54 | "(eg: user password)") 55 | parser.add_argument("--delete", action='store_true', 56 | help = "Delete index before adding tests") 57 | parser.add_argument("--dry", action='store_true', 58 | help = "Run a dry test") 59 | parser.set_defaults(dry=False) 60 | args = parser.parse_args() 61 | return args 62 | 63 | def read_files (files): 64 | """ 65 | Read test files, given a list with their paths 66 | 67 | :param files: list of files 68 | :returns: list with the corresponding tests 69 | 70 | """ 71 | 72 | tests = {} 73 | for file in files: 74 | with open(file) as json_file: 75 | data = json.load(json_file) 76 | date = data["information"]["date"] 77 | uuid = data["information"]["cluster_uuid"] 78 | name = date + "_" + uuid 79 | tests[name] = data 80 | return tests 81 | 82 | def read_dir (dir): 83 | """ 84 | Read test files from directory dir. 85 | 86 | :param dir: directory with test files 87 | 88 | :returns: a list with all the tests 89 | 90 | """ 91 | 92 | files = [os.path.join(dir, file) for file in os.listdir(path = dir)] 93 | files = [file for file in files 94 | if os.path.isfile(file) and 95 | os.path.splitext(file)[-1].lower() == ".json"] 96 | tests = read_files(files) 97 | return tests 98 | 99 | Results = Object( 100 | properties = { 101 | "mbsec_osd_device": Integer(), 102 | "cost_usable_tb_mbsec": Float(), 103 | "mbsec_cluster": Float(), 104 | #"latency_avg": Float() 105 | }) 106 | 107 | class Test(DocType): 108 | Id = String(index='not_analyzed') 109 | Suite = String(index='not_analyzed') 110 | Config = String(index='not_analyzed') 111 | Test_no = Integer() 112 | Author = String(index='not_analyzed') 113 | Company = String(index='not_analyzed') 114 | OSD_Servers = Integer() 115 | OSDs = Integer() 116 | OSD_Devices = Integer() 117 | OSD_Media = String(index='not_analyzed') 118 | #cost_raw_tb = Float() 119 | Data_Protection = String(index='not_analyzed') 120 | Suite = String(index='not_analyzed') 121 | #cost_usable_tb = Float() 122 | 123 | class Meta: 124 | index = 'ceph-tests' 125 | 126 | class Test_Sequential(Test): 127 | Seq_Read_4M = Results 128 | Seq_Write_4M = Results 129 | 130 | class Test_Random(Test): 131 | Rand_Read_4K = Results 132 | Rand_Write_4K = Results 133 | 134 | def benchmark_results (benchmark): 135 | """Produce a Seq_Results object from a benchmark dictionary. 136 | 137 | """ 138 | results = {} 139 | results["mbsec_osd_device"] = benchmark["mbsec_osd_device"] 140 | if "cost_usable_tb_mbsec" in results: 141 | results["cost_usable_tb_mbsec"] = float(benchmark["cost_usable_tb_mbsec"]) 142 | results["mbsec_cluster"] = float(benchmark["mbsec_cluster"]) 143 | if "latency_avg" in results: 144 | results["latency_avg"] = float(benchmark["latency_avg"]) 145 | return results 146 | 147 | def upload_elasticsearch (tests, es_server, es_auth, delete=False, dry=False): 148 | """Upload to ElasticSearch. 149 | 150 | :param tests: dictionary with tests 151 | :param es_server: ElasticSearch data, list ["host:port", "index"] 152 | :param es_auth: ElasticSearch auth data, list ["user", "passwd"] 153 | :param dry: dry test (do not upload data to ElasticSearch) 154 | 155 | """ 156 | 157 | if not dry: 158 | connections.create_connection(hosts=[es_server[0]], 159 | http_auth=[es_auth[0], es_auth[1]]) 160 | index = Index (es_server[1]) 161 | if delete: 162 | index.delete(ignore = 404) 163 | Test_Sequential.init() 164 | cont = 0 165 | for name, data in tests.items(): 166 | cont = cont + 1 167 | config = str(data["platform"]["osds"]) + "/" \ 168 | + data["platform"]["osd_media"] + "/" \ 169 | + data["platform"]["ceph_data_protection"] 170 | for benchmark in data["benchmarks"]: 171 | if benchmark["suite"] == "CBT_Throughput-optimized": 172 | suite = "CBT Throughput optimized" 173 | print("Found suite: {}".format(suite)) 174 | 175 | if benchmark["kind"] == "4M Sequential Read": 176 | Seq_Read_4M = benchmark_results (benchmark) 177 | fourMSR_mbsec_osd_device = benchmark["mbsec_osd_device"] 178 | fourMSR_mbsec_cluster = float(benchmark["mbsec_cluster"]) 179 | fourMSR_latency_avg = benchmark["avg_latency"] 180 | elif benchmark["kind"] == "4M Sequential Write": 181 | Seq_Write_4M = benchmark_results (benchmark) 182 | fourMSW_mbsec_osd_device = benchmark["mbsec_osd_device"] 183 | fourMSW_mbsec_cluster = float(benchmark["mbsec_cluster"]) 184 | fourMSW_latency_avg = benchmark["avg_latency"] 185 | elif benchmark["suite"] == "IOPS-optimized": 186 | suite = "IOPS optimized" 187 | print("Found suite: {}".format(suite)) 188 | if benchmark["kind"] == "4K Random Read": 189 | Rand_Read_4K = benchmark_results (benchmark) 190 | elif benchmark["kind"] == "4K Random Write": 191 | Rand_Write_4K = benchmark_results (benchmark) 192 | else: 193 | print("Warning: unknown suite: {} (ignoring)".format(benchmark["suite"])) 194 | suite = "" 195 | if suite == "CBT Throughput optimized": 196 | test = Test_Sequential ( 197 | meta={'id': name}, 198 | Id = name, 199 | Suite = suite, 200 | Config = config, 201 | Test_no = cont, 202 | Author = data["information"]["submitter"]["person"], 203 | Company = data["information"]["submitter"]["company"], 204 | OSD_Servers = data["platform"]["osd_servers"], 205 | OSDs = data["platform"]["osds"], 206 | OSD_Devices = data["platform"]["osd_devices"], 207 | OSD_Media = data["platform"]["osd_media"], 208 | #cost_raw_tb = data["cost_raw_tb"], 209 | Data_Protection = data["platform"]["ceph_data_protection"], 210 | #cost_usable_tb = data["cost_usable_tb"], 211 | ) 212 | test.Seq_Read_4M = Seq_Read_4M 213 | test.Seq_Write_4M = Seq_Write_4M 214 | elif suite == "IOPS optimized": 215 | test = Test_Random ( 216 | meta={'id': name}, 217 | Id = name, 218 | Suite = suite, 219 | Config = config, 220 | Test_no = cont, 221 | Author = data["information"]["submitter"]["person"], 222 | Company = data["information"]["submitter"]["company"], 223 | OSD_Servers = data["platform"]["osd_servers"], 224 | OSDs = data["platform"]["osds"], 225 | OSD_Devices = data["platform"]["osd_devices"], 226 | OSD_Media = data["platform"]["osd_media"], 227 | #cost_raw_tb = data["cost_raw_tb"], 228 | Data_Protection = data["platform"]["ceph_data_protection"], 229 | #cost_usable_tb = data["cost_usable_tb"], 230 | ) 231 | test.Rand_Read_4K = Rand_Read_4K 232 | test.Rand_Write_4K = Rand_Write_4K 233 | 234 | if suite != "": 235 | print ("Test") 236 | print(test) 237 | if not dry: 238 | test.save() 239 | 240 | if __name__ == "__main__": 241 | 242 | args = parse_args() 243 | if args.dir: 244 | tests = read_dir(args.dir) 245 | elif args.files: 246 | tests = read_files(args.files) 247 | else: 248 | print("Error: specify --dir or --files") 249 | exit() 250 | print(tests) 251 | print() 252 | upload_elasticsearch(tests, args.elasticsearch, args.esauth, 253 | delete=args.delete, dry=args.dry) 254 | -------------------------------------------------------------------------------- /bootstrapping/create-jsons.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "focus": false, 7 | "id": "52b6c727-6a50-4d49-ad10-3f2a8bc9dfd9" 8 | }, 9 | "source": [ 10 | "# Create JSON files from Ceph tests data in CSV format\n", 11 | "\n", 12 | "This notebook reads a CSV file with one Ceph test per row, and produces one JSON file for each test, using the proposed JSON format. This notebook is intended only for having some JSON files to test the production of the Ceph-brag dashboard. Please, note that the CSV file may include incorrect data. In particular, date and cluster_uuid are fake." 13 | ] 14 | }, 15 | { 16 | "cell_type": "markdown", 17 | "metadata": { 18 | "focus": false, 19 | "id": "8a67e23f-8d82-47a6-a63f-dfc408a0a3ef" 20 | }, 21 | "source": [ 22 | "First of all, read the csv file into a Pandas dataframe (just because it is convenient to later produce the JSON files)." 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 29, 28 | "metadata": { 29 | "collapsed": false, 30 | "focus": true, 31 | "id": "7ed4234a-dcb2-40e2-b2ed-5fca9145aa4b" 32 | }, 33 | "outputs": [], 34 | "source": [ 35 | "import pandas as pd\n", 36 | "\n", 37 | "tests_4ms_df = pd.read_csv(\"ceph-tests-data-4ms.csv\")\n", 38 | "tests_4kr_df = pd.read_csv(\"ceph-tests-data-4kr.csv\")" 39 | ] 40 | }, 41 | { 42 | "cell_type": "markdown", 43 | "metadata": { 44 | "focus": false, 45 | "id": "d90e1058-eff4-49e3-9d51-1667fcc8dc51" 46 | }, 47 | "source": [ 48 | "The function create_description produces a dictionary ready to be exported as a JSON file. It takes as arguments the data for one test (which correspons to one row in the CSV file), and an integer (which corresponds to the position of the row in the CSV file, starting with 0). The integer is used only for helping in producing the date (we don't have real dates in the CSV file). The data specific for the benchmarks is not produced here." 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 30, 54 | "metadata": { 55 | "collapsed": false, 56 | "focus": false, 57 | "id": "7723abf0-f0af-4370-8370-2ddcd97bb1a4" 58 | }, 59 | "outputs": [], 60 | "source": [ 61 | "from collections import OrderedDict\n", 62 | "def create_description (test, order):\n", 63 | " \"\"\"Fill a description dictionary from information in a dataframe row.\"\"\"\n", 64 | " \n", 65 | " description = OrderedDict()\n", 66 | " description[\"information\"] = {\n", 67 | " \"cluster_uuid\": \"5e4eeae5-edf4-4d53-8ed5-5675207f9a35\",\n", 68 | " \"date\": \"2014-05-\" + \"{0:0=2d}\".format(order+1) + \"T20:00:34\",\n", 69 | " \"submitter\": {\n", 70 | " \"person\": test[\"person\"],\n", 71 | " \"company\": test[\"company\"]\n", 72 | " }\n", 73 | " }\n", 74 | " description[\"platform\"] = {\n", 75 | " \"osds\": test[\"osd_test\"],\n", 76 | " \"osd_servers\": test[\"osd_servers_test\"],\n", 77 | " \"osd_devices\": test[\"osd_devices_test\"],\n", 78 | " \"osd_media\": test[\"osd_media\"],\n", 79 | " \"cost_raw_tb\": test[\"cost_raw_tb\"],\n", 80 | " \"ceph_data_protection\": test[\"ceph_data_protection\"],\n", 81 | " \"cost_usable_tb\": test[\"cost_usable_tb\"],\n", 82 | " \"v_fio\": \"2.2.13\",\n", 83 | " \"v_sysbench\": \"0.5\",\n", 84 | " \"v_radosbench\": \"9.2.0\",\n", 85 | " \"v_collectl\": \"4.0.2\",\n", 86 | " }\n", 87 | " description[\"osd_servers\"] = {\n", 88 | " \"server_vendor\": test[\"vendor\"],\n", 89 | " \"server_model\": test[\"model\"],\n", 90 | " \"3_5_hdds_for_osds\": test[\"3_5_hdds\"],\n", 91 | " \"2_5_hdds_for_osds\": test[\"2_5_hdds\"],\n", 92 | " \"2_5_ssds_for_osds\": test[\"2_5_ssds\"],\n", 93 | " \"nvme_for_osds\": test[\"pcie_nvm\"],\n", 94 | " \"journal_model\": test[\"journal_model\"],\n", 95 | " \"CPU\": test[\"cpu\"],\n", 96 | " \"CPU_sockets\": test[\"cpu_sockets\"],\n", 97 | " \"RAM_GB\": test[\"ram_ddr\"],\n", 98 | " \"HBA/RAID\": test[\"controller\"],\n", 99 | " \"HBA/RAID_model\": test[\"hba_raid_model\"],\n", 100 | " \"Network_Interface\": test[\"network_interface\"],\n", 101 | " \"v_OS\": test[\"os_version\"],\n", 102 | " \"v_kernel\": test[\"kernel\"]\n", 103 | " }\n", 104 | " description[\"pools\"] = [\n", 105 | " {\n", 106 | " \"pool_id\": 0,\n", 107 | " \"pool_name\": \"data\",\n", 108 | " \"pool_pgpnum\": 512,\n", 109 | " \"pool_size\": 2\n", 110 | " },\n", 111 | " {\n", 112 | " \"pool_id\": 32,\n", 113 | " \"pool_name\": \"ssd\",\n", 114 | " \"pool_pgpnum\": 512,\n", 115 | " \"pool_size\": 1\n", 116 | " }\n", 117 | " ]\n", 118 | " description[\"ceph\"] = {\n", 119 | " \"v_ceph\": test[\"ceph_version\"],\n", 120 | " \"pg_count\": test[\"ceph_groups\"],\n", 121 | " }\n", 122 | " description[\"network\"] = {\n", 123 | " \"pub_network\": test[\"net_public\"],\n", 124 | " \"cluster_network\": test[\"net_cluster\"]\n", 125 | " }\n", 126 | " description[\"clients\"] = {\n", 127 | " \"client_node_count\": test[\"client_nodes\"],\n", 128 | " \"Client_OS\": test[\"client_os\"],\n", 129 | " \"client_vm_count\": test[\"client_vms\"],\n", 130 | " \"ceph_client\": test[\"ceph_client\"]\n", 131 | " }\n", 132 | " description[\"load\"] = {\n", 133 | " \"load_test_util\": test[\"load_utility\"],\n", 134 | " \"IO_queue_depth\": test[\"load_io_queue\"]\n", 135 | " }\n", 136 | " if test[\"load_cbt\"] == \"Y\":\n", 137 | " description[\"load\"][\"CBT\"] = 1\n", 138 | " else:\n", 139 | " description[\"load\"][\"CBT\"] = 0\n", 140 | " description[\"publication\"] = {\n", 141 | " \"publication_url\": test[\"link\"]\n", 142 | " }\n", 143 | " if test[\"published\"] == \"Y\":\n", 144 | " description[\"load\"][\"published\"] = 1\n", 145 | " else:\n", 146 | " description[\"load\"][\"published\"] = 0\n", 147 | " description[\"notes\"] = {\n", 148 | " \"observations\": test[\"observations\"]\n", 149 | " }\n", 150 | " return description\n" 151 | ] 152 | }, 153 | { 154 | "cell_type": "markdown", 155 | "metadata": {}, 156 | "source": [ 157 | "create_benchmarks_4ms is a function for creating the benchmarks property of a description, when that information relates to 4M Sequential tests." 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 31, 163 | "metadata": { 164 | "collapsed": true 165 | }, 166 | "outputs": [], 167 | "source": [ 168 | "def create_benchmarks_4ms (test):\n", 169 | " benchmarks = [\n", 170 | " {\n", 171 | " \"suite\": \"CBT_Throughput-optimized\",\n", 172 | " \"kind\": \"4M Sequential Read\",\n", 173 | " \"mbsec_osd_device\": test[\"4MSR_mbsec_osd_device\"],\n", 174 | " \"cost_usable_tb_mbsec\": test[\"4MSR_cost_usable_tb_mbsec\"],\n", 175 | " \"mbsec_cluster\": test[\"4MSR_mbsec_cluster\"],\n", 176 | " \"avg_latency\": test[\"4MSR_latency_avg\"],\n", 177 | " \"95th_latency\": test[\"4MSR_latency_95\"]\n", 178 | " },\n", 179 | " {\n", 180 | " \"suite\": \"CBT_Throughput-optimized\",\n", 181 | " \"kind\": \"4M Sequential Write\",\n", 182 | " \"mbsec_osd_device\": test[\"4MSW_mbsec_osd_device\"],\n", 183 | " \"cost_usable_tb_mbsec\": test[\"4MSW_cost_usable_tb_mbsec\"],\n", 184 | " \"mbsec_cluster\": test[\"4MSW_mbsec_cluster\"],\n", 185 | " \"avg_latency\": test[\"4MSW_latency_avg\"],\n", 186 | " \"95th_latency\": test[\"4MSW_latency_95\"]\n", 187 | " }\n", 188 | " ]\n", 189 | " return benchmarks" 190 | ] 191 | }, 192 | { 193 | "cell_type": "markdown", 194 | "metadata": {}, 195 | "source": [ 196 | "create_benchmarks_4kr is a function for creating the benchmarks property of a description, when that information relates to 4K Random tests." 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 32, 202 | "metadata": { 203 | "collapsed": true 204 | }, 205 | "outputs": [], 206 | "source": [ 207 | "def create_benchmarks_4kr (test):\n", 208 | " benchmarks = [\n", 209 | " {\n", 210 | " \"suite\": \"IOPS-optimized\",\n", 211 | " \"kind\": \"4K Random Read\",\n", 212 | " \"mbsec_osd_device\": test[\"4KRR_IOPS_OSD\"],\n", 213 | " \"cost_usable_tb_mbsec\": test[\"4KRR_media_cost_IOP\"],\n", 214 | " \"mbsec_cluster\": test[\"4KRR_IOPS_cluster\"],\n", 215 | " \"avg_latency\": test[\"4KRR_latency_avg\"],\n", 216 | " \"95th_latency\": test[\"4KRR_latency_95\"]\n", 217 | " },\n", 218 | " {\n", 219 | " \"suite\": \"IOPS-optimized\",\n", 220 | " \"kind\": \"4K Random Write\",\n", 221 | " \"mbsec_osd_device\": test[\"4KRW_IOPS_OSD\"],\n", 222 | " \"cost_usable_tb_mbsec\": test[\"4KRW_media_cost_IOP\"],\n", 223 | " \"mbsec_cluster\": test[\"4KRW_IOPS_cluster\"],\n", 224 | " \"avg_latency\": test[\"4KRW_latency_avg\"],\n", 225 | " \"95th_latency\": test[\"4KRW_latency_95\"]\n", 226 | " }\n", 227 | " ]\n", 228 | " return benchmarks" 229 | ] 230 | }, 231 | { 232 | "cell_type": "markdown", 233 | "metadata": { 234 | "focus": false, 235 | "id": "d81c921f-17d2-45c9-8ee4-358778c27950" 236 | }, 237 | "source": [ 238 | "Function file_name produces a file name from the date and cluster_uuid in the description of a test." 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 33, 244 | "metadata": { 245 | "collapsed": false, 246 | "focus": false, 247 | "id": "e9adf45c-059a-4b37-8ef4-bf0c2ec726f3" 248 | }, 249 | "outputs": [], 250 | "source": [ 251 | "def file_name (description):\n", 252 | " \"\"\"Produce the file name for a test description\"\"\"\n", 253 | "\n", 254 | " name = description[\"information\"][\"date\"]\n", 255 | " name = name.replace(\"T\", \"_\")\n", 256 | " name = name + \"_\" + description[\"information\"][\"cluster_uuid\"]\n", 257 | " return name" 258 | ] 259 | }, 260 | { 261 | "cell_type": "markdown", 262 | "metadata": { 263 | "focus": false, 264 | "id": "081debd2-e99b-4054-80fe-287e8a8a3dd2" 265 | }, 266 | "source": [ 267 | "Now, the rest is simple. Just loop through all rows in the dataframe, produce a description (dictionary ready to be exported as JSON) for each of them, produce a file name for each of them, and then write the dictionary to the file." 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": 34, 273 | "metadata": { 274 | "collapsed": false, 275 | "focus": false, 276 | "id": "37d8ee6f-0dd3-4b98-8248-a8222e26a615" 277 | }, 278 | "outputs": [ 279 | { 280 | "name": "stdout", 281 | "output_type": "stream", 282 | "text": [ 283 | "2014-05-02_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 284 | "2014-05-03_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 285 | "2014-05-04_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 286 | "2014-05-05_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 287 | "2014-05-06_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 288 | "2014-05-07_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 289 | "2014-05-08_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 290 | "2014-05-09_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 291 | "2014-05-10_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 292 | "2014-05-11_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 293 | "2014-05-12_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 294 | "2014-05-13_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 295 | "2014-05-14_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 296 | "2014-05-15_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 297 | "2014-05-16_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n", 298 | "2014-05-17_20:00:34_5e4eeae5-edf4-4d53-8ed5-5675207f9a35.json\n" 299 | ] 300 | } 301 | ], 302 | "source": [ 303 | "import json\n", 304 | "\n", 305 | "def create_json (df, benchmark_func, previous_id):\n", 306 | " id = previous_id\n", 307 | " for index, row in df.iterrows(): \n", 308 | " id = id + 1\n", 309 | " description = create_description(row, id)\n", 310 | " description[\"benchmarks\"] = benchmark_func(row)\n", 311 | " name = file_name(description) + \".json\"\n", 312 | " with open(name, 'w') as f:\n", 313 | " print(name)\n", 314 | " json.dump(dict(description), f, ensure_ascii=False, indent=2)\n", 315 | " return (id)\n", 316 | "\n", 317 | "id = 0\n", 318 | "id = create_json(tests_4ms_df, create_benchmarks_4ms, id)\n", 319 | "id = create_json(tests_4kr_df, create_benchmarks_4kr, id)" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": null, 325 | "metadata": { 326 | "collapsed": true, 327 | "focus": false, 328 | "id": "a864e167-071d-4856-954a-6ed8ee95c56d" 329 | }, 330 | "outputs": [], 331 | "source": [] 332 | } 333 | ], 334 | "metadata": { 335 | "kernelspec": { 336 | "display_name": "Python 3", 337 | "language": "python", 338 | "name": "python3" 339 | }, 340 | "language_info": { 341 | "codemirror_mode": { 342 | "name": "ipython", 343 | "version": 3 344 | }, 345 | "file_extension": ".py", 346 | "mimetype": "text/x-python", 347 | "name": "python", 348 | "nbconvert_exporter": "python", 349 | "pygments_lexer": "ipython3", 350 | "version": "3.4.4rc1" 351 | } 352 | }, 353 | "nbformat": 4, 354 | "nbformat_minor": 0 355 | } 356 | -------------------------------------------------------------------------------- /kibana-export.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "_id": "Simple", 4 | "_type": "dashboard", 5 | "_source": { 6 | "title": "Simple", 7 | "hits": 0, 8 | "description": "", 9 | "panelsJSON": "[{\"col\":1,\"id\":\"Banner\",\"panelIndex\":1,\"row\":1,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":5,\"id\":\"4M-Seq.-Read-Performance-(MB-slash-sec)\",\"panelIndex\":2,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":5,\"id\":\"4M-Seq.-Write-Performance-(MB-slash-sec)\",\"panelIndex\":3,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Read-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":4,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Write-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":5,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Test-count-per-#OSD-Devices\",\"panelIndex\":7,\"row\":6,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSD Devices in Result Submissions\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Data-Protection\",\"panelIndex\":8,\"row\":8,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\"},{\"col\":1,\"id\":\"OSD-Media\",\"panelIndex\":9,\"row\":10,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\"},{\"col\":5,\"id\":\"4M-Seq.-Read-per-#OSDs\",\"panelIndex\":11,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Write-per-#OSDs\",\"panelIndex\":12,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Test-count-per-#OSDs\",\"panelIndex\":13,\"row\":4,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSDs in Results Submissions\",\"type\":\"visualization\"},{\"col\":1,\"columns\":[\"Test_no\",\"Config\",\"Author\",\"Company\",\"Id\",\"Seq_Read_4M.Cost_TB_per_MB/sec\",\"Seq_Read_4M.MB/sec_per_Cluster\",\"Seq_Read_4M.MB/sec_per_OSD_Device\",\"OSD_Servers\",\"Seq_Read_4M.mbsec_osd_device\",\"Seq_Write_4M.mbsec_osd_device\",\"Rand_Read_4K.mbsec_osd_device\",\"Rand_Write_4K.mbsec_osd_device\",\"Data_Protection\",\"OSD_Devices\",\"OSDs\"],\"id\":\"Ceph-Tests\",\"panelIndex\":14,\"row\":15,\"size_x\":12,\"size_y\":4,\"sort\":[\"_score\",\"desc\"],\"title\":\"Raw information about tests\",\"type\":\"search\"},{\"col\":1,\"id\":\"Sequential-Tests\",\"panelIndex\":15,\"row\":12,\"size_x\":12,\"size_y\":3,\"type\":\"visualization\"}]", 10 | "optionsJSON": "{\"darkTheme\":false}", 11 | "uiStateJSON": "{\"P-11\":{\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"vis\":{\"legendOpen\":false}},\"P-12\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"vis\":{\"legendOpen\":false}},\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-14\":{\"title\":\"Raw information about tests\"},\"P-2\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-3\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-4\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-5\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"}}", 12 | "version": 1, 13 | "timeRestore": false, 14 | "kibanaSavedObjectMeta": { 15 | "searchSourceJSON": "{\"filter\":[{\"meta\":{\"negate\":false,\"index\":\"ceph-tests\",\"key\":\"Suite\",\"value\":\"CBT Throughput optimized\",\"disabled\":false,\"alias\":\"CBT Throughput optimized\"},\"query\":{\"match\":{\"Suite\":{\"query\":\"CBT Throughput optimized\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}},{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}" 16 | } 17 | } 18 | }, 19 | { 20 | "_id": "Simple-Sequential", 21 | "_type": "dashboard", 22 | "_source": { 23 | "title": "Simple Sequential", 24 | "hits": 0, 25 | "description": "", 26 | "panelsJSON": "[{\"col\":1,\"id\":\"Banner\",\"panelIndex\":1,\"row\":1,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":5,\"id\":\"4M-Seq.-Read-Performance-(MB-slash-sec)\",\"panelIndex\":2,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":5,\"id\":\"4M-Seq.-Write-Performance-(MB-slash-sec)\",\"panelIndex\":3,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Read-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":4,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Write-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":5,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Seq. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Test-count-per-#OSD-Devices\",\"panelIndex\":7,\"row\":6,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSD Devices in Result Submissions\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Data-Protection\",\"panelIndex\":8,\"row\":8,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\",\"title\":\"Data Protection Methods Used in Results Submissions\"},{\"col\":1,\"id\":\"OSD-Media\",\"panelIndex\":9,\"row\":10,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\",\"title\":\"OSD Media Used in Result Submissions\"},{\"col\":5,\"id\":\"4M-Seq.-Read-per-#OSDs\",\"panelIndex\":11,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4M-Seq.-Write-per-#OSDs\",\"panelIndex\":12,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Test-count-per-#OSDs\",\"panelIndex\":13,\"row\":4,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSDs in Results Submissions\",\"type\":\"visualization\"},{\"col\":1,\"columns\":[\"Test_no\",\"Config\",\"Author\",\"Company\",\"Id\",\"Seq_Read_4M.Cost_TB_per_MB/sec\",\"Seq_Read_4M.MB/sec_per_Cluster\",\"Seq_Read_4M.MB/sec_per_OSD_Device\",\"OSD_Servers\",\"Seq_Read_4M.mbsec_osd_device\",\"Seq_Write_4M.mbsec_osd_device\",\"Rand_Read_4K.mbsec_osd_device\",\"Rand_Write_4K.mbsec_osd_device\",\"Data_Protection\",\"OSD_Devices\",\"OSDs\"],\"id\":\"Ceph-Tests\",\"panelIndex\":14,\"row\":15,\"size_x\":12,\"size_y\":3,\"sort\":[\"_score\",\"desc\"],\"title\":\"Raw information about tests\",\"type\":\"search\"},{\"col\":1,\"id\":\"Sequential-Tests\",\"panelIndex\":15,\"row\":12,\"size_x\":12,\"size_y\":3,\"type\":\"visualization\"}]", 27 | "optionsJSON": "{\"darkTheme\":false}", 28 | "uiStateJSON": "{\"P-11\":{\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"vis\":{\"legendOpen\":false}},\"P-12\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"vis\":{\"legendOpen\":false}},\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-14\":{\"title\":\"Raw information about tests\"},\"P-2\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-3\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-4\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-5\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"},\"P-8\":{\"title\":\"Data Protection Methods Used in Results Submissions\"},\"P-9\":{\"title\":\"OSD Media Used in Result Submissions\"}}", 29 | "version": 1, 30 | "timeRestore": false, 31 | "kibanaSavedObjectMeta": { 32 | "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"CBT Throughput optimized\",\"disabled\":false,\"index\":\"ceph-tests\",\"key\":\"Suite\",\"negate\":false,\"value\":\"CBT Throughput optimized\"},\"query\":{\"match\":{\"Suite\":{\"query\":\"CBT Throughput optimized\",\"type\":\"phrase\"}}}},{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}" 33 | } 34 | } 35 | }, 36 | { 37 | "_id": "Simple-Random", 38 | "_type": "dashboard", 39 | "_source": { 40 | "title": "Simple Random", 41 | "hits": 0, 42 | "description": "", 43 | "panelsJSON": "[{\"col\":1,\"id\":\"Banner\",\"panelIndex\":1,\"row\":1,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":1,\"id\":\"Test-count-per-#OSD-Devices\",\"panelIndex\":7,\"row\":6,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSD Devices in Result Submissions\",\"type\":\"visualization\"},{\"col\":1,\"id\":\"Data-Protection\",\"panelIndex\":8,\"row\":8,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\",\"title\":\"Data Protection Methods Used in Results Submissions\"},{\"col\":1,\"id\":\"OSD-Media\",\"panelIndex\":9,\"row\":10,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\",\"title\":\"OSD Media Used in Result Submissions\"},{\"col\":1,\"id\":\"Test-count-per-#OSDs\",\"panelIndex\":13,\"row\":4,\"size_x\":4,\"size_y\":2,\"title\":\"# of OSDs in Results Submissions\",\"type\":\"visualization\"},{\"col\":1,\"columns\":[\"Test_no\",\"Config\",\"Author\",\"Company\",\"Id\",\"Seq_Read_4M.Cost_TB_per_MB/sec\",\"Seq_Read_4M.MB/sec_per_Cluster\",\"Seq_Read_4M.MB/sec_per_OSD_Device\",\"OSD_Servers\",\"Seq_Read_4M.mbsec_osd_device\",\"Seq_Write_4M.mbsec_osd_device\",\"Rand_Read_4K.mbsec_osd_device\",\"Rand_Write_4K.mbsec_osd_device\",\"Data_Protection\",\"OSD_Devices\",\"OSDs\"],\"id\":\"Ceph-Tests\",\"panelIndex\":14,\"row\":15,\"size_x\":12,\"size_y\":3,\"sort\":[\"_score\",\"desc\"],\"title\":\"Raw information about tests\",\"type\":\"search\"},{\"col\":5,\"id\":\"4K-Rand.-Read-Performance-(MB-slash-sec)\",\"panelIndex\":16,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Rand. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4K-Rand.-Read-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":17,\"row\":1,\"size_x\":4,\"size_y\":3,\"title\":\"Top Rand. Read Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":5,\"id\":\"4K-Rand.-Write-Performance-(MB-slash-sec)\",\"panelIndex\":18,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Rand. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4K-Rand.-Write-Performance-(MB-slash-sec)-by-Config\",\"panelIndex\":19,\"row\":4,\"size_x\":4,\"size_y\":3,\"title\":\"Top Rand. Write Performance Results (MB/sec)\",\"type\":\"visualization\"},{\"col\":5,\"id\":\"4K-Rand.-Read-per-#OSD\",\"panelIndex\":20,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD vs #OSD in test (Read)\",\"type\":\"visualization\"},{\"col\":9,\"id\":\"4K-Rand.-Write-per-#OSDs\",\"panelIndex\":21,\"row\":7,\"size_x\":4,\"size_y\":5,\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"type\":\"visualization\"},{\"id\":\"Random-Tests\",\"type\":\"visualization\",\"panelIndex\":22,\"size_x\":12,\"size_y\":3,\"col\":1,\"row\":12}]", 44 | "optionsJSON": "{\"darkTheme\":false}", 45 | "uiStateJSON": "{\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-14\":{\"title\":\"Raw information about tests\"},\"P-16\":{\"title\":\"Top Rand. Read Performance Results (MB/sec)\"},\"P-17\":{\"title\":\"Top Rand. Read Performance Results (MB/sec)\"},\"P-18\":{\"title\":\"Top Rand. Write Performance Results (MB/sec)\"},\"P-19\":{\"title\":\"Top Rand. Write Performance Results (MB/sec)\"},\"P-20\":{\"title\":\"MB/sec per OSD vs #OSD in test (Read)\"},\"P-21\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"},\"P-8\":{\"title\":\"Data Protection Methods Used in Results Submissions\"},\"P-9\":{\"title\":\"OSD Media Used in Result Submissions\"}}", 46 | "version": 1, 47 | "timeRestore": false, 48 | "kibanaSavedObjectMeta": { 49 | "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"IOPS optimized\",\"disabled\":false,\"index\":\"ceph-tests\",\"key\":\"Suite\",\"negate\":false,\"value\":\"IOPS optimized\"},\"query\":{\"match\":{\"Suite\":{\"query\":\"IOPS optimized\",\"type\":\"phrase\"}}}},{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}" 50 | } 51 | } 52 | }, 53 | { 54 | "_id": "Ceph-Tests", 55 | "_type": "search", 56 | "_source": { 57 | "title": "Ceph Tests", 58 | "description": "", 59 | "hits": 0, 60 | "columns": [ 61 | "Test_no", 62 | "Config", 63 | "Author", 64 | "Company", 65 | "Id", 66 | "Seq_Read_4M.Cost_TB_per_MB/sec", 67 | "Seq_Read_4M.MB/sec_per_Cluster", 68 | "Seq_Read_4M.MB/sec_per_OSD_Device", 69 | "OSD_Servers", 70 | "Seq_Read_4M.mbsec_osd_device", 71 | "Seq_Write_4M.mbsec_osd_device", 72 | "Rand_Read_4K.mbsec_osd_device", 73 | "Rand_Write_4K.mbsec_osd_device", 74 | "Data_Protection", 75 | "OSD_Devices", 76 | "OSDs", 77 | "Suite", 78 | "OSD_Media" 79 | ], 80 | "sort": [ 81 | "_score", 82 | "desc" 83 | ], 84 | "version": 1, 85 | "kibanaSavedObjectMeta": { 86 | "searchSourceJSON": "{\"index\":\"ceph-tests\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}" 87 | } 88 | } 89 | }, 90 | { 91 | "_id": "Data-Protection", 92 | "_type": "visualization", 93 | "_source": { 94 | "title": "Data Protection", 95 | "visState": "{\"title\":\"New Visualization\",\"type\":\"pie\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"Data_Protection\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", 96 | "uiStateJSON": "{}", 97 | "description": "", 98 | "savedSearchId": "Ceph-Tests", 99 | "version": 1, 100 | "kibanaSavedObjectMeta": { 101 | "searchSourceJSON": "{\"filter\":[]}" 102 | } 103 | } 104 | }, 105 | { 106 | "_id": "OSD-Media", 107 | "_type": "visualization", 108 | "_source": { 109 | "title": "OSD Media", 110 | "visState": "{\"title\":\"Data Protection\",\"type\":\"pie\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"OSD_Media\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", 111 | "uiStateJSON": "{}", 112 | "description": "", 113 | "savedSearchId": "Ceph-Tests", 114 | "version": 1, 115 | "kibanaSavedObjectMeta": { 116 | "searchSourceJSON": "{\"filter\":[]}" 117 | } 118 | } 119 | }, 120 | { 121 | "_id": "Test-count-per-#OSD-Devices", 122 | "_type": "visualization", 123 | "_source": { 124 | "title": "Test count per #OSD Devices", 125 | "visState": "{\"title\":\"Test count per #OSD Devices\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"# of submissions\"}},{\"id\":\"2\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSD_Devices\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"Number of OSD devices (histogram)\"}}],\"listeners\":{}}", 126 | "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", 127 | "description": "", 128 | "savedSearchId": "Ceph-Tests", 129 | "version": 1, 130 | "kibanaSavedObjectMeta": { 131 | "searchSourceJSON": "{\"filter\":[]}" 132 | } 133 | } 134 | }, 135 | { 136 | "_id": "Test-count-per-#OSDs", 137 | "_type": "visualization", 138 | "_source": { 139 | "title": "Test count per #OSDs", 140 | "visState": "{\"title\":\"Test count per #OSDs\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"# of submissions\"}},{\"id\":\"2\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSDs\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"Number of OSDs (histogram)\"}}],\"listeners\":{}}", 141 | "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", 142 | "description": "", 143 | "savedSearchId": "Ceph-Tests", 144 | "version": 1, 145 | "kibanaSavedObjectMeta": { 146 | "searchSourceJSON": "{\"filter\":[]}" 147 | } 148 | } 149 | }, 150 | { 151 | "_id": "4M-Seq.-Read-Performance-(MB-slash-sec)", 152 | "_type": "visualization", 153 | "_source": { 154 | "title": "4M Seq. Read Performance (MB/sec)", 155 | "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{\"customLabel\":\"MB/sec per OSD\",\"field\":\"Seq_Read_4M.mbsec_osd_device\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"id\":\"2\",\"params\":{\"customLabel\":\"Test id\",\"field\":\"Test_no\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":15},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"4M Seq. Read Performance (MB/sec)\",\"type\":\"histogram\"}", 156 | "uiStateJSON": "{\"P-11\":{\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"vis\":{\"legendOpen\":false}},\"P-12\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"vis\":{\"legendOpen\":false}},\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-2\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-3\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-4\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-5\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"},\"vis\":{\"legendOpen\":false}}", 157 | "description": "", 158 | "savedSearchId": "Ceph-Tests", 159 | "version": 1, 160 | "kibanaSavedObjectMeta": { 161 | "searchSourceJSON": "{\"filter\":[]}" 162 | } 163 | } 164 | }, 165 | { 166 | "_id": "4M-Seq.-Read-per-#OSDs", 167 | "_type": "visualization", 168 | "_source": { 169 | "title": "4M Seq. Read per #OSDs", 170 | "visState": "{\"title\":\"4M Seq. Read per #OSDs\",\"type\":\"line\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"showCircles\":true,\"smoothLines\":false,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":false,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Read_4M.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"count\",\"schema\":\"radius\",\"params\":{\"customLabel\":\"Number of tests\"}},{\"id\":\"3\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSDs\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"#OSDs in test\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"Config\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs/media/protection\"}}],\"listeners\":{}}", 171 | "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", 172 | "description": "", 173 | "savedSearchId": "Ceph-Tests", 174 | "version": 1, 175 | "kibanaSavedObjectMeta": { 176 | "searchSourceJSON": "{\"filter\":[]}" 177 | } 178 | } 179 | }, 180 | { 181 | "_id": "4M-Seq.-Write-per-#OSDs", 182 | "_type": "visualization", 183 | "_source": { 184 | "title": "4M Seq. Write per #OSDs", 185 | "visState": "{\"title\":\"4M Seq. Write per #OSDs\",\"type\":\"line\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"showCircles\":true,\"smoothLines\":false,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":false,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Write_4M.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"count\",\"schema\":\"radius\",\"params\":{}},{\"id\":\"3\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSDs\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"#OSDs in test\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"Config\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", 186 | "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", 187 | "description": "", 188 | "savedSearchId": "Ceph-Tests", 189 | "version": 1, 190 | "kibanaSavedObjectMeta": { 191 | "searchSourceJSON": "{\"filter\":[]}" 192 | } 193 | } 194 | }, 195 | { 196 | "_id": "4M-Seq.-Write-Performance-(MB-slash-sec)", 197 | "_type": "visualization", 198 | "_source": { 199 | "title": "4M Seq. Write Performance (MB/sec)", 200 | "visState": "{\"title\":\"4M Seq. Write Performance (MB/sec)\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Write_4M.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"Test_no\",\"size\":15,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}}],\"listeners\":{}}", 201 | "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", 202 | "description": "", 203 | "savedSearchId": "Ceph-Tests", 204 | "version": 1, 205 | "kibanaSavedObjectMeta": { 206 | "searchSourceJSON": "{\"filter\":[]}" 207 | } 208 | } 209 | }, 210 | { 211 | "_id": "4M-Seq.-Read-Performance-(MB-slash-sec)-by-Config", 212 | "_type": "visualization", 213 | "_source": { 214 | "title": "4M Seq. Read Performance (MB/sec) by Config", 215 | "visState": "{\"title\":\"4M Seq. Read Performance (MB/sec) by Config\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Read_4M.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Test_no\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}},{\"id\":\"3\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Config\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs/media/protection\"}}],\"listeners\":{}}", 216 | "uiStateJSON": "{}", 217 | "description": "", 218 | "savedSearchId": "Ceph-Tests", 219 | "version": 1, 220 | "kibanaSavedObjectMeta": { 221 | "searchSourceJSON": "{\"filter\":[]}" 222 | } 223 | } 224 | }, 225 | { 226 | "_id": "4K-Rand.-Write-Performance-(MB-slash-sec)", 227 | "_type": "visualization", 228 | "_source": { 229 | "title": "4K Rand. Write Performance (MB/sec)", 230 | "visState": "{\"title\":\"4K Rand. Read Performance (MB/sec)\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"Test_no\",\"size\":15,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}}],\"listeners\":{}}", 231 | "uiStateJSON": "{\"P-11\":{\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"vis\":{\"legendOpen\":false}},\"P-12\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"vis\":{\"legendOpen\":false}},\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-2\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-3\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-4\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-5\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"},\"vis\":{\"legendOpen\":false}}", 232 | "description": "", 233 | "savedSearchId": "Ceph-Tests", 234 | "version": 1, 235 | "kibanaSavedObjectMeta": { 236 | "searchSourceJSON": "{\"filter\":[]}" 237 | } 238 | } 239 | }, 240 | { 241 | "_id": "4K-Rand.-Read-Performance-(MB-slash-sec)", 242 | "_type": "visualization", 243 | "_source": { 244 | "title": "4K Rand. Read Performance (MB/sec)", 245 | "visState": "{\"title\":\"4M Rand. Read Performance (MB/sec)\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Read_4K.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"Test_no\",\"size\":15,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}}],\"listeners\":{}}", 246 | "uiStateJSON": "{\"P-11\":{\"title\":\"MB/sec per OSD v. #OSDs in test (Read)\",\"vis\":{\"legendOpen\":false}},\"P-12\":{\"title\":\"MB/sec per OSD vs #OSDs in test (Write)\",\"vis\":{\"legendOpen\":false}},\"P-13\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-2\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-3\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-4\":{\"title\":\"Top Seq. Read Performance Results (MB/sec)\"},\"P-5\":{\"title\":\"Top Seq. Write Performance Results (MB/sec)\"},\"P-6\":{\"title\":\"# of OSDs in Results Submissions\"},\"P-7\":{\"title\":\"# of OSD Devices in Result Submissions\"},\"vis\":{\"legendOpen\":false}}", 247 | "description": "", 248 | "savedSearchId": "Ceph-Tests", 249 | "version": 1, 250 | "kibanaSavedObjectMeta": { 251 | "searchSourceJSON": "{\"filter\":[]}" 252 | } 253 | } 254 | }, 255 | { 256 | "_id": "Sequential-Tests", 257 | "_type": "visualization", 258 | "_source": { 259 | "title": "Sequential Tests", 260 | "visState": "{\"title\":\"Sequential Tests\",\"type\":\"table\",\"params\":{\"perPage\":20,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Read_4M.mbsec_osd_device\",\"customLabel\":\"4M Read (MB/sec per OSD device)\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Test_no\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test no.\"}},{\"id\":\"3\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Write_4M.mbsec_osd_device\",\"customLabel\":\"4M Write (MB/sec per OSD device)\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSDs\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs\"}},{\"id\":\"5\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Media\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Media\"}},{\"id\":\"6\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Data_Protection\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Protection\"}},{\"id\":\"7\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Servers\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSD Servers\"}},{\"id\":\"8\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Devices\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSD Devices\"}},{\"id\":\"9\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Author\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Author\"}},{\"id\":\"10\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Company\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Company\"}},{\"id\":\"11\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Read_4K.mbsec_cluster\",\"customLabel\":\"4M Read (MB/sec per cluster)\"}},{\"id\":\"12\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_cluster\",\"customLabel\":\"4M Write (MB/sec per cluster)\"}}],\"listeners\":{}}", 261 | "uiStateJSON": "{}", 262 | "description": "", 263 | "savedSearchId": "Ceph-Tests", 264 | "version": 1, 265 | "kibanaSavedObjectMeta": { 266 | "searchSourceJSON": "{\"filter\":[]}" 267 | } 268 | } 269 | }, 270 | { 271 | "_id": "Random-Tests", 272 | "_type": "visualization", 273 | "_source": { 274 | "title": "Random Tests", 275 | "visState": "{\"title\":\"Random Tests\",\"type\":\"table\",\"params\":{\"perPage\":20,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Read_4K.mbsec_osd_device\",\"customLabel\":\"4K Read (MB/sec per OSD device)\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Test_no\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test no.\"}},{\"id\":\"3\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_osd_device\",\"customLabel\":\"4K Write (MB/sec per OSD device)\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSDs\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs\"}},{\"id\":\"5\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Media\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Media\"}},{\"id\":\"6\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Data_Protection\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Protection\"}},{\"id\":\"7\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Servers\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSD Servers\"}},{\"id\":\"8\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"OSD_Devices\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSD Devices\"}},{\"id\":\"9\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Author\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Author\"}},{\"id\":\"10\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Company\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Company\"}},{\"id\":\"11\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Read_4K.mbsec_cluster\",\"customLabel\":\"4K Read (MB/sec per cluster)\"}},{\"id\":\"12\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_cluster\",\"customLabel\":\"4K Write (MB/sec per cluster)\"}}],\"listeners\":{}}", 276 | "uiStateJSON": "{}", 277 | "description": "", 278 | "savedSearchId": "Ceph-Tests", 279 | "version": 1, 280 | "kibanaSavedObjectMeta": { 281 | "searchSourceJSON": "{\"filter\":[]}" 282 | } 283 | } 284 | }, 285 | { 286 | "_id": "4K-Rand.-Read-per-#OSD", 287 | "_type": "visualization", 288 | "_source": { 289 | "title": "4K Rand. Read per #OSD", 290 | "visState": "{\"title\":\"4M Seq. Read per #OSDs\",\"type\":\"line\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"showCircles\":true,\"smoothLines\":false,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":false,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Read_4K.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"count\",\"schema\":\"radius\",\"params\":{\"customLabel\":\"Number of tests\"}},{\"id\":\"3\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSDs\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"#OSDs in test\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"Config\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs/media/protection\"}}],\"listeners\":{}}", 291 | "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", 292 | "description": "", 293 | "savedSearchId": "Ceph-Tests", 294 | "version": 1, 295 | "kibanaSavedObjectMeta": { 296 | "searchSourceJSON": "{\"filter\":[]}" 297 | } 298 | } 299 | }, 300 | { 301 | "_id": "4K-Rand.-Write-per-#OSDs", 302 | "_type": "visualization", 303 | "_source": { 304 | "title": "4K Rand. Write per #OSDs", 305 | "visState": "{\"title\":\"4M Seq. Write per #OSDs\",\"type\":\"line\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"showCircles\":true,\"smoothLines\":false,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":false,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"count\",\"schema\":\"radius\",\"params\":{}},{\"id\":\"3\",\"type\":\"histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"OSDs\",\"interval\":50,\"extended_bounds\":{},\"customLabel\":\"#OSDs in test\"}},{\"id\":\"4\",\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"Config\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", 306 | "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", 307 | "description": "", 308 | "savedSearchId": "Ceph-Tests", 309 | "version": 1, 310 | "kibanaSavedObjectMeta": { 311 | "searchSourceJSON": "{\"filter\":[]}" 312 | } 313 | } 314 | }, 315 | { 316 | "_id": "4K-Rand.-Write-Performance-(MB-slash-sec)-by-Config", 317 | "_type": "visualization", 318 | "_source": { 319 | "title": "4K Rand. Write Performance (MB/sec) by Config", 320 | "visState": "{\"title\":\"4K Rand. Read Performance (MB/sec) by Config\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Rand_Write_4K.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Test_no\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}},{\"id\":\"3\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Config\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs/media/protection\"}}],\"listeners\":{}}", 321 | "uiStateJSON": "{}", 322 | "description": "", 323 | "savedSearchId": "Ceph-Tests", 324 | "version": 1, 325 | "kibanaSavedObjectMeta": { 326 | "searchSourceJSON": "{\"filter\":[]}" 327 | } 328 | } 329 | }, 330 | { 331 | "_id": "4K-Rand.-Read-Performance-(MB-slash-sec)-by-Config", 332 | "_type": "visualization", 333 | "_source": { 334 | "title": "4K Rand. Read Performance (MB/sec) by Config", 335 | "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{\"customLabel\":\"MB/sec per OSD\",\"field\":\"Rand_Read_4K.mbsec_osd_device\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"id\":\"2\",\"params\":{\"customLabel\":\"Test id\",\"field\":\"Test_no\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":20},\"schema\":\"bucket\",\"type\":\"terms\"},{\"id\":\"3\",\"params\":{\"customLabel\":\"OSDs/media/protection\",\"field\":\"Config\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"title\":\"4M Rand. Read Performance (MB/sec) by Config\",\"type\":\"table\"}", 336 | "uiStateJSON": "{}", 337 | "description": "", 338 | "savedSearchId": "Ceph-Tests", 339 | "version": 1, 340 | "kibanaSavedObjectMeta": { 341 | "searchSourceJSON": "{\"filter\":[]}" 342 | } 343 | } 344 | }, 345 | { 346 | "_id": "4M-Seq.-Write-Performance-(MB-slash-sec)-by-Config", 347 | "_type": "visualization", 348 | "_source": { 349 | "title": "4M Seq. Write Performance (MB/sec) by Config", 350 | "visState": "{\"title\":\"4M Seq. Write Performance (MB/sec) by Config\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"Seq_Write_4M.mbsec_osd_device\",\"customLabel\":\"MB/sec per OSD\"}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Test_no\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Test id\"}},{\"id\":\"3\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"Config\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"OSDs/media/protection\"}}],\"listeners\":{}}", 351 | "uiStateJSON": "{}", 352 | "description": "", 353 | "savedSearchId": "Ceph-Tests", 354 | "version": 1, 355 | "kibanaSavedObjectMeta": { 356 | "searchSourceJSON": "{\"filter\":[]}" 357 | } 358 | } 359 | }, 360 | { 361 | "_id": "Banner", 362 | "_type": "visualization", 363 | "_source": { 364 | "title": "Banner", 365 | "visState": "{\"title\":\"Banner\",\"type\":\"markdown\",\"params\":{\"markdown\":\"# Ceph Tests Dashboard\\n\\nby [Bitergia](http://bitergia.com)\\n\\n**[Sequential tests](kibana#/dashboard/Simple-Sequential) | [Random tests](kibana#/dashboard/Simple-Random)**\\n\\n(Proof of concept)\\n\\nClick on charts, keep an eye on filters (green buttons appearing in the top).\"},\"aggs\":[],\"listeners\":{}}", 366 | "uiStateJSON": "{}", 367 | "description": "", 368 | "version": 1, 369 | "kibanaSavedObjectMeta": { 370 | "searchSourceJSON": "{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"filter\":[]}" 371 | } 372 | } 373 | } 374 | ] 375 | -------------------------------------------------------------------------------- /Results/2016/20160301_113919_7ec00598-b1cd-4b53-b713-05c89ec011d4/hardware.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardware": [ 3 | { 4 | "hostname": "hswnode01", 5 | "manufacturer": "Super Micro Computer Inc.", 6 | "product_name": "SuperServer 1028U-TN10RT+", 7 | "cpu_version": "Intel(R) Xeon(R) CPU E5-2699 v3", 8 | "cpu_speed_mhz": 2300, 9 | "core_count": 18, 10 | "memory_size_kb": 131749888, 11 | "controller": 12 | }, 13 | { 14 | "hostname": "hswnode02", 15 | "manufacturer": "Super Micro Computer Inc.", 16 | "product_name": "SuperServer 1028U-TN10RT+", 17 | "cpu_version": "Intel(R) Xeon(R) CPU E5-2699 v3", 18 | "cpu_speed_mhz": 2300, 19 | "core_count": 18, 20 | "memory_size_kb": 131749888, 21 | "controller": 22 | }, 23 | { 24 | "hostname": "hswnode03", 25 | "manufacturer": "Super Micro Computer Inc.", 26 | "product_name": "SuperServer 1028U-TN10RT+", 27 | "cpu_version": "Intel(R) Xeon(R) CPU E5-2699 v3", 28 | "cpu_speed_mhz": 2300, 29 | "core_count": 18, 30 | "memory_size_kb": 131749888, 31 | "controller": 32 | }, 33 | { 34 | "hostname": "hswnode04", 35 | "manufacturer": "Super Micro Computer Inc.", 36 | "product_name": "SuperServer 1028U-TN10RT+", 37 | "cpu_version": "Intel(R) Xeon(R) CPU E5-2699 v3", 38 | "cpu_speed_mhz": 2300, 39 | "core_count": 18, 40 | "memory_size_kb": 131749888, 41 | "controller": 42 | }, 43 | { 44 | "hostname": "hswnode05", 45 | "manufacturer": "Super Micro Computer Inc.", 46 | "product_name": "SuperServer 1028U-TN10RT+", 47 | "cpu_version": "Intel(R) Xeon(R) CPU E5-2699 v3", 48 | "cpu_speed_mhz": 2300, 49 | "core_count": 18, 50 | "memory_size_kb": 131749888, 51 | "controller": 52 | }, 53 | ], 54 | "disk": [ 55 | { 56 | "hostname": "hswnode01", 57 | "dev_path": "/dev/sda", 58 | "vendor": "INTEL", 59 | "product": "SSDSC2BA400G3", 60 | "revision": "5DV10270", 61 | "capacity_bytes": "400088457216", 62 | "rotation_rate": "Solid State Device", 63 | "type": "operating system" 64 | }, 65 | { 66 | "hostname": "hswnode01", 67 | "dev_path": "/dev/nvme0n1p1", 68 | "vendor": "INTEL", 69 | "product": "SSDPE2MD800G4", 70 | "revision": "8DV10102", 71 | "capacity_bytes": "800166076416", 72 | "rotation_rate": "Solid State Device", 73 | "type": "journal", 74 | "osd_id": "osd.0" 75 | }, 76 | { 77 | "hostname": "hswnode01", 78 | "dev_path": "/dev/nvme0n1p2", 79 | "vendor": "INTEL", 80 | "product": "SSDPE2MD800G4", 81 | "revision": "8DV10102", 82 | "capacity_bytes": "800166076416", 83 | "rotation_rate": "Solid State Device", 84 | "type": "journal", 85 | "osd_id": "osd.1" 86 | }, 87 | { 88 | "hostname": "hswnode01", 89 | "dev_path": "/dev/nvme0n1p3", 90 | "vendor": "INTEL", 91 | "product": "SSDPE2MD800G4", 92 | "revision": "8DV10102", 93 | "capacity_bytes": "800166076416", 94 | "rotation_rate": "Solid State Device", 95 | "type": "journal", 96 | "osd_id": "osd.2" 97 | }, 98 | { 99 | "hostname": "hswnode01", 100 | "dev_path": "/dev/nvme0n1p4", 101 | "vendor": "INTEL", 102 | "product": "SSDPE2MD800G4", 103 | "revision": "8DV10102", 104 | "capacity_bytes": "800166076416", 105 | "rotation_rate": "Solid State Device", 106 | "type": "journal", 107 | "osd_id": "osd.3" 108 | }, 109 | { 110 | "hostname": "hswnode01", 111 | "dev_path": "/dev/nvme0n1p5", 112 | "vendor": "INTEL", 113 | "product": "SSDPE2MD800G4", 114 | "revision": "8DV10102", 115 | "capacity_bytes": "800166076416", 116 | "rotation_rate": "Solid State Device", 117 | "type": "osd", 118 | "osd_id": "osd.0" 119 | }, 120 | { 121 | "hostname": "hswnode01", 122 | "dev_path": "/dev/nvme0n1p6", 123 | "vendor": "INTEL", 124 | "product": "SSDPE2MD800G4", 125 | "revision": "8DV10102", 126 | "capacity_bytes": "800166076416", 127 | "rotation_rate": "Solid State Device", 128 | "type": "osd", 129 | "osd_id": "osd.1" 130 | }, 131 | { 132 | "hostname": "hswnode01", 133 | "dev_path": "/dev/nvme0n1p7", 134 | "vendor": "INTEL", 135 | "product": "SSDPE2MD800G4", 136 | "revision": "8DV10102", 137 | "capacity_bytes": "800166076416", 138 | "rotation_rate": "Solid State Device", 139 | "type": "osd", 140 | "osd_id": "osd.2" 141 | }, 142 | { 143 | "hostname": "hswnode01", 144 | "dev_path": "/dev/nvme0n1p8", 145 | "vendor": "INTEL", 146 | "product": "SSDPE2MD800G4", 147 | "revision": "8DV10102", 148 | "capacity_bytes": "800166076416", 149 | "rotation_rate": "Solid State Device", 150 | "type": "osd", 151 | "osd_id": "osd.3" 152 | }, 153 | { 154 | "hostname": "hswnode01", 155 | "dev_path": "/dev/nvme1n1p1", 156 | "vendor": "INTEL", 157 | "product": "SSDPE2MD800G4", 158 | "revision": "8DV10102", 159 | "capacity_bytes": "800166076416", 160 | "rotation_rate": "Solid State Device", 161 | "type": "journal", 162 | "osd_id": "osd.4" 163 | }, 164 | { 165 | "hostname": "hswnode01", 166 | "dev_path": "/dev/nvme1n1p2", 167 | "vendor": "INTEL", 168 | "product": "SSDPE2MD800G4", 169 | "revision": "8DV10102", 170 | "capacity_bytes": "800166076416", 171 | "rotation_rate": "Solid State Device", 172 | "type": "journal", 173 | "osd_id": "osd.5" 174 | }, 175 | { 176 | "hostname": "hswnode01", 177 | "dev_path": "/dev/nvme1n1p3", 178 | "vendor": "INTEL", 179 | "product": "SSDPE2MD800G4", 180 | "revision": "8DV10102", 181 | "capacity_bytes": "800166076416", 182 | "rotation_rate": "Solid State Device", 183 | "type": "journal", 184 | "osd_id": "osd.6" 185 | }, 186 | { 187 | "hostname": "hswnode01", 188 | "dev_path": "/dev/nvme1n1p4", 189 | "vendor": "INTEL", 190 | "product": "SSDPE2MD800G4", 191 | "revision": "8DV10102", 192 | "capacity_bytes": "800166076416", 193 | "rotation_rate": "Solid State Device", 194 | "type": "journal", 195 | "osd_id": "osd.7" 196 | }, 197 | { 198 | "hostname": "hswnode01", 199 | "dev_path": "/dev/nvme1n1p5", 200 | "vendor": "INTEL", 201 | "product": "SSDPE2MD800G4", 202 | "revision": "8DV10102", 203 | "capacity_bytes": "800166076416", 204 | "rotation_rate": "Solid State Device", 205 | "type": "osd", 206 | "osd_id": "osd.4" 207 | }, 208 | { 209 | "hostname": "hswnode01", 210 | "dev_path": "/dev/nvme1n1p6", 211 | "vendor": "INTEL", 212 | "product": "SSDPE2MD800G4", 213 | "revision": "8DV10102", 214 | "capacity_bytes": "800166076416", 215 | "rotation_rate": "Solid State Device", 216 | "type": "osd", 217 | "osd_id": "osd.5" 218 | }, 219 | { 220 | "hostname": "hswnode01", 221 | "dev_path": "/dev/nvme1n1p7", 222 | "vendor": "INTEL", 223 | "product": "SSDPE2MD800G4", 224 | "revision": "8DV10102", 225 | "capacity_bytes": "800166076416", 226 | "rotation_rate": "Solid State Device", 227 | "type": "osd", 228 | "osd_id": "osd.6" 229 | }, 230 | { 231 | "hostname": "hswnode01", 232 | "dev_path": "/dev/nvme1n1p8", 233 | "vendor": "INTEL", 234 | "product": "SSDPE2MD800G4", 235 | "revision": "8DV10102", 236 | "capacity_bytes": "800166076416", 237 | "rotation_rate": "Solid State Device", 238 | "type": "osd", 239 | "osd_id": "osd.7" 240 | }, 241 | { 242 | "hostname": "hswnode01", 243 | "dev_path": "/dev/nvme2n1p1", 244 | "vendor": "INTEL", 245 | "product": "SSDPE2MD800G4", 246 | "revision": "8DV10102", 247 | "capacity_bytes": "800166076416", 248 | "rotation_rate": "Solid State Device", 249 | "type": "journal", 250 | "osd_id": "osd.8" 251 | }, 252 | { 253 | "hostname": "hswnode01", 254 | "dev_path": "/dev/nvme2n1p2", 255 | "vendor": "INTEL", 256 | "product": "SSDPE2MD800G4", 257 | "revision": "8DV10102", 258 | "capacity_bytes": "800166076416", 259 | "rotation_rate": "Solid State Device", 260 | "type": "journal", 261 | "osd_id": "osd.9" 262 | }, 263 | { 264 | "hostname": "hswnode01", 265 | "dev_path": "/dev/nvme2n1p3", 266 | "vendor": "INTEL", 267 | "product": "SSDPE2MD800G4", 268 | "revision": "8DV10102", 269 | "capacity_bytes": "800166076416", 270 | "rotation_rate": "Solid State Device", 271 | "type": "journal", 272 | "osd_id": "osd.10" 273 | }, 274 | { 275 | "hostname": "hswnode01", 276 | "dev_path": "/dev/nvme2n1p4", 277 | "vendor": "INTEL", 278 | "product": "SSDPE2MD800G4", 279 | "revision": "8DV10102", 280 | "capacity_bytes": "800166076416", 281 | "rotation_rate": "Solid State Device", 282 | "type": "journal", 283 | "osd_id": "osd.11" 284 | }, 285 | { 286 | "hostname": "hswnode01", 287 | "dev_path": "/dev/nvme2n1p5", 288 | "vendor": "INTEL", 289 | "product": "SSDPE2MD800G4", 290 | "revision": "8DV10102", 291 | "capacity_bytes": "800166076416", 292 | "rotation_rate": "Solid State Device", 293 | "type": "osd", 294 | "osd_id": "osd.8" 295 | }, 296 | { 297 | "hostname": "hswnode01", 298 | "dev_path": "/dev/nvme2n1p6", 299 | "vendor": "INTEL", 300 | "product": "SSDPE2MD800G4", 301 | "revision": "8DV10102", 302 | "capacity_bytes": "800166076416", 303 | "rotation_rate": "Solid State Device", 304 | "type": "osd", 305 | "osd_id": "osd.9" 306 | }, 307 | { 308 | "hostname": "hswnode01", 309 | "dev_path": "/dev/nvme2n1p7", 310 | "vendor": "INTEL", 311 | "product": "SSDPE2MD800G4", 312 | "revision": "8DV10102", 313 | "capacity_bytes": "800166076416", 314 | "rotation_rate": "Solid State Device", 315 | "type": "osd", 316 | "osd_id": "osd.10" 317 | }, 318 | { 319 | "hostname": "hswnode01", 320 | "dev_path": "/dev/nvme2n1p8", 321 | "vendor": "INTEL", 322 | "product": "SSDPE2MD800G4", 323 | "revision": "8DV10102", 324 | "capacity_bytes": "800166076416", 325 | "rotation_rate": "Solid State Device", 326 | "type": "osd", 327 | "osd_id": "osd.11" 328 | }, 329 | { 330 | "hostname": "hswnode01", 331 | "dev_path": "/dev/nvme3n1p1", 332 | "vendor": "INTEL", 333 | "product": "SSDPE2MD800G4", 334 | "revision": "8DV10102", 335 | "capacity_bytes": "800166076416", 336 | "rotation_rate": "Solid State Device", 337 | "type": "journal", 338 | "osd_id": "osd.12" 339 | }, 340 | { 341 | "hostname": "hswnode01", 342 | "dev_path": "/dev/nvme3n1p2", 343 | "vendor": "INTEL", 344 | "product": "SSDPE2MD800G4", 345 | "revision": "8DV10102", 346 | "capacity_bytes": "800166076416", 347 | "rotation_rate": "Solid State Device", 348 | "type": "journal", 349 | "osd_id": "osd.13" 350 | }, 351 | { 352 | "hostname": "hswnode01", 353 | "dev_path": "/dev/nvme3n1p3", 354 | "vendor": "INTEL", 355 | "product": "SSDPE2MD800G4", 356 | "revision": "8DV10102", 357 | "capacity_bytes": "800166076416", 358 | "rotation_rate": "Solid State Device", 359 | "type": "journal", 360 | "osd_id": "osd.14" 361 | }, 362 | { 363 | "hostname": "hswnode01", 364 | "dev_path": "/dev/nvme3n1p4", 365 | "vendor": "INTEL", 366 | "product": "SSDPE2MD800G4", 367 | "revision": "8DV10102", 368 | "capacity_bytes": "800166076416", 369 | "rotation_rate": "Solid State Device", 370 | "type": "journal", 371 | "osd_id": "osd.15" 372 | }, 373 | { 374 | "hostname": "hswnode01", 375 | "dev_path": "/dev/nvme3n1p5", 376 | "vendor": "INTEL", 377 | "product": "SSDPE2MD800G4", 378 | "revision": "8DV10102", 379 | "capacity_bytes": "800166076416", 380 | "rotation_rate": "Solid State Device", 381 | "type": "osd", 382 | "osd_id": "osd.12" 383 | }, 384 | { 385 | "hostname": "hswnode01", 386 | "dev_path": "/dev/nvme3n1p6", 387 | "vendor": "INTEL", 388 | "product": "SSDPE2MD800G4", 389 | "revision": "8DV10102", 390 | "capacity_bytes": "800166076416", 391 | "rotation_rate": "Solid State Device", 392 | "type": "osd", 393 | "osd_id": "osd.13" 394 | }, 395 | { 396 | "hostname": "hswnode01", 397 | "dev_path": "/dev/nvme3n1p7", 398 | "vendor": "INTEL", 399 | "product": "SSDPE2MD800G4", 400 | "revision": "8DV10102", 401 | "capacity_bytes": "800166076416", 402 | "rotation_rate": "Solid State Device", 403 | "type": "osd", 404 | "osd_id": "osd.14" 405 | }, 406 | { 407 | "hostname": "hswnode01", 408 | "dev_path": "/dev/nvme3n1p8", 409 | "vendor": "INTEL", 410 | "product": "SSDPE2MD800G4", 411 | "revision": "8DV10102", 412 | "capacity_bytes": "800166076416", 413 | "rotation_rate": "Solid State Device", 414 | "type": "osd", 415 | "osd_id": "osd.15" 416 | }, 417 | { 418 | "hostname": "hswnode02", 419 | "dev_path": "/dev/sda", 420 | "vendor": "INTEL", 421 | "product": "SSDSC2BA400G3", 422 | "revision": "5DV10270", 423 | "capacity_bytes": "400088457216", 424 | "rotation_rate": "Solid State Device", 425 | "type": "operating system" 426 | }, 427 | { 428 | "hostname": "hswnode02", 429 | "dev_path": "/dev/nvme0n1p1", 430 | "vendor": "INTEL", 431 | "product": "SSDPE2MD800G4", 432 | "revision": "8DV10102", 433 | "capacity_bytes": "800166076416", 434 | "rotation_rate": "Solid State Device", 435 | "type": "journal", 436 | "osd_id": "osd.16" 437 | }, 438 | { 439 | "hostname": "hswnode02", 440 | "dev_path": "/dev/nvme0n1p2", 441 | "vendor": "INTEL", 442 | "product": "SSDPE2MD800G4", 443 | "revision": "8DV10102", 444 | "capacity_bytes": "800166076416", 445 | "rotation_rate": "Solid State Device", 446 | "type": "journal", 447 | "osd_id": "osd.17" 448 | }, 449 | { 450 | "hostname": "hswnode02", 451 | "dev_path": "/dev/nvme0n1p3", 452 | "vendor": "INTEL", 453 | "product": "SSDPE2MD800G4", 454 | "revision": "8DV10102", 455 | "capacity_bytes": "800166076416", 456 | "rotation_rate": "Solid State Device", 457 | "type": "journal", 458 | "osd_id": "osd.18" 459 | }, 460 | { 461 | "hostname": "hswnode02", 462 | "dev_path": "/dev/nvme0n1p4", 463 | "vendor": "INTEL", 464 | "product": "SSDPE2MD800G4", 465 | "revision": "8DV10102", 466 | "capacity_bytes": "800166076416", 467 | "rotation_rate": "Solid State Device", 468 | "type": "journal", 469 | "osd_id": "osd.19" 470 | }, 471 | { 472 | "hostname": "hswnode02", 473 | "dev_path": "/dev/nvme0n1p5", 474 | "vendor": "INTEL", 475 | "product": "SSDPE2MD800G4", 476 | "revision": "8DV10102", 477 | "capacity_bytes": "800166076416", 478 | "rotation_rate": "Solid State Device", 479 | "type": "osd", 480 | "osd_id": "osd.16" 481 | }, 482 | { 483 | "hostname": "hswnode02", 484 | "dev_path": "/dev/nvme0n1p6", 485 | "vendor": "INTEL", 486 | "product": "SSDPE2MD800G4", 487 | "revision": "8DV10102", 488 | "capacity_bytes": "800166076416", 489 | "rotation_rate": "Solid State Device", 490 | "type": "osd", 491 | "osd_id": "osd.17" 492 | }, 493 | { 494 | "hostname": "hswnode02", 495 | "dev_path": "/dev/nvme0n1p7", 496 | "vendor": "INTEL", 497 | "product": "SSDPE2MD800G4", 498 | "revision": "8DV10102", 499 | "capacity_bytes": "800166076416", 500 | "rotation_rate": "Solid State Device", 501 | "type": "osd", 502 | "osd_id": "osd.18" 503 | }, 504 | { 505 | "hostname": "hswnode02", 506 | "dev_path": "/dev/nvme0n1p8", 507 | "vendor": "INTEL", 508 | "product": "SSDPE2MD800G4", 509 | "revision": "8DV10102", 510 | "capacity_bytes": "800166076416", 511 | "rotation_rate": "Solid State Device", 512 | "type": "osd", 513 | "osd_id": "osd.19" 514 | }, 515 | { 516 | "hostname": "hswnode02", 517 | "dev_path": "/dev/nvme1n1p1", 518 | "vendor": "INTEL", 519 | "product": "SSDPE2MD800G4", 520 | "revision": "8DV10102", 521 | "capacity_bytes": "800166076416", 522 | "rotation_rate": "Solid State Device", 523 | "type": "journal", 524 | "osd_id": "osd.20" 525 | }, 526 | { 527 | "hostname": "hswnode02", 528 | "dev_path": "/dev/nvme1n1p2", 529 | "vendor": "INTEL", 530 | "product": "SSDPE2MD800G4", 531 | "revision": "8DV10102", 532 | "capacity_bytes": "800166076416", 533 | "rotation_rate": "Solid State Device", 534 | "type": "journal", 535 | "osd_id": "osd.21" 536 | }, 537 | { 538 | "hostname": "hswnode02", 539 | "dev_path": "/dev/nvme1n1p3", 540 | "vendor": "INTEL", 541 | "product": "SSDPE2MD800G4", 542 | "revision": "8DV10102", 543 | "capacity_bytes": "800166076416", 544 | "rotation_rate": "Solid State Device", 545 | "type": "journal", 546 | "osd_id": "osd.22" 547 | }, 548 | { 549 | "hostname": "hswnode02", 550 | "dev_path": "/dev/nvme1n1p4", 551 | "vendor": "INTEL", 552 | "product": "SSDPE2MD800G4", 553 | "revision": "8DV10102", 554 | "capacity_bytes": "800166076416", 555 | "rotation_rate": "Solid State Device", 556 | "type": "journal", 557 | "osd_id": "osd.23" 558 | }, 559 | { 560 | "hostname": "hswnode02", 561 | "dev_path": "/dev/nvme1n1p5", 562 | "vendor": "INTEL", 563 | "product": "SSDPE2MD800G4", 564 | "revision": "8DV10102", 565 | "capacity_bytes": "800166076416", 566 | "rotation_rate": "Solid State Device", 567 | "type": "osd", 568 | "osd_id": "osd.20" 569 | }, 570 | { 571 | "hostname": "hswnode02", 572 | "dev_path": "/dev/nvme1n1p6", 573 | "vendor": "INTEL", 574 | "product": "SSDPE2MD800G4", 575 | "revision": "8DV10102", 576 | "capacity_bytes": "800166076416", 577 | "rotation_rate": "Solid State Device", 578 | "type": "osd", 579 | "osd_id": "osd.21" 580 | }, 581 | { 582 | "hostname": "hswnode02", 583 | "dev_path": "/dev/nvme1n1p7", 584 | "vendor": "INTEL", 585 | "product": "SSDPE2MD800G4", 586 | "revision": "8DV10102", 587 | "capacity_bytes": "800166076416", 588 | "rotation_rate": "Solid State Device", 589 | "type": "osd", 590 | "osd_id": "osd.22" 591 | }, 592 | { 593 | "hostname": "hswnode02", 594 | "dev_path": "/dev/nvme1n1p8", 595 | "vendor": "INTEL", 596 | "product": "SSDPE2MD800G4", 597 | "revision": "8DV10102", 598 | "capacity_bytes": "800166076416", 599 | "rotation_rate": "Solid State Device", 600 | "type": "osd", 601 | "osd_id": "osd.23" 602 | }, 603 | { 604 | "hostname": "hswnode02", 605 | "dev_path": "/dev/nvme2n1p1", 606 | "vendor": "INTEL", 607 | "product": "SSDPE2MD800G4", 608 | "revision": "8DV10102", 609 | "capacity_bytes": "800166076416", 610 | "rotation_rate": "Solid State Device", 611 | "type": "journal", 612 | "osd_id": "osd.24" 613 | }, 614 | { 615 | "hostname": "hswnode02", 616 | "dev_path": "/dev/nvme2n1p2", 617 | "vendor": "INTEL", 618 | "product": "SSDPE2MD800G4", 619 | "revision": "8DV10102", 620 | "capacity_bytes": "800166076416", 621 | "rotation_rate": "Solid State Device", 622 | "type": "journal", 623 | "osd_id": "osd.25" 624 | }, 625 | { 626 | "hostname": "hswnode02", 627 | "dev_path": "/dev/nvme2n1p3", 628 | "vendor": "INTEL", 629 | "product": "SSDPE2MD800G4", 630 | "revision": "8DV10102", 631 | "capacity_bytes": "800166076416", 632 | "rotation_rate": "Solid State Device", 633 | "type": "journal", 634 | "osd_id": "osd.26" 635 | }, 636 | { 637 | "hostname": "hswnode02", 638 | "dev_path": "/dev/nvme2n1p4", 639 | "vendor": "INTEL", 640 | "product": "SSDPE2MD800G4", 641 | "revision": "8DV10102", 642 | "capacity_bytes": "800166076416", 643 | "rotation_rate": "Solid State Device", 644 | "type": "journal", 645 | "osd_id": "osd.27" 646 | }, 647 | { 648 | "hostname": "hswnode02", 649 | "dev_path": "/dev/nvme2n1p5", 650 | "vendor": "INTEL", 651 | "product": "SSDPE2MD800G4", 652 | "revision": "8DV10102", 653 | "capacity_bytes": "800166076416", 654 | "rotation_rate": "Solid State Device", 655 | "type": "osd", 656 | "osd_id": "osd.24" 657 | }, 658 | { 659 | "hostname": "hswnode02", 660 | "dev_path": "/dev/nvme2n1p6", 661 | "vendor": "INTEL", 662 | "product": "SSDPE2MD800G4", 663 | "revision": "8DV10102", 664 | "capacity_bytes": "800166076416", 665 | "rotation_rate": "Solid State Device", 666 | "type": "osd", 667 | "osd_id": "osd.25" 668 | }, 669 | { 670 | "hostname": "hswnode02", 671 | "dev_path": "/dev/nvme2n1p7", 672 | "vendor": "INTEL", 673 | "product": "SSDPE2MD800G4", 674 | "revision": "8DV10102", 675 | "capacity_bytes": "800166076416", 676 | "rotation_rate": "Solid State Device", 677 | "type": "osd", 678 | "osd_id": "osd.26" 679 | }, 680 | { 681 | "hostname": "hswnode02", 682 | "dev_path": "/dev/nvme2n1p8", 683 | "vendor": "INTEL", 684 | "product": "SSDPE2MD800G4", 685 | "revision": "8DV10102", 686 | "capacity_bytes": "800166076416", 687 | "rotation_rate": "Solid State Device", 688 | "type": "osd", 689 | "osd_id": "osd.27" 690 | }, 691 | { 692 | "hostname": "hswnode02", 693 | "dev_path": "/dev/nvme3n1p1", 694 | "vendor": "INTEL", 695 | "product": "SSDPE2MD800G4", 696 | "revision": "8DV10102", 697 | "capacity_bytes": "800166076416", 698 | "rotation_rate": "Solid State Device", 699 | "type": "journal", 700 | "osd_id": "osd.28" 701 | }, 702 | { 703 | "hostname": "hswnode02", 704 | "dev_path": "/dev/nvme3n1p2", 705 | "vendor": "INTEL", 706 | "product": "SSDPE2MD800G4", 707 | "revision": "8DV10102", 708 | "capacity_bytes": "800166076416", 709 | "rotation_rate": "Solid State Device", 710 | "type": "journal", 711 | "osd_id": "osd.29" 712 | }, 713 | { 714 | "hostname": "hswnode02", 715 | "dev_path": "/dev/nvme3n1p3", 716 | "vendor": "INTEL", 717 | "product": "SSDPE2MD800G4", 718 | "revision": "8DV10102", 719 | "capacity_bytes": "800166076416", 720 | "rotation_rate": "Solid State Device", 721 | "type": "journal", 722 | "osd_id": "osd.30" 723 | }, 724 | { 725 | "hostname": "hswnode02", 726 | "dev_path": "/dev/nvme3n1p4", 727 | "vendor": "INTEL", 728 | "product": "SSDPE2MD800G4", 729 | "revision": "8DV10102", 730 | "capacity_bytes": "800166076416", 731 | "rotation_rate": "Solid State Device", 732 | "type": "journal", 733 | "osd_id": "osd.31" 734 | }, 735 | { 736 | "hostname": "hswnode02", 737 | "dev_path": "/dev/nvme3n1p5", 738 | "vendor": "INTEL", 739 | "product": "SSDPE2MD800G4", 740 | "revision": "8DV10102", 741 | "capacity_bytes": "800166076416", 742 | "rotation_rate": "Solid State Device", 743 | "type": "osd", 744 | "osd_id": "osd.28" 745 | }, 746 | { 747 | "hostname": "hswnode02", 748 | "dev_path": "/dev/nvme3n1p6", 749 | "vendor": "INTEL", 750 | "product": "SSDPE2MD800G4", 751 | "revision": "8DV10102", 752 | "capacity_bytes": "800166076416", 753 | "rotation_rate": "Solid State Device", 754 | "type": "osd", 755 | "osd_id": "osd.29" 756 | }, 757 | { 758 | "hostname": "hswnode02", 759 | "dev_path": "/dev/nvme3n1p7", 760 | "vendor": "INTEL", 761 | "product": "SSDPE2MD800G4", 762 | "revision": "8DV10102", 763 | "capacity_bytes": "800166076416", 764 | "rotation_rate": "Solid State Device", 765 | "type": "osd", 766 | "osd_id": "osd.30" 767 | }, 768 | { 769 | "hostname": "hswnode02", 770 | "dev_path": "/dev/nvme3n1p8", 771 | "vendor": "INTEL", 772 | "product": "SSDPE2MD800G4", 773 | "revision": "8DV10102", 774 | "capacity_bytes": "800166076416", 775 | "rotation_rate": "Solid State Device", 776 | "type": "osd", 777 | "osd_id": "osd.31" 778 | }, 779 | { 780 | "hostname": "hswnode03", 781 | "dev_path": "/dev/sda", 782 | "vendor": "INTEL", 783 | "product": "SSDSC2BA400G3", 784 | "revision": "5DV10270", 785 | "capacity_bytes": "400088457216", 786 | "rotation_rate": "Solid State Device", 787 | "type": "operating system" 788 | }, 789 | { 790 | "hostname": "hswnode03", 791 | "dev_path": "/dev/nvme0n1p1", 792 | "vendor": "INTEL", 793 | "product": "SSDPE2MD800G4", 794 | "revision": "8DV10102", 795 | "capacity_bytes": "800166076416", 796 | "rotation_rate": "Solid State Device", 797 | "type": "journal", 798 | "osd_id": "osd.32" 799 | }, 800 | { 801 | "hostname": "hswnode03", 802 | "dev_path": "/dev/nvme0n1p2", 803 | "vendor": "INTEL", 804 | "product": "SSDPE2MD800G4", 805 | "revision": "8DV10102", 806 | "capacity_bytes": "800166076416", 807 | "rotation_rate": "Solid State Device", 808 | "type": "journal", 809 | "osd_id": "osd.33" 810 | }, 811 | { 812 | "hostname": "hswnode03", 813 | "dev_path": "/dev/nvme0n1p3", 814 | "vendor": "INTEL", 815 | "product": "SSDPE2MD800G4", 816 | "revision": "8DV10102", 817 | "capacity_bytes": "800166076416", 818 | "rotation_rate": "Solid State Device", 819 | "type": "journal", 820 | "osd_id": "osd.34" 821 | }, 822 | { 823 | "hostname": "hswnode03", 824 | "dev_path": "/dev/nvme0n1p4", 825 | "vendor": "INTEL", 826 | "product": "SSDPE2MD800G4", 827 | "revision": "8DV10102", 828 | "capacity_bytes": "800166076416", 829 | "rotation_rate": "Solid State Device", 830 | "type": "journal", 831 | "osd_id": "osd.35" 832 | }, 833 | { 834 | "hostname": "hswnode03", 835 | "dev_path": "/dev/nvme0n1p5", 836 | "vendor": "INTEL", 837 | "product": "SSDPE2MD800G4", 838 | "revision": "8DV10102", 839 | "capacity_bytes": "800166076416", 840 | "rotation_rate": "Solid State Device", 841 | "type": "osd", 842 | "osd_id": "osd.32" 843 | }, 844 | { 845 | "hostname": "hswnode03", 846 | "dev_path": "/dev/nvme0n1p6", 847 | "vendor": "INTEL", 848 | "product": "SSDPE2MD800G4", 849 | "revision": "8DV10102", 850 | "capacity_bytes": "800166076416", 851 | "rotation_rate": "Solid State Device", 852 | "type": "osd", 853 | "osd_id": "osd.33" 854 | }, 855 | { 856 | "hostname": "hswnode03", 857 | "dev_path": "/dev/nvme0n1p7", 858 | "vendor": "INTEL", 859 | "product": "SSDPE2MD800G4", 860 | "revision": "8DV10102", 861 | "capacity_bytes": "800166076416", 862 | "rotation_rate": "Solid State Device", 863 | "type": "osd", 864 | "osd_id": "osd.34" 865 | }, 866 | { 867 | "hostname": "hswnode03", 868 | "dev_path": "/dev/nvme0n1p8", 869 | "vendor": "INTEL", 870 | "product": "SSDPE2MD800G4", 871 | "revision": "8DV10102", 872 | "capacity_bytes": "800166076416", 873 | "rotation_rate": "Solid State Device", 874 | "type": "osd", 875 | "osd_id": "osd.35" 876 | }, 877 | { 878 | "hostname": "hswnode03", 879 | "dev_path": "/dev/nvme1n1p1", 880 | "vendor": "INTEL", 881 | "product": "SSDPE2MD800G4", 882 | "revision": "8DV10102", 883 | "capacity_bytes": "800166076416", 884 | "rotation_rate": "Solid State Device", 885 | "type": "journal", 886 | "osd_id": "osd.36" 887 | }, 888 | { 889 | "hostname": "hswnode03", 890 | "dev_path": "/dev/nvme1n1p2", 891 | "vendor": "INTEL", 892 | "product": "SSDPE2MD800G4", 893 | "revision": "8DV10102", 894 | "capacity_bytes": "800166076416", 895 | "rotation_rate": "Solid State Device", 896 | "type": "journal", 897 | "osd_id": "osd.37" 898 | }, 899 | { 900 | "hostname": "hswnode03", 901 | "dev_path": "/dev/nvme1n1p3", 902 | "vendor": "INTEL", 903 | "product": "SSDPE2MD800G4", 904 | "revision": "8DV10102", 905 | "capacity_bytes": "800166076416", 906 | "rotation_rate": "Solid State Device", 907 | "type": "journal", 908 | "osd_id": "osd.38" 909 | }, 910 | { 911 | "hostname": "hswnode03", 912 | "dev_path": "/dev/nvme1n1p4", 913 | "vendor": "INTEL", 914 | "product": "SSDPE2MD800G4", 915 | "revision": "8DV10102", 916 | "capacity_bytes": "800166076416", 917 | "rotation_rate": "Solid State Device", 918 | "type": "journal", 919 | "osd_id": "osd.39" 920 | }, 921 | { 922 | "hostname": "hswnode03", 923 | "dev_path": "/dev/nvme1n1p5", 924 | "vendor": "INTEL", 925 | "product": "SSDPE2MD800G4", 926 | "revision": "8DV10102", 927 | "capacity_bytes": "800166076416", 928 | "rotation_rate": "Solid State Device", 929 | "type": "osd", 930 | "osd_id": "osd.36" 931 | }, 932 | { 933 | "hostname": "hswnode03", 934 | "dev_path": "/dev/nvme1n1p6", 935 | "vendor": "INTEL", 936 | "product": "SSDPE2MD800G4", 937 | "revision": "8DV10102", 938 | "capacity_bytes": "800166076416", 939 | "rotation_rate": "Solid State Device", 940 | "type": "osd", 941 | "osd_id": "osd.37" 942 | }, 943 | { 944 | "hostname": "hswnode03", 945 | "dev_path": "/dev/nvme1n1p7", 946 | "vendor": "INTEL", 947 | "product": "SSDPE2MD800G4", 948 | "revision": "8DV10102", 949 | "capacity_bytes": "800166076416", 950 | "rotation_rate": "Solid State Device", 951 | "type": "osd", 952 | "osd_id": "osd.38" 953 | }, 954 | { 955 | "hostname": "hswnode03", 956 | "dev_path": "/dev/nvme1n1p8", 957 | "vendor": "INTEL", 958 | "product": "SSDPE2MD800G4", 959 | "revision": "8DV10102", 960 | "capacity_bytes": "800166076416", 961 | "rotation_rate": "Solid State Device", 962 | "type": "osd", 963 | "osd_id": "osd.39" 964 | }, 965 | { 966 | "hostname": "hswnode03", 967 | "dev_path": "/dev/nvme2n1p1", 968 | "vendor": "INTEL", 969 | "product": "SSDPE2MD800G4", 970 | "revision": "8DV10102", 971 | "capacity_bytes": "800166076416", 972 | "rotation_rate": "Solid State Device", 973 | "type": "journal", 974 | "osd_id": "osd.40" 975 | }, 976 | { 977 | "hostname": "hswnode03", 978 | "dev_path": "/dev/nvme2n1p2", 979 | "vendor": "INTEL", 980 | "product": "SSDPE2MD800G4", 981 | "revision": "8DV10102", 982 | "capacity_bytes": "800166076416", 983 | "rotation_rate": "Solid State Device", 984 | "type": "journal", 985 | "osd_id": "osd.41" 986 | }, 987 | { 988 | "hostname": "hswnode03", 989 | "dev_path": "/dev/nvme2n1p3", 990 | "vendor": "INTEL", 991 | "product": "SSDPE2MD800G4", 992 | "revision": "8DV10102", 993 | "capacity_bytes": "800166076416", 994 | "rotation_rate": "Solid State Device", 995 | "type": "journal", 996 | "osd_id": "osd.42" 997 | }, 998 | { 999 | "hostname": "hswnode03", 1000 | "dev_path": "/dev/nvme2n1p4", 1001 | "vendor": "INTEL", 1002 | "product": "SSDPE2MD800G4", 1003 | "revision": "8DV10102", 1004 | "capacity_bytes": "800166076416", 1005 | "rotation_rate": "Solid State Device", 1006 | "type": "journal", 1007 | "osd_id": "osd.43" 1008 | }, 1009 | { 1010 | "hostname": "hswnode03", 1011 | "dev_path": "/dev/nvme2n1p5", 1012 | "vendor": "INTEL", 1013 | "product": "SSDPE2MD800G4", 1014 | "revision": "8DV10102", 1015 | "capacity_bytes": "800166076416", 1016 | "rotation_rate": "Solid State Device", 1017 | "type": "osd", 1018 | "osd_id": "osd.40" 1019 | }, 1020 | { 1021 | "hostname": "hswnode03", 1022 | "dev_path": "/dev/nvme2n1p6", 1023 | "vendor": "INTEL", 1024 | "product": "SSDPE2MD800G4", 1025 | "revision": "8DV10102", 1026 | "capacity_bytes": "800166076416", 1027 | "rotation_rate": "Solid State Device", 1028 | "type": "osd", 1029 | "osd_id": "osd.41" 1030 | }, 1031 | { 1032 | "hostname": "hswnode03", 1033 | "dev_path": "/dev/nvme2n1p7", 1034 | "vendor": "INTEL", 1035 | "product": "SSDPE2MD800G4", 1036 | "revision": "8DV10102", 1037 | "capacity_bytes": "800166076416", 1038 | "rotation_rate": "Solid State Device", 1039 | "type": "osd", 1040 | "osd_id": "osd.42" 1041 | }, 1042 | { 1043 | "hostname": "hswnode03", 1044 | "dev_path": "/dev/nvme2n1p8", 1045 | "vendor": "INTEL", 1046 | "product": "SSDPE2MD800G4", 1047 | "revision": "8DV10102", 1048 | "capacity_bytes": "800166076416", 1049 | "rotation_rate": "Solid State Device", 1050 | "type": "osd", 1051 | "osd_id": "osd.43" 1052 | }, 1053 | { 1054 | "hostname": "hswnode03", 1055 | "dev_path": "/dev/nvme3n1p1", 1056 | "vendor": "INTEL", 1057 | "product": "SSDPE2MD800G4", 1058 | "revision": "8DV10102", 1059 | "capacity_bytes": "800166076416", 1060 | "rotation_rate": "Solid State Device", 1061 | "type": "journal", 1062 | "osd_id": "osd.44" 1063 | }, 1064 | { 1065 | "hostname": "hswnode03", 1066 | "dev_path": "/dev/nvme3n1p2", 1067 | "vendor": "INTEL", 1068 | "product": "SSDPE2MD800G4", 1069 | "revision": "8DV10102", 1070 | "capacity_bytes": "800166076416", 1071 | "rotation_rate": "Solid State Device", 1072 | "type": "journal", 1073 | "osd_id": "osd.45" 1074 | }, 1075 | { 1076 | "hostname": "hswnode03", 1077 | "dev_path": "/dev/nvme3n1p3", 1078 | "vendor": "INTEL", 1079 | "product": "SSDPE2MD800G4", 1080 | "revision": "8DV10102", 1081 | "capacity_bytes": "800166076416", 1082 | "rotation_rate": "Solid State Device", 1083 | "type": "journal", 1084 | "osd_id": "osd.46" 1085 | }, 1086 | { 1087 | "hostname": "hswnode03", 1088 | "dev_path": "/dev/nvme3n1p4", 1089 | "vendor": "INTEL", 1090 | "product": "SSDPE2MD800G4", 1091 | "revision": "8DV10102", 1092 | "capacity_bytes": "800166076416", 1093 | "rotation_rate": "Solid State Device", 1094 | "type": "journal", 1095 | "osd_id": "osd.47" 1096 | }, 1097 | { 1098 | "hostname": "hswnode03", 1099 | "dev_path": "/dev/nvme3n1p5", 1100 | "vendor": "INTEL", 1101 | "product": "SSDPE2MD800G4", 1102 | "revision": "8DV10102", 1103 | "capacity_bytes": "800166076416", 1104 | "rotation_rate": "Solid State Device", 1105 | "type": "osd", 1106 | "osd_id": "osd.44" 1107 | }, 1108 | { 1109 | "hostname": "hswnode03", 1110 | "dev_path": "/dev/nvme3n1p6", 1111 | "vendor": "INTEL", 1112 | "product": "SSDPE2MD800G4", 1113 | "revision": "8DV10102", 1114 | "capacity_bytes": "800166076416", 1115 | "rotation_rate": "Solid State Device", 1116 | "type": "osd", 1117 | "osd_id": "osd.45" 1118 | }, 1119 | { 1120 | "hostname": "hswnode03", 1121 | "dev_path": "/dev/nvme3n1p7", 1122 | "vendor": "INTEL", 1123 | "product": "SSDPE2MD800G4", 1124 | "revision": "8DV10102", 1125 | "capacity_bytes": "800166076416", 1126 | "rotation_rate": "Solid State Device", 1127 | "type": "osd", 1128 | "osd_id": "osd.46" 1129 | }, 1130 | { 1131 | "hostname": "hswnode03", 1132 | "dev_path": "/dev/nvme3n1p8", 1133 | "vendor": "INTEL", 1134 | "product": "SSDPE2MD800G4", 1135 | "revision": "8DV10102", 1136 | "capacity_bytes": "800166076416", 1137 | "rotation_rate": "Solid State Device", 1138 | "type": "osd", 1139 | "osd_id": "osd.47" 1140 | }, 1141 | { 1142 | "hostname": "hswnode04", 1143 | "dev_path": "/dev/sda", 1144 | "vendor": "INTEL", 1145 | "product": "SSDSC2BA400G3", 1146 | "revision": "5DV10270", 1147 | "capacity_bytes": "400088457216", 1148 | "rotation_rate": "Solid State Device", 1149 | "type": "operating system" 1150 | }, 1151 | { 1152 | "hostname": "hswnode04", 1153 | "dev_path": "/dev/nvme0n1p1", 1154 | "vendor": "INTEL", 1155 | "product": "SSDPE2MD800G4", 1156 | "revision": "8DV10102", 1157 | "capacity_bytes": "800166076416", 1158 | "rotation_rate": "Solid State Device", 1159 | "type": "journal", 1160 | "osd_id": "osd.48" 1161 | }, 1162 | { 1163 | "hostname": "hswnode04", 1164 | "dev_path": "/dev/nvme0n1p2", 1165 | "vendor": "INTEL", 1166 | "product": "SSDPE2MD800G4", 1167 | "revision": "8DV10102", 1168 | "capacity_bytes": "800166076416", 1169 | "rotation_rate": "Solid State Device", 1170 | "type": "journal", 1171 | "osd_id": "osd.49" 1172 | }, 1173 | { 1174 | "hostname": "hswnode04", 1175 | "dev_path": "/dev/nvme0n1p3", 1176 | "vendor": "INTEL", 1177 | "product": "SSDPE2MD800G4", 1178 | "revision": "8DV10102", 1179 | "capacity_bytes": "800166076416", 1180 | "rotation_rate": "Solid State Device", 1181 | "type": "journal", 1182 | "osd_id": "osd.50" 1183 | }, 1184 | { 1185 | "hostname": "hswnode04", 1186 | "dev_path": "/dev/nvme0n1p4", 1187 | "vendor": "INTEL", 1188 | "product": "SSDPE2MD800G4", 1189 | "revision": "8DV10102", 1190 | "capacity_bytes": "800166076416", 1191 | "rotation_rate": "Solid State Device", 1192 | "type": "journal", 1193 | "osd_id": "osd.51" 1194 | }, 1195 | { 1196 | "hostname": "hswnode04", 1197 | "dev_path": "/dev/nvme0n1p5", 1198 | "vendor": "INTEL", 1199 | "product": "SSDPE2MD800G4", 1200 | "revision": "8DV10102", 1201 | "capacity_bytes": "800166076416", 1202 | "rotation_rate": "Solid State Device", 1203 | "type": "osd", 1204 | "osd_id": "osd.48" 1205 | }, 1206 | { 1207 | "hostname": "hswnode04", 1208 | "dev_path": "/dev/nvme0n1p6", 1209 | "vendor": "INTEL", 1210 | "product": "SSDPE2MD800G4", 1211 | "revision": "8DV10102", 1212 | "capacity_bytes": "800166076416", 1213 | "rotation_rate": "Solid State Device", 1214 | "type": "osd", 1215 | "osd_id": "osd.49" 1216 | }, 1217 | { 1218 | "hostname": "hswnode04", 1219 | "dev_path": "/dev/nvme0n1p7", 1220 | "vendor": "INTEL", 1221 | "product": "SSDPE2MD800G4", 1222 | "revision": "8DV10102", 1223 | "capacity_bytes": "800166076416", 1224 | "rotation_rate": "Solid State Device", 1225 | "type": "osd", 1226 | "osd_id": "osd.50" 1227 | }, 1228 | { 1229 | "hostname": "hswnode04", 1230 | "dev_path": "/dev/nvme0n1p8", 1231 | "vendor": "INTEL", 1232 | "product": "SSDPE2MD800G4", 1233 | "revision": "8DV10102", 1234 | "capacity_bytes": "800166076416", 1235 | "rotation_rate": "Solid State Device", 1236 | "type": "osd", 1237 | "osd_id": "osd.51" 1238 | }, 1239 | { 1240 | "hostname": "hswnode04", 1241 | "dev_path": "/dev/nvme1n1p1", 1242 | "vendor": "INTEL", 1243 | "product": "SSDPE2MD800G4", 1244 | "revision": "8DV10102", 1245 | "capacity_bytes": "800166076416", 1246 | "rotation_rate": "Solid State Device", 1247 | "type": "journal", 1248 | "osd_id": "osd.52" 1249 | }, 1250 | { 1251 | "hostname": "hswnode04", 1252 | "dev_path": "/dev/nvme1n1p2", 1253 | "vendor": "INTEL", 1254 | "product": "SSDPE2MD800G4", 1255 | "revision": "8DV10102", 1256 | "capacity_bytes": "800166076416", 1257 | "rotation_rate": "Solid State Device", 1258 | "type": "journal", 1259 | "osd_id": "osd.53" 1260 | }, 1261 | { 1262 | "hostname": "hswnode04", 1263 | "dev_path": "/dev/nvme1n1p3", 1264 | "vendor": "INTEL", 1265 | "product": "SSDPE2MD800G4", 1266 | "revision": "8DV10102", 1267 | "capacity_bytes": "800166076416", 1268 | "rotation_rate": "Solid State Device", 1269 | "type": "journal", 1270 | "osd_id": "osd.54" 1271 | }, 1272 | { 1273 | "hostname": "hswnode04", 1274 | "dev_path": "/dev/nvme1n1p4", 1275 | "vendor": "INTEL", 1276 | "product": "SSDPE2MD800G4", 1277 | "revision": "8DV10102", 1278 | "capacity_bytes": "800166076416", 1279 | "rotation_rate": "Solid State Device", 1280 | "type": "journal", 1281 | "osd_id": "osd.55" 1282 | }, 1283 | { 1284 | "hostname": "hswnode04", 1285 | "dev_path": "/dev/nvme1n1p5", 1286 | "vendor": "INTEL", 1287 | "product": "SSDPE2MD800G4", 1288 | "revision": "8DV10102", 1289 | "capacity_bytes": "800166076416", 1290 | "rotation_rate": "Solid State Device", 1291 | "type": "osd", 1292 | "osd_id": "osd.52" 1293 | }, 1294 | { 1295 | "hostname": "hswnode04", 1296 | "dev_path": "/dev/nvme1n1p6", 1297 | "vendor": "INTEL", 1298 | "product": "SSDPE2MD800G4", 1299 | "revision": "8DV10102", 1300 | "capacity_bytes": "800166076416", 1301 | "rotation_rate": "Solid State Device", 1302 | "type": "osd", 1303 | "osd_id": "osd.53" 1304 | }, 1305 | { 1306 | "hostname": "hswnode04", 1307 | "dev_path": "/dev/nvme1n1p7", 1308 | "vendor": "INTEL", 1309 | "product": "SSDPE2MD800G4", 1310 | "revision": "8DV10102", 1311 | "capacity_bytes": "800166076416", 1312 | "rotation_rate": "Solid State Device", 1313 | "type": "osd", 1314 | "osd_id": "osd.54" 1315 | }, 1316 | { 1317 | "hostname": "hswnode04", 1318 | "dev_path": "/dev/nvme1n1p8", 1319 | "vendor": "INTEL", 1320 | "product": "SSDPE2MD800G4", 1321 | "revision": "8DV10102", 1322 | "capacity_bytes": "800166076416", 1323 | "rotation_rate": "Solid State Device", 1324 | "type": "osd", 1325 | "osd_id": "osd.55" 1326 | }, 1327 | { 1328 | "hostname": "hswnode04", 1329 | "dev_path": "/dev/nvme2n1p1", 1330 | "vendor": "INTEL", 1331 | "product": "SSDPE2MD800G4", 1332 | "revision": "8DV10102", 1333 | "capacity_bytes": "800166076416", 1334 | "rotation_rate": "Solid State Device", 1335 | "type": "journal", 1336 | "osd_id": "osd.56" 1337 | }, 1338 | { 1339 | "hostname": "hswnode04", 1340 | "dev_path": "/dev/nvme2n1p2", 1341 | "vendor": "INTEL", 1342 | "product": "SSDPE2MD800G4", 1343 | "revision": "8DV10102", 1344 | "capacity_bytes": "800166076416", 1345 | "rotation_rate": "Solid State Device", 1346 | "type": "journal", 1347 | "osd_id": "osd.57" 1348 | }, 1349 | { 1350 | "hostname": "hswnode04", 1351 | "dev_path": "/dev/nvme2n1p3", 1352 | "vendor": "INTEL", 1353 | "product": "SSDPE2MD800G4", 1354 | "revision": "8DV10102", 1355 | "capacity_bytes": "800166076416", 1356 | "rotation_rate": "Solid State Device", 1357 | "type": "journal", 1358 | "osd_id": "osd.58" 1359 | }, 1360 | { 1361 | "hostname": "hswnode04", 1362 | "dev_path": "/dev/nvme2n1p4", 1363 | "vendor": "INTEL", 1364 | "product": "SSDPE2MD800G4", 1365 | "revision": "8DV10102", 1366 | "capacity_bytes": "800166076416", 1367 | "rotation_rate": "Solid State Device", 1368 | "type": "journal", 1369 | "osd_id": "osd.59" 1370 | }, 1371 | { 1372 | "hostname": "hswnode04", 1373 | "dev_path": "/dev/nvme2n1p5", 1374 | "vendor": "INTEL", 1375 | "product": "SSDPE2MD800G4", 1376 | "revision": "8DV10102", 1377 | "capacity_bytes": "800166076416", 1378 | "rotation_rate": "Solid State Device", 1379 | "type": "osd", 1380 | "osd_id": "osd.56" 1381 | }, 1382 | { 1383 | "hostname": "hswnode04", 1384 | "dev_path": "/dev/nvme2n1p6", 1385 | "vendor": "INTEL", 1386 | "product": "SSDPE2MD800G4", 1387 | "revision": "8DV10102", 1388 | "capacity_bytes": "800166076416", 1389 | "rotation_rate": "Solid State Device", 1390 | "type": "osd", 1391 | "osd_id": "osd.57" 1392 | }, 1393 | { 1394 | "hostname": "hswnode04", 1395 | "dev_path": "/dev/nvme2n1p7", 1396 | "vendor": "INTEL", 1397 | "product": "SSDPE2MD800G4", 1398 | "revision": "8DV10102", 1399 | "capacity_bytes": "800166076416", 1400 | "rotation_rate": "Solid State Device", 1401 | "type": "osd", 1402 | "osd_id": "osd.58" 1403 | }, 1404 | { 1405 | "hostname": "hswnode04", 1406 | "dev_path": "/dev/nvme2n1p8", 1407 | "vendor": "INTEL", 1408 | "product": "SSDPE2MD800G4", 1409 | "revision": "8DV10102", 1410 | "capacity_bytes": "800166076416", 1411 | "rotation_rate": "Solid State Device", 1412 | "type": "osd", 1413 | "osd_id": "osd.59" 1414 | }, 1415 | { 1416 | "hostname": "hswnode04", 1417 | "dev_path": "/dev/nvme3n1p1", 1418 | "vendor": "INTEL", 1419 | "product": "SSDPE2MD800G4", 1420 | "revision": "8DV10102", 1421 | "capacity_bytes": "800166076416", 1422 | "rotation_rate": "Solid State Device", 1423 | "type": "journal", 1424 | "osd_id": "osd.60" 1425 | }, 1426 | { 1427 | "hostname": "hswnode04", 1428 | "dev_path": "/dev/nvme3n1p2", 1429 | "vendor": "INTEL", 1430 | "product": "SSDPE2MD800G4", 1431 | "revision": "8DV10102", 1432 | "capacity_bytes": "800166076416", 1433 | "rotation_rate": "Solid State Device", 1434 | "type": "journal", 1435 | "osd_id": "osd.61" 1436 | }, 1437 | { 1438 | "hostname": "hswnode04", 1439 | "dev_path": "/dev/nvme3n1p3", 1440 | "vendor": "INTEL", 1441 | "product": "SSDPE2MD800G4", 1442 | "revision": "8DV10102", 1443 | "capacity_bytes": "800166076416", 1444 | "rotation_rate": "Solid State Device", 1445 | "type": "journal", 1446 | "osd_id": "osd.62" 1447 | }, 1448 | { 1449 | "hostname": "hswnode04", 1450 | "dev_path": "/dev/nvme3n1p4", 1451 | "vendor": "INTEL", 1452 | "product": "SSDPE2MD800G4", 1453 | "revision": "8DV10102", 1454 | "capacity_bytes": "800166076416", 1455 | "rotation_rate": "Solid State Device", 1456 | "type": "journal", 1457 | "osd_id": "osd.63" 1458 | }, 1459 | { 1460 | "hostname": "hswnode04", 1461 | "dev_path": "/dev/nvme3n1p5", 1462 | "vendor": "INTEL", 1463 | "product": "SSDPE2MD800G4", 1464 | "revision": "8DV10102", 1465 | "capacity_bytes": "800166076416", 1466 | "rotation_rate": "Solid State Device", 1467 | "type": "osd", 1468 | "osd_id": "osd.60" 1469 | }, 1470 | { 1471 | "hostname": "hswnode04", 1472 | "dev_path": "/dev/nvme3n1p6", 1473 | "vendor": "INTEL", 1474 | "product": "SSDPE2MD800G4", 1475 | "revision": "8DV10102", 1476 | "capacity_bytes": "800166076416", 1477 | "rotation_rate": "Solid State Device", 1478 | "type": "osd", 1479 | "osd_id": "osd.61" 1480 | }, 1481 | { 1482 | "hostname": "hswnode04", 1483 | "dev_path": "/dev/nvme3n1p7", 1484 | "vendor": "INTEL", 1485 | "product": "SSDPE2MD800G4", 1486 | "revision": "8DV10102", 1487 | "capacity_bytes": "800166076416", 1488 | "rotation_rate": "Solid State Device", 1489 | "type": "osd", 1490 | "osd_id": "osd.62" 1491 | }, 1492 | { 1493 | "hostname": "hswnode04", 1494 | "dev_path": "/dev/nvme3n1p8", 1495 | "vendor": "INTEL", 1496 | "product": "SSDPE2MD800G4", 1497 | "revision": "8DV10102", 1498 | "capacity_bytes": "800166076416", 1499 | "rotation_rate": "Solid State Device", 1500 | "type": "osd", 1501 | "osd_id": "osd.63" 1502 | }, 1503 | { 1504 | "hostname": "hswnode05", 1505 | "dev_path": "/dev/sda", 1506 | "vendor": "INTEL", 1507 | "product": "SSDSC2BA400G3", 1508 | "revision": "5DV10270", 1509 | "capacity_bytes": "400088457216", 1510 | "rotation_rate": "Solid State Device", 1511 | "type": "operating system" 1512 | }, 1513 | { 1514 | "hostname": "hswnode05", 1515 | "dev_path": "/dev/nvme0n1p1", 1516 | "vendor": "INTEL", 1517 | "product": "SSDPE2MD800G4", 1518 | "revision": "8DV10102", 1519 | "capacity_bytes": "800166076416", 1520 | "rotation_rate": "Solid State Device", 1521 | "type": "journal", 1522 | "osd_id": "osd.64" 1523 | }, 1524 | { 1525 | "hostname": "hswnode05", 1526 | "dev_path": "/dev/nvme0n1p2", 1527 | "vendor": "INTEL", 1528 | "product": "SSDPE2MD800G4", 1529 | "revision": "8DV10102", 1530 | "capacity_bytes": "800166076416", 1531 | "rotation_rate": "Solid State Device", 1532 | "type": "journal", 1533 | "osd_id": "osd.65" 1534 | }, 1535 | { 1536 | "hostname": "hswnode05", 1537 | "dev_path": "/dev/nvme0n1p3", 1538 | "vendor": "INTEL", 1539 | "product": "SSDPE2MD800G4", 1540 | "revision": "8DV10102", 1541 | "capacity_bytes": "800166076416", 1542 | "rotation_rate": "Solid State Device", 1543 | "type": "journal", 1544 | "osd_id": "osd.66" 1545 | }, 1546 | { 1547 | "hostname": "hswnode05", 1548 | "dev_path": "/dev/nvme0n1p4", 1549 | "vendor": "INTEL", 1550 | "product": "SSDPE2MD800G4", 1551 | "revision": "8DV10102", 1552 | "capacity_bytes": "800166076416", 1553 | "rotation_rate": "Solid State Device", 1554 | "type": "journal", 1555 | "osd_id": "osd.67" 1556 | }, 1557 | { 1558 | "hostname": "hswnode05", 1559 | "dev_path": "/dev/nvme0n1p5", 1560 | "vendor": "INTEL", 1561 | "product": "SSDPE2MD800G4", 1562 | "revision": "8DV10102", 1563 | "capacity_bytes": "800166076416", 1564 | "rotation_rate": "Solid State Device", 1565 | "type": "osd", 1566 | "osd_id": "osd.64" 1567 | }, 1568 | { 1569 | "hostname": "hswnode05", 1570 | "dev_path": "/dev/nvme0n1p6", 1571 | "vendor": "INTEL", 1572 | "product": "SSDPE2MD800G4", 1573 | "revision": "8DV10102", 1574 | "capacity_bytes": "800166076416", 1575 | "rotation_rate": "Solid State Device", 1576 | "type": "osd", 1577 | "osd_id": "osd.65" 1578 | }, 1579 | { 1580 | "hostname": "hswnode05", 1581 | "dev_path": "/dev/nvme0n1p7", 1582 | "vendor": "INTEL", 1583 | "product": "SSDPE2MD800G4", 1584 | "revision": "8DV10102", 1585 | "capacity_bytes": "800166076416", 1586 | "rotation_rate": "Solid State Device", 1587 | "type": "osd", 1588 | "osd_id": "osd.66" 1589 | }, 1590 | { 1591 | "hostname": "hswnode05", 1592 | "dev_path": "/dev/nvme0n1p8", 1593 | "vendor": "INTEL", 1594 | "product": "SSDPE2MD800G4", 1595 | "revision": "8DV10102", 1596 | "capacity_bytes": "800166076416", 1597 | "rotation_rate": "Solid State Device", 1598 | "type": "osd", 1599 | "osd_id": "osd.67" 1600 | }, 1601 | { 1602 | "hostname": "hswnode05", 1603 | "dev_path": "/dev/nvme1n1p1", 1604 | "vendor": "INTEL", 1605 | "product": "SSDPE2MD800G4", 1606 | "revision": "8DV10102", 1607 | "capacity_bytes": "800166076416", 1608 | "rotation_rate": "Solid State Device", 1609 | "type": "journal", 1610 | "osd_id": "osd.68" 1611 | }, 1612 | { 1613 | "hostname": "hswnode05", 1614 | "dev_path": "/dev/nvme1n1p2", 1615 | "vendor": "INTEL", 1616 | "product": "SSDPE2MD800G4", 1617 | "revision": "8DV10102", 1618 | "capacity_bytes": "800166076416", 1619 | "rotation_rate": "Solid State Device", 1620 | "type": "journal", 1621 | "osd_id": "osd.69" 1622 | }, 1623 | { 1624 | "hostname": "hswnode05", 1625 | "dev_path": "/dev/nvme1n1p3", 1626 | "vendor": "INTEL", 1627 | "product": "SSDPE2MD800G4", 1628 | "revision": "8DV10102", 1629 | "capacity_bytes": "800166076416", 1630 | "rotation_rate": "Solid State Device", 1631 | "type": "journal", 1632 | "osd_id": "osd.70" 1633 | }, 1634 | { 1635 | "hostname": "hswnode05", 1636 | "dev_path": "/dev/nvme1n1p4", 1637 | "vendor": "INTEL", 1638 | "product": "SSDPE2MD800G4", 1639 | "revision": "8DV10102", 1640 | "capacity_bytes": "800166076416", 1641 | "rotation_rate": "Solid State Device", 1642 | "type": "journal", 1643 | "osd_id": "osd.71" 1644 | }, 1645 | { 1646 | "hostname": "hswnode05", 1647 | "dev_path": "/dev/nvme1n1p5", 1648 | "vendor": "INTEL", 1649 | "product": "SSDPE2MD800G4", 1650 | "revision": "8DV10102", 1651 | "capacity_bytes": "800166076416", 1652 | "rotation_rate": "Solid State Device", 1653 | "type": "osd", 1654 | "osd_id": "osd.68" 1655 | }, 1656 | { 1657 | "hostname": "hswnode05", 1658 | "dev_path": "/dev/nvme1n1p6", 1659 | "vendor": "INTEL", 1660 | "product": "SSDPE2MD800G4", 1661 | "revision": "8DV10102", 1662 | "capacity_bytes": "800166076416", 1663 | "rotation_rate": "Solid State Device", 1664 | "type": "osd", 1665 | "osd_id": "osd.69" 1666 | }, 1667 | { 1668 | "hostname": "hswnode05", 1669 | "dev_path": "/dev/nvme1n1p7", 1670 | "vendor": "INTEL", 1671 | "product": "SSDPE2MD800G4", 1672 | "revision": "8DV10102", 1673 | "capacity_bytes": "800166076416", 1674 | "rotation_rate": "Solid State Device", 1675 | "type": "osd", 1676 | "osd_id": "osd.70" 1677 | }, 1678 | { 1679 | "hostname": "hswnode05", 1680 | "dev_path": "/dev/nvme1n1p8", 1681 | "vendor": "INTEL", 1682 | "product": "SSDPE2MD800G4", 1683 | "revision": "8DV10102", 1684 | "capacity_bytes": "800166076416", 1685 | "rotation_rate": "Solid State Device", 1686 | "type": "osd", 1687 | "osd_id": "osd.71" 1688 | }, 1689 | { 1690 | "hostname": "hswnode05", 1691 | "dev_path": "/dev/nvme2n1p1", 1692 | "vendor": "INTEL", 1693 | "product": "SSDPE2MD800G4", 1694 | "revision": "8DV10102", 1695 | "capacity_bytes": "800166076416", 1696 | "rotation_rate": "Solid State Device", 1697 | "type": "journal", 1698 | "osd_id": "osd.72" 1699 | }, 1700 | { 1701 | "hostname": "hswnode05", 1702 | "dev_path": "/dev/nvme2n1p2", 1703 | "vendor": "INTEL", 1704 | "product": "SSDPE2MD800G4", 1705 | "revision": "8DV10102", 1706 | "capacity_bytes": "800166076416", 1707 | "rotation_rate": "Solid State Device", 1708 | "type": "journal", 1709 | "osd_id": "osd.73" 1710 | }, 1711 | { 1712 | "hostname": "hswnode05", 1713 | "dev_path": "/dev/nvme2n1p3", 1714 | "vendor": "INTEL", 1715 | "product": "SSDPE2MD800G4", 1716 | "revision": "8DV10102", 1717 | "capacity_bytes": "800166076416", 1718 | "rotation_rate": "Solid State Device", 1719 | "type": "journal", 1720 | "osd_id": "osd.74" 1721 | }, 1722 | { 1723 | "hostname": "hswnode05", 1724 | "dev_path": "/dev/nvme2n1p4", 1725 | "vendor": "INTEL", 1726 | "product": "SSDPE2MD800G4", 1727 | "revision": "8DV10102", 1728 | "capacity_bytes": "800166076416", 1729 | "rotation_rate": "Solid State Device", 1730 | "type": "journal", 1731 | "osd_id": "osd.75" 1732 | }, 1733 | { 1734 | "hostname": "hswnode05", 1735 | "dev_path": "/dev/nvme2n1p5", 1736 | "vendor": "INTEL", 1737 | "product": "SSDPE2MD800G4", 1738 | "revision": "8DV10102", 1739 | "capacity_bytes": "800166076416", 1740 | "rotation_rate": "Solid State Device", 1741 | "type": "osd", 1742 | "osd_id": "osd.72" 1743 | }, 1744 | { 1745 | "hostname": "hswnode05", 1746 | "dev_path": "/dev/nvme2n1p6", 1747 | "vendor": "INTEL", 1748 | "product": "SSDPE2MD800G4", 1749 | "revision": "8DV10102", 1750 | "capacity_bytes": "800166076416", 1751 | "rotation_rate": "Solid State Device", 1752 | "type": "osd", 1753 | "osd_id": "osd.73" 1754 | }, 1755 | { 1756 | "hostname": "hswnode05", 1757 | "dev_path": "/dev/nvme2n1p7", 1758 | "vendor": "INTEL", 1759 | "product": "SSDPE2MD800G4", 1760 | "revision": "8DV10102", 1761 | "capacity_bytes": "800166076416", 1762 | "rotation_rate": "Solid State Device", 1763 | "type": "osd", 1764 | "osd_id": "osd.74" 1765 | }, 1766 | { 1767 | "hostname": "hswnode05", 1768 | "dev_path": "/dev/nvme2n1p8", 1769 | "vendor": "INTEL", 1770 | "product": "SSDPE2MD800G4", 1771 | "revision": "8DV10102", 1772 | "capacity_bytes": "800166076416", 1773 | "rotation_rate": "Solid State Device", 1774 | "type": "osd", 1775 | "osd_id": "osd.75" 1776 | }, 1777 | { 1778 | "hostname": "hswnode05", 1779 | "dev_path": "/dev/nvme3n1p1", 1780 | "vendor": "INTEL", 1781 | "product": "SSDPE2MD800G4", 1782 | "revision": "8DV10102", 1783 | "capacity_bytes": "800166076416", 1784 | "rotation_rate": "Solid State Device", 1785 | "type": "journal", 1786 | "osd_id": "osd.76" 1787 | }, 1788 | { 1789 | "hostname": "hswnode05", 1790 | "dev_path": "/dev/nvme3n1p2", 1791 | "vendor": "INTEL", 1792 | "product": "SSDPE2MD800G4", 1793 | "revision": "8DV10102", 1794 | "capacity_bytes": "800166076416", 1795 | "rotation_rate": "Solid State Device", 1796 | "type": "journal", 1797 | "osd_id": "osd.77" 1798 | }, 1799 | { 1800 | "hostname": "hswnode05", 1801 | "dev_path": "/dev/nvme3n1p3", 1802 | "vendor": "INTEL", 1803 | "product": "SSDPE2MD800G4", 1804 | "revision": "8DV10102", 1805 | "capacity_bytes": "800166076416", 1806 | "rotation_rate": "Solid State Device", 1807 | "type": "journal", 1808 | "osd_id": "osd.78" 1809 | }, 1810 | { 1811 | "hostname": "hswnode05", 1812 | "dev_path": "/dev/nvme3n1p4", 1813 | "vendor": "INTEL", 1814 | "product": "SSDPE2MD800G4", 1815 | "revision": "8DV10102", 1816 | "capacity_bytes": "800166076416", 1817 | "rotation_rate": "Solid State Device", 1818 | "type": "journal", 1819 | "osd_id": "osd.79" 1820 | }, 1821 | { 1822 | "hostname": "hswnode05", 1823 | "dev_path": "/dev/nvme3n1p5", 1824 | "vendor": "INTEL", 1825 | "product": "SSDPE2MD800G4", 1826 | "revision": "8DV10102", 1827 | "capacity_bytes": "800166076416", 1828 | "rotation_rate": "Solid State Device", 1829 | "type": "osd", 1830 | "osd_id": "osd.76" 1831 | }, 1832 | { 1833 | "hostname": "hswnode05", 1834 | "dev_path": "/dev/nvme3n1p6", 1835 | "vendor": "INTEL", 1836 | "product": "SSDPE2MD800G4", 1837 | "revision": "8DV10102", 1838 | "capacity_bytes": "800166076416", 1839 | "rotation_rate": "Solid State Device", 1840 | "type": "osd", 1841 | "osd_id": "osd.77" 1842 | }, 1843 | { 1844 | "hostname": "hswnode05", 1845 | "dev_path": "/dev/nvme3n1p7", 1846 | "vendor": "INTEL", 1847 | "product": "SSDPE2MD800G4", 1848 | "revision": "8DV10102", 1849 | "capacity_bytes": "800166076416", 1850 | "rotation_rate": "Solid State Device", 1851 | "type": "osd", 1852 | "osd_id": "osd.78" 1853 | }, 1854 | { 1855 | "hostname": "hswnode05", 1856 | "dev_path": "/dev/nvme3n1p8", 1857 | "vendor": "INTEL", 1858 | "product": "SSDPE2MD800G4", 1859 | "revision": "8DV10102", 1860 | "capacity_bytes": "800166076416", 1861 | "rotation_rate": "Solid State Device", 1862 | "type": "osd", 1863 | "osd_id": "osd.79" 1864 | }, 1865 | ], 1866 | } 1867 | --------------------------------------------------------------------------------