linxu集羣架設——LVS

LVS框架:php

三層結構:
     網絡      (LVS--linux)      (WWW , FTP ,STML)     (GFS,OCFS2)
用戶 -- >   Director Server  ---> Real Server1
      Real Server2    --> 集羣文件系統
      Real Server3
軟件:
 瀏覽器        ipvsadm              httpd
                 ↑
   heartbeat(ldirectord) (腳本:lvsrc)
   keepalivedhtml

 

Director Server :
LVS : Linux Virtual Server 虛擬服務器,章文嵩,高吞吐量,高穩定。node

IPVS:IP負載均衡核心軟件,虛擬一個IP,維持一個Real Server路由表。
 轉發請求到Real Server,Real Server如何返回數據
 配置方法:1.ipvsadm命令
     2:第三方插件或工具如ldirectord
     3.:Redhat界面工具piranhalinux

相關技術:
一、IP負載均衡技術:
VS/NAT :Virtual Server via Network Address Translation---網絡地址轉換
        每次必須通過DR服務器。
VS/TUN :Virtual Server via IP Tunneling--- IP隧道
VS/DR:Virtual Server via Direct Routing--直接路由算法

二、負載調度算法
輪叫調度:rr(Tound Robin):1:1調度
加權輪叫調度:wrr(Werghted Round Robin)
最少鏈接調度:Least Connections
加權最少鏈接調度:Weighted Least Connectionscentos


3.高可用
heartbeat主要模塊:
  heartbeat負責檢測director server節點是否存在 ,通常經過使用廣播ping對方
       配置文件:/etc/ha.d/ha.cf
       資源文件:/etc/ha.d/haresource
       認證文件:/etc/ha.d/authkeys
  ldirectord  1.其配置文件能配置ipvs,並調用ipvsadm實現負載均衡
                2.檢測real server看是否存在,維護ipvsadm的路由表。
      配置文件:/etc/ha.d/ldirectord.cf
      日誌文件:/var/log/ldirectord.log
  stonith:(shut the other node in the head)不能檢測到心跳時,經過串口鏈接的對方的stonith設備關斷對方電源防止腦裂。(雙方的服務都在開啓同時使用資源)瀏覽器

 

keepalived
piranha:bash

 

----部署流程---服務器

*************************安裝IPVS**************************網絡

1.modprobe -l |grep ipvs  查看內核是否支持LVS的IPVS模塊
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
2.rpm -ivh ipvsadm-1.24-13.el5.x86_64.rpm
也能夠經過源碼安裝。


3.使用ipvsadm命令查看當前狀態:
ipvsadm

 

*************************heartbeart**************************

director server安裝heeatbeat

rpm包:
下載地址:pkgs.org/centos-5/centos-extras-x86_64/
heartbeat-2.1.3-3.el5.centos.x86_64.rpm
heartbeat-devel-2.1.3-3.el5.centos.x86_64.rpm
heartbeat-gui-2.1.3-3.el5.centos.x86_64.rpm
heartbeat-ldirectord-2.1.3-3.el5.centos.x86_64.rpm
heartbeat-pils-2.1.3-3.el5.centos.x86_64.rpm
heartbeat-stonith-2.1.3-3.el5.centos.x86_64.rpm
依賴包:
下載地址:rpm.pbone.net
 

 

配置heartbeat:

vi /etc/ha.d/ldirectord.cf
# Global Directives
checktimeout=20
checkinterval=10
#fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=no

# Sample for an http virtual service
virtual=192.168.12.200:80
 real=192.168.12.132:80 gate
 real=192.168.12.133:80 gate
  fallback=127.0.0.1:80 gate
 service=http
 request="index.html"
 receive="Test Page"
 scheduler=rr
 #persistent=600
 #netmask=255.255.255.255
 protocol=tcp
   checktype=negotiate
   checkport=80
  virtualhost=www.liaoyi.net


vi /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast eth1  # Linux
auto_failback on
node DR1
node DR2
ping 192.168.12.1
respawn hacluster /usr/lib/heartbeat/ipfail


vi /etc/ha.d/haresources

DR1 IPaddr::192.168.12.200/24/eth0 ldirectord

vi /etc/ha.d/authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!

 

---Real Server配置---

增長虛擬ip腳本:

#!/bin/bash
#description : Start Real Server
VIP=192.168.12.200
. /etc/rc.d/init.d/functions
case "$1" in
    start)
    echo "Start LVS of Real Server"
    /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce   
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    stop)
    /sbin/ifconfig lo:0 down
    echo "Close LVS Director Server"
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce   
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac

 

*************************keepalived***************************
director server上安裝keepalived
rpm -ivh e2fsprogs-devel-1.39-33.el5.x86_64.rpm
rpm -ivh keyutils-libs-devel-1.2-1.el5.x86_64.rpm
rpm -ivh libsepol-devel-1.15.2-3.el5.x86_64.rpm
rpm -ivh libselinux-devel-1.33.4-5.7.el5.x86_64.rpm
rpm -ivh krb5-devel-1.6.1-70.el5.x86_64.rpm
rpm -ivh zlib-devel-1.2.3-4.el5.x86_64.rpm
rpm -ivh openssl-devel-0.9.8e-22.el5.x86_64.rpm

 


*************************piranha***************************
安裝piranha:

rpm -ivh php-common-5.3.3-3.el6_2.8.x86_64.rpm rpm -ivh php-cli-5.3.3-3.el6_2.8.x86_64.rpm rpm -ivh php-5.3.3-3.el6_2.8.x86_64.rpm rpm -ivh piranha-0.8.5-19.el6.x86_64.rpm

相關文章
相關標籤/搜索