> 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
