]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rbd-wnbd: use one daemon process per host
authorLucian Petrut <lpetrut@cloudbasesolutions.com>
Mon, 12 Jun 2023 13:16:39 +0000 (13:16 +0000)
committerLucian Petrut <lpetrut@cloudbasesolutions.com>
Sat, 2 Mar 2024 19:04:26 +0000 (19:04 +0000)
commit40d74ea30873f02ecf282f3e88d65875a093c3f0
treecc2cf507d2902f5fe28e84a2b713f41faf40d9a0
parent1f90420a831cebcff85ab661e78c92d3a03073bb
rbd-wnbd: use one daemon process per host

We're currently using one rbd-wnbd process per image mapping.
Since OSD connections aren't shared across those processes,
we end up with an excessive amount of TCP sessions, potentially
exceeding Windows limits:
https://ask.cloudbase.it/question/3598/ceph-for-windows-tcp-session-count/

In order to improve rbd-wnbd's scalability, we're going to use
a single process per host (unless "-f" is passed when mapping the
image, in which case the daemon will run as part of the same
process). This allows OSD sessions to be shared across image
mappings.

Another advantage is that the "ceph-rbd" service starts faster,
especially when having a large number of image mappings.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
(cherry picked from commit 661c55002db8bc91037d8150278dacb9a1cfe46b)
src/tools/rbd_wnbd/CMakeLists.txt
src/tools/rbd_wnbd/rados_client_cache.cc [new file with mode: 0644]
src/tools/rbd_wnbd/rados_client_cache.h [new file with mode: 0644]
src/tools/rbd_wnbd/rbd_mapping.cc
src/tools/rbd_wnbd/rbd_mapping.h
src/tools/rbd_wnbd/rbd_mapping_config.cc
src/tools/rbd_wnbd/rbd_mapping_config.h
src/tools/rbd_wnbd/rbd_wnbd.cc
src/tools/rbd_wnbd/rbd_wnbd.h
src/tools/rbd_wnbd/wnbd_handler.cc