Release Notes
===============
-v11.1.0
-=========
+v11.1.0 (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:
--------------
* tools: tools/ceph-monstore-update-crush.sh: FreeBSD getopt is not compatible… (`pr#11525 <http://github.com/ceph/ceph/pull/11525>`_, Willem Jan Withagen)
* tools: ceph-create-keys should not try forever to do things (`issue#17753 <http://tracker.ceph.com/issues/17753>`_, `issue#12649 <http://tracker.ceph.com/issues/12649>`_, `issue#16255 <http://tracker.ceph.com/issues/16255>`_, `pr#11749 <http://github.com/ceph/ceph/pull/11749>`_, Alfredo Deza)
+
v11.0.2
=======
* test: ceph_test_rados_api_tmap_migrate: remove test for tmap_upgrade (`pr#10234 <http://github.com/ceph/ceph/pull/10234>`_, Kefu Chai)
-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
=============