2015-08-06 13:52:31 +00:00
|
|
|
#
|
|
|
|
# Test the expected behavior of the
|
|
|
|
#
|
|
|
|
# CEPH_FEATURE_ERASURE_CODE_PLUGINS_V3
|
|
|
|
#
|
|
|
|
# feature.
|
|
|
|
#
|
|
|
|
roles:
|
|
|
|
- - mon.a
|
|
|
|
- mon.b
|
|
|
|
- osd.0
|
|
|
|
- osd.1
|
|
|
|
- - osd.2
|
|
|
|
- mon.c
|
2017-03-10 18:48:19 +00:00
|
|
|
- mgr.x
|
2015-08-06 13:52:31 +00:00
|
|
|
tasks:
|
|
|
|
#
|
|
|
|
# Install hammer
|
|
|
|
#
|
|
|
|
- install:
|
|
|
|
branch: hammer
|
|
|
|
- ceph:
|
|
|
|
fs: xfs
|
|
|
|
#
|
|
|
|
# We don't need mon.c for now: it will be used later to make sure an old
|
|
|
|
# mon cannot join the quorum once the feature has been activated
|
|
|
|
#
|
|
|
|
- ceph.stop:
|
|
|
|
daemons: [mon.c]
|
|
|
|
- exec:
|
|
|
|
mon.a:
|
|
|
|
- |-
|
|
|
|
ceph osd erasure-code-profile set WRONG plugin=WRONG
|
|
|
|
ceph osd pool create poolWRONG 12 12 erasure WRONG 2>&1 | grep "failed to load plugin using profile WRONG"
|
|
|
|
#
|
|
|
|
# Partial upgrade, osd.2 is not upgraded
|
|
|
|
#
|
|
|
|
- install.upgrade:
|
|
|
|
osd.0:
|
|
|
|
#
|
|
|
|
# a is the leader
|
|
|
|
#
|
|
|
|
- ceph.restart:
|
|
|
|
daemons: [mon.a]
|
|
|
|
wait-for-healthy: false
|
|
|
|
- exec:
|
|
|
|
mon.a:
|
|
|
|
- |-
|
|
|
|
ceph osd erasure-code-profile set profile-shec k=2 m=1 c=1 plugin=shec 2>&1 | grep "unsupported by: the monitor cluster"
|
|
|
|
- ceph.restart:
|
|
|
|
daemons: [mon.b, osd.1, osd.0]
|
|
|
|
wait-for-healthy: false
|
|
|
|
wait-for-osds-up: true
|
|
|
|
#
|
|
|
|
# The shec plugin cannot be used because osd.2 is not upgraded yet
|
|
|
|
# and would crash.
|
|
|
|
#
|
|
|
|
- exec:
|
|
|
|
mon.a:
|
|
|
|
- |-
|
|
|
|
ceph osd erasure-code-profile set profile-shec k=2 m=1 c=1 plugin=shec 2>&1 | grep "unsupported by: osd.2"
|
|
|
|
#
|
|
|
|
# Taking osd.2 out, the rest of the cluster is upgraded
|
|
|
|
#
|
|
|
|
- ceph.stop:
|
|
|
|
daemons: [osd.2]
|
|
|
|
- sleep:
|
|
|
|
duration: 60
|
|
|
|
#
|
|
|
|
# Creating an erasure code profile using the shec plugin now works
|
|
|
|
#
|
|
|
|
- exec:
|
|
|
|
mon.a:
|
|
|
|
- "ceph osd erasure-code-profile set profile-shec k=2 m=1 c=1 plugin=shec"
|
|
|
|
#
|
|
|
|
# osd.2 won't be able to join the because is does not support the feature
|
|
|
|
#
|
|
|
|
- ceph.restart:
|
|
|
|
daemons: [osd.2]
|
|
|
|
wait-for-healthy: false
|
|
|
|
- sleep:
|
|
|
|
duration: 60
|
|
|
|
- exec:
|
|
|
|
osd.2:
|
|
|
|
- |-
|
|
|
|
grep "protocol feature.*missing" /var/log/ceph/ceph-osd.2.log
|
|
|
|
#
|
|
|
|
# mon.c won't be able to join the because it does not support the feature
|
|
|
|
#
|
|
|
|
- ceph.restart:
|
|
|
|
daemons: [mon.c]
|
|
|
|
wait-for-healthy: false
|
|
|
|
- sleep:
|
|
|
|
duration: 60
|
|
|
|
- exec:
|
|
|
|
mon.c:
|
|
|
|
- |-
|
|
|
|
grep "missing.*feature" /var/log/ceph/ceph-mon.c.log
|