基于VMware的虚拟Linux集群搭建-lvs+keepalived

本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡。这方面的blog挺多,可是每一个人搭建集群的环境不同,遇到的问题也不同。本文简述配置的一些过程以及配置过程中遇到问题时的解决方式。

准本工作

1. 创建Linux虚拟机
本文是基于Vmare虚拟环境搭建集群的。所以首先在Vmare中创建一些虚拟机(安装一个Linux系统。其它的复制第一次安装的就可以)。本文创建4台虚拟机。网卡模式设置成桥接方式。这样能够保证虚拟机中的网络和主机IP在同一个网段。这种优点是,给每台虚拟机设完IP之后,就能够通过同一网段的还有一台主机登陆到Linux。就不用在虚拟机之间来回切换了。(Linux发行版本号为CentOS 5.5)
2. 配置yum库

若本机没有yum库,最好配置安装yum库,方便软件的安装

yum库创建基本步骤

①安装createrepo

②yum -y installl createrepo

③用createrepo创建

createrepo命令用于生成yum仓库所须要的一些基本配置信息。

详细请參考“yum库的安装于配置”

集群配置

1. 设置虚拟机IP

在Vmare虚拟机中虚拟四个Linux主机

LvsMaster:192.168.10.101

LvsBak:        192.168.10.102

RealServer1: 192.168.10.121

RealServer2: 192.168.10.122

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VveGlhb2ppZV80MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

主机之间的拓扑关系图

2. 安装ipvsadm 和 keepalived

① 分别在LvsMaster和LvsBak上安装 ipvsadm

yum -y install *ipvsadm*

下载地址:wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar

②分别在LvsMaster和LvsBak上安装 keepalived

安装依赖库:yum install -y openssl openssl-devel

下载keepalived:wget  http://www.keepalived.org/software/keepalived-1.2.6.tar.gz

tar zxvf keepalived-1.2.6.tar.gz

./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

cp /usr/local/keepalived/etc/keepalived/keepalived /etc/keepalived.conf

③ 配置 keepalived

LvsMaster配置

global_defs {

    notification_email {

      540621626@qq.com  #emial通知 

    }

    notification_email_from 540621626@qq.com

    smtp_server 192.168.200.1

    smtp_connect_timeout 30

    router_id LVS_DEVEL

}



vrrp_sync_group test {
 #设置vrrp组

group {

loadbalance

}

}

vrrp_instance loadbalance {

    state MASTER                      #设置主机类型,MASTER和BACKUP两种。必须大写 ,即太主机一台备用机

    interface eth0 #设置对外服务网卡

    virtual_router_id 51

    priority 100                                        #设置优先级。备用主机的优先级要比主机低就可以

    advert_int 1#设置同步时间间隔

    authentication {#设置验证类型和password

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {#设置虚拟ip,即浮动ip

        192.168.10.115

    }



virtual_server 192.168.10.115 80 {

    delay_loop 6 #健康检查时间间隔

    lb_algo rr#负载调度算法,默觉得轮训算法

    lb_kind DR#负载均衡转发规则,也就是IP转发规则,DR转发方式最快。可是全部机器必须在一个网段内。还有NAT和TUNEL两种转发方式

    protocol TCP



    real_server 192.168.10.121 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }



    real_server 192.168.10.122 80 {

    weight 1

TCP_CHECK {

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

}

}

}

LvsBakr配置

global_defs {

    notification_email {

     540621626@qqq.com

    }

    notification_email_from 540621626@qq.com

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

    router_id LVS_DEVEL

}



vrrp_sync_group test {

group {

loadbalance

}

}

vrrp_instance loadbalance {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.10.115

    }

}



virtual_server 192.168.10.115 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    protocol TCP



    real_server 192.168.10.121 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }



    real_server 192.168.10.122 80 {

    weight 1

TCP_CHECK {

    connect_timeout 3

    nb_get_retry 3

    delay_before_retry 3

}

    }

}

④ 启动keepalived

LvsMastrer: /etc/init.d/keepalived start

LvsBak     :  /etc/init.d/keepalived  start

查看启动状态

LvsMaster: tail -f /var/log/messages

LvsBak: tail -f /var/log/messages

用ip addr和ipvsadm查看路由情况

LvsMaster: ip addr

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VveGlhb2ppZV80MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

LvsMaster: ipvsadm

LvsBak:ip addr

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VveGlhb2ppZV80MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

LvsBak:ipvsadm

3. 设置RealServer1和RealServer2

① 编辑RealServe脚本
RealServer1和ResalServer2的脚本设置同样,都是realserver.sh,设置脚本例如以下
SNS_VIP=192.168.10.115

source /etc/rc.d/init.d/functions

case "$1" in

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

/sbin/route add -host $SNS_VIP dev lo:0

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

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $SNS_VIP >/dev/null 2>&1

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 "RealServer Stoped"

;;

*)

        echo "Usage: $0 {start|stop}"

        exit 1

 esac

 exit 0
脚本编辑完毕后启动realserver.sh


RealServer1: ./realserver.sh start
RealServer2: ./realserver.sh start
查看IP
② 在RealServer1和RealServer2上安装apache
安装
yum -y install httpd
配置
ServerName www.example.com
NameVirtualHost 192.168.10.121:80
<VirtualHost 192.168.10.121:80>

DocumentRoot /var/www/html

ServerName   www.example.com

</VirtualHost>
在 /var/www/hmtl/下加入index.html測试主页
启动apache :/etc/init.d/httpd start

4. 測试负载均衡和双机热备

用ipvsadm 查看 LvsMaster 和 LvsBak的路由情况

LvsMaster:  ipvsadm
LvsBak: ipvsadm

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VveGlhb2ppZV80MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

5. 配置过程中应注意的问题

① 配置keepalvied应注意的问题
LvsMaster和LvsBak仅仅有两处不同
state MASTER | BACKUP (主Lvs是MASTER,备用Lv是BACKUP)
priority 100 | 90      (主Lvs是100。备用LVS仅仅要小于100就可以)

② 要关闭iptables或者开启对应的服务port,否则无法通过浏览器訪问


基于VMware的虚拟Linux集群搭建-lvs+keepalived的更多相关文章

  1. Linux集群服务 LVS

    linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性 ...

  2. linux 集群及lvs

    集群及LVS 集群: 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理 价格很多服务器集中起来,提供同一种服务,在客户端看起来就像只有一个服务器 可以在付出较低成本的情况下获得在性能,可靠性 ...

  3. 大数据中Linux集群搭建与配置

    因测试需要,一共安装4台linux系统,在windows上用vm搭建. 对应4个IP为192.168.1.60.61.62.63,这里记录其中一台的搭建过程,其余的可以直接复制虚拟机,并修改相关配置即 ...

  4. 基于Hadoop2.5.0的集群搭建

    http://download.csdn.net/download/yameing/8011891 一. 规划 1.  准备安装包 JDK:http://download.oracle.com/otn ...

  5. Linux集群及LVS简介

    一.什么是集群 通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的 ...

  6. Linux集群介绍、keepalived介绍及配置高可用集群

    7月3日任务 18.1 集群介绍18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群扩展heartbeat和keepalived比较http://blo ...

  7. Linux集群搭建与Hadoop环境搭建

    今天是8月19日,距离开学还有15天,假期作业完成还是遥遥无期,看来开学之前的恶补是躲不过了 今天总结一下在Linux环境下安装Hadoop的过程,首先是对Linux环境的配置,设置主机名称,网络设置 ...

  8. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

  9. 基于DobboX的SOA服务集群搭建

    本人第一次发博客,有什么不对的地方希望各位批评指正,我就不把文章copy过来了,直接上有道笔记的链接,希望各位喜欢. 第一部分: 准备工作 第二部分: dubbox的安装和使用 第三部分: RESTf ...

随机推荐

  1. CSS3 3D旋转动画代码实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Node.js v0.10.31API手冊-控制台

    Node.js v0.10.31API手冊-文件夹 控制台 Object 用于向 stdout 和 stderr 打印字符.类似于大部分 Web 浏览器提供的 console 对象函数,在这里则是输出 ...

  3. LAMBDA表达式常用 (全)

    这里主要是将数据库中的常用操作用LAMBDA表达式重新表示了下,用法不多,但相对较常用,等有时间了还会扩展,并将查询语句及LINQ到时也一并重新整理下: 1.select语句:books.Select ...

  4. 重新想象 Windows 8 Store Apps (4) - 控件之提示控件: ProgressRing; 范围控件: ProgressBar, Slider

    原文:重新想象 Windows 8 Store Apps (4) - 控件之提示控件: ProgressRing; 范围控件: ProgressBar, Slider [源码下载] 重新想象 Wind ...

  5. Java 过滤器的作用

    Servlet API 非常久曾经就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充.在 J2EE 探索者 系列文章的最后一篇中,作者 Kyle Gabhar ...

  6. AC自己主动机 总结

    模板--参考六如家培训指南 /*===============================*\ 依照训练指南写的 \*===============================*/ #incl ...

  7. cer, pfx 创建,而且读取公钥/密钥,加解密 (C#程序实现)

    PKI技术(public key infrastructure)里面,cer文件和pfx文件是非经常见的.通常cer文件中面保存着公钥以及用户的一些信息,pfx里面则含有私钥和公钥. 用makecer ...

  8. t持久化与集群部署开发详解

    Quartz.net持久化与集群部署开发详解 序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我 ...

  9. iframe页面控制父页面跳转

    <script> window.onload=function(){   window.location.href="http://www.baidu.com";    ...

  10. 从原理角度解析Android (Java) http 文件上传

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23781773 文件上传是我们项目中经常使用的功能,一般我们的服务器可能都是web ...