ceph/ceph — pull request #2397 by dachary (2014-09-04 15:47:58+00:00)
Title: DNM: erasure-code: plugin feature bit

There are two new plugins (isa and lrc). When upgrading a cluster, there
must be a protection against the following scenario:

* the mon are upgraded but not the osd
* a new pool is created using plugin isa
* the osd fail to load the isa plugin because they have not been
upgraded

A feature bit is added : PLUGINS_V2. The isa and lrc plugins require
PLUGINS_V2 support via the new required_feature() method. The monitor
will only agree to create an erasure code profile for a given plugin if
the entire cluster advertises PLUGINS_V2. An OSD cannot boot in a
cluster where the MON require PLUGINS_V2 because the OSDMap contains a
pool that has been created with PLUGINS_V2 required.

This is going to be needed each time new plugins are supported, which is
impractical. A more generic plugin upgrade support should be added
instead, as described in http://tracker.ceph.com/issues/7291.

http://tracker.ceph.com/issues/7291 Refs: #7291

Signed-off-by: Loic Dachary