Creating a Red Hat Linux LVS Cluster with Piranha

Disclaimer

This document was created for the purpose of outlining the steps the author took to configure and bring up an LVS web cluster. The information provided in this document is provided “as is” without warranty of any kind, expressed or implied.

The author of this document assumes that you have a working knowledge level of Linux and an understanding behind the theory of routing. The document is not meant to stand alone as a setup guide, but is intended as an addendum to Wayne Sherrill’s LVS Cluster HOWTO available on Red Hat’s website at http://www.redhat.com.

The model portrayed in this document is based upon the following structure: the company network address is 192.168.0.x with a standard class C subnet mask (255.255.255.0). The network address of 192.168.1.x is not being used anywhere else in the network infrastructure. If the network you plan to create the LVS Cluster in has a different network address, or if the private network address portrayed in the document is in use on your network, you will need to adjust the network addresses accordingly. For more information on subnetting, view the appropriate RFC. One place to view RFCs is http://www.webzone.net/machadospage/RFC.html.

Notes

This LVS Cluster was configured using Red Hat Linux 6.2 on all machines. This clustering solution is a pure Red Hat Linux solution. For information on configuring an LVS cluster in a different version of Linux, see http://www.linuxvirtualserver.org. Although not tested by the author, Red Hat Linux 6.1 and 6.0 with a kernel patch are supposed to also work.

When configuring IP addresses, use netconf or linuxconf instead of netconfig. Netconf and linuxconf will allow a person to configure multiple network adaptor settings whereas netconfig will allow the configuration of eth0 only. For assistance with using netconf or linuxconf, see the man pages or the Red Hat Linux Administrator’s Guide.

Although tested with a standard installation of Apache web server (configure; make; make install), this configuration was mainly run and tested using the rpm version of Apache web server. When installing Apache via rpm, you must also install PHP for Piranha to install completely and correctly. If you choose to perform a standard installation of Apache on the LVS routers, you will not be able to install piranha-gui. Piranha-gui expects an rpm version of Apache to be installed. You will only be able to install piranha and piranha-docs. You will also need to edit /etc/lvs.cf. Use this document and Wayne Sherrill’s howto as references for editing /etc/lvs.cf. Performing a standard installation of Apache web server is beyond the scope of this document. For assistance, refer to documentation on Apache’s website at http://www.apache.org and the README files extracted from the Apache tarball.

To bring up pulse at boot time, instead of adding the following line to /etc/rc.d/rc.local:
	/etc/rc.d/init.d/pulse start
you can create links to pulse in run levels 3 and 5 by issuing the following commands:
	ln -s /etc/rc.d/init.d/pulse /etc/rc.d/rc3.d/S90pulse
	ln -s /etc/rc.d/init.d/pulse /etc/rc.d/rc5.d/S90pulse
	ln -s /etc/rc.d/init.d/pulse /etc/rc.d/rc6.d/K05pulse
	ln -s /etc/rc.d/init.d/pulse /etc/rc.d/rc0.d/K05pulse

When verifying rsh and rsh-server are installed, the response the system should give to:
	rpm -qa | grep rsh
is
	rsh-0.16-12
	rsh-server-0.16-12

When verifying if FTP server is installed, the response you are looking for to the statement:
	rpm -qa | grep ftp
is
	wu-ftpd-2.6.0-3

Assistance with ipchains is beyond the scope of this document. For information on using ipchains, see the man pages or view the IPCHAINS-HOWTO at http://www.linuxdoc.org/HOWTO/HOWTO-INDEX/howtos.html.

The setup of the LVS cluster takes place in stages. This document outlines creating the LVS cluster in different stages so that it can be tested at each phase. Remember that any configuration requires thorough testing at each phase.

For rsh, an installation should only need the .rhosts file the user’s home directory that is being allowed to log in remotely. Although this installation did not test the functionality of rsh after removing /.rhosts, the only file that should be needed is /root/.rhosts and not /.rhosts.

Before you can copy /.rhosts from the primary LVS router to any other machine, you will need to execute the following commands:
	cp /.rhosts /tmp/.rhosts
	chmod 775 /tmp/.rhosts


Non-Redundant LVS Cluster Configuration

On the LVS Router
1. Ensure that eth0 is connected to the public network.
2. Ensure that eth1 is connected to the private network.
3. Install Linux via the expert option.
4. Install the following packages:
	a. X Window System
	b. GNOME (or your favorite window manager)
	c. Mail/WWW/News Tools
	d. Networked Workstation
	e. Anonymous FTP
	f. Development
	g. Kernel Development
	h. Utilities
5. Configure the gateway and enable routing.
6. Example IP addresses: eth0 = 192.168.0.1 eth1 = 192.168.1.1
7. Name the machine lvs1.domain.name.
8. Temporarily bring up eth1:1 -
	ifconfig eth1:1 192.168.1.254 netmask 255.255.255.0 up
On Real Server Node 1
1. Install linux via the expert option.
2. Install the following packages:
	a. X Window System
	b. GNOME (or your favorite window manager)
	c. Mail/WWW/News Tools
	d. Networked Workstation
	e. Anonymous FTP
	f. Development
	g. Kernel Development
	h. Utilities
3. Configure eth0 with 192.168.0.x0, where x is the real server node number.
4. Configure /etc/hosts as follows:
	192.168.0.1		lvs1.domain.name	lvs1
	192.168.1.1		lvs1p.domain.name	lvs1p
	192.168.1.254		gateway
	192.168.1.10		rs1.domain.name	rs1
	192.168.1.20		rs2.domain.name	rs2
	-------------		-------------------	---
	192.168.1.x0		rsx.domain.name	rsx
	
5. Ping the gateway.

On Real Server Node x
1. Repeat steps taken on Real Server 1.
2. Copy /etc/hosts from rs1 via ftp to /etc/hosts on the current machine.

On the LVS Router
1. Verify that rsh and rsh-server are installed:
	rpm -qa | grep rsh
2. Verify that ftp is installed:
	rpm -qa | grep ftp
3. Uninstall anonymous ftp server:
	rpm -e anonftp-3.0-3
4. Copy /etc/hosts from rs1 via ftp to /etc/hosts on the current machine.
5. Enable IP forwarding and IP defragmenting by adding the following lines to /etc/sysconfig/network:
	FORWARD_IPV4=yes
	DEFRAG_IPV4=yes
6. Create /etc/rc.d/rc.firewall:
	# line added to temporarily bring up eth1:1 on boot
	/sbin/ifconfig eth1:1 192.168.1.254 netmask 255.255.255.0 up

	# lines added for IP forwarding and defragmenting
	echo 1 > /proc/sys/net/ipv4/ip_forward
	echo 1 > /proc/sys/net/ipv4/ip_always_defrag

	# line added for ipchains
	# /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
7. Execute the line:
	chmod 770 /etc/rc.d/rc.firewall
8. Add the line to /etc/rc.d/rc.local:
	/etc/rc.d/rc.firewall
9. Create /.rhosts:
	lvs1.domain.name		root
	lvs1p.domain.name		root
	lvs2.domain.name		root
	lvs2p.domain.name		root
	gateway				root
	lvs1.domain.name		piranha
	lvs1p.domain.name		piranha
	lvs2.domain.name		piranha
	lvs2p.domain.name		piranha
	gateway				piranha
10. Execute the following commands:
	cp /.rhosts /root/.rhosts
	chmod 600 /.rhosts
	chmod 600 /root/.rhosts
11. Edit /etc/pam.d/login and comment the line:
	auth	required	/lib/security/pam_securetty.so
12. Verify that all ip addresses have come up by running ifconfig.
13. Reboot the server or issue the commands:
	ifconfig eth1:1 down
	/etc/rc.d/rc.firewall
On Real Server node 1
1. Verify that rsh and rsh-server are installed:
	rpm -qa | grep rsh
2. Verify that ftp server is installed:
	rpm -qa | grep ftp
3. Uninstall anonymous ftp:
	rpm -e anonftp-3.0-3
4. Copy /.rhosts from lvs1 via ftp and to /.rhosts and /root/.rhosts on the local machine.
5. Execute the following commands:
	chmod 600 /.rhosts
	chmod 600 /root/.rhosts
6. Verify that this host can reach the gateway:
	ping 192.168.1.254
7. Verify that this host can reach lvs1 (you will not be able to access any other public machines until IP Masquerading is enabled):
	ping lvs1
8. Verify that this host can log in remotely as root to lvs1 through telnet.
9. Comment out the line in /etc/pam.d/login:
	auth	required	/lib/security/pam_securetty.so
10. Verify connectivity of this machine by pinging other machines:
	ping lvs1p.domain.name
	ping rsx.domain.name
	ping lvs1
11. Verify that this machine can be logged into remotely by root via telnet.

On Real Server node x
1. Repeat steps just taken on Real Server 1.

On LVS Router
1. Edit /etc/rc.d/rc.firewall:
	a. comment out the line:
    		/sbin/ifconfig eth1:1 192.168.1.254 netmask 255.255.255.0 up
	b. uncomment the line:
    		/sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
2. Issue the following command:
	/sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
3. Verify that eth1:1 is still up by using ifconfig.

On Each Real Node x
1. Verify that this machine can ping the gateway:
	ping gateway
2. Verify that this machine can ping a host on the public network:
	ping 
3. Install Apache with all options desired.
4. Bring up Apache web server.
5. Verify that Apache web server works on this machine by accessing it through a web browser from another real server node:
	http://192.168.1.x0
On the LVS Router
1. Run the following command:
	ifconfig eth1:1 down
2. Install Apache with the same options that were installed on the Real Server Nodes.
3. Bring up Apache web server.
4. Verify that Apache works by trying to access it through a web server from one of the Real Server Nodes:
	http://192.168.1.1
5. Install piranha from the Red Hat Linux cd:
	rpm -Uvh piranha*
6. Start X Windows and run piranha in a terminal window:
	piranha &
7. Enter the following values on the global settings tab:
	Field			Enter
	Primary LVS server IP	192.168.0.1
	NAT Router IP		192.168.1.254
	NAT Router Device	eth1:1
	Sync Tool		rsh
8. On the Virtual Servers tab, click Add, then Edit, and enter the following values:
	Field			Enter
	Name			vs1
	Application		http
	Port			80
	Address			192.168.0.50
	Device			eth0:1
	Re-entry time		180
	Service Timeout		10
	Load monitoring tool	uptime
	Scheduling		weighted-least connections
9. On the Real Servers tab, click Add, then Edit, and enter the following values:
	Field	Enter
	Name	rs1
	Address	192.168.1.x0
	Weight	2000
10. Click Close to return to the Real Servers tab. Select the real server and click Activate to activate it.
11. Repeat steps 9 - 10 for each real server x.
12. Click Close to return to the Virtual Servers tab. Select the vs1 virtual server and click Activate to activate it.
13. Click on the Apply button.
14. Click on the Close button.
15. Edit /etc/lvs.cf and verify that each Real Server has the correct IP address. If it doesn’t, change the IP addresses to the correct ones.
16. Verify that Piranha starts without any problems:
	/etc/rc.d/init.d/pulse start
17. Verify that Piranha shuts down without any problems:
	/etc/rc.d/init.d/pulse stop
18. Restart piranha:
	/etc/rc.d/init.d/pulse start
19. Verify that all the IP addresses come up with ifconfig:
	eth0		192.168.0.1
	eth0:1		192.168.0.50
	eth1		192.168.1.1
	eth1:1		192.168.1.254
20. Add the line to /etc/rc.d/rc.local:
	/etc/rc.d/init.d/pulse start
NOTE: WHEN PULSE AND NANNY ARE RUNNING, PINGING A PUBLIC IP ADDRESS FROM ONE OF THE REAL SERVER NODES WILL TAKE A VERY LONG TIME TO RESPOND.

On a machine on the public network
1. Ping the publicly accessible IP address (192.168.0.50).
2. Telnet to the port on that IP address:
	telnet 192.168.0.50:80
3. Use a web browser or FTP client to access the service.



Adding a Redundant LVS Router

On the Redundant LVS Router
1. Ensure that eth0 is connected to the public network.
2. Ensure that eth1 is connected to the private network.
3. Install Linux via the expert option.
4. Install the following packages:
	a. X Window System
	b. GNOME (or your favorite window manager)
	c. Mail/WWW/News Tools
	d. Networked Workstation
	e. Anonymous FTP
	f. Development
	g. Kernel Development
	h. Utilities
5. Configure the gateway and enable IP routing.
6. Example IP addresses: eth0 = 192.168.0.2 eth1 = 192.168.1.2.
7. Name the machine lvs2.domain.name.
8. Verify that rsh and rsh-server are installed on the machine:
	rpm -qa | grep rsh
9. Verify that ftp server is installed on the machine:
	rpm -qa | grep ftp
10. Remove anonymous FTP:
	rpm -e anonftp-3.0-3
11. Copy /etc/hosts from rs1 via ftp to /etc/hosts on the current machine.
12. Enable IP forwarding and defragmenting by adding the following lines to /etc/sysconfig/network:
	FORWARD_IPV4=yes
	DEFRAG_IPV4=yes
13. Copy /etc/rc.d/rc.firewall from lvs1 via FTP to /etc/rc.d/rc.firewall on the local machine.
14. Issue the command:
	chmod 770 /etc/rc.d/rc.firewall
15. FTP /.rhosts from lvs1 and copy it to /.rhosts and /root/.rhosts on the current machine.
16. Issue the following commands:
	chmod 600 /.rhosts
	chmod 600 /root/.rhosts
17. Edit /etc/pam.d/login and comment the line:
	auth	required	/lib/security/pam_securetty.so
18. Install Apache with all the options installed on the Real Server Nodes.
19. Install piranha from the Red Hat Linux cd:
	rpm -Uvh piranha*
20. Reboot the server.

On the Primary LVS Router
1. Issue the following command:
	/etc/rc.d/init.d/pulse stop
2. Verify that pulse is no longer running with ifconfig and ‘ps ax’.

On the Secondary LVS Router
1. Temporarily bring up eth1:1
	ifconfig eth1:1 192.168.1.254 netmask 255.255.255.0 up
2. Enable IP Masquerading on this machine:
	ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
On a Real server node
1. Ping the following IP addresses to verify connectivity:
	ping 192.168.1.254
	ping lvs2p
	ping rs2
	ping rs3
2. Verify that lvs2 will correctly route packets by issuing the following command:
	ping lvs2
	ping 
On the Redundant LVS Router
1. Issue the following command:
	ifconfig eth1:1 down
2. Add the following line to /etc/rc.d/rc.local:
	/etc/rc.d/rc.firewall
On the Primary LVS Router
1. Issue the following command:
	/etc/rc.d/init.d/pulse start
2. Start X Windows and run piranha in a terminal window.
3. Click on the Redundancy tab.
4. Click on Enable Redundant Server.
5. Enter 192.168.0.2 (or the IP address of lvs2) in the Redundant Server IP field.
6. Click on Apply.
7. Click on Close.
8. Verify that the virtual server IP addresses are correct in /etc/lvs.cf by viewing its contents. If they are not correct, change the values to the correct ones. If changes are necessary, ensure that /etc/lvs.cf from lvs1 is copied to /etc/lvs.cf on lvs2.
9. Issue the following command:
	/etc/rc.d/init.d/pulse start
On the Redundant LVS Router
1. Run the following command:
	/etc/rc.d/init.d/pulse start
2. Verify that piranha will shut down correctly:
	/etc/rc.d/init.d/pulse stop
3. Start piranha again:
	/etc/rc.d/init.d/pulse start
4. Add the following line to /etc/rc.d/rc.local:
	/etc/rc.d/init.d/pulse start
5. Verify that pulse is running by issuing the following command:
	ps ax
On a machine on the public network
1. Verify that the LVS cluster IP is up and running:
	ping 192.168.0.50 (or the IP address that is being used)
2. Verify that the LVS cluster is listening on the appropriate port:
	telnet 192.168.0.50:80
3. Attempt to access the service with a web browser or FTP client:
	http://192.168.0.50
Test for redundancy
1. Kill power on lvs1
2. Wait x seconds, where x is the number specified in the dead-time port in /etc/lvs.cf on the LVS Routers and repeat the steps in the previous section.



Adding an Additional Real Server

On the Real Server Node
1. Install Linux via the expert option.
2. Install the following packages:
	a. X Window System
	b. GNOME (or your favorite window manager)
	c. Mail/WWW/News Tools
	d. Networked Workstation
	e. Anonymous FTP
	f. Development
	g. Kernel Development
	h. Utilities
3. Configure eth0 with 192.168.1.x0, where x is the real server node number.
4. Copy /etc/hosts from lvs1 to /etc/hosts on this machine.
5. Verify that rsh and rsh-server are installed on the machine:
	rpm -qa | grep rsh
6. Verify that ftp server is installed:
	rpm -qa | grep ftp
7. Remove uninstall anonymous FTP:
	rpm -e anonftp-3.0-3
8. Copy /.rhosts from lvs1 to /.rhosts and /root/.rhosts on this machine.
9. Run the following commands:
	chmod 600 ./rhosts
	chmod 600 /root/.rhosts
10. Verify that this host can reach the gateway:
	ping gateway
11. Comment out the line in /etc/pam.d/login:
	auth	required	/lib/security/pam_securetty.so
12. Install Apache web server with the same options as on the other Real Server nodes.
13. Reboot the server.

On the Primary LVS Router
1. Verify that this server can log in to the newly added Real Server node as root via telnet.
2. Start X Windows and run piranha in a terminal window.
3. Click on the Virtual Servers tab.
4. Click on vs1 (or whichever virtual server you wish to add a real server node to).
5. Click on Edit.
6. Click on the Real Servers tab.
7. Click on Add.
8. Click on the Real Server just added, then click on edit.
9. Enter 192.168.1.x0 in the IP address field (where x is the real server node number).
10. Click on Close to return to the Real Servers tab.
11. Click on Activate to activate the Real Server.
12. Click on Close to return the piranha configuration window.
13. Click on Apply to write the changes to /etc/lvs.cf on the primary and redundant LVS routers.
14. Click on Close.
15. View /etc/lvs.cf on lvs1 to verify that the changes have taken effect and the IP addresses are correct. If changes are necessary, make the changes to the file and copy it to /etc/lvs.cf on lvs2.
16. Restart piranha by issuing the following command:
	/etc/rc.d/init.d/pulse restart
On the Redundant LVS Router
1. Restart piranha by issuing the following command:
	/etc/rc.d/init.d/pulse restart
2. Use ifconfig and ‘ps ax’ to verify that this machine does not have control of the floating IP addresses.

On the Primary LVS Router
1. Use ifconfig and ‘ps ax’ to verify that this machine has control of the floating IP addresses.

On a Machine on the Public Network
1. Verify that the floating IP address is up on the network:
	ping 192.168.0.50
2. Verify that a user can telnet to the port the service is being offered on:
	telnet 192.168.0.50:80
3. Verify that the service is up and running by accessing it through a web browser or FTP client:
	http://192.168.0.50


Contents of /etc/lvs.cf on each of the LVS Routers after adding lvs2 and rs3

primary = 192.168.0.1
nat_router = 192.168.1.254 eth1:1
service = lvs

virtual vs1 {
	address = 192.168.0.50 eth0:1
	active = 1
	load_monitor = uptime

	server rs1 {
		address = 192.168.1.10
		active = 1
	}

	server rs2 {
		address = 192.168.1.20
		active = 1
	}

	server rs3 {
		address = 192.168.1.30
		active = 1
	}
}

backup_active = 1
backup = 192.168.0.2


Contents of /etc/hosts on each of the machines

127.0.0.1		localhost.localdomain 		localhost
192.168.0.1		lvs1.shiftops.com		lvs1
192.168.1.1		lvs1p.shiftops.com		lvs1p
192.168.0.2		lvs2.shiftops.com		lvs2
192.168.1.2		lvs2p.shiftops.com		lvs2p
192.168.1.10		rs1.shiftops.com		rs1
192.168.1.20		rs2.shiftops.com		rs2
192.168.1.30		rs3.shiftops.com		rs3
192.168.1.254		gateway


Contents of /.rhosts and /root/.rhosts on each machine in the LVS Cluster

lvs1.shiftops.com		root
lvs1p.shiftops.com		root
lvs2.shiftops.com		root
lvs2p.shiftops.com		root
gateway				root
lvs1.shiftops.com		piranha
lvs1p.shiftops.com		piranha
lvs2.shiftops.com		piranha
lvs2p.shiftops.com		piranha
gateway				piranha


Output of ‘ps ax’ on lvs1 with Piranha running

  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:19 init [3]
    2 ?        SW     0:00 [kflushd]
    3 ?        SW     0:00 [kupdate]
    4 ?        SW     0:00 [kpiod]
    5 ?        SW     0:00 [kswapd]
    6 ?        SW<    0:00 [mdrecoveryd]
  420 ?        S      0:00 portmap
  435 ?        SW     0:00 [lockd]
  436 ?        SW     0:00 [rpciod]
  445 ?        S      0:00 rpc.statd
  498 ?        S      4:03 syslogd -m 0
  507 ?        S      0:02 klogd
  521 ?        S      0:00 identd -e -o
  525 ?        S      0:00 identd -e -o
  526 ?        S      0:00 identd -e -o
  527 ?        S      0:00 identd -e -o
  528 ?        S      0:00 identd -e -o
  539 ?        S      0:00 /usr/sbin/atd
  553 ?        S      0:00 crond
  571 ?        S      0:00 inetd
  585 ?        S      0:00 lpd
  629 ?        S      0:00 sendmail: accepting connections on port 25
  644 ?        S      0:02 gpm -t ps/2
  658 ?        S      0:01 /usr/sbin/httpsd
  673 ?        S      0:00 /usr/sbin/httpsd
  674 ?        S      0:00 /usr/sbin/httpsd
  675 ?        SW     0:00 [httpsd]
  676 ?        SW     0:00 [httpsd]
  677 ?        S      0:00 /usr/sbin/httpsd
  678 ?        S      0:00 /usr/sbin/httpsd
  679 ?        S      0:00 /usr/sbin/httpsd
  680 ?        S      0:00 /usr/sbin/httpsd
  681 ?        S      0:00 /usr/sbin/httpsd
  688 ?        S      0:00 /usr/sbin/httpsd
  707 ?        S      0:00 xfs -droppriv -daemon -port -1
  760 tty1     S      0:00 login -- unix    
  761 tty2     S      0:00 /sbin/mingetty tty2
  762 tty3     S      0:00 /sbin/mingetty tty3
  763 tty4     S      0:00 /sbin/mingetty tty4
  764 tty5     S      0:00 /sbin/mingetty tty5
  765 tty6     S      0:00 /sbin/mingetty tty6
  772 tty1     S      0:00 -bash
  792 tty1     S      0:00 sh /usr/X11R6/bin/startx -- :1
  799 tty1     S      0:00 xinit /etc/X11/xinit/xinitrc -- :1 -auth /home/unix/.
  800 ?        S    413:21 /etc/X11/X :1 -auth /home/unix/.Xauthority
  804 tty1     S      0:00 /usr/bin/gnome-session
  818 tty1     S      0:00 gnome-smproxy --sm-client-id default0
  824 tty1     S      0:01 enlightenment -clientId default2
  826 tty1     S      0:39 magicdev --sm-client-id=default12
  839 ?        S      0:00 gnome-name-service
  841 tty1     S      0:01 panel --sm-client-id default8
  843 tty1     S      0:01 xscreensaver -no-splash -timeout 10 -nice 10 -xrm *pr
  845 tty1     S      0:00 gmc --sm-client-id default10
  847 tty1     S      0:01 gnome-help-browser --sm-client-id default9
  855 ?        S      0:00 gnomepager_applet --activate-goad-server gnomepager_a
  857 ?        S      0:00 gen_util_applet --activate-goad-server gen_util_apple
 1025 tty1     S      0:04 gnome-terminal
 1028 tty1     S      0:00 gnome-pty-helper
 1029 pts/0    S      0:00 bash
 1043 pts/0    S      0:00 su -
 1049 pts/0    S      0:00 -bash
 1144 ?        S      0:22 pulse
 1149 ?        S      0:00 /usr/sbin/lvs --nofork -c /etc/lvs.cf
 1157 ?        S      0:06 /usr/sbin/nanny -c -h 192.168.1.10 -p 80 -a 180 -I /u
 1158 ?        S      0:06 /usr/sbin/nanny -c -h 192.168.1.20 -p 80 -a 180 -I /u
 1159 ?        S      0:04 /usr/sbin/nanny -c -h 192.168.1.30 -p 80 -a 180 -I /u
10464 pts/0    R      0:00 ps ax
Note: Processes 1144, 1157, 1158, and 1159 are key on the active LVS Router. The presence of pulse indicates that the machine is running Piranha. The presence of nanny indicates that the server is checking on the health of the real servers defined in different virtual servers. Nanny should only be running on the active LVS router.



Output of ‘ifconfig’ on lvs1 with Piranha running

eth0      Link encap:Ethernet  HWaddr 00:80:5F:19:EE:BF  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1104195 errors:0 dropped:0 overruns:0 frame:0
          TX packets:152878 errors:0 dropped:0 overruns:0 carrier:0
          collisions:346 txqueuelen:100 
          Interrupt:9 Base address:0x6400 

eth0:1    Link encap:Ethernet  HWaddr 00:80:5F:19:EE:BF  
          inet addr:192.168.0.50  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:9 Base address:0x6400 

eth1      Link encap:Ethernet  HWaddr 00:80:5F:B6:F3:39  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:795698 errors:0 dropped:0 overruns:0 frame:0
          TX packets:904140 errors:0 dropped:0 overruns:0 carrier:0
          collisions:2796 txqueuelen:100 
          Interrupt:10 Base address:0x6410 

eth1:1    Link encap:Ethernet  HWaddr 00:80:5F:B6:F3:39  
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:10 Base address:0x6410 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:3924  Metric:1
          RX packets:27 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
Note: This machine has control of both floating IP addresses eth0:1 and eth1:1. These IP addresses should show up on the active LVS Router.



Output of ‘ps ax’ on lvs2 with Piranha running

  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:06 init [3]
    2 ?        SW     0:00 [kflushd]
    3 ?        SW     0:01 [kupdate]
    4 ?        SW     0:00 [kpiod]
    5 ?        SW     0:00 [kswapd]
    6 ?        SW<    0:00 [mdrecoveryd]
  437 ?        S      0:00 portmap
  452 ?        SW     0:00 [lockd]
  453 ?        SW     0:00 [rpciod]
  462 ?        S      0:00 rpc.statd
  476 ?        S      0:00 /usr/sbin/apmd -p 10 -w 5 -W -s /etc/sysconfig/apm-sc
  527 ?        S      0:04 syslogd -m 0
  536 ?        S      0:01 klogd
  550 ?        S      0:00 identd -e -o
  554 ?        S      0:00 identd -e -o
  555 ?        S      0:00 identd -e -o
  556 ?        S      0:00 identd -e -o
  557 ?        S      0:00 identd -e -o
  568 ?        S      0:00 /usr/sbin/atd
  582 ?        S      0:00 crond
  600 ?        S      0:00 inetd
  614 ?        S      0:00 lpd
  658 ?        S      0:00 sendmail: accepting connections on port 25
  673 ?        S      0:00 gpm -t ps/2
  687 ?        S      0:02 /usr/sbin/httpsd
  712 ?        S      0:00 /usr/sbin/httpsd
  715 ?        SW     0:00 [httpsd]
  716 ?        SW     0:00 [httpsd]
  717 ?        SW     0:00 [httpsd]
  718 ?        SW     0:00 [httpsd]
  719 ?        SW     0:00 [httpsd]
  720 ?        SW     0:00 [httpsd]
  721 ?        SW     0:00 [httpsd]
  729 ?        S      0:00 /usr/sbin/httpsd
  730 ?        S      0:00 /usr/sbin/httpsd
  736 ?        S      0:00 xfs -droppriv -daemon -port -1
  789 tty1     SW     0:00 [login]
  790 tty2     S      0:00 /sbin/mingetty tty2
  791 tty3     S      0:00 /sbin/mingetty tty3
  792 tty4     S      0:00 /sbin/mingetty tty4
  793 tty5     S      0:00 /sbin/mingetty tty5
  794 tty6     S      0:00 /sbin/mingetty tty6
  801 tty1     SW     0:00 [bash]
  821 tty1     SW     0:00 [startx]
  828 tty1     SW     0:00 [xinit]
  829 ?        S    384:33 /etc/X11/X :1 -auth /home/unix/.Xauthority
  833 tty1     S      0:00 /usr/bin/gnome-session
  847 tty1     S      0:00 gnome-smproxy --sm-client-id default0
  853 tty1     S      0:02 enlightenment -clientId default2
  855 tty1     S     13:55 magicdev --sm-client-id=default12
  867 ?        S      0:00 gnome-name-service
  870 tty1     S      0:01 panel --sm-client-id default8
  872 tty1     S      0:01 xscreensaver -no-splash -timeout 10 -nice 10 -xrm *pr
  874 tty1     S      0:01 gmc --sm-client-id default10
  884 ?        S      0:01 gnomepager_applet --activate-goad-server gnomepager_a
  886 ?        S      0:01 gnomepager_applet --activate-goad-server gnomepager_a
  891 tty1     S      0:01 gnome-terminal
  892 tty1     S      0:00 gnome-pty-helper
  893 pts/0    S      0:00 bash
  904 tty1     S      0:04 gnome-terminal
  905 tty1     S      0:00 gnome-pty-helper
  906 pts/1    S      0:00 bash
  916 pts/1    S      0:00 su -
  920 pts/1    S      0:00 -bash
  941 pts/0    S      0:00 su -
  945 pts/0    S      0:00 -bash
 4517 ?        S      0:25 pulse
 6493 pts/1    R      0:00 ps ax
Note: The presence of process 4517 (pulse) indicates that Piranha is running on this machine. Also note the absence of nanny. This machine is the standby LVS Router and should not have nanny running on it.



Output of ‘ifconfig’ on lvs2 with Piranha running

eth0      Link encap:Ethernet  HWaddr 00:80:5F:71:B0:2C  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1141302 errors:0 dropped:0 overruns:0 frame:0
          TX packets:182715 errors:0 dropped:0 overruns:0 carrier:0
          collisions:191 txqueuelen:100 
          Interrupt:11 Base address:0x1000 

eth1      Link encap:Ethernet  HWaddr 00:00:79:83:2C:EE  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:36886 errors:0 dropped:0 overruns:0 frame:0
          TX packets:41718 errors:1 dropped:0 overruns:0 carrier:1
          collisions:178 txqueuelen:100 
          Interrupt:5 Base address:0x340 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:3924  Metric:1
          RX packets:134 errors:0 dropped:0 overruns:0 frame:0
          TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
Note: This machine does not have control of the floating IP addresses. The floating IP addresses should be in the control of the active LVS Router.

1