Documentation #40996

Calling messenger v1 protocol legacy is misleading

Added by Lucas Zanella 26 days ago. Updated 26 days ago.

Target version:
Start date:
Due date:
% Done:


Affected Versions:


Ceph clients (14.2.2) still need both versions of messenger protocol (v1 and v2) in order to work
but docs pretend v1 to be legacy which is misleading since it's still necessary for commands like

rbd device map mypool/myimage1 --id myuser

Doc Ref.:

many thanks & br


#2 Updated by Greg Farnum 26 days ago

  • Project changed from Ceph to rbd
  • Category deleted (documentation)

Is there something weird going on with rbd? I imagine the example command is just invoking a kernel interface that runs v1-only so perhaps we need to be clearer about what "pre-Nautilus" means?

#3 Updated by Jason Dillaman 26 days ago

  • Project changed from rbd to Linux kernel client

#4 Updated by Jason Dillaman 26 days ago

The kernel "libceph" driver does not support the v2 protocol.

#5 Updated by Lucas Zanella 26 days ago

Hi thanks for reply,

the claimed version is 14.2.2 (nautlius) and not a "pre-Nautilus" ceph installation.
If someone uses e.g. "ceph -s" from a client, communication is handled using v1.
Same when using "rbd disable feature..." but as soon as we are tryin to map image
by "rbd map..." communication switches protocol to v2. What is kind of unexpected
behavior when reading v1 as legacy protocol.

It could be stated clear that even that v2 is going to substitute v1 in further releases
it is still required yet - if you agree with me.

But anyway thanks for your time.

#6 Updated by Lucas Zanella 26 days ago

excuse me, I explained the wrong way - to be correct now:
"ceph -s" and "rbd disable feature..." uses V2
and "rbd map..." uses V1

#7 Updated by Jason Dillaman 26 days ago

I guess I don't understand the issue. The definition of "legacy" as per Google is "denoting or relating to software or hardware that has been superseded but is difficult to replace because of its wide use.".

If someone uses "ceph -s" from a pre-Nautilus client, it will use v1. Nautilus and later should default to v2 if available on the MON address list. Similarly, all "rbd" CLI commands for Nautilus and later will use v2 (if available), but the kernel's libceph driver will continue to use v1 (the rbd CLI pokes and prods sysfs to configure krbd and libceph by extension).

#8 Updated by Jason Dillaman 26 days ago

... our comments raced. Just sounds like there is confusion in that the kernel will continue to use the legacy v1 protocol (since the kernel drivers are not tied to a Ceph release -- i.e. there is no Nautilus krbd).

#9 Updated by Lucas Zanella 26 days ago

exactly, that's what confused us and it took a while to realize that port 6789 needs to be reachable in addition to port 3300. And of course you are right about definition of legacy sw but if it would be stated more clear (as you just did) other could be prevented from running into the same situation. As a thought.

Also available in: Atom PDF