> Niels de Vos [[email protected]] wrote:
> > On Sat, Jun 18, 2016 at 02:22:03PM +0200, Sven Oehme wrote:
> > >
> > > Hi,
> > >
> > > i get several requests from customers to provide a interrupt free
> > > export modification command (not just add and remove exports), but
> > > add/remove/modify client specifics on existing exports without the
> > > need of restarting the daemon.
> > > i heard rumors that this code already exists in other products that
> > > are based on ganesha.
> > > can somebody confirm this, as the code doesn't seem to be upstream.
> > > if this is true, can this code be integrated upstream so duplicate
> > > efforts can be prevented ?
> >
> > You can do this through the DBus API. You will need to have support
> > for DBus compiled into Ganesha, but after that things should work just
fine.
> >
> > There is actually a Python script that can be used to manage exports
> > through DBus, maybe it does what you need? At least it should give you
> > a good place to start:
> >
> > https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/scripts/ganes
> > hactl/manage_exports.py
> 
> Niels, the above script can only add a new export or removing an existing
> export. There  is no option to actually modify/change an
> *existing* export. If someone thinks that they can remove the old export
> and add it back again, then that would work only if they are OK to get any
> client I/O failures while an admin performs both of those operations. This
is
> not OK for enterprise environments. Clearly, ganesha needs "change an
> existing export" feature in the core ganesha code.

There was a capability in Ganesha 1.5... It probably didn't really work...

I have thoughts on what should be done in 2.x, but it has not risen to the
top of my priority pond yet...

I think I've shared my thoughts at least two or three times on the list...

Basic Thoughts:

1. The simple numeric parameters could have a dBus command to update them. I
don't know how useful that would be.

2. Most effective would be to re-read the export file, either to update all
exports, or a specific named export.

On re-read, create new export entries. When entry is processed and
validated, atomically update all the simple fields. The client list would
need to be replaced under lock. We need to retain the old export entry since
many other structures link to it (including state that we don't want to
dump).

Complex bit: If a client has had permission to an export revoked, we must
flush it's state since the client will be unable to release it.

On a related subject, we also need to be able to re-scan the filesystems to
be able to pick up new or dropped filesystems. We may need to be prepared to
auto-export a new filesystem.

We need some recovery if an exported filesystem goes away, which trashes the
export, and then comes back.

This filesystem recovery may be able to be dependent on a dBus command to
trigger.

Frank


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


------------------------------------------------------------------------------
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/zohomanageengine
_______________________________________________
Nfs-ganesha-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to