基于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. windows phone 获取手机图片库中图片(4)

    原文:windows phone 获取手机图片库中图片(4) 前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库): 版本7.1 获取手机图片库图片的两种方式: ...

  2. HDU 1171 Big Event in HDU (多重背包)

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. 使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表

    原文:使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表 我们知道目标平台是32位的程序运行在64位的系统上,去访问部分注册表的时候系统自动重定向到win32node节点对应的 ...

  4. 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

    原文:挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自 ...

  5. CLR Profile解决内存占用过高

    CLR Profile解决内存占用过高的问题 炮哥:"嘿,哥们,忙啥呢,电脑卡成这逼样." 勇哥:"在用CLR Profile工具分析下FlexiPrint的内存占用情况 ...

  6. 位图像素的颜色 携程编程大赛hdu

    位图像素的颜色 Time Limit: 2000/1000 MS (Java/Others)    MemoryLimit: 32768/32768 K (Java/Others) Total Sub ...

  7. JTree demo

    JFrame居中方法一:   setLocationRelativeTo(null); 注意:必须在整个frame初始化完成后再加上此语句,否则将显示在屏幕右下角 方法二: private Dimen ...

  8. 3、Spring4之Bean 配置的细节

    1). 若字面值中包括特殊字符,则能够使用 value 节点的 <![CDATA[]]> 把字面值包裹起来.      <constructor-arg>           ...

  9. Oracle基于学习3--Oracle创建用户和授权

    Oracleserver端的操作,如以下一般: 1)       安装Oracleserver软件 2)       创建数据库(安装时自己主动创建) 3)       配置监听(安装时自己主动配置) ...

  10. OWIN编写中间件

    OWIN系列之自己动手编写中间件 一.前言 1.基于OWIN的项目摆脱System.Web束缚脱颖而出,轻量级+跨平台,使得ASP.NET应用程序只需依赖这个抽象接口,不用关心所运行的Web服务器. ...