[Gluster-devel] [Gluster-Maintainers] Client Server incompatibility with Gluster 4.0

Vijay Bellur vbellur at redhat.com
Thu Oct 12 15:03:49 UTC 2017

On Thu, Oct 12, 2017 at 10:22 AM, Shyam Ranganathan <srangana at redhat.com>

> On 10/12/2017 04:25 AM, Ric Wheeler wrote:
>> I worry about having to update all of the clients when we have new code
>> on servers.
>> Typically, for example with NFS, the client negotiates the protocol
>> version it understands and we default to the highest version the clients
>> and servers both support.
>> I know that is a pain, but we should keep in mind what the standard is
>> our users are accustomed to with other protocols....
> I concur, upgrade to 4.0, if the older clients are not compatible, would
> mean a down client(s) upgrade.

Thinking more about it, we could leverage the op-version infrastructure to
maintain compatibility at a cluster/volume level.  This could help by not
requiring the clients to be upgraded simultaneously with the servers.
However, as with current behavior, once a 4.0 feature that is disruptive to
3.x clients is enabled, such clients would not be able to access those
volumes with advanced capabilities.

> Further, rolling upgrades of the server becomes a moot point, as some
> would be a higher version in the interim and hence prevent existing clients
> to talk to the same, as our upgrade process is servers first and then
> clients.

I do not think we will have rolling upgrades on the server side as we would
need glusterd1 and glusterd2 to interoperate for that. From what I
understand, we will not have that interoperability. A downtime would be
needed for upgrading servers although the expectation is that upgrading the
servers would happen quickly.

Kaushal, Atin - can you please share details on how the upgrade process
would look like from a glusterd perspective?

> Which then essentially boils down to, stop services, upgrade everything,
> and restart the volume and the clients.
> I understand the additional code and reasoning that Amar has pointed out,
> but taking down time for the upgrade will introduce a lot of pain for the
> users, and hence create resistance to upgrading to 4.0 probable and in some
> cases (consider the service using the gluster volume critical) not possible.
> As we are about providing increased availability considering replication
> and the additional storage that it involves, down time for upgrades should
> not be a choice that we should consider, when possible.

Agreed.  We can and should reduce the  user pain for this upgrade. Let us
also explore ways to keep our code clean and prevent that from becoming a
spaghetti mess :-).


>> Regards,
>> Ric
>> On Oct 12, 2017 6:30 AM, "Vijay Bellur" <vbellur at redhat.com <mailto:
>> vbellur at redhat.com>> wrote:
>>     On Wed, Oct 11, 2017 at 5:06 AM, Amar Tumballi <atumball at redhat.com
>>     <mailto:atumball at redhat.com>> wrote:
>>         Was (Re: [Gluster-devel] Proposed Protocol changes for 4.0: Need
>>         feedback.)
>>         All,
>>         While we are at making all the below tasks' color coding to
>>         GREEN, it would make sense to discuss 1 main thing.
>>         With 4.0, we will anyways say 3.y series server nodes are not
>>         going to be compatible with 4.x servers, is it the same case
>>         with clients?
>>         If yes, I am considering some changes to the current way RPC
>>         conversion is handled in protocol layer, and make it simpler a
>> bit.
>>         If no, then I have to add lot of 'if..else' in existing code or
>>         extra code wherever applicable, now, to make sure we handle the
>>         compatibility better.
>>         My personal opinion is, talk about incompatibility now, and plan
>>         to have smooth sail even when 5.0 lands. We are anyways coming
>>         out with GD2 (which makes servers incompatible), and gfproxy
>>         (which makes clients missing this feature in older releases),
>>         and also possible cherrypicks from upstream fuse project to
>>         utilize more features from there, so for the user, there are lot
>>         of reason to upgrade the clients.
>>     Since we are bumping the major release number, I think it would be
>>     acceptable to have 3.x clients being not compatible with 4.x servers
>>     and vice-versa. We should ensure that accesses from incompatible
>>     clients are handled gracefully by both servers and clients.
>>     Regards,
>>     Vijay
>>     _______________________________________________
>>     Gluster-devel mailing list
>>     Gluster-devel at gluster.org <mailto:Gluster-devel at gluster.org>
>>     http://lists.gluster.org/mailman/listinfo/gluster-devel
>>     <http://lists.gluster.org/mailman/listinfo/gluster-devel>
>> _______________________________________________
>> Gluster-devel mailing list
>> Gluster-devel at gluster.org
>> http://lists.gluster.org/mailman/listinfo/gluster-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20171012/4b572a4d/attachment.html>

More information about the Gluster-devel mailing list