Add disable-pg-max-object-skew option

Openstack clouds that use ceph will typically start their life with
at least one pool (glance) loaded with a disproportionately high
amount of data/objects where other pools may remain empty. This can
trigger a HEALTH_WARN if mon_pg_warn_max_object_skew is exceeded
but that is actually a false positive.

Change-Id: I5a535dbb17db2149630d971d85ac311f14298b09
Closes-Bug: 1720374
This commit is contained in:
Shane Peters 2018-11-05 11:45:32 -05:00 committed by Ryan Beisner
parent 9cac074f8b
commit 7a362ff0a5
4 changed files with 18 additions and 1 deletions

View File

@ -225,3 +225,11 @@ options:
from the ceph all-in-one charm to a ceph-mon / ceph-osd deployment.
Refer to the Charm Deployment guide at https://docs.openstack.org/charm-deployment-guide/latest/
for more information.
disable-pg-max-object-skew:
type: boolean
default: False
description: |
Openstack clouds that use ceph will typically start their life with at
least one pool (glance) loaded with a disproportionately high amount of
data/objects where other pools may remain empty. This can trigger HEALTH_WARN
if mon_pg_warn_max_object_skew is exceeded but that is actually false positive.

View File

@ -169,6 +169,10 @@ def get_ceph_context():
if config('default-rbd-features'):
cephcontext['rbd_features'] = config('default-rbd-features')
if config('disable-pg-max-object-skew'):
cephcontext['disable_object_skew'] = config(
'disable-pg-max-object-skew')
# NOTE(dosaboy): these sections must correspond to what is supported in the
# config template.
sections = ['global', 'mds', 'mon']

View File

@ -50,6 +50,10 @@ keyring = /var/lib/ceph/mon/$cluster-$id/keyring
{{ key }} = {{ mon[key] }}
{% endfor %}
{% endif %}
{% if disable_object_skew and "mon pg warn max object skew" not in mon %}
mon pg warn max object skew = 0
{% endif %}
[mds]
keyring = /var/lib/ceph/mds/$cluster-$id/keyring

View File

@ -48,7 +48,8 @@ CHARM_CONFIG = {'config-flags': '',
'nagios_degraded_thresh': '1',
'nagios_misplaced_thresh': '10',
'nagios_recovery_rate': '1',
'nagios_ignore_nodeepscub': False}
'nagios_ignore_nodeepscub': False,
'disable-pg-max-object-skew': False}
class CephHooksTestCase(unittest.TestCase):