On 3/24/20 8:19 AM, Maged Mokhtar wrote:
On 24/03/2020 13:35, Daniel Gryniewicz wrote:
>
>
> On 3/23/20 4:31 PM, Maged Mokhtar wrote:
>>
>> On 23/03/2020 20:50, Jeff Layton wrote:
>>> On Mon, 2020-03-23 at 15:49 +0200, Maged Mokhtar wrote:
>>>> Hello all,
>>>>
>>>> For multi-node NFS Ganesha over CephFS, is it OK to leave
>>>> libcephfs write caching on, or should it be configured off for
>>>> failover ?
>>>>
>>> You can do libcephfs write caching, as the caps would need to be
>>> recalled for any competing access. What you really want to avoid
>>> is any
>>> sort of caching at the ganesha daemon layer.
>>
>> Hi Jeff,
>>
>> Thanks for your reply. I meant caching by libcepfs used within the
>> ganesha ceph fsal plugin, which i am not sure from your reply if
>> this is what you refer to as ganesha daemon layer (or does the
>> later mean the internal mdcache in ganesha). I really appreciate
>> if you can clarify this point.
>
> Caching in libcephfs is fine, it's caching above the FSAL layer
> that you should avoid.
>
>>
>> I really have doubts that it is safe to leave write caching in the
>> plugin and have safe failover, yet i see comments in the conf file
>> such as:
>> # The libcephfs client will aggressively cache information while it
>> # can, so there is little benefit to ganesha actively caching the
>> same
>> # objects.
>>
>> Or is it up to the NFS client to issue cache syncs and re-submit
>> writes if it detects failover ?
>
> Correct. During failover, NFS will go into it's Grace period,
> which blocks new state, and allow the NFS clients to re-acquire
> the state (opens, locks, delegations, etc.). This includes
> re-sending any non-committed writes (commits will cause the data to
> be saved to the cluster, not just the libcephfs cache). Once this
> is all done, normal operation proceeds. It should be safe, even
> with caching in libcephfs.
>
> Daniel
>
Thanks Daniel for the clarification..so it is the responsibility of
the client tor re-send writes...2 questions so i can understand this
better:
-If this is handled at the client..why on the gateway it is ok to
cache at the FSAL layer but not above ?
In principle, it's fine above. However, that requires a level of
coordination that's not there right now. The libcephfs cache is
integrated with the CAPs system, and knows when it can cache and when
it needs to flush. There's work to do to get that up to the higher
layers.
-At what level/layer on the client does this get handled: NFS client
layer (which will detect failover), filesystem layer, page cache...?
The NFS client layer, interacting with the VFS/page cache. (NFS is
the filesystem in this case, so technically the filesystem layer.)
Daniel
Thank you so much for the clarification..
Maged
_______________________________________________
ceph-users mailing list -- ceph-users(a)ceph.io
To unsubscribe send an email to ceph-users-leave(a)ceph.io