[lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction.

Andreas Dilger adilger at dilger.ca
Thu Jun 21 00:22:45 PDT 2018


On Jun 20, 2018, at 8:57 PM, James Simmons <jsimmons at infradead.org> wrote:
> 
>> 
>> Huh?  Very little of the client is used on the server.  The vast majority of the client is llite, vvp, then lov, osc, and mdc.  These are
>> not used on the servers at all, the modules won't even be loaded.
>> 
>> 
>> Servers are definitely *not* clients of one another in the sense of "Lustre clients".  They interact with each other, but in a manner very
>> different from client to server.
>> 
>> The ldlm and ptlrpc layers are *partly* shared, and of course, the networking from lnet down is.  But that's not "the client".
>> 
>> The statement that the server layer is a middle layer on top of the client code doesn't make any sense to me.  It's like this:
>> 
>> 
>> vfs
>> client code
>> ptlrpc
>> networking
>> ------ PHYSICAL BOUNDARY --------
>> networking
>> ptlrpc
>> server code
>> ldiskfs
>> 
>> 
>> 
>> with LDLM also being explicitly shared, though client & server code is not all shared.  Very little to nothing outside of the networking &
>> ldlm layers is shared.
> 
> When I first started this (pre 2.3 days) that is how it was explained to
> me. I just took it at face value but when it comes to the separation as I
> don't have a clue. Patrick since you have a better grasp of the
> architecture can you provide details to Neil. Perhaps to documentation on
> this separation if it exist.

James,
you are (or were) correct, but the code has evolved over the years.  The lov/osc and
modules were formerly used on the MDS in order to connect to the OSS, and lmv/mdc were
used with the old CMD code to connect to other MDS nodes.  However, that ended up with
a lot of code that was in those modules that was only used on the client or server.  In
the CMD code it also meant that a lot of complexity existed with making "fake" RPCs to
other MDS nodes that tried to keep the same RPC opcode but were interpreted differently
at the MDS when they were being sent from another MDS.

In the 2.4 release (which included both DNE and the OSD rewrite for ZFS) the lov/osc
server code was copied/split into lod/osp, and this is used for remote connections to
both the OSSs and other MDS nodes.  The MDS is still a client of the OSS for precreate
and recovery operations (and soon also statfs), but the code is no longer shared with
the regular clients.

Cheers, Andreas





-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20180621/d24975d1/attachment.sig>


More information about the lustre-devel mailing list