[Linux-cachefs] cachefs and index keys

James Pearson james-p at moving-picture.com
Fri Sep 5 09:42:38 UTC 2014


Grant Street wrote:
> Just for completeness I am adding to this for future reference
> 
> This has stalled with redhat and I have had no correspondence on this 
> from the cachefs team.
> 
> Because of the architecture of isilon it defeats the cachefs caching 
> mechanism.
> 
> Grant
> 
> 
> On 06/01/14 11:51, Grant Street wrote:
> 
>> Hi
>>
>> We are using EMC's Isilon storage as a NFS server consisting of over 50
>> storage and networking nodes. It presents itself as one hostname eg
>> isilon.sample.com and one very large directory tree, but dynamically
>> resolves to multiple IP addresses. These IP addresses have the advantage
>> of floating to different physical nodes in order to help balance the
>> networking load when thousands of clients are connecting.
>>
>> The downside of this scheme is that currently cachefs would invalidate
>> the cache if the IP address (resolved from isilon.sample.com) changes on
>> reboot or automount expire and remount. This is because the cache key is
>> based on the IP address rather than the fqdn.
>>
>> I have a case with redhat 00922150 and a bugzilla id 1018358. I was
>> wondering what your thoughts would be on changing the cache key to a
>> fqdn rather than an IP address?
>>
>> Unfortunately with the size of the isilon cluster we would not be able
>> to do anything with traditional IP load balancers as the throughput and
>> number of clients is too high.

Looking at the code - it appears the 'key' for each NFS file system is 
just a 'string of bytes' which include the IP address of the NFS server used

Assuming that the individual elements of the key are not used later, 
then it should be simple to replace the IP address of the server with 
the server's name in this key ?

I've just hacked the code to do just this by using clp->cl_hostname in 
nfs_server_get_key() instead of the IP address

In simple tests, this appears to work fine when I mount/umount different 
nodes of an Isilon server via its hostname - the cache is re-used 
between these mounts - although the subsequent mounts of the same host 
use a different IP address of the server

Is it correct to assume that the individual contents of 'key' are not 
accessed once set? - i.e. it is just the whole key that is used?

If this does sound sensible, could an option (preferably a mount option) 
be added to use the hostname of the server instead of the IP address?

Thanks

James Pearson




More information about the Linux-cachefs mailing list