<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
On Oct 17, 2019, at 00:34, William D. Colburn <<a href="mailto:wcolburn@nrao.edu" class="">wcolburn@nrao.edu</a>> wrote:<br class="">
<div>
<blockquote type="cite" class=""><br class="Apple-interchange-newline">
<div class="">
<div class="">We are moving closer to migrating our lustre 2.5.5 servers to lustre<br class="">
2.12.2.  But we still have a collection of clients.  We have a vague bit<br class="">
of folklore, handed down word of mouth from the village elder, that if<br class="">
we upgrade the server to 2.12.2 that the clients all have to be upgraded<br class="">
to 2.7.something.  I've tried google, but all the searches I've tried<br class="">
for compatibility all lead to information on what versions of lustre<br class="">
run on what versions of linux, and not what versions of clients interact<br class="">
with what versions of the server.<br class="">
<br class="">
Is there a compatibility matrix for clients versus servers?<br class="">
</div>
</div>
</blockquote>
<div><br class="">
</div>
In theory, there is a very long window of compatibility between Lustre versions</div>
<div>between the client and server (much less leeway is allowed between servers).</div>
<div><br class="">
</div>
<div>Since each client is independent (they never communicate with each other, only</div>
<div>with the servers) this also provides a good deal of flexibility, unlike e.g. shared</div>
<div>storage filesystem like GPFS or GlusterFS or peer-peer filesystems.</div>
<div><br class="">
</div>
<div>The main reason there is not a large compatibility matrix is that this takes a lot</div>
<div>of effort to test various versions.  For releases we always test release N against</div>
<div>N-1 and the most recent LTS release (e.g. 2.12.3 is being tested against 2.11.0</div>
<div>and 2.10.8, and 2.13 is tested against 2.12) for both client and server versions.</div>
<div>This is already 4 sets of interop tests (new client/old server, old client/new server</div>
<div>for both), plus disk format upgrade tests, plus several different distros (RHEL7/8,</div>
<div>Ubuntu) and CPU architectures (x86, PPC64, Arm)...</div>
<div><br class="">
</div>
<div>So, for software we release for free we can't do exhaustive testing of all the older</div>
<div>release versions as well.  While client and server interop _should_ work between</div>
<div>all versions, there are occasional bugs, so we only report compatibility with versions</div>
<div>that we actually tested.  As shown with your list of client versions below (2.12.2 clients</div>
<div>with 2.5.5 servers), there is a pretty wide range of compatibility.  Each client and</div>
<div>server negotiate protocol compatibility at connection time, so if new features are</div>
<div>added they are only active if both systems support them. We are only just removing</div>
<div>some Lustre 1.8 and 2.1 and kernel 2.6.32 compatibility code from the 2.13 release,</div>
<div>which were first released about 8 years ago.</div>
<div><br class="">
</div>
<div>If you wanted, you could create a <a href="http://wiki.lustre.org" class="">
wiki.lustre.org</a> page that included the various</div>
<div>versions that are actually tested, and allow users to fill in the blanks?  I've heard</div>
<div>several reports on the list of sites using 2.10.x or 2.12.x clients with 2.5.x servers,</div>
<div>but not so much the other way around.</div>
<div><br class="">
<blockquote type="cite" class="">
<div class="">
<div class="">Alternatively, does someone just know what version of the clients we<br class="">
need to have everywhere for a 2.12.2 server?<br class="">
<br class="">
Our clients include:<br class="">
 2.4.3<br class="">
 2.5.5<br class="">
 2.10.1<br class="">
 2.10.2<br class="">
 2.10.4<br class="">
 2.10.5<br class="">
 2.10.6<br class="">
 2.10.7<br class="">
 2.10.8<br class="">
 2.12.2<br class="">
</div>
</div>
</blockquote>
<br class="">
</div>
<div>My recommendation would be to upgrade the 2.4 and 2.5 clients to 2.10.8 and then</div>
<div>you could run 2.12.2 servers.  If you really need to run older clients because of old</div>
<div>applications, you could try using 2.7.x on those clients and 2.10.8 servers.  You might</div>
<div>be able to use 2.7.x clients with 2.12 servers, but that isn't tested for those releases.</div>
<div>Alternately, run old apps in VMs/containers and use a newer kernel+Lustre underneath.</div>
<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div>Cheers, Andreas</div>
<div>--</div>
<div>Andreas Dilger</div>
<div>Principal Lustre Architect</div>
<div>Whamcloud</div>
<div><br class="">
</div>
<div><br class="">
</div>
<div><br class="">
</div>
</div>
</div>
</div>
</div>
</div>
<br class="Apple-interchange-newline">
<br class="Apple-interchange-newline">
</div>
<br class="">
</body>
</html>