From b98f2fb9922af9b7a8ec418716d79ee2a4af5b77 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 23 May 2024 18:45:17 +0200 Subject: Merging upstream version 18.2.3. Signed-off-by: Daniel Baumann --- doc/releases/bobtail.rst | 546 ----------------------------------------------- 1 file changed, 546 deletions(-) delete mode 100644 doc/releases/bobtail.rst (limited to 'doc/releases/bobtail.rst') diff --git a/doc/releases/bobtail.rst b/doc/releases/bobtail.rst deleted file mode 100644 index 9cca4f19e..000000000 --- a/doc/releases/bobtail.rst +++ /dev/null @@ -1,546 +0,0 @@ -======= -Bobtail -======= - -Bobtail is the second stable release of Ceph. It is named after the -bobtail squid (order Sepiolida), a group of cephalopods closely related to cuttlefish. - -v0.56.7 "bobtail" -================= - -This bobtail update fixes a range of radosgw bugs (including an easily -triggered crash from multi-delete), a possible data corruption issue -with power failure on XFS, and several OSD problems, including a -memory "leak" that will affect aged clusters. - -Notable changes ---------------- - -* ceph-fuse: create finisher flags after fork() -* debian: fix prerm/postinst hooks; do not restart daemons on upgrade -* librados: fix async aio completion wakeup (manifests as rbd hang) -* librados: fix hang when osd becomes full and then not full -* librados: fix locking for aio completion refcounting -* librbd python bindings: fix stripe_unit, stripe_count -* librbd: make image creation default configurable -* mon: fix validation of mds ids in mon commands -* osd: avoid excessive disk updates during peering -* osd: avoid excessive memory usage on scrub -* osd: avoid heartbeat failure/suicide when scrubbing -* osd: misc minor bug fixes -* osd: use fdatasync instead of sync_file_range (may avoid xfs power-loss corruption) -* rgw: escape prefix correctly when listing objects -* rgw: fix copy attrs -* rgw: fix crash on multi delete -* rgw: fix locking/crash when using ops log socket -* rgw: fix usage logging -* rgw: handle deep uri resources - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.7.txt>`. - - -v0.56.6 "bobtail" -================= - -Notable changes ---------------- - -* rgw: fix garbage collection -* rpm: fix package dependencies - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.6.txt>`. - - -v0.56.5 "bobtail" -================= - -Upgrading ---------- - -* ceph-disk[-prepare,-activate] behavior has changed in various ways. - There should not be any compatibility issues, but chef users should - be aware. - -Notable changes ---------------- - -* mon: fix recording of quorum feature set (important for argonaut -> bobtail -> cuttlefish mon upgrades) -* osd: minor peering bug fixes -* osd: fix a few bugs when pools are renamed -* osd: fix occasionally corrupted pg stats -* osd: fix behavior when broken v0.56[.0] clients connect -* rbd: avoid FIEMAP ioctl on import (it is broken on some kernels) -* librbd: fixes for several request/reply ordering bugs -* librbd: only set STRIPINGV2 feature on new images when needed -* librbd: new async flush method to resolve qemu hangs (requires QEMU update as well) -* librbd: a few fixes to flatten -* ceph-disk: support for dm-crypt -* ceph-disk: many backports to allow bobtail deployments with ceph-deploy, chef -* sysvinit: do not stop starting daemons on first failure -* udev: fixed rules for redhat-based distros -* build fixes for raring - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.5.txt>`. - -v0.56.4 "bobtail" -================= - -Upgrading ---------- - -* There is a fix in the syntax for the output of 'ceph osd tree --format=json'. - -* The MDS disk format has changed from prior releases *and* from v0.57. In particular, - upgrades to v0.56.4 are safe, but you cannot move from v0.56.4 to v0.57 if you are using - the MDS for CephFS; you must upgrade directly to v0.58 (or later) instead. - -Notable changes ---------------- - -* mon: fix bug in bringup with IPv6 -* reduce default memory utilization by internal logging (all daemons) -* rgw: fix for bucket removal -* rgw: reopen logs after log rotation -* rgw: fix multipat upload listing -* rgw: don't copy object when copied onto self -* osd: fix caps parsing for pools with - or _ -* osd: allow pg log trimming when degraded, scrubbing, recoverying (reducing memory consumption) -* osd: fix potential deadlock when 'journal aio = true' -* osd: various fixes for collection creation/removal, rename, temp collections -* osd: various fixes for PG split -* osd: deep-scrub omap key/value data -* osd: fix rare bug in journal replay -* osd: misc fixes for snapshot tracking -* osd: fix leak in recovery reservations on pool deletion -* osd: fix bug in connection management -* osd: fix for op ordering when rebalancing -* ceph-fuse: report file system size with correct units -* mds: get and set directory layout policies via virtual xattrs -* mds: on-disk format revision (see upgrading note above) -* mkcephfs, init-ceph: close potential security issues with predictable filenames - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.4.txt>`. - -v0.56.3 "bobtail" -================= - -This release has several bug fixes surrounding OSD stability. Most -significantly, an issue with OSDs being unresponsive shortly after -startup (and occasionally crashing due to an internal heartbeat check) -is resolved. Please upgrade. - -Upgrading ---------- - -* A bug was fixed in which the OSDMap epoch for PGs without any IO - requests was not recorded. If there are pools in the cluster that - are completely idle (for example, the ``data`` and ``metadata`` - pools normally used by CephFS), and a large number of OSDMap epochs - have elapsed since the ``ceph-osd`` daemon was last restarted, those - maps will get reprocessed when the daemon restarts. This process - can take a while if there are a lot of maps. A workaround is to - 'touch' any idle pools with IO prior to restarting the daemons after - packages are upgraded:: - - rados bench 10 write -t 1 -b 4096 -p {POOLNAME} - - This will typically generate enough IO to touch every PG in the pool - without generating significant cluster load, and also cleans up any - temporary objects it creates. - -Notable changes ---------------- - -* osd: flush peering work queue prior to start -* osd: persist osdmap epoch for idle PGs -* osd: fix and simplify connection handling for heartbeats -* osd: avoid crash on invalid admin command -* mon: fix rare races with monitor elections and commands -* mon: enforce that OSD reweights be between 0 and 1 (NOTE: not CRUSH weights) -* mon: approximate client, recovery bandwidth logging -* radosgw: fixed some XML formatting to conform to Swift API inconsistency -* radosgw: fix usage accounting bug; add repair tool -* radosgw: make fallback URI configurable (necessary on some web servers) -* librbd: fix handling for interrupted 'unprotect' operations -* mds, ceph-fuse: allow file and directory layouts to be modified via virtual xattrs - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.3.txt>`. - - -v0.56.2 "bobtail" -================= - -This release has a wide range of bug fixes, stability improvements, and some performance improvements. Please upgrade. - -Upgrading ---------- - -* The meaning of the 'osd scrub min interval' and 'osd scrub max - interval' has changed slightly. The min interval used to be - meaningless, while the max interval would only trigger a scrub if - the load was sufficiently low. Now, the min interval option works - the way the old max interval did (it will trigger a scrub after this - amount of time if the load is low), while the max interval will - force a scrub regardless of load. The default options have been - adjusted accordingly. If you have customized these in ceph.conf, - please review their values when upgrading. - -* CRUSH maps that are generated by default when calling ``ceph-mon - --mkfs`` directly now distribute replicas across hosts instead of - across OSDs. Any provisioning tools that are being used by Ceph may - be affected, although probably for the better, as distributing across - hosts is a much more commonly sought behavior. If you use - ``mkcephfs`` to create the cluster, the default CRUSH rule is still - inferred by the number of hosts and/or racks in the initial ceph.conf. - -Notable changes ---------------- - -* osd: snapshot trimming fixes -* osd: scrub snapshot metadata -* osd: fix osdmap trimming -* osd: misc peering fixes -* osd: stop heartbeating with peers if internal threads are stuck/hung -* osd: PG removal is friendlier to other workloads -* osd: fix recovery start delay (was causing very slow recovery) -* osd: fix scheduling of explicitly requested scrubs -* osd: fix scrub interval config options -* osd: improve recovery vs client io tuning -* osd: improve 'slow request' warning detail for better diagnosis -* osd: default CRUSH map now distributes across hosts, not OSDs -* osd: fix crash on 32-bit hosts triggered by librbd clients -* librbd: fix error handling when talking to older OSDs -* mon: fix a few rare crashes -* ceph command: ability to easily adjust CRUSH tunables -* radosgw: object copy does not copy source ACLs -* rados command: fix omap command usage -* sysvinit script: set ulimit -n properly on remote hosts -* msgr: fix narrow race with message queuing -* fixed compilation on some old distros (e.g., RHEL 5.x) - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.2.txt>`. - - -v0.56.1 "bobtail" -================= - -This release has two critical fixes. Please upgrade. - -Upgrading ---------- - -* There is a protocol compatibility problem between v0.56 and any - other version that is now fixed. If your radosgw or RBD clients are - running v0.56, they will need to be upgraded too. If they are - running a version prior to v0.56, they can be left as is. - -Notable changes ---------------- -* osd: fix commit sequence for XFS, ext4 (or any other non-btrfs) to prevent data loss on power cycle or kernel panic -* osd: fix compatibility for CALL operation -* osd: process old osdmaps prior to joining cluster (fixes slow startup) -* osd: fix a couple of recovery-related crashes -* osd: fix large io requests when journal is in (non-default) aio mode -* log: fix possible deadlock in logging code - -For more detailed information, see :download:`the complete changelog <../changelog/v0.56.1.txt>`. - -v0.56 "bobtail" -=============== - -Bobtail is the second stable release of Ceph, named in honor of the -`Bobtail Squid`: https://en.wikipedia.org/wiki/Bobtail_squid. - -Key features since v0.48 "argonaut" ------------------------------------ - -* Object Storage Daemon (OSD): improved threading, small-io performance, and performance during recovery -* Object Storage Daemon (OSD): regular "deep" scrubbing of all stored data to detect latent disk errors -* RADOS Block Device (RBD): support for copy-on-write clones of images. -* RADOS Block Device (RBD): better client-side caching. -* RADOS Block Device (RBD): advisory image locking -* Rados Gateway (RGW): support for efficient usage logging/scraping (for billing purposes) -* Rados Gateway (RGW): expanded S3 and Swift API coverage (e.g., POST, multi-object delete) -* Rados Gateway (RGW): improved striping for large objects -* Rados Gateway (RGW): OpenStack Keystone integration -* RPM packages for Fedora, RHEL/CentOS, OpenSUSE, and SLES -* mkcephfs: support for automatically formatting and mounting XFS and ext4 (in addition to btrfs) - -Upgrading ---------- - -Please refer to the document `Upgrading from Argonaut to Bobtail`_ for details. - -.. _Upgrading from Argonaut to Bobtail: ../install/upgrading-ceph/#upgrading-from-argonaut-to-bobtail - -* Cephx authentication is now enabled by default (since v0.55). - Upgrading a cluster without adjusting the Ceph configuration will - likely prevent the system from starting up on its own. We recommend - first modifying the configuration to indicate that authentication is - disabled, and only then upgrading to the latest version:: - - auth client required = none - auth service required = none - auth cluster required = none - -* Ceph daemons can be upgraded one-by-one while the cluster is online - and in service. - -* The ``ceph-osd`` daemons must be upgraded and restarted *before* any - ``radosgw`` daemons are restarted, as they depend on some new - ceph-osd functionality. (The ``ceph-mon``, ``ceph-osd``, and - ``ceph-mds`` daemons can be upgraded and restarted in any order.) - -* Once each individual daemon has been upgraded and restarted, it - cannot be downgraded. - -* The cluster of ``ceph-mon`` daemons will migrate to a new internal - on-wire protocol once all daemons in the quorum have been upgraded. - Upgrading only a majority of the nodes (e.g., two out of three) may - expose the cluster to a situation where a single additional failure - may compromise availability (because the non-upgraded daemon cannot - participate in the new protocol). We recommend not waiting for an - extended period of time between ``ceph-mon`` upgrades. - -* The ops log and usage log for radosgw are now off by default. If - you need these logs (e.g., for billing purposes), you must enable - them explicitly. For logging of all operations to objects in the - ``.log`` pool (see ``radosgw-admin log ...``):: - - rgw enable ops log = true - - For usage logging of aggregated bandwidth usage (see ``radosgw-admin - usage ...``):: - - rgw enable usage log = true - -* You should not create or use "format 2" RBD images until after all - ``ceph-osd`` daemons have been upgraded. Note that "format 1" is - still the default. You can use the new ``ceph osd ls`` and - ``ceph tell osd.N version`` commands to doublecheck your cluster. - ``ceph osd ls`` will give a list of all OSD IDs that are part of the - cluster, and you can use that to write a simple shell loop to display - all the OSD version strings: :: - - for i in $(ceph osd ls); do - ceph tell osd.${i} version - done - - -Compatibility changes ---------------------- - -* The 'ceph osd create []' command now rejects an argument that - is not a UUID. (Previously it would take an optional integer - OSD id.) This correct syntax has been 'ceph osd create []' - since v0.47, but the older calling convention was being silently - ignored. - -* The CRUSH map root nodes now have type ``root`` instead of type - ``pool``. This avoids confusion with RADOS pools, which are not - directly related. Any scripts or tools that use the ``ceph osd - crush ...`` commands may need to be adjusted accordingly. - -* The ``ceph osd pool create `` command now requires - the ``pgnum`` argument. Previously this was optional, and would - default to 8, which was almost never a good number. - -* Degraded mode (when there fewer than the desired number of replicas) - is now more configurable on a per-pool basis, with the min_size - parameter. By default, with min_size 0, this allows I/O to objects - with N - floor(N/2) replicas, where N is the total number of - expected copies. Argonaut behavior was equivalent to having min_size - = 1, so I/O would always be possible if any completely up to date - copy remained. min_size = 1 could result in lower overall - availability in certain cases, such as flapping network partitions. - -* The sysvinit start/stop script now defaults to adjusting the max - open files ulimit to 16384. On most systems the default is 1024, so - this is an increase and won't break anything. If some system has a - higher initial value, however, this change will lower the limit. - The value can be adjusted explicitly by adding an entry to the - ``ceph.conf`` file in the appropriate section. For example:: - - [global] - max open files = 32768 - -* 'rbd lock list' and 'rbd showmapped' no longer use tabs as - separators in their output. - -* There is configurable limit on the number of PGs when creating a new - pool, to prevent a user from accidentally specifying a ridiculous - number for pg_num. It can be adjusted via the 'mon max pool pg num' - option on the monitor, and defaults to 65536 (the current max - supported by the Linux kernel client). - -* The osd capabilities associated with a rados user have changed - syntax since 0.48 argonaut. The new format is mostly backwards - compatible, but there are two backwards-incompatible changes: - - * specifying a list of pools in one grant, i.e. - 'allow r pool=foo,bar' is now done in separate grants, i.e. - 'allow r pool=foo, allow r pool=bar'. - - * restricting pool access by pool owner ('allow r uid=foo') is - removed. This feature was not very useful and unused in practice. - - The new format is documented in the ceph-authtool man page. - -* 'rbd cp' and 'rbd rename' use rbd as the default destination pool, - regardless of what pool the source image is in. Previously they - would default to the same pool as the source image. - -* 'rbd export' no longer prints a message for each object written. It - just reports percent complete like other long-lasting operations. - -* 'ceph osd tree' now uses 4 decimal places for weight so output is - nicer for humans - -* Several monitor operations are now idempotent: - - * ceph osd pool create - * ceph osd pool delete - * ceph osd pool mksnap - * ceph osd rm - * ceph pg revert - -Notable changes ---------------- - -* auth: enable cephx by default -* auth: expanded authentication settings for greater flexibility -* auth: sign messages when using cephx -* build fixes for Fedora 18, CentOS/RHEL 6 -* ceph: new 'osd ls' and 'osd tell version' commands -* ceph-debugpack: misc improvements -* ceph-disk-prepare: creates and labels GPT partitions -* ceph-disk-prepare: support for external journals, default mount/mkfs options, etc. -* ceph-fuse/libcephfs: many misc fixes, admin socket debugging -* ceph-fuse: fix handling for .. in root directory -* ceph-fuse: many fixes (including memory leaks, hangs) -* ceph-fuse: mount helper (mount.fuse.ceph) for use with /etc/fstab -* ceph.spec: misc packaging fixes -* common: thread pool sizes can now be adjusted at runtime -* config: $pid is now available as a metavariable -* crush: default root of tree type is now 'root' instead of 'pool' (to avoid confusiong wrt rados pools) -* crush: fixed retry behavior with chooseleaf via tunable -* crush: tunables documented; feature bit now present and enforced -* libcephfs: java wrapper -* librados: several bug fixes (rare races, locking errors) -* librados: some locking fixes -* librados: watch/notify fixes, misc memory leaks -* librbd: a few fixes to 'discard' support -* librbd: fine-grained striping feature -* librbd: fixed memory leaks -* librbd: fully functional and documented image cloning -* librbd: image (advisory) locking -* librbd: improved caching (of object non-existence) -* librbd: 'flatten' command to sever clone parent relationship -* librbd: 'protect'/'unprotect' commands to prevent clone parent from being deleted -* librbd: clip requests past end-of-image. -* librbd: fixes an issue with some windows guests running in qemu (remove floating point usage) -* log: fix in-memory buffering behavior (to only write log messages on crash) -* mds: fix ino release on abort session close, relative getattr path, mds shutdown, other misc items -* mds: misc fixes -* mkcephfs: fix for default keyring, osd data/journal locations -* mkcephfs: support for formatting xfs, ext4 (as well as btrfs) -* init: support for automatically mounting xfs and ext4 osd data directories -* mon, radosgw, ceph-fuse: fixed memory leaks -* mon: improved ENOSPC, fs error checking -* mon: less-destructive ceph-mon --mkfs behavior -* mon: misc fixes -* mon: more informative info about stuck PGs in 'health detail' -* mon: information about recovery and backfill in 'pg query' -* mon: new 'osd crush create-or-move ...' command -* mon: new 'osd crush move ...' command lets you rearrange your CRUSH hierarchy -* mon: optionally dump 'osd tree' in json -* mon: configurable cap on maximum osd number (mon max osd) -* mon: many bug fixes (various races causing ceph-mon crashes) -* mon: new on-disk metadata to facilitate future mon changes (post-bobtail) -* mon: election bug fixes -* mon: throttle client messages (limit memory consumption) -* mon: throttle osd flapping based on osd history (limits osdmap ΄thrashing' on overloaded or unhappy clusters) -* mon: 'report' command for dumping detailed cluster status (e.g., for use when reporting bugs) -* mon: osdmap flags like noup, noin now cause a health warning -* msgr: improved failure handling code -* msgr: many bug fixes -* osd, mon: honor new 'nobackfill' and 'norecover' osdmap flags -* osd, mon: use feature bits to lock out clients lacking CRUSH tunables when they are in use -* osd: backfill reservation framework (to avoid flooding new osds with backfill data) -* osd: backfill target reservations (improve performance during recovery) -* osd: better tracking of recent slow operations -* osd: capability grammar improvements, bug fixes -* osd: client vs recovery io prioritization -* osd: crush performance improvements -* osd: default journal size to 5 GB -* osd: experimental support for PG "splitting" (pg_num adjustment for existing pools) -* osd: fix memory leak on certain error paths -* osd: fixed detection of EIO errors from fs on read -* osd: major refactor of PG peering and threading -* osd: many bug fixes -* osd: more/better dump info about in-progress operations -* osd: new caps structure (see compatibility notes) -* osd: new 'deep scrub' will compare object content across replicas (once per week by default) -* osd: new 'lock' rados class for generic object locking -* osd: optional 'min' pg size -* osd: recovery reservations -* osd: scrub efficiency improvement -* osd: several out of order reply bug fixes -* osd: several rare peering cases fixed -* osd: some performance improvements related to request queuing -* osd: use entire device if journal is a block device -* osd: use syncfs(2) when kernel supports it, even if glibc does not -* osd: various fixes for out-of-order op replies -* rados: ability to copy, rename pools -* rados: bench command now cleans up after itself -* rados: 'cppool' command to copy rados pools -* rados: 'rm' now accepts a list of objects to be removed -* radosgw: POST support -* radosgw: REST API for managing usage stats -* radosgw: fix bug in bucket stat updates -* radosgw: fix copy-object vs attributes -* radosgw: fix range header for large objects, ETag quoting, GMT dates, other compatibility fixes -* radosgw: improved garbage collection framework -* radosgw: many small fixes, cleanups -* radosgw: openstack keystone integration -* radosgw: stripe large (non-multipart) objects -* radosgw: support for multi-object deletes -* radosgw: support for swift manifest objects -* radosgw: vanity bucket dns names -* radosgw: various API compatibility fixes -* rbd: import from stdin, export to stdout -* rbd: new 'ls -l' option to view images with metadata -* rbd: use generic id and keyring options for 'rbd map' -* rbd: don't issue usage on errors -* udev: fix symlink creation for rbd images containing partitions -* upstart: job files for all daemon types (not enabled by default) -* wireshark: ceph protocol dissector patch updated - - -v0.54 -===== - -Upgrading ---------- - -* The osd capabilities associated with a rados user have changed - syntax since 0.48 argonaut. The new format is mostly backwards - compatible, but there are two backwards-incompatible changes: - - * specifying a list of pools in one grant, i.e. - 'allow r pool=foo,bar' is now done in separate grants, i.e. - 'allow r pool=foo, allow r pool=bar'. - - * restricting pool access by pool owner ('allow r uid=foo') is - removed. This feature was not very useful and unused in practice. - - The new format is documented in the ceph-authtool man page. - -* Bug fixes to the new osd capability format parsing properly validate - the allowed operations. If an existing rados user gets permissions - errors after upgrading, its capabilities were probably - misconfigured. See the ceph-authtool man page for details on osd - capabilities. - -* 'rbd lock list' and 'rbd showmapped' no longer use tabs as - separators in their output. -- cgit v1.2.3