[Lustre-discuss] Lustre and cross-platform portability

Joe Landman landman at scalableinformatics.com
Thu Mar 15 07:36:51 PDT 2012


On 03/14/2012 08:31 PM, Andreas Dilger wrote:
> Whamcloud and EMC are jointly investigating how to be able to
> contribute the Lustre client code into the upstream Linux kernel.

Would be good to have an active discussion of this at LUG as well.

> As a prerequisite to this, EMC is working to clean up the Lustre
> client code to better match the kernel coding style, and one of the
> anticipated major obstacles to upstream kernel submission is the
> heavy use of code abstraction via libcfs for portability to other
> operating systems (most notably MacOS and WinNT, but also for
> liblustre, and potentially *BSD).

Breaking the code into bite sized patches that could go into the kernel 
would be a *good* thing.  Continuing to maintain a set of out of core 
patches (with compatibility/portability issues) is not a good thing.

> I have no information that the WinNT project will ever be released by
> Oracle, and as yet there has not been any code released from the
> MacOS port, so the libcfs portability layer is potentially exacting a
> high cost in code maintenance and complexity (CLIO being a prime
> example) for no apparent benefit.  Similarly, the liblustre client
> needs a portability layer for userspace, and suffers from the same
> apparent lack of interest or users.
>
> I'd like to get some feedback from the Lustre community about
> removing the libcfs abstraction entirely, or possibly restructuring
> it to look like the Linux kernel API, and having the other platforms

(Re)Using as much of the existing kernel API as possible (reduce 
friction for inclusion), without re-inventing wheels (reduce friction 
for inclusion), and insisting "our wheels are rounder" versus 
fixing/updating existing subsystems (reduce friction for inclusion) 
would be advised.  Many a good project has lost out on kernel inclusion 
to other competitive projects over these issues (and interaction with 
the kernel community).  SCST (scsi target layer) is a prime example, and 
one we use, even though LIO was just included about a year ago.  The LIO 
team does kernel developer interaction far better than the SCST team. 
Has nothing to do with code quality/functionality.

> code against it as a Linux portability layer, like ZFS on Linux uses
> the Solaris Portability Layer (SPL) to avoid changing the core ZFS
> code.  A related topic is whether it would be better to replace all
> cfs_* functions with standard Linux kernel functions en-masse, or
> migrate away from cfs_* functions slowly?

Do the change en-masse.  Get it done, once.  The sooner the better, so 
we can test.  Hopefully this means we will also be able to use 
alternative OST file systems other than ext4.






-- 
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics Inc.
email: landman at scalableinformatics.com
web  : http://scalableinformatics.com
        http://scalableinformatics.com/sicluster
phone: +1 734 786 8423 x121
fax  : +1 866 888 3112
cell : +1 734 612 4615



More information about the lustre-discuss mailing list