Matan Breizman [Thu, 15 Dec 2022 17:05:15 +0000 (17:05 +0000)]
mon/OSDMonitor: Skip check_pg_num on pool size decrease
When changing the pool size we use check_pg_num to not exceed
`mon_max_pg_per_osd` value. This check should only be applied
when increasing the size to avoid underflows.
(Same already applied when changing pg_num)
Matan Breizman [Mon, 19 Dec 2022 09:58:06 +0000 (09:58 +0000)]
mon/OSDMointor: Simplify check_pg_num()
* See: https://tracker.ceph.com/issues/47062.
Originally check_pg_num did not take into account the root
osds by the crash rule.
This behavior resulted in an inaccurate pg num per osd count.
* Avoid summing all of the projecetd pg num and only later
on subtracting the pg num if the pool did exist.
* With this change, we only count the projected pg num which
are part the pools affected by the crush rule.
Same for osd number, instead of dividing the projected
pg number by all of the osdmap osds, divide only by
the osds used by the crush rule.
* Avoid differentiating between whether the mapping epoch
is later than the osdmap epoch or not. Always check the pg
num according to crush rule.
Anthony D'Atri [Thu, 1 Dec 2022 19:04:30 +0000 (14:04 -0500)]
src/mon: clarify pool creation failure due to max_pgs_per_osd error message
Signed-off-by: Anthony D'Atri <anthony.datri@gmail.com>
Note: This commit is cherry-picked as a dependency
for later commits in this backport.
(cherry picked from commit 88e8eeca7571fc314bc30a52cd17218fa9fac500)
Tongliang Deng [Fri, 31 Dec 2021 06:02:25 +0000 (14:02 +0800)]
mon/OSDMonitor: fix integer underflow of check_pg_num
Underflow of the `uint64_t projected` variable occurs when
the sum of current acting pg num and new pg num we specified
is less than the pg num calculated from pg info.
Signed-off-by: Tongliang Deng <dengtongliang@gmail.com>
Note: This commit is cherry-picked as a dependency
for later commits in this backport.
(cherry picked from commit bd9813f5e1a3addca1a57360d58b50b120e0e5f3)
jerryluo [Mon, 25 Jan 2021 16:10:57 +0000 (00:10 +0800)]
mon/OSDMonitor: Make the pg_num check more accurate
In check_pg_num function, finding the corresponding osd according to the
current pool's crush rule, and calculating whether the average value of
pg_num on these osd will exceed the value of 'mon_max_pg_per_osd'. Make
the pg_num check more accurate by counting all the pgs on the osd used
by the new pool.
Fixes: https://tracker.ceph.com/issues/47062 Signed-off-by: Jerry Luo <luojierui@chinatelecom.cn>
Note: This commit has been reverted and is cherry-picked as
dependency for other commits in this backport.
(cherry picked from commit c726ce9e5088b30d29e0db5c0ecc8c03fe41da1d)
Adam King [Wed, 1 Mar 2023 21:10:41 +0000 (16:10 -0500)]
doc/cephadm: update cephadm compatability and stability page
This page is very out of date. This commit probably doesn't
cover everything there is to say about stability and compatability
in cephadm, but it at least gets it noticeably closer to reality
Zac Dover [Tue, 28 Feb 2023 02:55:08 +0000 (12:55 +1000)]
doc/radosgw: s/zone group/zonegroup/g et alia
s/zone group/zonegroup/ where simple greps failed to find instances of
"zone group" that were spread across two lines; break a paragraph into
two paragraphs so that each paragraph has a thematic idea of its own.
Zac Dover [Mon, 27 Feb 2023 08:40:14 +0000 (18:40 +1000)]
doc/rgw: remove "tertiary", link to procedure
Remove the term "tertiary zone" and replace it with "second secondary
zone" (because there is no such thing as a tertiary zone). Link to the
procedure for creating a secondary zone in a place where such a link is
helpful to the reader.
Ernesto Puerta [Thu, 23 Feb 2023 16:22:10 +0000 (17:22 +0100)]
mgr/dashboard: fix constraints.txt again
The previous attempt to fix this issue
(https://github.com/ceph/ceph/pull/50207) was not successful, since the
PIP syntax for compatible versions (~=) behaves differently compared to
other package management tools (e.g.: npm).
In this case, package~=x.y.z equasl to package>=x.y.z;package==x.y.*,
instead of the desired package>=x.y.z;package==x.*.
Cory Snyder [Wed, 2 Nov 2022 20:06:23 +0000 (20:06 +0000)]
rgw: add 'inline_data' zone placement info option
Adds a new RGW zone placement info option to control whether
an object's first data chunk is placed in the head object.
This allows admins to make a tradeoff between optimizing for
PUT/GET performance vs. DELETE performance for some cluster
configurations.
thomas [Fri, 24 Feb 2023 06:00:00 +0000 (01:00 -0500)]
doc/cephadm/host-management: add service spec link
The old "(below)" text is not accurate, the service spec definition is
not in the same file at this point in time. This commit adds a ref link
to the actual service specification section.
Rishabh Dave [Mon, 20 Feb 2023 07:51:25 +0000 (13:21 +0530)]
doc/cephfs: describe conf opt "client quota df" in quota doc
The ceph config file option (from the client section) "client quota df"
is mentioned in "CephFS Client Capabilities" document but not in the
"CephFS Quota" document. Adding information about this option to this
document too would make it easier for CephFS users to discover,
understand and use this option.
Zac Dover [Fri, 24 Feb 2023 01:07:12 +0000 (11:07 +1000)]
doc/glossary: add AWS/OpenStack bucket info
Add links to AWS's documentation of buckets, in accordance with Casey
Bodley's suggestions here:
https://github.com/ceph/ceph/pull/50221#discussion_r1115900879
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com> Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit d16ed970e9ac76d6320f0ae26fa3ddd745dbd429)
Yixin Jin [Wed, 15 Feb 2023 17:08:19 +0000 (17:08 +0000)]
rgw: Fix segfault due to concurrent socket use at timeout
This commit fixes a potential segfault risk when
rgw timeout handler works on the socket in one
thread while it is concurrently used by another.
The details of the fix are:
1. Instead of calling socket close(), which resets
descriptor_data in boost::asio socket and risks
segfault due to concurrent use of the socket,
the timeout handler now calls cancel() to abort
all pending ops followed by shutdown() to disable
the underlying transport. The eventual closure of
the socket will be done in the socket destructor.
2. Expose the actual boost::asio socket via get_socket()
from Connection so that the timeout handler can call
cancel() and shutdown() on it, although the socket data
member is already accessible. It allows future expansion
that wants to hide the socket even though it renders the
existing close() less useful.
The quincy branch doesn't currently include the rbd-wnbd python
tests. For this reason, the ceph-build scripts are fetching a
certain version from the main branch and then run each test
individually [1].
One issue is that the fio test is failing on quincy and we aren't
getting any information. It seemed to be a time out, but it still
fails even after the timeout was increased.
By backporting the tests to quincy, the tests will be invoked
through the "run-tests.ps1" script, hopefully receiving more
information.
Note that we're skipping the live resize test since this feature
isn't available in Quincy.
This will also allow us to simplify the ceph-build script.
Nizamudeen A [Wed, 19 Oct 2022 08:04:58 +0000 (13:34 +0530)]
cmake: bump node version to 14
to update the angular to 13, we need a node version of either 12.20.x or
14.15.x or 16.10.x. But inorder to not break the angular 12 run for now
we need to choose the node which works for both 12 and 13. which is
14.15.x. So I went with that node version here.
Yuval Lifshitz [Wed, 23 Feb 2022 15:21:10 +0000 (17:21 +0200)]
rgw: prevent spurious/lost notifications in the index completion thread
this was happening when asyn completions happened during reshard.
more information about testing:
https://gist.github.com/yuvalif/d526c0a3a4c5b245b9e951a6c5a10517
we also add more logs to the completion manager.
should allow finding unhandled completions due to reshards.
Zac Dover [Wed, 22 Feb 2023 03:36:40 +0000 (13:36 +1000)]
doc/rgw: clarify multisite.rst top matter
Improve the pragmatics of the top matter of multisite.rst. Organize the
text into sections, where doing so makes the nature of multi-site
configurations clearer.