Thanks for your inputs Frank.

On 07/26/2016 09:46 PM, Frank Filz wrote:
> The current FSAL lock owner implementation is a void * (though the FSAL DOES
> have visibility to the actual lock owner information if it needed to use
> it). Anything more would only be needed if the underlying filesystem was
> prepared to allow Ganesha to recover locks after a Ganesha crash. This would
> actually be necessary for an absolutely correct FSAL_PROXY implementation,
> unfortunately the NFS v4 protocol has limited provision for a client to
> recover it's lost state. The implementations we have been making on
> clustered filesystems have been to failover to another node and notify NFS
> v3 clients of a crash, and allow NFS v4 clients to discover the crash, and
> thus the clients reclaim the locks. Ideally, Ganesha as a cluster is able to
> enforce grace period.
>
> So with all of that, there's no real need for anything more than a void *
> pointer to the SAL state owner structure which provides the uniqueness of
> the owner for the duration of it's validity within the system. If Ganesha
> crashes, the underlying filesystem should dump state. If the protocol layer
> invalidates the owner (lease expiry or whatever), then all state will have
> been released and the owner no longer has meaning to the underlying
> filesystem.

But what about the case where Ganesha process doesn't crash but still 
there could be failover/failback happening between two active ganesha 
servers(for eg., load-balancing). We ensure nfs-ganesha servers going to 
grace period using dbus commands. But then even though the clients try 
to reclaim their locks using their previous lock owner, since the 
state_owner struct is now changed, backend FS may assume it as a new 
lock request and may deny it as there is still old lock present with a 
different owner. Or does NFS-Ganesha duly unlocks all its existing locks 
whenever it enters grace-period either after hard reboot or via dbus?

Thanks,
Soumya

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to