On 04 Jun 2015, at 16:50, Koushik Das <koushik....@citrix.com<mailto:koushik....@citrix.com>> wrote:
Thanks for the clarification Daan. So as I understand - after VR reboot outside of CS if there is any config differences (between persisted ones and DB) then MS will immediately push the config from DB to VR. Is that correct? Is there any document/write-up available for the persistence changes? Hi, I cannot find the docs we wrote up but will send the link when I do! Essentially the shell commands are replaced with json which is passed to VPCr or VR. The son object is then merged into a son configuration on the router. There is one config per type (firewallacls, lips, forwarding_rules etc.). These are stored in /etc/cloudstack. (See ./core/src/com/cloud/agent/resource/virtualnetwork/facade/ and ./core/src/com/cloud/agent/resource/virtualnetwork/model/) Each time the config is merged, some python runs which compares the configured state to the expected state from the json files. It will then provision (or deprovision) anything that has changed. (See systemvm/patches/debian/config/opt/cloud/bin/configure.py) In addition on reboot (planned or otherwise), the configurator is also called setting the provisioned state back to the last known good state. For VPCs we also implemented a redundant VPCr (based upon the same technology as the normal VR) and, calls to allow an upgrade from single VPCr to redundant VPCr. Beyond this, cloudstack will work the same as it always did. If it loses touch with a router, it will takes steps to recreate it etc. So yes, the router is no longer truly stateless but, cloudstack remains in charge. The intention is not to break the orchestration paradagm. — Grts! Ian