目前分類:ha (10)

瀏覽方式: 標題列表 簡短摘要

引用網址:http://www.gegugu.com/2016/08/23/14097.html

一、集群基礎

1、系統的擴展方式
  • scale up向上擴展:提高單臺伺服器的姓能
  • scale out向外擴展:多臺伺服器聯合起來滿足同一個需要
2、集群類型
  • LB :load balancing,負載均衡集群,通過橫向擴展提高系統姓能

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

! Configuration File for keepalived

global_defs {

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

引用網址:http://www.server110.com/nginx/201309/1311.html

CentOS系统中配置Nginx+keepalived高可用负载均衡集群

首先理解上图:一个高访问量的站点(每天100万PV),可以使用以上的服务器组成配置。该站点总共由7台服务器组成,图片文件服务器负责整个站点的图片存储(当然高访问量的站点当然需要cnd图片加速了),两台数据库服务器形成主从备份保证了数据运算的速度,同时保证了当其中一台服务器宕机后,还有一台数据库服务器保证系统的运行,两台web服务器保证了系统的快速响应请求,同时其中一台web服务器宕机后还有一个web服务器提供服务。两台nginx代理服务负责转发用户的请求,问题是,两台nginx有两个ip,怎么才能保证一台nginx服务器宕机后,另一台服务器自动接手服务呢?keepalived提供的VRRP虚拟路由服务就可以解决这个问题。 

一、安装必要的软件包,以保证nginx和keepalived能安装:
yum -y install gcc gcc-c++ make
yum -y install wget                                                                           #安装下载工具
yum -y install pcre-devel                                                                 #安装nginx的依赖软件包
yum -y install openssl-devel                                                            #安装keepalived依赖软件包
yum -y install popt-devel               #安装keepalived依赖软件包

二、安装nginx
wget http://nginx.org/download/nginx-1.2.8.tar.gz         #下载nginx
tar -zxf nginx-1.2.8.tar.gz            #解压nginx
cd nginx-1.2.8
groupadd www                          #添加www用户组
useradd -g www www                #新添加www用户,且用户组隶属于www用户组
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install               #编译,--with-http_stub_status_module --with-http_ssl_module这两个模块必须开启
编写nginx启动脚本
cat /etc/init.d/nginx
#!/bin/bash
#
# chkconfig: - 85 15
# description: Nginx is a World Wide Web server.
# processname: nginx
nginx=/usr/local/nginx/sbin/nginx   #nginx执行路径
conf=/usr/local/nginx/conf/nginx.conf    #nginx配置文件路径
case \$1 in
start)
    echo -n "Starting Nginx"
    \$nginx -c \$conf
    echo " done"
    ;;
stop)
    echo -n "Stopping Nginx"
    killall -9 nginx
    echo " done"
    ;;
test)
    \$nginx -t -c \$conf
    ;;
reload)
    echo -n "Reloading Nginx"
    ps auxww | grep nginx | grep master | awk '{print \$2}' | xargs kill -HUP
    echo " done"
    ;;
restart)
    killall -9 nginx
    echo -n "Stopping Nginx"
    \$nginx -c \$conf
    echo -n "Starting Nginx"
    echo " done"
    ;;
show)
    ps -aux|grep nginx
    ;;
*)
    echo -n "Usage: \$0 {start|restart|reload|stop|test|show}"
    ;;
esac
EOF
chmod +x /etc/init.d/nginx
service nginx start
chkconfig nginx on
service nginx start
在浏览器浏览你的nginx看看是否启动。 

三、安装keepalived-1.2.0
wget http://keepalived.org/software/keepalived-1.2.0.tar.gz
tar -zxf keepalived-1.2.0.tar.gz
cd keepalived-1.2.0
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ 
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ 
mkdir /etc/keepalived
编写keepalived的配置
cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script chk_http_port {
    script "/etc/keepalived/nginx_pid.sh"    #nginx监控脚本路径,改脚本可以把死掉的nginx进程重新启动。
    interval 2
    weight 2
}
global_defs {
        router_id LVS_DEVEL
}
vrrp_instance VI_1 {
        state MASTER           #状态,位主,从机使用BACKUP
        interface eth0            #把那块网卡映射寻ip
        virtual_router_id 51   #虚拟路由id号,这个和从keepalived机子一样。
        priority 100    #权重,那个权重高,那个就是主的,所以MASTER的权重必须高于BACKUP
        advert_int 1
        authentication {
auth_type   PASS                #主从机子通信的加密方式,两台必须一样
auth_pass 123456                #主从机子通信的加密密码,两台必须一样
        }
track_script {
    chk_http_port                #监控脚本,chk_http_port对应的是第3行的vrrp_script chk_http_port,
}
virtual_ipaddress {
    192.168.1.250               #虚拟IP
}
EOF
service keepalived start
ip addr 看看是否有以下内容:如果内看到以下内容就表明你keepalived配置正确了,然后你用192.168.137.120这个虚拟ip是否和192.168.137.110这个ip看到的是一样的,如果是一样就表明可以了

centos6.4安装nginx+keepalived实现负载均衡 - 无所谓 - 无所谓了嘛

编写nginx的监控脚本:
cat /etc/keepalived/nginx_pid.sh
#!/bin/bash
while  :
do
    nginxpid=`ps -C nginx --no-header | wc -l`
    if [ $nginxpid -eq 0 ];then
/usr/local/nginx/sbin/nginx
        sleep 5
        if [ $nginxpid -eq 0 ];then
/etc/init.d/keepalived stop
        fi
    fi
    sleep 5 
done
EOF

四、经过以上的配置,虚拟路由是可以启动了,当主虚拟路由机宕机后,从虚拟路由机后接手。下面来配置nginx的转发代理。
nginx的配置如下:
user www www;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid       logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
client_max_body_size        300m;
sendfile                         on;
tcp_nopush                 on;
fastcgi_connect_timeout        300;
fastcgi_send_timeout        300;
fastcgi_read_timeout        300;
fastcgi_temp_file_write_size 128k;
keepalive_timeout          90;
tcp_nodelay                          on;
server_tokens                          off;
gzip                  on;
gzip_min_length        1k;
gzip_http_version                 1.1;
gzip_comp_level                2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary               on;
include vhost/*.conf; 
}

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

引用網址:http://showerlee.blog.51cto.com/2047005/1188549

系统环境:CentOS 6.3 x64
文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

引用網址:http://lansgg.blog.51cto.com/5675165/1212859

本文Centos6.0

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

  • Feb 26 Fri 2016 10:44
  • VRRP

引用網址:http://baike.baidu.com/view/876125.htm

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

  • Feb 26 Fri 2016 10:42
  • VRRP

引用網址: http://tavi.debian.org.tw/index.php?page=VRRP

VRRP的全名為Virtual Router Redundancy Protocol,中文名稱可以翻為"虛擬路由器備援協定"。

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

  • Feb 26 Fri 2016 10:38
  • VRRP

引用網址:http://fantasymew.pixnet.net/blog/post/23939888-%E7%B6%B2%E9%9A%9B%E7%B6%B2%E8%B7%AF%E5%BF%83%E5%BE%97(3)vrrp

VRRP

全名為 Virtual Router Redundancy Protocol (虛擬路由器備援協定)

定義在 RFC 2338 和 3768 中 (3768 為 2338 的更新修正版)

而在瞭解 VRRP 的原理之前,先來看看 VRRP 的封包


(一)VRRP封包格式

以下是 RFC 3768 中所定義出來 VRRP 封包的格式

VRRP封包格式 

然後再來看看 VRRP 的封包有哪些特色


首先先看 L2 的 Frame

VRRP 的封包第二層的資料只包含了 Source MAC address 和 Destination MAC address

VRRP封包的L2 

VRRP 中來源 MAC 位址格式必須為 00-00-5E-00-01-XX

其中 XX 為虛擬路由器的編號(Virtual Router Identifier,簡寫為VRID)


其次是 L3 的 Packet

VRRP封包的L3 

目的 IP 位址必須是群播位址 240.0.0.18

TTL 則必須設定為 255 ,否則會被丟棄

IP 的上一層是 VRRP ,故 Protocol 欄位數值是 112 (0x70 in 16進位)


最後來到最上層

VRRP封包的L4 

在 RFC 3768 中有詳細說明各欄位的意義,在此不贅述

其中要特別注意到的是 Priority 欄位

這個欄位說明了 sending VRRP router 的優先權,值愈大優先權愈大

但是當此欄位為 0 時有特別意義

代表 the current Master has stopped participating in VRRP

也就是說現在要有 Backup router 必須被選為下一個 Master

而不用等現在的 Master timeout 才去選


(二)VRRP基本原理

我們網路上有許多路由器(Router)

跑著不同的路由協定(Routing Protocol)

其中跑著 VRRP 的 router 我們稱為 VRRP router

而一個虛擬路由器(Virtual Router)可以說是一群 VRRP router 的組合

因為實際運作的路由器是這些路由器中的 master,所以才說這一群是「一個」虛擬路由器

此外, virtual router 有一個辨識號碼(VRID)和一組相關聯的 IP 位址

因此可以說同一個 virtual router 底下的 VRRP router 都具有相同的 VRID,稱它們為同一 group

那 VRRP 是幹什麼的呢?

剛說 virtual router 底下有很多 VRRP router

VRRP 就是在選其中一個 router 作為 master

剩餘的則成為 backup

若是 master 掛掉了,則從 backup 中依優先權再選出一個 master

其實可以再進一步看

VRRP 封包格式中有一欄位叫做 Adver Int(Advertisement Interval)

預設為一秒,此欄是用來判斷是否該有 backup 起來作為 master 的判斷因素之一


最後做個小結

VRRP 是用在 static default routed environment(靜態預設路由環境)

其功用在於避免 single point of failure(單點故障)

最大優點是可以不用在每個 end-host 作 dynamic routing 或 router discovery protocol 的組態設定

而有高可得性的預設路徑(high availability default path)



以上為個人「簡單」心得,有誤不吝指教

參考資料:
http://www.faqs.org/rfcs/rfc3768.html
http://tavi.debian.org.tw/index.php?page=VRRP
http://www.networksorcery.com/enp/protocol/vrrp.htm
http://en.wikipedia.org/wiki/Virtual_Router_Redundancy_Protocol

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

引用網址:http://www.zdh1909.com/html/Cisco/16334.html

HSRP与VRRP的差别:

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()

引用網址:http://zxy527.blog.51cto.com/132376/1094110

VRRP全称是虚拟路由器冗余协议(Virtual Router Redundancy Protocol),这个协议主要是为了做双机,将两台路由器虚拟成一台。主虚拟路由器:该VRRP路由器将承担下列任务:转发那些寻址到与虚拟路由器关联的IP地址的数据包,应答对该IP地址的ARP请求。注意,如果存在IP地址所有者,那么该所有者总是主虚拟路由器。备份虚拟路由器:一组可用的VRRP路由器,当主虚拟路由器失效后将承担主虚拟路由器的转发功能。

文章標籤

龍之家族 發表在 痞客邦 留言(0) 人氣()