Low Price High Availability Linux Web Cluster
Lee, Bo-sung Seoul National Univ. / ETRI Supercomputer Center
Introduction
• Need of High Availability System
– “Whatever can go wrong, will go wrong”
• Fault Tolerant System
– Specially designed, low volume, expensive hardware
• High Availability System
– Popular, high volume, cheaper hardware
Introduction (Continued)
• Cost/Availability
Low Price / High Availability Linux Web Cluster
• Performance
– Better CPU, Fast Ethernet, UltraWide SCSI etc.
• Hardware for High Availability
– Dual NIC, RAID Subsystem etc.
• Load Balancing & Scalability • Low Price
– RedHat Linux, Apache Web Server etc.
Conventional HA Web Cluster
Cost Effective Manner of HA Web Cluster Design
• Using Router, Loopback Interfaces • Configuring multiple hosts have the same IP addresses
– Not virtual IP addresses assigned to Ethernet interfaces – Assign same IP addresses to multiple hosts
• Binding multiple hosts to loopback interfaces
Configuration Steps
• Kernel must support IP Aliasing • Reconfiguration of Subnet • Binding multiple hosts to loopback interfaces • Reconfiguration of Router • “Round Robin” DNS • Configuring Apache
Kernel Must Support IP Aliasing
• Binding Multiple IP Addresses to a given network interface • Creating virtual interfaces • Kernel Configuration
Network aliasing (CONFIG_NET_ALIAS) [Y/n/?] y TCP/IP networking (CONFIG_INET) [Y/n/?] y
IP : aliasing support (CONFIG_IP_ALIAS) [Y/m/n?] y
Reconfiguration of Subnet
• We have class C network 192.168.1.0 • Apply 27-bit subnet mask • 8 subnets and 240 usable hosts
Netmask : 255.255.255.224(11111111.11111111.11111111.11100000)
• We have 4 Webservers
– 192.168.1.1(Router), 192.168.1.2, 192.168.1.3,192.168.4
Reconfiguration of Subnet (Continued.)
• Configuration of 192.168.1.2
Modifying /etc/sysconfig/network-script/eth0
DEVICE = eth0 IPADDR = 192.168.1.2 NETMASK = 255.255.255.224 NETWORK = 192.168.1.0 BROADCAST = 192.168.1.31 ONBOOT = yes
Setting Default Route (/etc/sysconfig/network)
NETWORKING = yes HOSTNAME = foohost.foo.com DOMAINNAME = foo.com GATEWAY = 192.168.1.1 GATEWAYDEV = eth0
Binding Multiple Hosts to Loopback Interfaces
• Each webserver have the other web servers’ loopback IP addresses bound to its loopback • Pick one address out of each of 4 subnet
– 192.168.1.33, 192.168.1.65,192.168.1.97,192.168.1.128
– bind them to loopbacks on all web servers
DEVICE=lo:1 IPADDR=192.168.1.33 NETMASK=255.255.255.224 NETWORK=192.168.1.32 BROADCAST=192.168.1.63 ONBOOT=yes DEVICE=lo:2 IPADDR=192.168.1.65 NETMASK=255.255.255.224 NETWORK=192.168.1.64 BROADCAST=192.168.1.95 ONBOOT=yes
Reconfiguration of Router
• Setup Route for each of the four subnets, pointing to each of the four hosts
/sbin/route add -net 192.168.1.32 netmask\ 255.255.255.224 192.168.1.2
/sbin/route add -net 192.168.1.64 netmask\
255.255.255.224 192.168.1.3 /sbin/route add -net 192.168.1.96 netmask\ 255.255.255.224 192.168.1.4 /sbin/route add -net 192.168.1.128 netmask\
255.255.255.224 192.168.1.5
Round Robin DNS
• Setup DNS for web server rotation to server single web hosts
@ IN SOA ns1.mydomain.com. hostmaster.mydomain.com. ( 1998020100 ; serial (yyyymmddnn) 86400 ; refresh (every day) 3600 ; retry (every hour) 1209600 ; expire (2 weeks) 86400 ) ; minimum TTL (half day) IN NS ns.foo.com
www IN IN IN IN
A A A A
192.168.1.33 192.168.1.65 192.168.1.97 192.168.1.129
Configuring Apache
• Listen on each of the loopbacks
ServerName www.mydomain.com DocumentRoot /www/www.mydomain.com
• Redirecting Traffic from one machine to another
/sbin/route delete 192.168.1.2 255.255.255.224
/sbin/route add 192.168.1.2 255.255.255.224 192.168.1.3
Conclusions
• Need of High Availability System Increases • High Availability System Needs Hardware Requirements and Software Requirements • HA with Linux may be Alternatives of Expensive HA System • There are many techniques to develop Low Cost / HA Web Clusters