On 8/16/12 2:41 AM, "Rohit Yadav" <rohit.ya...@citrix.com> wrote:
>Hi, > >At present the redundancy of the virtual redundant routers, VRRP [3], >operates outside the scope of CloudStack [2]. And any event that happens >outside of CS, like rebooting by ssh-ing into the router vms or a >crash/start, is not know by the management server (Sheng's comment[1]). > >Therefore, these bugs are resolved by design : >http://bugs.cloudstack.org/browse/CS-15907 >http://bugs.cloudstack.org/browse/CS-15942 > >Request for comments to handle events outside of CS's scope for redundant >routers: [2] > >1. Async Callback: > With bug http://bugs.cloudstack.org/browse/CS-15970 fixed, the >management server knows when router's redundant changed and CS re-applies >iptables rules when state changes from UNKNOWN (possible crash/reboot) to >MASTER/BACKUP. This may fix the issue at hand, but out-of-band operations on the VR is a generic problem. > >2. Pull mechanism: > On reboot, a script/daemon on the router pulls any updates or iptables >rules, but it won't work if management server is down. Also doesn't account for several other failure scenarios. > >3, Push mechanism: > CS periodically checks/resets/updates iptables rules etc. Cons: it's a >bad design. Not sure why you think this is a bad design. Every update to the virtual router gets a transaction id. You can design a background task to push updates to the VR whenever the txid is different from the database. This is similar to the design of the SecurityGroups feature. It isn't unlike a DB master-slave sync or in some respects to eventual consistency. You could even checksum the configuration to detect other inconsistencies. > >4. Modifying VRRP [3] [4] such that when one of the routers goes away, >the other one will be responsible to re-apply iptables rules. Cons: when >both/all go down. Modifying GPL software is a non-starter in most cases.