Commit Graph

133099 Commits

Author SHA1 Message Date
Samuel Just
988113c1cd ceph_dedup_tool: fix log lines to use std::endl, update object skip message
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:45 +09:00
Samuel Just
a9791e5acd ceph_dedup_tool: remove unused SampleDedupWorkerThread::do_object_dedup
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:39 +09:00
Samuel Just
7f2967ff40 ceph_dedup_tool: make SampleDedupGlobal::sampling_rate const
Clarifies why it doesn't need to be protected by a lock.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:32 +09:00
Samuel Just
8a50a627ee ceph_dedup_tool: remove unused SampleDedupGlobal::object_dedup_threshold
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:26 +09:00
Samuel Just
31b0c047fd ceph_dedup_tool: fix unnecessarily complicated bool returns
Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:19 +09:00
Samuel Just
da52fb63f2 ceph_dedup_tool: SampleDedupWorkerThread can simply inherit from Thread
SampleDedupWorkerThread didn't actually use any of the facilities on
CrawlerThread and indeed left several of them uninitialized.

Also allows us to remove the CrawlerThread constructor which left
several members uninitialized.

Signed-off-by: Samuel Just <sjust@redhat.com>
2022-09-19 13:21:12 +09:00
myoungwon oh
537462a102 qa: remove unused values in deduplication.py
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
2022-09-19 13:21:07 +09:00
Sungmin Lee
f81b1b61c9 qa: add validation stage for deduplication.py
To validate sample-dedup actually works, validate() runs
separated thread from sample-dedup and verifies
two following things.
1. check sample-dedup starts properly.
2. check references of all the chunk objects' in chunk tier
   exists in designated base pool.
This routune repeats for max_valication_cnt times while
sample-dedup is running. If it doesn't raise any fail while the loop,
we can pretend sample-dedup works accurately.
If not, assert() will stop this test.

In case that a reference of chunk object doesn't exist in base pool,
validate() gives a second chance after repairing it (chunk-repair op)
to deal with false-positive reference inconsistency.

Signed-off-by: Sungmin Lee <sung_min.lee@samsung.com>
2022-09-19 13:21:00 +09:00
myoungwon oh
8d2cf96ff9 src/tools/ceph_dedup_tool: fixes to daemonize the process correctly
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
2022-09-19 13:20:53 +09:00
myoungwon oh
cbe534e0b5 qa: add deduplication test under RGW workload (s3)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
2022-09-19 13:20:46 +09:00
JinyongHa
4e0add1b9a qa: add test case for sample_dedup operation of dedup_tool
Signed-off-by: JinyongHa <jy200.ha@samsung.com>
2022-08-26 00:52:01 +00:00
JinyongHa
cdd9d5a796 dedup-tool: add options for operating usability
Daemonization is used for background execution of crawler.
Iterative execution makes crawler threads wake up at each period.

[usage]
  ceph_dedup_tool --op sample-dedup --pool POOL --chunk-pool POOL \
    --iterative --daemonize

Signed-off-by: JinyongHa <jy200.ha@samsung.com>
2022-08-26 00:51:59 +00:00
JinyongHa
41d532302d dedup-tool: add sampling ratio to crawling
By using lower sampling ratio, runtime deduplication with lower overhead.
It tries deduplication with sampled few objects in base-pool, and
only deduplicates objects or chunks which are highly duplicated among
samples.
The option "sampling-ratio" is used for controling the ratio of the objects
to be picked.

Signed-off-by: JinyongHa <jy200.ha@samsung.com>
2022-08-26 00:50:21 +00:00
JinyongHa
3a5876be6e dedup-tool: add basic crawling
Create crawling threads which crawl objects in base pool and deduplicate
based on their deduplication efficiency. Crawler samples objects and finds
duplicated chunks within the samples. It regards an object which has
duplicated chunks higher than object_dedup_threshold value as an efficient
object to be deduplicated. Besides the chunk which is duplicated more than
chunk_dedup_threshold times is also deduplicated.
The commit contains basic crawling which crawls all objects in base pool
instead of sampling among the objects.

[usage]
  ceph_dedup_tool --op sample-dedup --pool POOL --chunk-pool POOL \
    --chunk-altorithm ALGO --fingerprint-algorithm FP \
    --object-dedup-threshold <percentile> --chunk-dedup-threshold <number>

Signed-off-by: JinyongHa <jy200.ha@samsung.com>
2022-08-26 00:50:15 +00:00
Kefu Chai
cc63d6ee73
Merge pull request #46523 from alvistack/pg_autoscaler-module.py
pybind/mgr: maximum recursion depth exceeded in comparison

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-12 09:14:57 +08:00
Adam King
5ab5ff46d6
Merge pull request #47366 from adk3798/quoted-networks
cephadm: support quotes around public/cluster network in config passed to bootstrap

Reviewed-by: Francesco Pantano <fpantano@redhat.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
2022-08-11 08:46:12 -04:00
Adam King
af2fb9d6e7
Merge pull request #47346 from rhcs-dashboard/remove-grafana-loki-dependency
mgr/dashboard: add flag to automatically deploy loki/promtail service at bootstrap

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2022-08-11 08:44:38 -04:00
Yingxin
fcb81335e2
Merge pull request #47489 from cyx1231st/wip-seastore-trimmer
crimson/os/seastore: introduce JournalTrimmer with refactors

Reviewed-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Reviewed-by: Zhang Song <zhangsong325@gmail.com>
2022-08-11 14:14:36 +08:00
Yingxin Cheng
5e1678ac3f crimson/os/seastore: introduce JournalTrimmer
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:58 +08:00
Yingxin Cheng
d6d9018272 crimson/os/seastore/cache: decouple prepare_record() from segment_provider
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:58 +08:00
Yingxin Cheng
64a8bfbd48 crimson/os/seastore: be explicit about detecting out-dated delta using segment info
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:58 +08:00
Yingxin Cheng
3b62cbc144 crimson/os/seastore: decouple segment release from transaction manager
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:58 +08:00
Yingxin Cheng
c1451ea279 crimson/os/seastore: construct TransactionManager classes after device mount
To construct TransactionManager after all the devices are discoverred.

Also, it makes the following cleanups possible:
* Cleanup SeaStore and TransactionManager factory methods.
* Decouple TransactionManager from SegmentManagerGroup.
* Drop the unnecessary tm_make_config_t.
* Drop the unnecessary add_device() methods.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:57 +08:00
Yingxin Cheng
af3364cc65 crimson/os/seastore/epm: configure prefer_ool through the primary_device
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2022-08-11 09:16:57 +08:00
Kefu Chai
ee8ccbfc9e
Merge pull request #47548 from cbodley/wip-57073
install-deps: fix centos 8's use of gcc-toolset-11

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-11 08:14:11 +08:00
Kefu Chai
0aad2f3f51
Merge pull request #47544 from ceph/pmem-c9
ceph.spec.in: disable system_pmdk on aarch64

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2022-08-11 07:53:10 +08:00
Kefu Chai
ecaf35953c
Merge pull request #47543 from cbodley/wip-cmake-cxx20-compiler-versions
cmake: enforce minimum compiler versions for c++20

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-11 07:50:44 +08:00
Kefu Chai
5a5d238b1e
Merge pull request #47534 from tchaikov/wip-cmake-motr
cmake: find motr libraries and header before using them

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2022-08-11 07:39:49 +08:00
Adam King
8153d616c5 cephadm: unit test for parsing networks from config
Signed-off-by: Adam King <adking@redhat.com>
2022-08-10 18:58:54 -04:00
Adam King
9ec3d20319 cephadm: support quotes around public/cluster network in config passed to bootstrap
Fixes: https://tracker.ceph.com/issues/56973

Signed-off-by: Adam King <adking@redhat.com>
2022-08-10 18:58:54 -04:00
Adam King
40e81a0fec
Merge pull request #47421 from adk3798/conf-osd-reconfig
mgr/cephadm: recreate osd config when redeploy/reconfiguring

Reviewed-by: John Mulligan <jmulligan@redhat.com>
2022-08-10 18:50:44 -04:00
Adam King
6e6262efb8
Merge pull request #47464 from michaelalang/master
mgr/cephadm: provide an additional hint when running into I/O closed exception

Reviewed-by: Adam King <adking@redhat.com>
2022-08-10 18:48:40 -04:00
Casey Bodley
a46db91ef4 ceph.spec.in: install gcc-toolset-11-libatomic-devel in x86_64 also
otherwise after enabling gcc-toolset-11, cmake fails with:

- Performing Test HAVE_LIBATOMIC - Failed
CMake Error at cmake/modules/CheckCxxAtomic.cmake:66 (message):
  Host compiler /opt/rh/gcc-toolset-11/root/usr/bin/g++ requires libatomic,
  but it is not found

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 18:23:44 -04:00
Casey Bodley
296dff4cd4 install-deps: bump gcc-toolset version to 11
match the toolset versions installed from ceph.spec.in

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 18:07:18 -04:00
Casey Bodley
c62970a86d install-deps: update ensure_decent_gcc_on_rh for gcc-toolset
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 18:07:18 -04:00
Casey Bodley
eee43b2628 install-deps: centos8 doesn't have or need centos-release-scl
Fixes: https://tracker.ceph.com/issues/57073

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 16:05:03 -04:00
Matt Benjamin
0c3f63f943
Merge pull request #46378 from pritha-srivastava/wip-rgw-sts-modify-session-duration
rgw/sts: modify max_session_duration using update role REST API/ radosgw-admin command.
2022-08-10 14:59:25 -04:00
David Galloway
fcf48cda0a ceph.spec.in: disable system_pmdk on aarch64
Signed-off-by: David Galloway <dgallowa@redhat.com>
2022-08-10 14:36:43 -04:00
David Galloway
6efee339e8
Merge pull request #47538 from tchaikov/wip-enable-gts
ceph.spec.in: %enable_devtoolset11 only if the macro is defined
2022-08-10 14:22:27 -04:00
Casey Bodley
4dc6ad6ee5 cmake: enforce minimum compiler versions for c++20
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 13:59:56 -04:00
David Galloway
fbf2db8634
Merge pull request #47541 from ceph/1723
doc: Add missing index links for 17.2.3
2022-08-10 13:23:20 -04:00
David Galloway
32f5fbbd57 doc: Add missing index links for 17.2.3
Signed-off-by: David Galloway <dgallowa@redhat.com>
2022-08-10 12:29:23 -04:00
Kefu Chai
215c07ba8b ceph.spec.in: always use stock compiler on el9
as RHEL/CentOS 9, we have the access to GCC-11, which is good enough for
compiling main HEAD even with WITH_SEASTAR=ON.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 23:47:02 +08:00
Adam King
40f9b79b36
Merge pull request #46400 from rkachach/fix_issue_55733
mgr/cephadm: adding dynamic prometheus configuration based on http_sd_config

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2022-08-10 11:44:55 -04:00
Kefu Chai
53302f5f7f ceph.spec.in: define %gts_prefix
less repeatings this way, also  allow maintainer to use other version of GTS.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:49:43 +08:00
Kefu Chai
75dd923533 ceph.spec.in: %enable_devtoolset11 only if the macro is defined
there is chance that we are using `yum-builddep` to prepare the
build dependencies. in that case, gcc-toolset-11-build is not
installed. it's like a chicken-egg dilemma, but the point is
`yum-builddep` is able to pull in the gcc-toolset-11-build. once
gcc-toolset-11-build is installed, we will have the %enable_devtoolset11
rpm macro.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:37:48 +08:00
Kefu Chai
d750718922
Merge pull request #43155 from ljflores/wip-install-deps-fix
install-deps.sh: ensure that pip ugrades to most recent version within virtualenv

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:06:12 +08:00
Kefu Chai
eb30ccdb02
Merge pull request #47278 from rzarzynski/wip-cephx-verify_auth_cleanups
monc, cephx: improve debugs and slightly clean invalidate_ticket() up

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2022-08-10 22:02:22 +08:00
Adam King
1c4da3dbd2
Merge pull request #47092 from dparmar18/wip-dparmar-cephadm-simple-1
pybind/mgr/cephadm/upgrade: allow upgrades without reducing max_mds

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2022-08-10 09:57:22 -04:00
Redouane Kachach
f556a48ea6
mgr/cephadm: setting version field to a 17.2.3
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2022-08-10 15:46:10 +02:00