Thread: [SSI-devel] RE: [SSI-users] RE: HA-LVS and 0.9.5
Brought to you by:
brucewalker,
rogertsang
From: Aneesh K. K.V <ane...@di...> - 2003-03-27 14:27:33
|
On Thu, 2003-03-27 at 19:16, Goetzman, Dan wrote: > Aneesh, > > I think that I am getting close to having this work. Reading the answers to > my questions you emailed me last, I made the following changes; > > 1) Moved the startup script for ha-lvs to run before xinetd. I now have a > /etc/rc3.d/S56ha-lvs (xinet is started by /etc/rc3.d/S56xinetd, so ha-lvs is > run before xinetd now). > > 2) Added "/etc/rc3.d/S56ha-lvs start" to the /etc/rc.d/rc.nodeup script in > the RedHat section before xinetd is started there for the second node. > > 3) Added nodenum2 as a director to /etc/cvip.conf > > Status: > > 1) The changes seem to do what they are supposed to. ipvsadm seems to have > a port registered for telnet (I assume this was automatically registered?) > on the FIRST node that booted (the one that forms the cluster). > > 2) The second node that is booted seems to not work. I know > "/etc/rc3.d/S56ha-lvs start" was run as I see the message that "ha-lvs > exited" on bootup. But, a ifconfig shows NO lo:# device. And a "cat > /proc/cluster/lvs" does NOT show the CVIP (this works OK on the first booted > node). > Can you send your /etc/cvip.conf ? Start /etc/init.d/ha-lvs manually after second node boot up. and see /proc/cluster/lvs. It you find the value there then start /etc/init.d/xinetd. BTW you should have /var/run as CDSL. Otherwise you can't run two instance of ha-lvs. . I guess this is your problem. -aneesh |
From: Aneesh K. K.V <ane...@di...> - 2003-03-28 03:38:25
|
> > 2) Dual director > > <?xml version="1.0"?> > <cvips> > <cvip> > <ip_addr>172.19.17.20</ip_addr> > <director_node> > <node_num>1</node_num> > <garp_interface>eth0</garp_interface> > <sync_interface>eth0</sync_interface> > </director_node> > <director_node> > <node_num>2</node_num> > <garp_interface>eth0</garp_interface> > <sync_interface>eth0</sync_interface> > </director_node> > <real_server_node> > <node_num>1</node_num> > </real_server_node> > <real_server_node> > <node_num>2</node_num> > </real_server_node> > </cvip> > </cvips> > > I assume that this is a valid config? Seems more HA to me. > > I then halt and reboot the cluster. Node1 first, then node2 to join the > cluster. > > Node1 has the VIP listed under /proc/cluster/lvs, eth0:20 listed under > ifconfig, and ipvsadm seems to have learned that node1 is a "LOCAL" > realserver for the telnet service. > > Node2 does NOT list the VIP under /proc/cluster/lvs, also has a eth0:20 > listed under ifconfig, and ipvsadm lists NO rules at all. Telnet only works > to node2 via the VIP. As the director on node2 has NO rules, I think the arp > for node2 is being answered for the VIP (just by luck I guess) and the > director is not picking it up (as there are no rules). I manually add the > rules to ipvs via ipvsadm on node2 and I can telnet to node2, but it hangs > to node1. This must be a invalid configuration? clusterip.sh would not > disable the arps on any node if it they are both set to be directors. > You mean to say the client node is getting arp reply from node#2. What i am actually doing in the code is. if( master_director_node) { send_gratious_arp ===>This should update client node arp cache. start lvs-sync-daemon as master }else if( secondary_director_node) { start lvs-sync-daemon as slave } In your case no garp packets are send from node#2 . Last time i tested a configuration like the above i got the correct arp value in the client arp cache. I guess I need to see how LVS people does this. I can't say hidden for eth0 on node#2 because that will prevent arp reply for all IP configured on eth0 if i understand it correctly. This will also prevent telnet operation using node IP. > So, I would assume that option 1 is the only valid config? > If so, why does the rule for the second node get updated? > And what happens if the director node goes down? How does the HA part work? > > Later... > > Dan |