->= 11.0.0
+11.1.1
------
-* The list of monitor hosts/addresses for building the monmap can now be
- obtained from DNS SRV records. The service name used in when querying the DNS
- is defined in the "mon_dns_srv_name" config option, which defaults to
- "ceph-mon".
-
-* The 'osd class load list' config option is a list of object class names that
- the OSD is permitted to load (or '*' for all classes). By default it
- contains all existing in-tree classes for backwards compatibility.
-
-* The 'osd class default list' config option is a list of object class names
- (or '*' for all classes) that clients may invoke having only the '*', 'x',
- 'class-read', or 'class-write' capabilities. By default it contains all
- existing in-tree classes for backwards compatibility. Invoking classes not
- listed in 'osd class default list' requires a capability naming the class
- (e.g. 'allow class foo').
-
-* The 'rgw rest getusage op compat' config option allows you to dump the description of user stats
- or not in s3 GetUsage API. This config option is of bool type and defaults to false.
- If the value is true, the reponse data of s3 GetUsage like below:
-
- "stats": {
- "TotalBytes": 516,
- "TotalBytesRounded": 1024,
- "TotalEntries": 1
- }
-
- Or if the value is false, the reponse of s3 GetUsage like below and as it does before we add this config option:
-
- {
- 516,
- 1024,
- 1
- }.
-
-* If your monitors are configured to use the experimental rocksdb
- backend, you may need to manually adjust the store before upgraded.
- Monitors now explicitly record what keyvalue backend type they use. If
- the kv_backend file is missing from the mon_data directory (normally
- /var/lib/ceph/mon/$cluster-$name/kv_backend) it is now assumed to be leveldb.
- If you had manually configured the mon to use rocksdb, this file should
- be created and filled with the string "rocksdb" (newline optional).
-
-* The 'osd out ...' and 'osd in ...' commands now preserve the OSD
- weight. Previously the mons would only preserve the weight if the
- mon automatically marked and OSD out and then in, but not when an
- admin did so explicitly.
-
-* The 'ceph osd perf' command will display 'commit_latency(ms)' and
- 'apply_latency(ms)'. Previously, the names of these two columns are
- 'fs_commit_latency(ms)' and 'fs_apply_latency(ms)'. We remove the prefix
- 'fs_', because they are not filestore specific.
-
-OSD: change the prefix from fs_* to os_*, because commit_latency and …
-…apply_latency will be used not only for filestore.
-
-* Monitors will no longer allow pools to be removed by default.
- The setting mon_allow_pool_delete has to be set to true (defaults to false)
- before they allow pools to be removed.
- This is a additional safeguard against pools being removed by accident.
-
-11.0.0
-------
-
-* If you have manually specified the monitor user rocksdb via the
- ``mon keyvaluedb = rocksdb`` option, you will need to manually add a file
- to the mon data directory to preserve this option::
-
- echo rocksdb > /var/lib/ceph/mon/ceph-`hostname`/kv_backend
-
- New monitors will now use rocksdb by default, but if that file is
- not present, existing monitors will use leveldb. The ``mon keyvaluedb`` option
- now only affects the backend chosen when a monitor is created.
-
-* The 'osd crush initial weight' option allows you to specify a CRUSH
- weight for a newly added OSD. Previously a value of 0 (the default)
- meant that we should use the size of the OSD's store to weight the
- new OSD. Now, a value of 0 means it should have a weight of 0, and
- a negative value (the new default) means we should automatically
- weight the OSD based on its size. If your configuration file
- explicitly specifies a value of 0 for this option you will need to
- change it to a negative value (e.g., -1) to preserve the current
- behavior.
-
-* The `osd crush location` config option is no longer supported. Please
- update your ceph.conf to use the `crush location` option instead.
-
-* The static libraries are not included by the debian development packages
- (lib*-dev) any more. As it is not required per debian packaging policy.
- And their shared versions are packaged as before.
-
-* The libtool pseudo-libraries (.la files) are not included by the debian
- development packages (lib*-dev) any more. As it is unneeded, and per
- https://wiki.debian.org/ReleaseGoals/LAFileRemoval and
- https://www.debian.org/doc/manuals/maint-guide/advanced.en.html,
- we should remove them.
-
-* The jerasure and shec plugins can now detect SIMD instruction at runtime
- and no longer need to be built for different processors. The following
- plugins are now deprecated: jerasure_generic, jerasure_sse3, jerasure_sse4,
- jerasure_neon, shec_generic, shec_sse3, shec_sse4, and shec_neon. If you use any
- of these plugins directly you will see a warning in the mon log file.
- Please switch to using just 'jerasure' or 'shec'.
-
-* The librados omap get_keys and get_vals operations include a start key and a
- limit on the number of keys to return. The OSD now imposes a configurable
- limit on the number of keys and number of total bytes it will respond with,
- which means that a librados user might get fewer keys than they asked for.
- This is necessary to prevent careless users from requesting an unreasonable
- amount of data from the cluster in a single operation. The new limits are
- configured with `osd_max_omap_entries_per_request`, defaulting to 131,072, and
- 'osd_max_omap_bytes_per_request', defaulting to 4MB.
Release Notes
===============
+
+v11.1.0 Kraken (draft, release candidate)
+==============
+
+This is a release candidate for Kraken, the next stable release series.
+
+Major Changes from Jewel
+------------------------
+
+- *RADOS*:
+
+ * The new *BlueStore* backend now has a stable disk format and is
+ passing our failure and stress testing. Although the backend is
+ still flagged as experimental, we encourage users to try it out
+ for non-production clusters and non-critical data sets.
+ * RADOS now has experimental support for *overwrites on
+ erasure-coded* pools. Because the disk format and implementation
+ are not yet finalized, there is a special pool option that must be
+ enabled to test the new feature. Enabling this option on a cluster
+ will permanently bar that cluster from being upgraded to future
+ versions.
+ * We now default to the AsyncMessenger (``ms type = async``) instead
+ of the legacy SimpleMessenger. The most noticeable difference is
+ that we now use a fixed sized thread pool for network connections
+ (instead of two threads per socket with SimpleMessenger).
+ * Some OSD failures are now detected almost immediately, whereas
+ previously the heartbeat timeout (which defaults to 20 seconds)
+ had to expire. This prevents IO from blocking for an extended
+ period for failures where the host remains up but the ceph-osd
+ process is no longer running.
+ * There is a new ``ceph-mgr`` daemon. It is currently collocated with
+ the monitors by default, and is not yet used for much, but the basic
+ infrastructure is now in place.
+ * The size of encoded OSDMaps has been reduced.
+ * The OSDs now quiesce scrubbing when recovery or rebalancing is in progress.
+
+- *RGW*:
+
+ * RGW now supports a new zone type that can be used for metadata indexing
+ via Elasticseasrch.
+ * RGW now supports the S3 multipart object copy-part API.
+ * It is possible now to reshard an existing bucket. Note that bucket
+ resharding currently requires that all IO (especially writes) to
+ the specific bucket is quiesced.
+ * RGW now supports data compression for objects.
+ * Civetweb version has been upgraded to 1.8
+ * The Swift static website API is now supported (S3 support has been added
+ previously).
+ * S3 bucket lifecycle API has been added. Note that currently it only supports
+ object expiration.
+ * Support for custom search filters has been added to the LDAP auth
+ implementation.
+ * Support for NFS version 3 has been added to the RGW NFS gateway.
+ * A Python binding has been created for librgw.
+
+- *RBD*:
+
+ * RBD now supports images stored in an *erasure-coded* RADOS pool
+ using the new (experimental) overwrite support. Images must be
+ created using the new rbd CLI "--data-pool <ec pool>" option to
+ specify the EC pool where the backing data objects are
+ stored. Attempting to create an image directly on an EC pool will
+ not be successful since the image's backing metadata is only
+ supported on a replicated pool.
+ * The rbd-mirror daemon now supports replicating dynamic image
+ feature updates and image metadata key/value pairs from the
+ primary image to the non-primary image.
+ * The number of image snapshots can be optionally restricted to a
+ configurable maximum.
+ * The rbd Python API now supports asynchronous IO operations.
+
+- *CephFS*:
+
+ * libcephfs function definitions have been changed to enable proper
+ uid/gid control. The library version has been increased to reflect the
+ interface change.
+ * Standby replay MDS daemons now consume less memory on workloads
+ doing deletions.
+ * Scrub now repairs backtrace, and populates `damage ls` with
+ discovered errors.
+ * A new `pg_files` subcommand to `cephfs-data-scan` can identify
+ files affected by a damaged or lost RADOS PG.
+ * The false-positive "failing to respond to cache pressure" warnings have
+ been fixed.
+
+
+Upgrading from Jewel
+--------------------
+
+* All clusters must first be upgraded to Jewel 10.2.z before upgrading
+ to Kraken 11.2.z (or, eventually, Luminous 12.2.z).
+
+* The ``sortbitwise`` flag must be set on the Jewel cluster before upgrading
+ to Kraken. The latest Jewel (10.2.4+) releases issue a health warning if
+ the flag is not set, so this is probably already set. If it is not, Kraken
+ OSDs will refuse to start and will print and error message in their log.
+
+
+Upgrading
+---------
+
+* The list of monitor hosts/addresses for building the monmap can now be
+ obtained from DNS SRV records. The service name used in when querying the DNS
+ is defined in the "mon_dns_srv_name" config option, which defaults to
+ "ceph-mon".
+
+* The 'osd class load list' config option is a list of object class names that
+ the OSD is permitted to load (or '*' for all classes). By default it
+ contains all existing in-tree classes for backwards compatibility.
+
+* The 'osd class default list' config option is a list of object class
+ names (or '*' for all classes) that clients may invoke having only
+ the '*', 'x', 'class-read', or 'class-write' capabilities. By
+ default it contains all existing in-tree classes for backwards
+ compatibility. Invoking classes not listed in 'osd class default
+ list' requires a capability naming the class (e.g. 'allow class
+ foo').
+
+* The 'rgw rest getusage op compat' config option allows you to dump
+ (or not dump) the description of user stats in the S3 GetUsage
+ API. This option defaults to false. If the value is true, the
+ reponse data for GetUsage looks like::
+
+ "stats": {
+ "TotalBytes": 516,
+ "TotalBytesRounded": 1024,
+ "TotalEntries": 1
+ }
+
+ If the value is false, the reponse for GetUsage looks as it did before::
+
+ {
+ 516,
+ 1024,
+ 1
+ }
+
+* The 'osd out ...' and 'osd in ...' commands now preserve the OSD
+ weight. That is, after marking an OSD out and then in, the weight
+ will be the same as before (instead of being reset to 1.0).
+ Previously the mons would only preserve the weight if the mon
+ automatically marked and OSD out and then in, but not when an admin
+ did so explicitly.
+
+* The 'ceph osd perf' command will display 'commit_latency(ms)' and
+ 'apply_latency(ms)'. Previously, the names of these two columns are
+ 'fs_commit_latency(ms)' and 'fs_apply_latency(ms)'. We remove the
+ prefix 'fs_', because they are not filestore specific.
+
+* Monitors will no longer allow pools to be removed by default. The
+ setting mon_allow_pool_delete has to be set to true (defaults to
+ false) before they allow pools to be removed. This is a additional
+ safeguard against pools being removed by accident.
+
+* If you have manually specified the monitor user rocksdb via the
+ ``mon keyvaluedb = rocksdb`` option, you will need to manually add a
+ file to the mon data directory to preserve this option::
+
+ echo rocksdb > /var/lib/ceph/mon/ceph-`hostname`/kv_backend
+
+ New monitors will now use rocksdb by default, but if that file is
+ not present, existing monitors will use leveldb. The ``mon
+ keyvaluedb`` option now only affects the backend chosen when a
+ monitor is created.
+
+* The 'osd crush initial weight' option allows you to specify a CRUSH
+ weight for a newly added OSD. Previously a value of 0 (the default)
+ meant that we should use the size of the OSD's store to weight the
+ new OSD. Now, a value of 0 means it should have a weight of 0, and
+ a negative value (the new default) means we should automatically
+ weight the OSD based on its size. If your configuration file
+ explicitly specifies a value of 0 for this option you will need to
+ change it to a negative value (e.g., -1) to preserve the current
+ behavior.
+
+* The `osd crush location` config option is no longer supported. Please
+ update your ceph.conf to use the `crush location` option instead.
+
+* The static libraries are no longer included by the debian
+ development packages (lib*-dev) as it is not required per debian
+ packaging policy. The shared (.so) versions are packaged as before.
+
+* The libtool pseudo-libraries (.la files) are no longer included by
+ the debian development packages (lib*-dev) as they are not required
+ per https://wiki.debian.org/ReleaseGoals/LAFileRemoval and
+ https://www.debian.org/doc/manuals/maint-guide/advanced.en.html.
+
+* The jerasure and shec plugins can now detect SIMD instruction at
+ runtime and no longer need to be explicitly configured for different
+ processors. The following plugins are now deprecated:
+ jerasure_generic, jerasure_sse3, jerasure_sse4, jerasure_neon,
+ shec_generic, shec_sse3, shec_sse4, and shec_neon. If you use any of
+ these plugins directly you will see a warning in the mon log file.
+ Please switch to using just 'jerasure' or 'shec'.
+
+* The librados omap get_keys and get_vals operations include a start key and a
+ limit on the number of keys to return. The OSD now imposes a configurable
+ limit on the number of keys and number of total bytes it will respond with,
+ which means that a librados user might get fewer keys than they asked for.
+ This is necessary to prevent careless users from requesting an unreasonable
+ amount of data from the cluster in a single operation. The new limits are
+ configured with `osd_max_omap_entries_per_request`, defaulting to 131,072, and
+ 'osd_max_omap_bytes_per_request', defaulting to 4MB.
+
+Notable Changes
+---------------
+
+[fill me in]
+
+
+
v10.2.4 Jewel
=============