Date: Wed, 15 Feb 2012 18:25:07 +0100 From: Damien Fleuriot <ml@my.gd> To: peter knezel <peter.knezel@gmail.com> Cc: freebsd-questions@freebsd.org Subject: Re: From analysis of a simple ifstated.conf to more compex example Message-ID: <4F3BEA73.9060005@my.gd> In-Reply-To: <CAAwfu_kfj2mqT9qVSh2_9LpfcvOrxBJiwNRi_x79VcjGQLwGqw@mail.gmail.com> References: <CAAwfu_n%2BVjgeihzWRa1F6v6PhCA943sFHR7eFxA1Ycc8NbjXpQ@mail.gmail.com> <4F314AFB.8080901@my.gd> <CAAwfu_kfj2mqT9qVSh2_9LpfcvOrxBJiwNRi_x79VcjGQLwGqw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Sorry about the late reply, didn't see yours. What about enabling CARP preemption to ensure that when a carp interface goes down, the whole set does ? On 2/7/12 9:13 PM, peter knezel wrote: > Hello Damien, > > I did read your example but cannot get idea from it. > For three interfaces you have much more possibilities. > > Imagine you start the server from uuu state which is equal to > net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && "ifconfig -a -u > |grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 > /dev/null" > every 3)' > > Now you put down one carp interface - so system is in state : > *state one:* > (duu) || (udu) || (uud) <----which is same as !$net > run script1.sh > go to twoff > > now imagine, you put down any other carp interface: > *state twoff: * > (dud) || (ddu) || (udd) > run script2.sh > go to two > > *state two: * > put all interfaces up > run script3.sh > go to state one > > it means, this is one of the possibilities system can behave (this > situation does not describe all possible states - I have taken this > special example.) > > Now if you want to put up after putting down one carp interface, you > fail since it is in state twoff. > Only of you put down second carp interface it goes to state two and if > you put both up, it will go to state one. > > This is where my ifstated.conf fails to work. > > Kind regards, > > Peter Knezel > > > On 7 February 2012 17:02, Damien Fleuriot <ml@my.gd <mailto:ml@my.gd>> > wrote: > > On 2/7/12 3:36 PM, peter knezel wrote: > > Hello all, > > > > I would like to ask somebody to explain me how the ifstated works > according to > > the following configuration file. > > I have three virtual carp interfaces carp0,carp1 and carp2. > > > > I try to understand the following setting: > > The server is in state one (all carp interfaces are up) and if there > > is carp down of any: > > one (carp0 or carp1 or carp2), > > two ([carp0 and carp1] or [carp0 and carp2] or [carp1 and carp2]), > > three interfaces (carp 0 and carp1 and carp2), server > > runs the script testdown.sh and put the server into state two. > > If all carp interfaces are up, the server runs the testup.sh and set > > the state to one. > > > > That is my understanding. > > > > Is it the way the system works? > > Or am I wrong? > > > > === > > init-state one > > > > net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && > "ifconfig -a -u > > |grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 > > /dev/null" > > every 3)' > > > > state one { > > if ( ! $net ) { > > run "/usr/local/testdown.sh" > > set-state two > > } > > } > > > > state two { > > if ( $net ) { > > run "/usr/local/testup.sh" > > set-state one > > } > > } > > === > > > > Is there any possibility to define and set ifstated.conf that > reacts when: > > > > any one of the carp interfaces is down - followed by another any > > other carp interface down > > > > > > I tried to define states: > > > > duu ="!carp0.link.up && carp1.link.up && carp2.link.up" > > udu ="carp0.link.up && !carp1.link.up && carp2.link.up" > > uud ="carp0.link.up && carp1.link.up && !carp2.link.up" > > ddu ="!carp0.link.up && !carp1.link.up" > > dud ="!carp0.link.up && !carp2.link.up" > > udd ="!carp1.link.up && !carp2.link.up" > > > > and used them but somehow I cannot incorporate all state changes and > > include it in ifstated.conf. > > > > > Works fine here, did you not have any luck with the file I posted > earlier ? > _______________________________________________ > freebsd-questions@freebsd.org <mailto:freebsd-questions@freebsd.org> > mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to > "freebsd-questions-unsubscribe@freebsd.org > <mailto:freebsd-questions-unsubscribe@freebsd.org>" > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F3BEA73.9060005>