Nicolas Williams wrote:
> On Mon, Jul 28, 2008 at 01:31:51PM -0700, Garrett D'Amore wrote:
>
>> I confess that I didn't realize we lacked client side caching in our
>> NFSv4. I thought client side caching was one of the significant
>> benefits that NFSv4 brought to the table (mainly to compete with the
>> likes of AFS and DFS).
>>
>
> Let's be precise. The NFSv4 client caches plenty, just not on long-term
> local storage (which is what cachefs was for).
>
How much data is cached by NFSv4? With cachefs you could set up
fairly large (100's or 1000's of MB) local cache, so for data that
didn't change often you almost never had to go to the network for
anything (other than a stat()-like check.)
Its a shame to lose the entire cache on a reboot, but potentially this
might be acceptable for some use cases. (For others, its clearly
inferior -- think of the mobile laptop that gets powered off
frequently.... or even the power conscious desktop user. Even
Suspend-to-RAM requires some power, and we don't have universal support
for it everywhere.)
>
>> If we don't have client side caching in NFSv4, then I too worry that the
>> loss of functionality will leave us with a potentially significant
>> architectural hole.
>>
>
> It's a small gap.
>
> I think where it really matters one might use ZFS with iSCSI vdevs and a
> local L2ARC device.
>
An interesting idea. I am not too familiar with iSCSI, but don't you
need an iSCSI target? I'm not sure, is iSCSI seeing deployment outside
of the data center? (NFS is designed to support concurrent network use
and reasonably handles multiple "intiators". How does iSCSI deal with
such a situation?)
I'd be happy to see a whitepaper or some kind of transition document
with the case, describing (ideally in terms a customer should be able to
understand) how to transition from cachefs to some other strategy
(iSCSI, NFSv4, whatever). I don't know how to make the same
functionality (NFS like) work with iSCSI, but I'll chalk that up to my
own ignorance rather than any deficiency in iSCSI.
It would be nice to see a commitment to closing any remaining gap as
much as possible, perhaps by further development of NFSv4 -- as others
have suggested.
As a final note, I do recall that cachefs was supposed to be generic for
things like cdroms, etc. I do agree with the proposal that cachefs like
behavior for anything *other than NFS* is probably not terribly interesting.
-- Garrett