]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
3 years agoceph/admin: s/master/main 45512/head
Zac Dover [Thu, 17 Mar 2022 23:05:45 +0000 (09:05 +1000)]
ceph/admin: s/master/main

This PR changes the name "master" to "main" so
that builds (and, I assume, a great many other
things) will not fail.

Signed-off-by: Zac Dover <zac.dover@gmail.com>
3 years agoMerge pull request #45391 from mkogan1/wip-fix-lc-alloc
Casey Bodley [Thu, 17 Mar 2022 21:12:25 +0000 (17:12 -0400)]
Merge pull request #45391 from mkogan1/wip-fix-lc-alloc

rgwlc: fix segfault during lc

Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 years agoMerge pull request #45103 from jtlayton/wip-54280
Yuri Weinstein [Thu, 17 Mar 2022 19:55:49 +0000 (12:55 -0700)]
Merge pull request #45103 from jtlayton/wip-54280

osd: allow sparse reads with a non-zero truncate-seq

Reviewed-by: Xiubo Li <xiubli@redhat.com>
3 years agoMerge pull request #40703 from linuxbox2/wip-rgwlc-noreset
Matt Benjamin [Thu, 17 Mar 2022 18:03:19 +0000 (14:03 -0400)]
Merge pull request #40703 from linuxbox2/wip-rgwlc-noreset

rgwlc: remove explicit lc shard resets at start-of-run

3 years agoMerge pull request #45392 from sseshasa/wip-snaptrim-qos-with-mclock
Yuri Weinstein [Thu, 17 Mar 2022 16:48:12 +0000 (09:48 -0700)]
Merge pull request #45392 from sseshasa/wip-snaptrim-qos-with-mclock

mon, osd: Add snaptrim stats to the existing PG stats.

Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agorgwlc: restore already_run_today guard 40703/head
Matt Benjamin [Tue, 15 Mar 2022 19:36:45 +0000 (15:36 -0400)]
rgwlc:  restore already_run_today guard

On review, this constraint was correct--it does reliably prevent
same-cycle re-runs when a lc threads rendezvous on a bucket.

Also, for concurrent (or stale) and already processed buckets,
remember to advance head past the corresponding buckets.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: prevent multiple runs per scheduling cycle
Matt Benjamin [Tue, 1 Mar 2022 20:28:00 +0000 (15:28 -0500)]
rgwlc:  prevent multiple runs per scheduling cycle

Restore (and robustify) the assertion that, in general, each bucket
shard should be processed once per scheduling cycle.

If the prior cycle did not finish, processing in the current cyhcle
will continue from the marker where the last cycle left off.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: include lc shard oid in "lc shard list"
Matt Benjamin [Fri, 18 Feb 2022 17:23:30 +0000 (12:23 -0500)]
rgwlc:  include lc shard oid in "lc shard list"

E.g.,
[
    {
        "bucket": ":bucket1:f2f4a8dd-7ec9-4758-bc4f-c8f5fbc85109.4137.2",
        "shard": "lc.6",
        "started": "Fri, 18 Feb 2022 17:30:16 GMT",
        "status": "COMPLETE"
    },
...
]

The prototyped approach adds a copy of the shard name (which is
assured to be a small string) to rgw::sal::LCEntry.  It's not
expected to be represented in underlying store types.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: avoid front() on empty lc entry vector
Matt Benjamin [Fri, 18 Feb 2022 14:31:06 +0000 (09:31 -0500)]
rgwlc: avoid front() on empty lc entry vector

Conveniently, this arose after removing all lifecycle shards from
RADOS, proving it could be done safely.

A restart is currently needed to recognize new lifecycle shards,
if rgw_gc_max_objs also changed.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: pretty-print status in RGWLC::process(int...)
Matt Benjamin [Fri, 18 Feb 2022 13:33:35 +0000 (08:33 -0500)]
rgwlc:  pretty-print status in RGWLC::process(int...)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: remove bucket_lc_prepare, add backoff
Matt Benjamin [Thu, 17 Feb 2022 15:55:14 +0000 (10:55 -0500)]
rgwlc:  remove bucket_lc_prepare, add backoff

Remove now-unused RGWLC::bucket_lc_prepare.  Wrap serializer calls
in RGWLC::process(int index...) with simple backoff, limited to 5
retries.

In RGWLC::process(int index...), also open-coded the behavior of
RGWLC::bucket_lc_prepare(...), as the lock sharing between these
methods is error prone.  For now, that method exists, so that it can
be called from the single-bucket process.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: remove explicit lc shard resets at start-of-run
Matt Benjamin [Mon, 14 Feb 2022 21:39:27 +0000 (16:39 -0500)]
rgwlc: remove explicit lc shard resets at start-of-run

This is an alternative solution to the (newly exposed) lifecycle
shard starvation problem reported by Jeegen Chen.

There was always an starvation condition implied by the
reset of lc shard head at the start of processing.  The introduction
of "stale sessions" in parallel lifecycle changes made it more
visible, in particular when rgw_lc_debug_interval was set to a small
value and many buckets had lifecycle policy.

My hypothesis in this change is that lifecycle processing for each
lc shard should /always/ continue through the full set of eligible
buckets for the shard, regardless of how many processing cycles might
be required to do so.  In general, restarting at the first eligible
bucket on each reschedule invites starvation when processing "gets
behind", so just avoid it.

Fixes: https://tracker.ceph.com/issues/49446
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 6e2ae13adced6b3dbb2fe16b547a30e9d68dfa06)

rgwlc: add a wraparound to continued shard processing

If the full set of buckets for a given lc shard couldn't be
processed in the prior cycle, processing will start with a
non-empty marker.  Note the initial marker position, then
when the end of shard is reached, allow processing to wrap
around to the logical beginning of the shard and proceeding
through the initial marker.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Please enter the commit message for your changes. Lines starting
(cherry picked from commit 0b8f683d3cf444cc68fd30c3f179b9aa0ea08e7c)

don't report clearing incorrectly

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: permit skipping processing in RGWLC::bucket_lc_process(...)
Matt Benjamin [Tue, 15 Feb 2022 00:51:43 +0000 (19:51 -0500)]
rgwlc:  permit skipping processing in RGWLC::bucket_lc_process(...)

The intent is to permit tracing of the bucket processing scheduler, without
expiring or transitioning any objects.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agorgwlc: permit disabling of (default) auto-clearing of stale sessions
Matt Benjamin [Mon, 14 Feb 2022 23:26:22 +0000 (18:26 -0500)]
rgwlc: permit disabling of (default) auto-clearing of stale sessions

Provide an option to disable automatic clearing of stale sessions--
which, unless disabled, happens after 2 lifecycle scheduling cycles.

The default behavior is most likely not desired when a debugging or
testing lifecycle processing with rgw_lc_debug_interval is set, and
therefore re-entering a running session after 2 scheduling cycles is
fairly likely.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
3 years agoMerge pull request #44795 from ajarr/dynamic-update-cephfs-nfs-export
Venky Shankar [Thu, 17 Mar 2022 13:15:08 +0000 (18:45 +0530)]
Merge pull request #44795 from ajarr/dynamic-update-cephfs-nfs-export

 mgr/nfs: allow dynamic update of cephfs nfs export

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 years agoMerge pull request #45271 from liu-chunmei/seastore-op-missing
Liu-Chunmei [Thu, 17 Mar 2022 10:52:06 +0000 (03:52 -0700)]
Merge pull request #45271 from liu-chunmei/seastore-op-missing

crimson/seastore: add OP_RMATTR support

Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agoMerge pull request #45403 from liu-chunmei/crimson-reply-version
Samuel Just [Wed, 16 Mar 2022 19:17:01 +0000 (12:17 -0700)]
Merge pull request #45403 from liu-chunmei/crimson-reply-version

crimson: fix set_reply_versions missing

Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agoMerge pull request #45176 from liu-chunmei/crimson-teuthology
Samuel Just [Wed, 16 Mar 2022 19:06:04 +0000 (12:06 -0700)]
Merge pull request #45176 from liu-chunmei/crimson-teuthology

crimson: teuthology suite for seastore

Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agoMerge pull request #45402 from ceph/wip-yuri-master-crontab
Yuri Weinstein [Wed, 16 Mar 2022 15:25:51 +0000 (08:25 -0700)]
Merge pull request #45402 from ceph/wip-yuri-master-crontab

qa/tests: fixed typo

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
3 years agoMerge pull request #45218 from rhcs-dashboard/feature-clusterLogs-searchHighlight
Ernesto Puerta [Wed, 16 Mar 2022 13:14:43 +0000 (14:14 +0100)]
Merge pull request #45218 from rhcs-dashboard/feature-clusterLogs-searchHighlight

mgr/dashboard: highlight the search text in cluster logs

Reviewed-by: Sarthak0702 <NOT@FOUND>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: sunilangadi2 <NOT@FOUND>
3 years agoMerge pull request #44843 from rhcs-dashboard/fix-Nan-undefined-host-columns
Ernesto Puerta [Wed, 16 Mar 2022 13:12:47 +0000 (14:12 +0100)]
Merge pull request #44843 from rhcs-dashboard/fix-Nan-undefined-host-columns

mgr/dashboard: fix columns in host table  with NaN Undefined

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
3 years agoMerge pull request #44751 from rhcs-dashboard/introduce-logging-containers
Ernesto Puerta [Wed, 16 Mar 2022 13:06:55 +0000 (14:06 +0100)]
Merge pull request #44751 from rhcs-dashboard/introduce-logging-containers

mgr/cephadm: introduce centralized logging in Dashboard using Loki and Promtail

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: rkachach <NOT@FOUND>
Reviewed-by: sunilangadi2 <NOT@FOUND>
Reviewed-by: umangachapagain <NOT@FOUND>
3 years agoMerge pull request #45104 from rhcs-dashboard/cephfs-ernno-mapping 45095/head
Venky Shankar [Wed, 16 Mar 2022 10:15:14 +0000 (15:45 +0530)]
Merge pull request #45104 from rhcs-dashboard/cephfs-ernno-mapping

Add mapping for ernno:13 and adding path in error msg in opendir()/cephfs.pyx

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 years agocrimson/seastore: add unittest for OP_RMATTR 45271/head
chunmei-liu [Fri, 11 Mar 2022 06:23:25 +0000 (22:23 -0800)]
crimson/seastore: add unittest for OP_RMATTR

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agocrimson/seastore: add OP_RMATTR support
chunmei-liu [Fri, 4 Mar 2022 21:46:10 +0000 (13:46 -0800)]
crimson/seastore: add OP_RMATTR support

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agoMerge pull request #45290 from nmshelke/fix-54375
Venky Shankar [Wed, 16 Mar 2022 03:53:25 +0000 (09:23 +0530)]
Merge pull request #45290 from nmshelke/fix-54375

mgr/volumes: the 'mode' should honor idempotent subvolume creation

Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 years agocrimson: fix set_reply_versions missing 45403/head
Chunmei Liu [Wed, 16 Mar 2022 03:35:58 +0000 (20:35 -0700)]
crimson: fix set_reply_versions missing

Signed-off-by: Chunmei Liu <chunmei.liu@intel.com>
3 years agoqa/tests: fixed typo 45402/head
Yuri Weinstein [Tue, 15 Mar 2022 23:00:20 +0000 (16:00 -0700)]
qa/tests: fixed typo

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
3 years agocephfs/test_nfs: Add test for dynamic update export 44795/head
Ramana Raja [Fri, 11 Mar 2022 19:49:42 +0000 (14:49 -0500)]
cephfs/test_nfs: Add test for dynamic update export

Add test to verify that the NFS servers don't restart when the
access type of a CephFS NFS export is updated.

And check the NFS servers are restarted when the pseudo path of
a CephFS NFS export is updated.

Signed-off-by: Ramana Raja <rraja@redhat.com>
3 years agoMerge pull request #45380 from ceph/wip-yuri-master-crontab
Josh Durgin [Tue, 15 Mar 2022 21:22:54 +0000 (14:22 -0700)]
Merge pull request #45380 from ceph/wip-yuri-master-crontab

qa/tests: added client upgrade suites to the crontab

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
3 years agoMerge pull request #45348 from liu-chunmei/seastore-op-version
Liu-Chunmei [Tue, 15 Mar 2022 19:48:55 +0000 (12:48 -0700)]
Merge pull request #45348 from liu-chunmei/seastore-op-version

crimson: add CEPH_OSD_OP_ASSERT_VER

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
3 years agoMerge pull request #44912 from xxhdx1985126/wip-fixed-kv-btree
Samuel Just [Tue, 15 Mar 2022 19:45:07 +0000 (12:45 -0700)]
Merge pull request #44912 from xxhdx1985126/wip-fixed-kv-btree

crimson/os/seastore: extract fixed kv btree implementation out of lba manager

Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agoosd: Add snaptrim duration to pg dump stats. 45392/head
Sridhar Seshasayee [Mon, 14 Mar 2022 20:08:57 +0000 (01:38 +0530)]
osd: Add snaptrim duration to pg dump stats.

Add the snaptrim duration to the json formatted output of the pg dump
stats. Define methods for a PG to set the snaptrim begin time and then to
calculate the total time spent to trim all the objects for the snaps in
the snap_trimq for the PG.

Tests:
  - Librados C and C++ API tests to verify the time spent for a snaptrim
    operation on a PG. These tests use the self-managed snaps APIs.
  - Standalone tests to verify snaptrim duration using rados pool snaps.

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
3 years agomon, osd: Add objects trimmed to pg dump stats.
Sridhar Seshasayee [Thu, 17 Feb 2022 11:38:36 +0000 (17:08 +0530)]
mon, osd: Add objects trimmed to pg dump stats.

Add a new column, OBJECTS_TRIMMED, to the pg dump stats that shows the
number of objects trimmed when a snap is removed.

When a pg splits, the stats from the parent pg is copied to the child
pg. In such a case, reset objects_trimmed to 0 for the child pg
(see PeeringState::split_into()). Otherwise, this will result in incorrect
stats to be shown for a child pg after the split operation.

Tests:
 - Librados C and C++ API tests to verify the number of objects trimmed
   during snaptrim operation. These tests use the self-managed snaps APIs.
 - Standalone tests to verify objects trimmed using rados pool snaps.

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
3 years agoMerge pull request #45362 from josephsawaya/doc-dev
Adam King [Tue, 15 Mar 2022 18:43:16 +0000 (14:43 -0400)]
Merge pull request #45362 from josephsawaya/doc-dev

doc: Add note to osds_per_device description about dual-actuator devices

Reviewed-by: Adam King <adking@redhat.com>
3 years agoMerge pull request #45337 from amathuria/amathuri-add-scrub-duration
Yuri Weinstein [Tue, 15 Mar 2022 17:35:42 +0000 (10:35 -0700)]
Merge pull request #45337 from amathuria/amathuri-add-scrub-duration

osd/scrub: add scrub duration to pg stats

Reviewed-by: Sridhar Seshasayee <sseshasa@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
3 years agoMerge pull request #45078 from kamoltat/wip-ksirivad-fix-target-size-ratio-bound
Yuri Weinstein [Tue, 15 Mar 2022 16:22:58 +0000 (09:22 -0700)]
Merge pull request #45078 from kamoltat/wip-ksirivad-fix-target-size-ratio-bound

mon/MonCommands.h: fix target_size_ratio range

Reviewed-by: Neha Ojha <nojha@redhat.com>
3 years agorgwlc: fix segfault resharding during lc 45391/head
Mark Kogan [Tue, 15 Mar 2022 13:06:56 +0000 (15:06 +0200)]
rgwlc: fix segfault resharding during lc

Fixes: https://tracker.ceph.com/issues/54363
Signed-off-by: Mark Kogan <mkogan@redhat.com>
3 years agoMerge pull request #45317 from Matan-B/wip-matanb-c-vstart-as
Samuel Just [Tue, 15 Mar 2022 03:20:05 +0000 (20:20 -0700)]
Merge pull request #45317 from Matan-B/wip-matanb-c-vstart-as

vstart.sh: disable pg-autoscaling for crimson-osd

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agocrimson: add CEPH_OSD_OP_ASSERT_VER 45348/head
chunmei-liu [Fri, 11 Mar 2022 07:36:43 +0000 (23:36 -0800)]
crimson: add CEPH_OSD_OP_ASSERT_VER

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agoMerge pull request #45378 from tchaikov/wip-docs
Kefu Chai [Tue, 15 Mar 2022 01:37:47 +0000 (09:37 +0800)]
Merge pull request #45378 from tchaikov/wip-docs

doc/dev: s/tchaikov/ceph/

Reviewed-by:Anthony D'Atri <anthony.datri@gmail.com>

3 years agoMerge pull request #45343 from dang/wip-dang-bucket-quota
Daniel Gryniewicz [Mon, 14 Mar 2022 17:36:02 +0000 (13:36 -0400)]
Merge pull request #45343 from dang/wip-dang-bucket-quota

RGW - Get quota on OPs with a bucket

Reviewed-by Casey Bodley <cbodley@redhat.com>

3 years agoqa/tests: added client upgrade suites to the crontab 45380/head
Yuri Weinstein [Mon, 14 Mar 2022 15:28:37 +0000 (08:28 -0700)]
qa/tests: added client upgrade suites to the crontab

Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
3 years agodoc/dev: s/tchaikov/ceph/ 45378/head
Kefu Chai [Mon, 14 Mar 2022 15:05:16 +0000 (23:05 +0800)]
doc/dev: s/tchaikov/ceph/

use the repo under ceph orgnization for the sake of better
consistency

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 years agoMerge pull request #45235 from tchaikov/rbd-std-variant
Ilya Dryomov [Mon, 14 Mar 2022 10:36:39 +0000 (11:36 +0100)]
Merge pull request #45235 from tchaikov/rbd-std-variant

librbd: s/boost::variant/std::variant/

Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
3 years agocephfs/test_nfs: fix _write_to_read_only_export()
Ramana Raja [Fri, 11 Mar 2022 21:36:44 +0000 (16:36 -0500)]
cephfs/test_nfs: fix _write_to_read_only_export()

... to fail the test if write to read only export succeeded.

Signed-off-by: Ramana Raja <rraja@redhat.com>
3 years agomgr/nfs: Don't notify ganesha rados object
Ramana Raja [Wed, 26 Jan 2022 04:30:26 +0000 (23:30 -0500)]
mgr/nfs: Don't notify ganesha rados object

... to update export if the ganesha server is going to be
restarted. The ganesha server restart will reload the exports.

Signed-off-by: Ramana Raja <rraja@redhat.com>
3 years agomgr/nfs: allow dynamic update of cephfs nfs export
Ramana Raja [Tue, 25 Jan 2022 01:06:11 +0000 (20:06 -0500)]
mgr/nfs: allow dynamic update of cephfs nfs export

mgr/nfs module's apply_export() method is used to update an existing
CephFS NFS export. The method always restarted the ganesha service (
ganesha server cluster) after updating the export object and notifying
the ganesha servers to reload their exports. The restart temporarily
affected the clients connections of all the exports served by the
ganesha servers.

It is not always necessary to restart the ganesha servers. Only
updating the export ID, path, or FSAL block of a CephFS NFS export
requires a restart. So modify apply_export() to only restart the
ganesha servers for such export updates.

The mgr/nfs module creates a FSAL ceph user with read-only or
read-write path restricted MDS caps for each export. To change the
access type of the CephFS NFS export, the MDS caps of the export's FSAL
ceph user must also be changed. Ganesha can dynamically enforce an
export's access type changes, but Ceph server daemons can't dynamically
enforce changes in caps of the Ceph clients. To allow dynamic updates
of CephFS NFS exports, always create a FSAL Ceph user with read-write
path restricted MDS caps per export. Rely on the ganesha servers to
enforce the export access type changes for the NFS clients.

Fixes: https://tracker.ceph.com/issues/54025
Signed-off-by: Ramana Raja <rraja@redhat.com>
3 years agoMerge pull request #44827 from ceph/wip-yuriw-crontab-master2
Yuri Weinstein [Sun, 13 Mar 2022 16:10:27 +0000 (09:10 -0700)]
Merge pull request #44827 from ceph/wip-yuriw-crontab-master2

qa/tests: added quincy and removed master runs

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Adam King adking@redhat.com
3 years agoMerge pull request #45276 from tchaikov/wip-rapidjson
Kefu Chai [Sun, 13 Mar 2022 12:38:35 +0000 (20:38 +0800)]
Merge pull request #45276 from tchaikov/wip-rapidjson

submodule: bump up RapidJSON

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 years agocrimson/os/seastore/btree: move 'with_btree*' from lba manager to fixed kv btree 44912/head
Xuehan Xu [Wed, 16 Feb 2022 09:46:58 +0000 (17:46 +0800)]
crimson/os/seastore/btree: move 'with_btree*' from lba manager to fixed kv btree

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
3 years agocrimson/os/seastore: extract lba nodes out of lba manager
Xuehan Xu [Tue, 8 Feb 2022 05:34:02 +0000 (13:34 +0800)]
crimson/os/seastore: extract lba nodes out of lba manager

Change lba nodes to general fixed-size-kv btree nodes

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
3 years agocrimson/os/seastore: extract fixed kv btree implementation out of lba manager
Xuehan Xu [Fri, 28 Jan 2022 05:04:03 +0000 (13:04 +0800)]
crimson/os/seastore: extract fixed kv btree implementation out of lba manager

Basically, this pr moves the current LBABtree and lba_range_pin out of lba manager,
and rename LBABtree to FixedKVBtree. This is the preparation for implementing backrefs

Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
3 years agovstart.sh: disable autoscaling for crimson-osd 45317/head
Matan Breizman [Wed, 9 Mar 2022 15:29:32 +0000 (15:29 +0000)]
vstart.sh: disable autoscaling for crimson-osd

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
3 years agodoc: Add note to osds_per_device description about dual-actuator devices 45362/head
Joseph Sawaya [Fri, 11 Mar 2022 20:45:16 +0000 (15:45 -0500)]
doc: Add note to osds_per_device description about dual-actuator devices

This commit adds information about using dual-actuator devices with the
osds_per_device drive group option, letting users know they can create
an OSD for each actuator by setting this value to 2 in the drive group
they're using to apply OSDs to the device.

Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
3 years agolibrbd: s/boost::variant/std::variant/ 45235/head
Kefu Chai [Wed, 2 Mar 2022 16:41:19 +0000 (00:41 +0800)]
librbd: s/boost::variant/std::variant/

boost::variant explicitly prevent it from being compared other types
by marking the return type of, for instance operator==(const T&) as
"void", if T is not identical to the variant type. so address this,
let's use std::variant<> instead.

more standard compliant and simpler this way.

because of https://cplusplus.github.io/LWG/issue3052, libstdc++
only specializes for std::variant<> for std::visit(), while libc++
allows the derived types of std::variant<> to be "visited", hence
we add an adaptor for SnapshotNamespace.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 years agoosd/scrub: add scrub duration to pg stats 45337/head
Aishwarya Mathuria [Thu, 10 Mar 2022 10:25:37 +0000 (15:55 +0530)]
osd/scrub: add scrub duration to pg stats

Addition of a SCRUB_DURATION field that shows how long the scrub/deep-scrub of a pg took.
This field will be displayed in the output of the "ceph pg dump --format=json" and "ceph pg ls-by-pool --format=json" commands.

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
3 years agoMerge pull request #45034 from ceph/cephadm-conditional-hostname
Zack Cerza [Fri, 11 Mar 2022 02:07:17 +0000 (19:07 -0700)]
Merge pull request #45034 from ceph/cephadm-conditional-hostname

qa/tasks/cephadm: Make hostname change idempotent

3 years agocrimson/seastore: fix 4 bytes alignment 45176/head
chunmei-liu [Thu, 10 Mar 2022 22:28:46 +0000 (14:28 -0800)]
crimson/seastore: fix 4 bytes alignment

runtime error: reference binding to misaligned address 0x610000008395
for type 'device_type_t', which requires 4 byte alignment

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agoMerge pull request #44925 from JoshSalomon/balancer-perf
Yuri Weinstein [Thu, 10 Mar 2022 23:24:47 +0000 (15:24 -0800)]
Merge pull request #44925 from JoshSalomon/balancer-perf

balancer: Improve performance in rare cases

Reviewed-by: Laura Flores <lflores@redhat.com>
3 years agocrimson/seastore: change seastore_device_size
chunmei-liu [Thu, 10 Mar 2022 21:46:59 +0000 (13:46 -0800)]
crimson/seastore: change seastore_device_size

to be half of the original value.

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agoRGW - Get quota on OPs with a bucket 45343/head
Daniel Gryniewicz [Thu, 10 Mar 2022 20:01:38 +0000 (15:01 -0500)]
RGW - Get quota on OPs with a bucket

Bucket head OPs should have quota in the output.  However, we were only
fetching quota on OPs that also had an object.  The object itself is not
necessary for quota (although a bucket is).  Change it so that we get
quota on bucket OPs as well.

Fixes https://tracker.ceph.com/issues/54488

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
3 years agoMerge pull request #45200 from kamoltat/wip-ksirivad-pg-num-max-reorder
Kamoltat Sirivadhna [Thu, 10 Mar 2022 17:01:27 +0000 (12:01 -0500)]
Merge pull request #45200 from kamoltat/wip-ksirivad-pg-num-max-reorder

osd/osd_types: pg_num_max reordering
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
3 years agoMerge pull request #45330 from wxypro/fix-typos
Anthony D'Atri [Thu, 10 Mar 2022 08:55:19 +0000 (00:55 -0800)]
Merge pull request #45330 from wxypro/fix-typos

doc/cephfs: fix typos

3 years agodoc/cephfs: fix typos 45330/head
wangxinyu [Thu, 10 Mar 2022 06:31:26 +0000 (14:31 +0800)]
doc/cephfs: fix typos

fix typos

Signed-off-by: wangxinyu <wangxinyu@inspur.com>
3 years agomgr/cephadm: fix cephadm errors 44751/head
Aashish Sharma [Wed, 2 Mar 2022 11:23:02 +0000 (16:53 +0530)]
mgr/cephadm: fix cephadm errors

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
3 years agoMerge pull request #43474 from xxhdx1985126/wip-epm-strategy
Samuel Just [Thu, 10 Mar 2022 02:34:00 +0000 (18:34 -0800)]
Merge pull request #43474 from xxhdx1985126/wip-epm-strategy

crimson/os/seastore: implement Sprite LFS' gc and extent placement strategy to lower gc cost

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
3 years agoMerge pull request #45244 from Matan-B/wip-matanb-revert-keyring
Neha Ojha [Wed, 9 Mar 2022 23:54:21 +0000 (15:54 -0800)]
Merge pull request #45244 from Matan-B/wip-matanb-revert-keyring

Revert "doc/dev: Running workunits locally"

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
3 years agoMerge pull request #45305 from Thingee/update-foundation-mem-202203
Neha Ojha [Wed, 9 Mar 2022 23:19:35 +0000 (15:19 -0800)]
Merge pull request #45305 from Thingee/update-foundation-mem-202203

docs: Updating Foundation member list for 202203

Reviewed-by: Dan van der Ster <daniel.vanderster@cern.ch>
Reviewed-by:Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
3 years agoMerge pull request #44913 from benhanokh/safe_shutdown_v2
Yuri Weinstein [Wed, 9 Mar 2022 21:53:43 +0000 (13:53 -0800)]
Merge pull request #44913 from benhanokh/safe_shutdown_v2

OSD::Modify OSD Fast-Shutdown to work safely i.e. quiesce all activit…

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
3 years agoMerge pull request #45318 from kamoltat/wip-fix-autoscale-doc
Kamoltat Sirivadhna [Wed, 9 Mar 2022 17:41:01 +0000 (12:41 -0500)]
Merge pull request #45318 from kamoltat/wip-fix-autoscale-doc

doc/rados/operations/placement-groups:  ...fix typo...
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
3 years agoMerge pull request #45272 from petrutlucian94/build_fix
David Galloway [Wed, 9 Mar 2022 15:42:36 +0000 (10:42 -0500)]
Merge pull request #45272 from petrutlucian94/build_fix

Fix Windows build

3 years agodoc/rados/operations/placement-groups: typo two 'the' 45318/head
Kamoltat [Wed, 9 Mar 2022 15:36:20 +0000 (15:36 +0000)]
doc/rados/operations/placement-groups: typo two 'the'

typo, should not have two 'the' next to each
other.

Signed-off-by: Kamoltat <ksirivad@redhat.com>
3 years agoMerge pull request #45279 from kamoltat/wip-ksirivad-fix-bulk-doc
Kamoltat Sirivadhna [Wed, 9 Mar 2022 15:13:21 +0000 (10:13 -0500)]
Merge pull request #45279 from kamoltat/wip-ksirivad-fix-bulk-doc

doc/rados/operations/placement-groups: fix --bulk commands
Reviewed-by: Neha Ojha <nojha@redhat.com>
3 years agocls/rbd: define SnapshotNamespace's ctor using its parent
Kefu Chai [Mon, 7 Mar 2022 16:00:28 +0000 (00:00 +0800)]
cls/rbd: define SnapshotNamespace's ctor using its parent

simpler this way. also this prevent the compiler from trying to
convert a random value into SnapshotNamespace just because it
has a templated constructor when it tries to lookup a candidate
of operator<<(ostream&, Random value).

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
3 years agoMerge pull request #45302 from rzarzynski/wip-crimson-fix-noenoent-no-remove
Kefu Chai [Wed, 9 Mar 2022 13:34:47 +0000 (21:34 +0800)]
Merge pull request #45302 from rzarzynski/wip-crimson-fix-noenoent-no-remove

crimson/osd: fix no ENOENT when removing already removed object

Reviewed-by: chunmei-liu <chunmei.liu@intel.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
3 years agoMerge pull request #45310 from inspur-wyq/wip-doc-cephadm
Kefu Chai [Wed, 9 Mar 2022 13:23:06 +0000 (21:23 +0800)]
Merge pull request #45310 from inspur-wyq/wip-doc-cephadm

doc/cephadm/adoption.rst: fix typos

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
3 years agoMerge pull request #45266 from tchaikov/wip-sphinx
Kefu Chai [Wed, 9 Mar 2022 13:20:24 +0000 (21:20 +0800)]
Merge pull request #45266 from tchaikov/wip-sphinx

admin/doc-requirements: bump sphinx to 4.4.0

Reviewed-by: Michael Fritch <mfritch@suse.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
3 years agoMerge pull request #45297 from idryomov/wip-test-notify-rebuild-object-map
Ilya Dryomov [Wed, 9 Mar 2022 09:15:56 +0000 (10:15 +0100)]
Merge pull request #45297 from idryomov/wip-test-notify-rebuild-object-map

test/librbd/test_notify.py: effect post object map rebuild assert

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
3 years agodoc/cephadm/adoption.rst: fix typos 45310/head
wangyunqing [Wed, 9 Mar 2022 08:55:13 +0000 (16:55 +0800)]
doc/cephadm/adoption.rst: fix typos

Signed-off-by: wangyunqing <wangyunqing@inspur.com>
3 years agoMerge pull request #45278 from rzarzynski/wip-crimson-fix-logs-in-cls
Samuel Just [Wed, 9 Mar 2022 07:07:42 +0000 (23:07 -0800)]
Merge pull request #45278 from rzarzynski/wip-crimson-fix-logs-in-cls

crimson, cls: fix the inability to print logs from plugins.

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
3 years agoqa: verify idempotent subvolume creation for 'mode' argument 45290/head
Nikhilkumar Shelke [Tue, 8 Mar 2022 09:06:27 +0000 (14:36 +0530)]
qa: verify idempotent subvolume creation for 'mode' argument

Fixes: https://tracker.ceph.com/issues/54375
Signed-off-by: Nikhilkumar Shelke <nshelke@redhat.com>
3 years agomgr/volumes: the 'mode' should honor idempotent subvolume creation
Nikhilkumar Shelke [Tue, 8 Mar 2022 09:00:00 +0000 (14:30 +0530)]
mgr/volumes: the 'mode' should honor idempotent subvolume creation

currently the 'mode' argument is not honored idempotent
subvolume creation for existing subvolume.

Fixes: https://tracker.ceph.com/issues/54375
Signed-off-by: Nikhilkumar Shelke <nshelke@redhat.com>
3 years agoqa/suites/crimson-rados: add fixed-1 for seastore
chunmei-liu [Wed, 2 Mar 2022 06:33:18 +0000 (22:33 -0800)]
qa/suites/crimson-rados: add fixed-1 for seastore

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
3 years agodoc/rados/operations/placement-groups: fix --bulk commands 45279/head
Kamoltat [Mon, 7 Mar 2022 14:52:41 +0000 (14:52 +0000)]
doc/rados/operations/placement-groups: fix --bulk commands

Some parts of the documents regarding
the bulk flag  have typos.

Command for creating a pool

was: `ceph osd create test_pool --bulk`

should be: `ceph osd pool create test_pool --bulk`

Command for setting bulk value in a pool

was: `ceph osd pool set test_pool bulk=<true/false/1/0>`

should be: `ceph osd pool set test_pool bulk <true/false/1/0>`

Also removed a bit of trailing white spaces.

Changed `complements` to `complement`.

https://tracker.ceph.com/issues/54485

Signed-off-by: Kamoltat <ksirivad@redhat.com>
3 years agodocs: Update Foundation member list for March #45305 45305/head
Mike Perez [Tue, 8 Mar 2022 21:43:03 +0000 (13:43 -0800)]
docs: Update Foundation member list for March #45305

Signed-off-by: Mike Perez <thingee@gmail.com>
3 years agoMerge pull request #45211 from phlogistonjohn/jjm-nfs-cleanups3
Adam King [Tue, 8 Mar 2022 18:42:07 +0000 (13:42 -0500)]
Merge pull request #45211 from phlogistonjohn/jjm-nfs-cleanups3

mgr/nfs: Additional fixes for NFS export management without orchestration

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Michael Fritch <mfritch@suse.com>
3 years agoMerge pull request #45281 from rkachach/fix_issue_54487
Adam King [Tue, 8 Mar 2022 18:33:54 +0000 (13:33 -0500)]
Merge pull request #45281 from rkachach/fix_issue_54487

mgr/cephadm: fixing MDSSpec ctr

Reviewed-by: Adam King <adking@redhat.com>
3 years agoMerge pull request #45039 from Matan-B/wip-matanb-nfs-timeout
Adam King [Tue, 8 Mar 2022 18:31:40 +0000 (13:31 -0500)]
Merge pull request #45039 from Matan-B/wip-matanb-nfs-timeout

qa/tasks/cephfs: increase timeout in test_nfs.py

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
3 years agocrimson/osd: fix no ENOENT when removing already removed object 45302/head
Radoslaw Zarzynski [Tue, 8 Mar 2022 17:25:29 +0000 (17:25 +0000)]
crimson/osd: fix no ENOENT when removing already removed object

This patch deals with the following problem:

```
[rzarzynski@o06 build]$ RBD_FEATURES="21" ./bin/ceph_test_cls_rbd --gtest_filter=TestClsRbd.create
Running main() from gmock_main.cc
Note: Google Test filter = TestClsRbd.create
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from TestClsRbd
[ RUN      ] TestClsRbd.create
../src/test/cls_rbd/test_cls_rbd.cc:467: Failure
Expected equality of these values:
  -2
  ioctx.remove(oid)
    Which is: 0
[  FAILED  ] TestClsRbd.create (10 ms)
[----------] 1 test from TestClsRbd (10 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (2805 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] TestClsRbd.create

 1 FAILED TEST
```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
3 years agoMerge pull request #45214 from cbodley/wip-rgw-ancient-curl-workaround
Casey Bodley [Tue, 8 Mar 2022 15:32:39 +0000 (10:32 -0500)]
Merge pull request #45214 from cbodley/wip-rgw-ancient-curl-workaround

cmake/rgw: remove workaround for ancient libcurl

Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
3 years agoMerge pull request #44488 from cfsnyder/wip-53788-reopen-ops-log-sighup
Casey Bodley [Tue, 8 Mar 2022 15:30:36 +0000 (10:30 -0500)]
Merge pull request #44488 from cfsnyder/wip-53788-reopen-ops-log-sighup

rgw: reopen ops log file on sighup

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 years agoMerge pull request #45212 from cbodley/wip-54435
Casey Bodley [Tue, 8 Mar 2022 15:29:48 +0000 (10:29 -0500)]
Merge pull request #45212 from cbodley/wip-54435

rgw: prevent spurious/lost notifications in the index completion thread

Reviewed-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agoMerge pull request #44859 from cfsnyder/wip-54112-rgw-segfault-init-fetch
Casey Bodley [Tue, 8 Mar 2022 13:31:54 +0000 (08:31 -0500)]
Merge pull request #44859 from cfsnyder/wip-54112-rgw-segfault-init-fetch

rgw: fix segfault in UserAsyncRefreshHandler::init_fetch

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 years agoMerge pull request #44946 from adamemerson/wip-54208
Casey Bodley [Tue, 8 Mar 2022 13:31:15 +0000 (08:31 -0500)]
Merge pull request #44946 from adamemerson/wip-54208

rgw: Fix data race in ChangeStatus

Reviewed-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: initialize RGWIndexCompletionManager thread after related members 45212/head
Casey Bodley [Mon, 7 Mar 2022 20:10:07 +0000 (15:10 -0500)]
rgw: initialize RGWIndexCompletionManager thread after related members

resolves valgrind issues about RGWIndexCompletionManager::process()
using uninitialized memory

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/librbd/test_notify.py: effect post object map rebuild assert 45297/head
Ilya Dryomov [Tue, 8 Mar 2022 12:56:15 +0000 (13:56 +0100)]
test/librbd/test_notify.py: effect post object map rebuild assert

Instead of just optionally skipping update_features test, commit
9c0b239d70cd ("qa/upgrade: conditionally disable update_features
tests") moved it after rebuild_object_map test.  This isn't right
because update_features test invalidates the object map as a side
effect and rebuild_object_map test is what makes it valid again:

  assert((image.flags() & RBD_FLAG_OBJECT_MAP_INVALID) == 0)

Let's make this assert effective, at least when update_features
test isn't skipped.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
3 years agoMerge pull request #45274 from Matan-B/wip-matanb-c-ops-debug
Samuel Just [Tue, 8 Mar 2022 03:15:36 +0000 (19:15 -0800)]
Merge pull request #45274 from Matan-B/wip-matanb-c-ops-debug

crimson/osd: do_pgnls_common debug message format

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
3 years agocrimson/osd, osd: don't use VLA in cls_log() anymore. 45278/head
Radoslaw Zarzynski [Tue, 8 Mar 2022 01:51:09 +0000 (01:51 +0000)]
crimson/osd, osd: don't use VLA in cls_log() anymore.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
3 years agocrimson, cls: fix the inability to print logs from plugins.
Radoslaw Zarzynski [Fri, 4 Mar 2022 11:03:05 +0000 (11:03 +0000)]
crimson, cls: fix the inability to print logs from plugins.

`cls_log()` of the interface between an OSD and a plugin
(a Ceph Class) is implemented on top of the `dout` macros
and shared between crimson and the classical OSD.

Unfortunately, when a plugin is hosted inside crimson,
this causes the inability to send to any in-plugin generated
message to the `seastar::logger` for the `objclass` subsystem.

This patch differtiates the implementation of `cls_log()`,
and thus allow the `seastar::logger`-based implementation
of `dout` to be used.

After the fix:

```
DEBUG 2022-03-07 14:12:14,124 [shard 0] osd - handling op call on object 1:424638ea:::image1:head
DEBUG 2022-03-07 14:12:14,124 [shard 0] osd - calling method rbd.create, num_read=0, num_write=0
DEBUG 2022-03-07 14:12:14,125 [shard 0] objclass - <cls> ../src/cls/rbd/cls_rbd.cc:787: create object_prefix=image1 size=0 order=22 features=0
DEBUG 2022-03-07 14:12:14,125 [shard 0] osd - handling op omap-get-vals-by-keys on object 1:424638ea:::image1:head
DEBUG 2022-03-07 14:12:14,125 [shard 0] osd - omap_get_vals_by_keys: object does not exist: 1:424638ea:::image1:head
```

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>