[ClusterLabs] qdevice network redundancy
Jan Friesse
jfriesse at redhat.com
Thu Oct 2 14:06:58 UTC 2025
On 01/10/2025 21:54, Paul B. Henson via Users wrote:
> On 10/1/2025 1:27 AM, Jan Friesse wrote:
>
>> you mostly answered all your questions yourself correctly :)
>
> Heh, yah, I guess I should've gone source code spelunking before
> pestering the mailing list rather than after :).
>
>> why there is no multiple links supported (yet) is really it is not
>> implemented - it's one of todo (https://github.com/corosync/corosync-
>> qdevice/issues/23).
>
> In the context of that feature request, "multiple links" would mean
> maintaining more than one connection simultaneously rather than having
> to reinitiate a connection when the current open one fails? So rather
Right
> than having to take the time to connect, you could simply immediately
> communicate on a different link when communication on the currently
> active one failed.
Yup, that's the idea and, what is actually more important, right now
after disconnect cast vote is removed simply to stay on safe side, with
multiple links vote can remain until there is at least one link working.
>
> Would you want to mimic the link mode as defined by the corosync
> protocol, and have passive/active/rr options available? Or do something
> simpler?
That's tough question and something where I don't have definitive answer
yet. Advantage of passive is lower bandwidth needed (just regular hb
packet), disadvantage is, sender cannot throw message until it's known
it arrived to receiver side. Active doesn't have this problem (all
packets are sent to all links and worst what can happen is all links
fail, what is same situation as is now) but higher bandwidth is needed
and it's unclear what to do with super slow links (should we wait till
packet is send to all links even slowest one? Have buffer and if buffer
is too full mark the link failed even if it is not failed just too slow?
Something else?). RR probably no, because it seems to be combination of
worst of Passive and Active :) and I don't see any advantage.
>
> Then presumably there should be some keep alive traffic on links not in
> use to prevent any intermediate network equipment from timing out state.
>
> Adding this feature would only require updating the qdevice-net code,
> not the qnetd code, as the latter already listens on all available
> interfaces? Unless something was needed on that side for keep alive
Qnetd update will be needed as well at least because it must be able to
handle two connections with same node id, right now this is strictly
prohibited. Also qnetd protocol is not only qdevice request/qnetd reply.
There is also "Vote info, type 14"
(https://github.com/corosync/corosync-qdevice/wiki/QNetd-protocol)
issued by qnetd.
> traffic I suppose.
>
> Configuration wise, would it accept multiple Host entries rather than
> just one, and each one would define a single IP address or a set of IP
> addresses mapped from a hostname that would be used for that "link"?
In config it could be host1: ip, host2: ip, ... hostN: hostname, or
host: ip1, ip2, ... hostname (or some other delimiter), that's really
detail.
>
> Thanks for the reply, I might take a look at implementing this...
Yw and please don't hesitate to ask more questions especially if you
really decide to implement this feature.
Regards
Honza
>
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
>
> ClusterLabs home: https://www.clusterlabs.org/
>
More information about the Users
mailing list