On Tue, Aug 11, 2015 at 06:51:14PM +0000, Matt Dupre (projectcalico.org) wrote: > Hi all, > > I'm working on Project Calico (http://www.projectcalico.org/), where > we've been using BIRD as a BGP Router. We'd like to be able to set BIRD > up such that we can upgrade the package in future without removing any > routes. Does anyone have a good way to do this - we're using Ubuntu > 14.04 (upstart) and RHEL 7.1 (systemd)? > > I've got graceful restart configured (`graceful restart;` in the > protocols and `-R` on the command line), and this works great for > unexpected restarts (such as segfaults) - upstart / systemd restarts BIRD > and it resumes normal operation without removing any routes. We've > considered modifying the job/service to kill BIRD instead of stopping it > gracefully (for example as a pre-stop command), but I'm just wondering if > there's a better way.
Hello There is currently no command for 'pre-restart shutdown' and also there is no automatic detection for GR recovery at start. Currently you have to kill BIRD instead (which should be OK) and add -R option for GR recovery at start. Note that -R option should be added only for the restart, not for the regular start (that is why it is a command-line option and not a part of the configuration). Although adding it always is not a big problem. We probably should add such features. I am open to suggestions how this should behave - how such 'pre-restart shutdown' command could be named, should the daemon return different return value (probably not) and where the external state (to know whether we should/shouldn't do GR recovery at startup) for GR could be stored, and how it could be integrated with distribution scripts/unit files. For the external state, there are some simple solutions like keeping an empty file in /run along the bird.ctl - if this file is here at start, we do GR recovery. But the problematic part here is to avoid distribution scripts messing with it in an improper way. Another, perhaps more elegant way would be to look if there are any BIRD routes the in routing table, if so, do GR recovery. But that will not work if both 'persist' and 'graceful restart' options are enabled for the kernel protocol. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: [email protected]) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
signature.asc
Description: Digital signature
