High-Availability
Web  Server Cluster
      Group 10
Group Member

  Group Leader :  
    Wong Sing
 Group Member :
CHAN Chun Cheong
 CHAN Tsun Tat
   NG Chun Lam
   PUN Wai Yin
                                         
What is High-Availability cluster?

High-Availability clusters (Fail-over Clusters)  are
implemented primarily for the purpose of improving the
availability of services that the cluster provides. The
operate by having redundant nodes, which are then used to
provide service when system components fails. High-
Availability cluster implementations attempt to use
redundancy of cluster components to eliminate single points
of failure.
Why High-Availability Web Server
Cluster is important? (1/2)
 High availability
    Redundancy server provide continued service when
    single points of failure
 Server loading
    Via "Load Balancer" to distribute job to different
    server to avoid single server overload, provide some
    degree of improve efficiency and capacity
Why High-Availability Web Server
Cluster is important? (2/2)
 Scalability
    User is not feel change when increase or decrease
    the redundant server in the cluster
    All along the grow of Internet, increase redundant
    server to improve the performance of cluster to deal
    with added user. Rather than adopt single high-end
    server
Potential Solution (1/2)

  The Server side approach
        IP-level scheduling approach
            Linux Virtual Server    <== we do it
            Berkeley's MagicRouter, Cisco's LocalDIrector
        Application-level scheduling approach
            EDDIE, Reverse-proxy, pWEB, SWEB
  Round-Robin DNS approach
        DNS Server binding a host with multiple IP address
        DNS Server response a rotation IP address
        DNS Cache would ensure a specific web server deal with
        the client
Potential Solution (2/2)

  The client-side approach
    Berkeley's Smart Client
        A applet running at the client side which choose a
        server based on the load information of all the
        servers
Implement High-Availability Server
Cluster using Linux Virtual Server
 Architecture of a generic virtual server
What is Linux Virtual Server?

 Linux Virtual Server System is a group of a virtual server and
 few real server to a number of real server
 Number of real server decide on how to implement
 More real server indicate higher capability to deal with user
 Virtual Server is a highly scalable and highly available server
 built on a cluster of real servers. Virtual server is a entry-pint
 of server cluster system. Also, various alias (Load Balancer,
 Linux Director) of virtual server indicate how to dispatch
 requests to different real server
 Virtual Server appear as a host externally
High Availability System

HA distributed 2 mode 

1. real server 
2. virtual server
Linux Virtual Server Architectures

 Virtual Server via NAT
 Virtual Server via IP Tunneling
 Virtual Server via Direct Routing
Virtual Server via NAT

 Virtual Server (Load Balancer)  response NAT as router
 Record the socket of a new web request and assign to a
 real server via specific scheduling
 Then, Virtual Server map a follow request of it to same
 real server
 Virtual server focus on NAT in many time. The Virtual
 server may be a new bottle-neck of the whole system.
 Therefore, Virtual Server handle around 20 real server
 at most
 As a result of Virtual Server change the detestation of
 IP address and the port of request, the listen port of
 Real Server can differ
Virtual Server via Direct Routing

  Virtual Server (Linux Director) and Real Server share a
  same Virtual IP address
  Virtual Server re-write the destination MAC address of
  frame re-direct to Real Server only
  As a result of same Virtual P address of Virtual Server
  and Real Server. Thence, it must disable ARP response
  of Real Server to prevent Real Server harass Virtual
  Server work properly
  ARP issues occur on Virtual Server via IP Tunneling too
  The listen port of all Real Server must be same and
  Virtual via IP Tunneling too
Virtual Server via IP Tunneling

  Virtual Server (Load Balancer) encapsulate a new request
  (packet) within IP datagrams and redirect to a Real
  Server
  Then, a real server replies to web client directly
  Virtual Server is do not need to NAT. Thence, Virtual
  Server handle more Real Server than Virtual Server via
  NAT
  In addition, Real Server can be geographically
  distributed in any network. Rather than limited in LAN
Failure on Load Balancer (Virtual
Server)
  The Load Balancer might become a single failure point of
  the whole system
  Redundancy load balancer can assuage this issues
  Backup Load Balancer will take job from primary Load
  Balancer when failure of the Primary Load Balancer
  Via heartbeat daemon run on both, they inform other
  "I'm alive" periodically 
  If Backup Load Balancer cannot receive heartbeat in the
  specific time, Backup Load Balancer will be Primary Load
  Balancer
Limit of Linux Virtual Server

  As a result of Layer 4 Load Balancing,  it is regard
  different information to distribute request to Real
  Server compare with Layer 7 Load Balancing.
  When Layer 7 Load Balancing compare with Layer 4 Load
  Balancing, it is more flexible than and more complex than
Logical Topology




Network Client 192.168.1.0/24
Network DNS 10.0.0.0/8
Network Linux Virtual Server 172.16.0.0/12
Requested Hardware (1/3)
 Real Server & Virtual Server
      Lenovo ThinkCentre A63 Tower
         Form Factor Tower
         Processor AMD Athlon x 2 245, 2.90GHz, 2MB L2Cache
         Memory 2GB, DDR 3 1066 MHz
         HDD 320 GB 7200 rpm
         NIC Marvell Gigabit Ethernet
         Device DVD-ROM
         PCI Expree x1 2 Full Height
         USB 8
         Warranty One year parts and labour
         Price $ 3,080
         Quantity 6 = 1 Client + 2 VS + 2 RS + 1 Router/DNS
Requested Hardware (2/3)

 DNS Server and Router
   Hardware configuration approximate Real Server &
   Virtual Server
   Need 2 connecter additionally
      Realtek RTL8111B Gigabit Ethernet Controller
         PCI Express 1.0a bus interface
         Crossover Detection & Auto-Correction
         Price $120 (estimate)
         Quantity 2
Requested Hardware (3/3)
  Network devices
    Planet GSD-803 Switch
       Port Density 8
       Wire speed Gigabits
       MAC Table Store 4K
       Price $ 350
       Intelligent scales power based on cable length
 Cable
    Cat 5e twisted pair
       100 M $300
    RJ 45 connector
       20 $10
Project Budget

Item                           Quantity Unit Price
Lenovo ThinkCentre A63         6        $ 3,080
Realtek RTL8111B Gigabit NIC   2        $ 1,50
Planet GSD-803 Switch          1        $ 3,50
Cat 5e twisted pair            1        $ 3,00
RJ 45 connector                1        $ 10
Total                                   $ 19,440
Milestone

 
Summary

We using Linux Virtual Server to implement High-
Availability Web Server Cluster. To provide a high-
availability, reliable, scalability, load-balancing Solution for
improve efficiency, productivity. 
Business can upgrade their web server without revoke
original web server. In the upgrade process, without need to
suspend the web service and the user would not feel the
effect. 
Finally, HA Web Server Cluster contributes a bit
of capability to make Internet more tough

HA System-First presentation

  • 1.
  • 2.
    Group Member Group Leader :   Wong Sing Group Member : CHAN Chun Cheong CHAN Tsun Tat NG Chun Lam PUN Wai Yin                                 
  • 3.
    What is High-Availabilitycluster? High-Availability clusters (Fail-over Clusters)  are implemented primarily for the purpose of improving the availability of services that the cluster provides. The operate by having redundant nodes, which are then used to provide service when system components fails. High- Availability cluster implementations attempt to use redundancy of cluster components to eliminate single points of failure.
  • 4.
    Why High-Availability WebServer Cluster is important? (1/2) High availability Redundancy server provide continued service when single points of failure Server loading Via "Load Balancer" to distribute job to different server to avoid single server overload, provide some degree of improve efficiency and capacity
  • 5.
    Why High-Availability WebServer Cluster is important? (2/2) Scalability User is not feel change when increase or decrease the redundant server in the cluster All along the grow of Internet, increase redundant server to improve the performance of cluster to deal with added user. Rather than adopt single high-end server
  • 6.
    Potential Solution (1/2) The Server side approach IP-level scheduling approach Linux Virtual Server    <== we do it Berkeley's MagicRouter, Cisco's LocalDIrector Application-level scheduling approach EDDIE, Reverse-proxy, pWEB, SWEB Round-Robin DNS approach DNS Server binding a host with multiple IP address DNS Server response a rotation IP address DNS Cache would ensure a specific web server deal with the client
  • 7.
    Potential Solution (2/2) The client-side approach Berkeley's Smart Client A applet running at the client side which choose a server based on the load information of all the servers
  • 8.
    Implement High-Availability Server Cluster usingLinux Virtual Server Architecture of a generic virtual server
  • 9.
    What is LinuxVirtual Server? Linux Virtual Server System is a group of a virtual server and few real server to a number of real server Number of real server decide on how to implement More real server indicate higher capability to deal with user Virtual Server is a highly scalable and highly available server built on a cluster of real servers. Virtual server is a entry-pint of server cluster system. Also, various alias (Load Balancer, Linux Director) of virtual server indicate how to dispatch requests to different real server Virtual Server appear as a host externally
  • 10.
    High Availability System HAdistributed 2 mode  1. real server  2. virtual server
  • 11.
    Linux Virtual ServerArchitectures Virtual Server via NAT Virtual Server via IP Tunneling Virtual Server via Direct Routing
  • 12.
    Virtual Server viaNAT Virtual Server (Load Balancer)  response NAT as router Record the socket of a new web request and assign to a real server via specific scheduling Then, Virtual Server map a follow request of it to same real server Virtual server focus on NAT in many time. The Virtual server may be a new bottle-neck of the whole system. Therefore, Virtual Server handle around 20 real server at most As a result of Virtual Server change the detestation of IP address and the port of request, the listen port of Real Server can differ
  • 13.
    Virtual Server viaDirect Routing Virtual Server (Linux Director) and Real Server share a same Virtual IP address Virtual Server re-write the destination MAC address of frame re-direct to Real Server only As a result of same Virtual P address of Virtual Server and Real Server. Thence, it must disable ARP response of Real Server to prevent Real Server harass Virtual Server work properly ARP issues occur on Virtual Server via IP Tunneling too The listen port of all Real Server must be same and Virtual via IP Tunneling too
  • 14.
    Virtual Server viaIP Tunneling Virtual Server (Load Balancer) encapsulate a new request (packet) within IP datagrams and redirect to a Real Server Then, a real server replies to web client directly Virtual Server is do not need to NAT. Thence, Virtual Server handle more Real Server than Virtual Server via NAT In addition, Real Server can be geographically distributed in any network. Rather than limited in LAN
  • 15.
    Failure on LoadBalancer (Virtual Server) The Load Balancer might become a single failure point of the whole system Redundancy load balancer can assuage this issues Backup Load Balancer will take job from primary Load Balancer when failure of the Primary Load Balancer Via heartbeat daemon run on both, they inform other "I'm alive" periodically  If Backup Load Balancer cannot receive heartbeat in the specific time, Backup Load Balancer will be Primary Load Balancer
  • 16.
    Limit of LinuxVirtual Server As a result of Layer 4 Load Balancing,  it is regard different information to distribute request to Real Server compare with Layer 7 Load Balancing. When Layer 7 Load Balancing compare with Layer 4 Load Balancing, it is more flexible than and more complex than
  • 17.
    Logical Topology Network Client192.168.1.0/24 Network DNS 10.0.0.0/8 Network Linux Virtual Server 172.16.0.0/12
  • 18.
    Requested Hardware (1/3) Real Server & Virtual Server  Lenovo ThinkCentre A63 Tower Form Factor Tower Processor AMD Athlon x 2 245, 2.90GHz, 2MB L2Cache Memory 2GB, DDR 3 1066 MHz HDD 320 GB 7200 rpm NIC Marvell Gigabit Ethernet Device DVD-ROM PCI Expree x1 2 Full Height USB 8 Warranty One year parts and labour Price $ 3,080 Quantity 6 = 1 Client + 2 VS + 2 RS + 1 Router/DNS
  • 19.
    Requested Hardware (2/3) DNS Server and Router Hardware configuration approximate Real Server & Virtual Server Need 2 connecter additionally Realtek RTL8111B Gigabit Ethernet Controller PCI Express 1.0a bus interface Crossover Detection & Auto-Correction Price $120 (estimate) Quantity 2
  • 20.
    Requested Hardware (3/3) Network devices Planet GSD-803 Switch Port Density 8 Wire speed Gigabits MAC Table Store 4K Price $ 350 Intelligent scales power based on cable length Cable Cat 5e twisted pair 100 M $300 RJ 45 connector 20 $10
  • 21.
    Project Budget Item Quantity Unit Price Lenovo ThinkCentre A63 6 $ 3,080 Realtek RTL8111B Gigabit NIC 2 $ 1,50 Planet GSD-803 Switch 1 $ 3,50 Cat 5e twisted pair 1 $ 3,00 RJ 45 connector 1 $ 10 Total $ 19,440
  • 22.
  • 23.
    Summary We using LinuxVirtual Server to implement High- Availability Web Server Cluster. To provide a high- availability, reliable, scalability, load-balancing Solution for improve efficiency, productivity.  Business can upgrade their web server without revoke original web server. In the upgrade process, without need to suspend the web service and the user would not feel the effect.  Finally, HA Web Server Cluster contributes a bit of capability to make Internet more tough