LVS
LVS

• karnel 2.6.18 (rebuild)
 • Virtual Machine
• IPVS 1.2.1
• ipvsadm 1.24
• keepalived 1.1.9
LVS
FW




Web

      LVS



App

      LVS



DB
LVS (FW-Web)
•   Direct Routing(DR)
•   MASTER/BACKUP            LVS

    •
    •
•   Real server   Apache ×

    •                          wget
LVS(Web-APP)
•   Direct Routing(DR)
•   MASTER/BACKAP            LVS

    •   Rails

    •   mod_proxy_balancer          Virtual IP

•   Real server   Passenger ×

    •   Rails                      wget

    •                        URL
keepalived
•
    •
    • configtest
      • BACKUP    reload
       →MASTER        diff
keepalived
•
    •   Real server
        Include

        •
        •                 →reload Real server
                      /
keepalived
•
    •   ipvsadm

        •   reload

    •   inhibit_on_failure

        •                    (weight=0)
            reload
keepalived
•
    •   Weighted round-robin(wrr)

        •   Real server



        •   Weighted least connection(wlc)
                   Real server
keepalived

•
    •   MISC_CHECK + wget

    •             Real server

    •   HTTP_GET

        •   nb_get_retry
keepalived
•
    • keepalived 1.1.8      MISC_CHECK
                     weight

    • keepalived 1.1.9   rpmspec
                    1.1.8
•            LVS ActConn InActConn
    60,000    70,000

    •
    • Connection Hash Table Size
•               munin

    • Packet per sec
    • Byte per sec
    • Connection
    • Weight
•        Real server

‣        arp announce/arp ignore

‣
    iptables
•   keepalived reload

‣                       reload



    •
    •   vrrp

‣              weight    reload
•   Real server

‣           Real server loopback interface



‣           iptables
         iptablse        puppet
•   Real server

‣            Virtual service

    •   DR        Virtual service

‣            Virtual service Real server



    •   Howto        iptables

        http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-
        HOWTO.rewrite_ports.html#re-mapping_ports_with_iptables
•   mod_proxy_balancer



‣           retry

    •

‣           retry 0

    •   BalancerMember ... retry=0

クックパッドのLVSについて

  • 1.
  • 2.
    LVS • karnel 2.6.18(rebuild) • Virtual Machine • IPVS 1.2.1 • ipvsadm 1.24 • keepalived 1.1.9
  • 3.
    LVS FW Web LVS App LVS DB
  • 4.
    LVS (FW-Web) • Direct Routing(DR) • MASTER/BACKUP LVS • • • Real server Apache × • wget
  • 5.
    LVS(Web-APP) • Direct Routing(DR) • MASTER/BACKAP LVS • Rails • mod_proxy_balancer Virtual IP • Real server Passenger × • Rails wget • URL
  • 6.
    keepalived • • • configtest • BACKUP reload →MASTER diff
  • 7.
    keepalived • • Real server Include • • →reload Real server /
  • 8.
    keepalived • • ipvsadm • reload • inhibit_on_failure • (weight=0) reload
  • 9.
    keepalived • • Weighted round-robin(wrr) • Real server • Weighted least connection(wlc) Real server
  • 10.
    keepalived • • MISC_CHECK + wget • Real server • HTTP_GET • nb_get_retry
  • 11.
    keepalived • • keepalived 1.1.8 MISC_CHECK weight • keepalived 1.1.9 rpmspec 1.1.8
  • 12.
    LVS ActConn InActConn 60,000 70,000 • • Connection Hash Table Size
  • 13.
    munin • Packet per sec • Byte per sec • Connection • Weight
  • 14.
    Real server ‣ arp announce/arp ignore ‣ iptables
  • 15.
    keepalived reload ‣ reload • • vrrp ‣ weight reload
  • 16.
    Real server ‣ Real server loopback interface ‣ iptables iptablse puppet
  • 17.
    Real server ‣ Virtual service • DR Virtual service ‣ Virtual service Real server • Howto iptables http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS- HOWTO.rewrite_ports.html#re-mapping_ports_with_iptables
  • 18.
    mod_proxy_balancer ‣ retry • ‣ retry 0 • BalancerMember ... retry=0