<HTML>
<HEAD>
<TITLE>Wide area use of Lustre and client caches</TITLE>
</HEAD>
<BODY>
<FONT SIZE="4"><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>During the LUG I was approached by a customer who wants to use a Lustre file system at the far end of a WAN link.  Since the situation may be of general interest, I thought I would post a short report of the discussion here.<BR>
<BR>
His use pattern was interesting – a number of Windows clients must be browsing files stored in Lustre in this remote location.  It was expected that the files would be fairly large, would be viewed by multiple clients, and that few or no modifications would be made.<BR>
<BR>
After some discussion we proposed a solution that involved a deployment as follows:<BR>
<BR>
</SPAN></FONT></FONT><OL><LI><FONT SIZE="4"><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>A single Lustre client with lots of RAM.  The settings on the client would be (1) that the memory available for caching by lustre is large (2) that the number of locks that can be held by this client is fairly large (3) that this client uses the “open cache”.
</SPAN></FONT></FONT><LI><FONT SIZE="4"><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>A samba server on this Lustre client.<BR>
</SPAN></FONT></FONT></OL><FONT SIZE="4"><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
With the settings above, we can expect that many of the files can be cached in the Lustre client, hence after the initial read, I/O would be local in the remote site.  With the open file cache enabled, even the open and close traffic will not go to the servers, but can be handled by the client.   We think that this will lead to a very good solution, that can work today.<BR>
<BR>
A refinement is possible, that requires some development.  There is a feature in the Linux kernel to use a disk partition as a cache for a file system – it is called cachefs.   This requires a few hooks in Lustre to store chunks of files that are transferred to the client into this cache, and cache invalidation calls to remove them.  It allows us to achieve the same performance as with the solution above, except that the disk will be a bit slower than memory, but it can also be much larger.  <BR>
<BR>
We are eagerly awaiting the results of testing this configuration!<BR>
<BR>
- peter -</SPAN></FONT></FONT>
</BODY>
</HTML>