Skip to content

Commit

Permalink
doc/release-notes: kraken release notes (draft)
Browse files Browse the repository at this point in the history
Signed-off-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed Dec 6, 2016
1 parent 7b1293e commit e227bbb
Show file tree
Hide file tree
Showing 2 changed files with 209 additions and 112 deletions.
113 changes: 1 addition & 112 deletions PendingReleaseNotes
Original file line number Diff line number Diff line change
@@ -1,114 +1,3 @@
>= 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.
208 changes: 208 additions & 0 deletions doc/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,214 @@
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
---------------



v10.2.3 Jewel
=============

Expand Down

0 comments on commit e227bbb

Please sign in to comment.