Merge "add support for automatic partitioning disks used as OSDs"
diff --git a/.kitchen.yml b/.kitchen.yml
index 76cf7c6..68b7f56 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -35,8 +35,7 @@
sudo: true
docker_images:
- - &xenial-20177 <%=ENV['IMAGE_XENIAL_20177'] || 'docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19'%>
- - &xenial-stable <%=ENV['IMAGE_XENIAL_STABLE'] || 'docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19'%>
+ - &xenial-20177 <%=ENV['IMAGE_XENIAL_20177'] || 'docker-dev-local.docker.mirantis.net/mirantis/drivetrain/salt-formulas-ci/salt-formulas-ci-xenial-2017.7:latest'%>
platforms:
- name: xenial-2017.7
@@ -44,11 +43,6 @@
image: *xenial-20177
platform: ubuntu
- - name: xenial-stable
- driver_config:
- image: *xenial-stable
- platform: ubuntu
-
suites:
- name: ceph_client_single
diff --git a/ceph/files/backup/ceph-backup-client-runner.sh b/ceph/files/backup/ceph-backup-client-runner.sh
index 4b5b4f9..bb04fc6 100644
--- a/ceph/files/backup/ceph-backup-client-runner.sh
+++ b/ceph/files/backup/ceph-backup-client-runner.sh
@@ -45,11 +45,11 @@
rsync -arv --exclude=osd/{{ common.get('cluster_name', 'ceph') }}-*/current /var/lib/ceph $TMPDIR/{{ common.get('cluster_name', 'ceph') }}-$HOSTNAME/
{%- elif mon.get('enabled', False) %}
cp -a /etc/ceph/ $TMPDIR/
- if service ceph-mon@$HOSTNAME status >/dev/null; then
- service ceph-mon@$HOSTNAME stop
+ if systemctl status ceph-mon@$HOSTNAME >/dev/null; then
+ systemctl stop ceph-mon@$HOSTNAME
cp -a /var/lib/ceph/ $TMPDIR/{{ common.get('cluster_name', 'ceph') }}-$HOSTNAME/
- service ceph-mon@$HOSTNAME start
- else
+ systemctl start ceph-mon@$HOSTNAME
+ else
cp -a /var/lib/ceph/ $TMPDIR/{{ common.get('cluster_name', 'ceph') }}-$HOSTNAME/
fi
{%- endif %}
diff --git a/ceph/files/grafana_dashboards/pool-overview_prometheus.json b/ceph/files/grafana_dashboards/pool-overview_prometheus.json
index cd52bad..600ef46 100644
--- a/ceph/files/grafana_dashboards/pool-overview_prometheus.json
+++ b/ceph/files/grafana_dashboards/pool-overview_prometheus.json
@@ -16,8 +16,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
- "id": null,
- "iteration": 1545072836850,
+ "iteration": 1574692480292,
"links": [],
"panels": [
{
@@ -43,7 +42,7 @@
"fill": 2,
"gridPos": {
"h": 7,
- "w": 24,
+ "w": 12,
"x": 0,
"y": 1
},
@@ -72,7 +71,7 @@
"steppedLine": false,
"targets": [
{
- "expr": "avg((rate(ceph_pool_rd{pool_id=~\"[[pool_id]]\"}[$rate_interval]) + rate(ceph_pool_wr{pool_id=~\"[[pool_id]]\"}[$rate_interval])) + on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
+ "expr": "avg(rate(ceph_pool_rd{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
"format": "time_series",
"hide": false,
"intervalFactor": 1,
@@ -83,7 +82,7 @@
"thresholds": [],
"timeFrom": null,
"timeShift": null,
- "title": "Client IOPS by Pool",
+ "title": "Read IOPS by Pool",
"tooltip": {
"shared": true,
"sort": 0,
@@ -99,7 +98,7 @@
},
"yaxes": [
{
- "format": "none",
+ "format": "rps",
"label": null,
"logBase": 1,
"max": null,
@@ -128,8 +127,94 @@
"datasource": null,
"fill": 2,
"gridPos": {
- "h": 6,
- "w": 24,
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 1
+ },
+ "id": 16,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "avg(rate(ceph_pool_wr{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{name}}",
+ "refId": "F"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Write IOPS by Pool",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "wps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 2,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
"x": 0,
"y": 8
},
@@ -158,7 +243,7 @@
"steppedLine": false,
"targets": [
{
- "expr": "avg((rate(ceph_pool_rd_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) + rate(ceph_pool_wr_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval])) + on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
+ "expr": "avg(rate(ceph_pool_rd_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "{{name}}",
@@ -169,7 +254,7 @@
"thresholds": [],
"timeFrom": null,
"timeShift": null,
- "title": "Client Throughput by Pool",
+ "title": "Read Throughput by Pool",
"tooltip": {
"shared": true,
"sort": 0,
@@ -185,7 +270,93 @@
},
"yaxes": [
{
- "format": "decbytes",
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 2,
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 8
+ },
+ "id": 17,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "minSpan": 12,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "avg(rate(ceph_pool_wr_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id,instance) group_left(name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{name}}",
+ "refId": "A",
+ "textEditor": true
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Write Throughput by Pool",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
"label": null,
"logBase": 1,
"max": null,
@@ -212,7 +383,7 @@
"h": 1,
"w": 24,
"x": 0,
- "y": 14
+ "y": 15
},
"id": 15,
"panels": [],
@@ -231,9 +402,9 @@
"fontSize": "100%",
"gridPos": {
"h": 7,
- "w": 8,
+ "w": 12,
"x": 0,
- "y": 15
+ "y": 16
},
"id": 3,
"links": [],
@@ -242,7 +413,7 @@
"scroll": true,
"showHeader": true,
"sort": {
- "col": 6,
+ "col": 7,
"desc": true
},
"styles": [
@@ -337,7 +508,7 @@
"unit": "short"
},
{
- "alias": "IOPS (R+W)",
+ "alias": "Read IOPS",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
@@ -349,12 +520,12 @@
"pattern": "Value",
"thresholds": [],
"type": "number",
- "unit": "none"
+ "unit": "rps"
}
],
"targets": [
{
- "expr": "topk(5,(label_replace((irate(ceph_pool_rd{pool_id=~\"[[pool_id]]\"}[$rate_interval]) + irate(ceph_pool_wr{pool_id=~\"[[pool_id]]\"}[$rate_interval])),\"id\", \"$1\", \"pool_id\", \"(.*)\") + on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) )",
+ "expr": "topk(5,avg(rate(ceph_pool_rd{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance))",
"format": "table",
"instant": true,
"intervalFactor": 2,
@@ -362,7 +533,7 @@
"textEditor": true
}
],
- "title": "Top 5 Pools by Client IOPS",
+ "title": "Top 5 Pools by Read IOPS",
"transform": "table",
"type": "table"
},
@@ -377,26 +548,35 @@
"fontSize": "100%",
"gridPos": {
"h": 7,
- "w": 8,
- "x": 8,
- "y": 15
+ "w": 12,
+ "x": 12,
+ "y": 16
},
- "id": 4,
+ "id": 20,
"links": [],
"minSpan": 12,
"pageSize": null,
"scroll": true,
"showHeader": true,
"sort": {
- "col": 6,
+ "col": 7,
"desc": true
},
"styles": [
{
- "alias": "Time",
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
"pattern": "Time",
- "type": "hidden"
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
},
{
"alias": "",
@@ -474,7 +654,63 @@
"unit": "short"
},
{
- "alias": "Throughput",
+ "alias": "Write IOPS",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 0,
+ "pattern": "Value",
+ "thresholds": [],
+ "type": "number",
+ "unit": "wps"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "topk(5,avg(rate(ceph_pool_wr{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance))",
+ "format": "table",
+ "instant": true,
+ "intervalFactor": 2,
+ "refId": "A",
+ "textEditor": true
+ }
+ ],
+ "title": "Top 5 Pools by Write IOPS",
+ "transform": "table",
+ "type": "table"
+ },
+ {
+ "columns": [
+ {
+ "text": "Current",
+ "value": "current"
+ }
+ ],
+ "datasource": null,
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 0,
+ "y": 23
+ },
+ "id": 21,
+ "links": [],
+ "minSpan": 12,
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 7,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
@@ -483,15 +719,105 @@
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "id",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "instance",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "job",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Pool Name",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "name",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "Pool ID",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "pool_id",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "Read Throughput",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 0,
"pattern": "Value",
"thresholds": [],
"type": "number",
- "unit": "decbytes"
+ "unit": "Bps"
}
],
"targets": [
{
- "expr": "(label_replace((irate(ceph_pool_rd_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) + irate(ceph_pool_wr_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval])),\"id\", \"$1\", \"pool_id\", \"(.*)\") + on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) ",
+ "expr": "topk(5,avg(rate(ceph_pool_rd_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance))",
"format": "table",
"instant": true,
"intervalFactor": 2,
@@ -499,7 +825,153 @@
"textEditor": true
}
],
- "title": "Top 5 Pools by Throughput",
+ "title": "Top 5 Pools by Read Throughput",
+ "transform": "table",
+ "type": "table"
+ },
+ {
+ "columns": [
+ {
+ "text": "Current",
+ "value": "current"
+ }
+ ],
+ "datasource": null,
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 7,
+ "w": 12,
+ "x": 12,
+ "y": 23
+ },
+ "id": 22,
+ "links": [],
+ "minSpan": 12,
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 7,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "id",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "instance",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "job",
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ },
+ {
+ "alias": "Pool Name",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "name",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "Pool ID",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "pattern": "pool_id",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ },
+ {
+ "alias": "Write Throughput",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 0,
+ "pattern": "Value",
+ "thresholds": [],
+ "type": "number",
+ "unit": "Bps"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "topk(5,avg(rate(ceph_pool_wr_bytes{pool_id=~\"[[pool_id]]\"}[$rate_interval]) * on(pool_id) group_left(instance,name) ceph_pool_metadata{pool_id=~\"[[pool_id]]\"}) without (instance))",
+ "format": "table",
+ "instant": true,
+ "intervalFactor": 2,
+ "refId": "A",
+ "textEditor": true
+ }
+ ],
+ "title": "Top 5 Pools by Write Throughput",
"transform": "table",
"type": "table"
},
@@ -509,9 +981,9 @@
"fontSize": "100%",
"gridPos": {
"h": 7,
- "w": 8,
- "x": 16,
- "y": 15
+ "w": 12,
+ "x": 0,
+ "y": 30
},
"id": 5,
"links": [],
@@ -520,7 +992,7 @@
"scroll": true,
"showHeader": true,
"sort": {
- "col": 5,
+ "col": 6,
"desc": true
},
"styles": [
@@ -620,7 +1092,7 @@
],
"targets": [
{
- "expr": "topk(5,((ceph_pool_bytes_used / (ceph_pool_bytes_used + ceph_pool_max_avail)) * on(pool_id) group_left(name) ceph_pool_metadata))",
+ "expr": "topk(5,avg((ceph_pool_bytes_used / (ceph_pool_bytes_used + ceph_pool_max_avail)) * on(pool_id) group_left(name) ceph_pool_metadata) without (instance))",
"format": "table",
"hide": false,
"instant": true,
@@ -694,6 +1166,7 @@
{
"allValue": null,
"current": {
+ "tags": [],
"text": "3m",
"value": "3m"
},
@@ -767,6 +1240,6 @@
},
"timezone": "browser",
"title": "Ceph Pools Overview",
- "version": 11
+ "version": 12
}
{%- endraw %}