[WIP] tool: serviceable ceph-dedup-tool and daemon#53992
[WIP] tool: serviceable ceph-dedup-tool and daemon#53992
Conversation
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
d23653c to
8a0ddb2
Compare
12453ac to
1c98298
Compare
9e92cba to
8e6675c
Compare
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
e5258f3 to
a5f7cb9
Compare
a5f7cb9 to
c1ff7aa
Compare
c1ff7aa to
10c981d
Compare
…nterrupt signal Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…lt when the daemon runs Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…common configurations in the rados object Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
To use ceph-dedup, users are required to configure pool and chunk_pool settings first. To do so, this commit add the enable op which must be called prior to running the ceph-dedup-daemon to set pool and chunk_pool correctly. Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
set-dedup-conf is to set dedup configuration manually Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Since the ceph-dedup-daemon exclusively uses set-chunk op, dedup options in pool_info_t is not necessary. These options are relevant only when handling tier-flush op. Plus, this commit include the removal of unused code that is no longer in use. Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…ted point Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
The existing code unconditionaly waits for the completion of all the set-chunk operations. Threfore, this commits sends an evict operation as soon as each of the set-chunk is complete to speed up the entire dedup procedure in the daemon. Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…tion not to raise exception Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…nt change Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
cdc91ae to
8130577
Compare
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…ake a chunk incorrectly The caller has to specify the target version when sending set_chunk. If not, the there is a risk of adding an outdated chunk to the target object because the object content could have been changed prior to set_chunk. Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
…_dedup Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
This commit adds a dedup type in cephadm to enable running or controlling a dedup daemon container. Signed-off-by: daegon.yang <daegon.yang@samsung.com>
This commit adds a dedup service to orch, enabling orch to deploy or execute a dedup daemon through cephadm. Signed-off-by: daegon.yang <daegon.yang@samsung.com>
This commit implements service logic in orch to interpret and create the dedup service when dedup service apply command received. Signed-off-by: daegon.yang <daegon.yang@samsung.com>
8130577 to
f1f4f46
Compare
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
There was a problem hiding this comment.
I think some of this is probably useful. @benhanokh may want to use this as a guide for how to create background dedup daemons.
As for this PR specifically, it's not clear to me that it's worth investing the resources either for you or for a reviewer to refine it enough to merge it at this time. The current dedup implementation won't scale to most use cases for reasons we've discussed, and PR reviews for it tend to be very time consuming as they tend to need quite a bit of work to merge. It seems like we might want to keep this in a branch until there's been work on a more scalable architecture -- it should be pretty easy to rebase later.
I'll leave it up to @benhanokh to evaluate whether it seems more sensible to refine this PR in order to pick up the cephadm and package integration now or leave it in a branch to adapt later.
| Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} | ||
| Requires: librados2 = %{_epoch_prefix}%{version}-%{release} | ||
| %description -n ceph-dedup | ||
| Daemon for selective deduplication, targeting a Ceph pool. |
There was a problem hiding this comment.
I'm not sure whether we actually want a package for this. It's certainly not mature enough for usage in a real cluster, and we do not want to mislead users.
| 'rgw': '/usr/bin/radosgw', | ||
| 'rbd-mirror': '/usr/bin/rbd-mirror', | ||
| 'cephfs-mirror': '/usr/bin/cephfs-mirror', | ||
| 'dedup': '/usr/bin/ceph-dedup-daemon', |
There was a problem hiding this comment.
This part doesn't seem to have any testing yet, right?
| default: 5 | ||
| services: | ||
| - ceph-dedup | ||
| - name: fingerprint_algorithm |
There was a problem hiding this comment.
Shouldn't this be determined by the pool options?
There was a problem hiding this comment.
Same question for a bunch of these.
| (",d", "run in foreground, log to stderr") | ||
| (",f", "run in foreground, log to usual location") | ||
| ("debug_ms", po::value<std::string>(), "set message debug level (e.g. 1)") | ||
| ("run-once", ": do a single iteration for debug") |
There was a problem hiding this comment.
Since you're adding support for a normal ceph-style config, use the normal ceph argument parsing as well so that you don't have to duplicate a bunch of these options between the config declaration and here.
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
This PR is the step 1 to make deduplication stable, described in https://docs.google.com/document/d/10esikcvrpTgWipPpIb6JyMhtRuhNtS1Ode3evUFIVwo/edit
The objectives of this PR are:
The usage example to use dedup is:
To test this PR, it's necessary to rebuild the container image for daemons,
adding this commit to Ceph-container repository (samsungceph/ceph-container@8b3f38c)
Signed-off-by: Myoungwon Oh myoungwon.oh@samsung.com
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows