VM虚拟机上 实现CentOS 6.X下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一、简介
VS/NAT原理图:

二、系统环境
实验拓扑:

1 准备工作
a) 虚拟机上安装CentOS6.x操作系统,参考一下博客内容
http://www.cnblogs.com/seesea125/archive/2012/02/25/2368255.html
b)将上一步安装上的虚拟机clone 3分,如图所示

2个LVS服务器,一个作为Master,一个作为Backup 2个真实web服务器
c)设置各个系统的网络
c-1) win7操作系统,作为外部访问LVS服务器的设备,设置VMnet1的IP地址,如图设置

c-2)在VM软件中分别设置各个CentOS6系统的网卡
c-2-1)LVS MASTER 服务器的网卡设置,需要2块网卡连接,如图所示

c-2-2)LVS Backup 服务器的网卡设置,需要2块网卡连接,如图所示

c-2-3)设置2台真实web服务器的网卡连接,需要一块网卡连接,如图所示

c-3)通过ifconfig命令,设置各个CentOS系统的网路设置
c-3-1)LVS MASTER 服务器的网路设置,如图所示,分别设置eth0为10.0.0.2 255.255.255.0,eth0:1为10.0.0.227 255.255.255.0,eth1为192.168.10.2 255.255.255.0 网关192.168.10.10
c-3-2)LVS BACKUP 服务器的网路设置,如图所示,分别设置eth0为10.0.0.3 255.255.255.0,eth0:1为10.0.0.227 255.255.255.0,eth1为192.168.10.3 255.255.255.0 网关192.168.10.10
c-3-3)2台真实web 服务器的网路设置,分别设置eth0为192.168.10.4 255.255.255.0 网关192.168.10.10和192.168.10.5 255.255.255.0 网关192.168.10.10
通过以上步骤的话,通过ping命令检验是否所有的系统之间都可以联通了。
2 安装必要的软件
a) LVS MASTER和Backup 服务器
a-1)ipvsadm 和keepalived的安装
安装之前最好查看一下系统中是否已经安装了这2个软件
命令录下 yum -y install ipvsadm 和 yum -y install keepalived
a-2) 开启路由转发
[root@CentOS-LVS_MASTER ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@CentOS-LVS_MASTER ~]# sysctl -p
a-3) 配置keepalived,如图所示
Master端的配置:
[root@CentOS6-LVS-Master rules.d]# cat /etc/keepalived/keepalived.conf
!Configuration File for keepalived global_defs {
router_id LVS_MASTER #BACKUP上修改为LVS_BACKUP
} vrrp_instance VI_1 {
state MASTER #BACKUP上修改为BACKUP
interface eth0
virtual_router_id 51
priority 100 #BACKUP上修改为80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.227
}
} vrrp_instance LAN_GATEWAY {
state MASTER #BACKUP上修改为LVS_BACKUP
interface eth1
virtual_router_id 52
priority 100 #BACKUP上修改为80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.10
}
} virtual_server 10.0.0.227 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
# persistence_timeout 5
protocol TCP real_server 192.168.10.4 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
} real_server 192.168.10.5 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
Backup端的配置:
[root@CentOS6-LVS-Backup ~]# cat /etc/keepalived/keepalived.conf
!Configuration File for keepalived global_defs {
router_id LVS_BACKUP #BACKUP上修改为LVS_BACKUP
} vrrp_instance VI_1 {
state BACKUP #BACKUP上修改为BACKUP
interface eth0
virtual_router_id 51
priority 80 #BACKUP上修改为80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.227
}
} vrrp_instance LAN_GATEWAY {
state BACKUP #BACKUP上修改为LVS_BACKUP
interface eth1
virtual_router_id 52
priority 80 #BACKUP上修改为80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.10
}
} virtual_server 10.0.0.227 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
# persistence_timeout 5
protocol TCP real_server 192.168.10.4 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
} real_server 192.168.10.5 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
a-4) 将keepalived设置为服务
chkconfig keepalived on
b) 在2台真实的web服务器分别配置HTTP
[root@WEB1 ~]# yum -y install httpd
[root@WEB1 ~]# cd /var/www/html/
[root@WEB1 html]# cat index.html
<h1>WEB1/192.168.10.4</h1>
[root@WEB1 html]# /etc/init.d/httpd start
另一台机器配置一样,过程略。
3 分别在LVS_MASTER、LVS_BACKUP上执行service keepalived start启动keepalived就可实现负载均衡及高可用集群了;
[root@CentOS-LVS_MASTER keepalived]# service keepalived start


四、测试
####高可用性测试####
模拟故障,将CentOS-LVS_MASTER上的keepalived服务停掉,然后观察CentOS-LVS_BACKUP上的日志,信息如下

从日志中可知,主机出现故障后,备机立刻检测到,此时备机变为MASTER角色,并且接管了主机的虚拟IP资源,最后将虚拟IP绑定在etho设备上。
将CentOS-LVS_MASTER 上的keepalived服务开启后,CentOS-LVS_BACKUP的日志状态。

从日志可知,备机在检测到主机重新恢复正常后,释放了虚拟IP资源重新成为BACKUP角色
####故障切换测试####
故障切换是测试当某个节点出现故障后,Keepalived监制模块是否能及时发现然后屏蔽故障节点,同时将服务器转移到正常节点来执行。
将WEB2节点服务停掉,假设这个节点出现故障,然后主、备机日志信息如下


从以上可以看出,Keepalived监控模块检测到192.168.10.5这台主机出现故障后,将WEB2从集群系统中剔除掉了。 此时访问http://10.0.0.227只能看到WEB1了)

重新启动WEB2节点的服务,日志信息如下:


Keepalived监控模块检测到192.168.10.5这台主机恢复正常后,又将此节点加入集群系统中,再次访问就可以访问到WEB2页面了)

参考文章自:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html
VM虚拟机上 实现CentOS 6.X下部署LVS(NAT)+keepalived实现高性能高可用负载均衡的更多相关文章
- VM虚拟机上 实现CentOS 6.X下部署LVS(DR)+keepalived实现高性能高可用负载均衡
一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡(转)
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡(转)
一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...
- CentOS 6.3下部署LVS(NAT模式)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- docker下用keepalived+Haproxy实现高可用负载均衡集群
启动keepalived后宿主机无法ping通用keepalived,报错: [root@localhost ~]# ping 172.18.0.15 PING () bytes of data. F ...
随机推荐
- C++设计模式---职责链模式
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿这条链传递该请求,直到有一个对象处理它为止. 这里发出这个请求的客户端并不知道这当中的哪一 ...
- Spring Boot 入门概念介绍
使用spring-boot快速开发spring应用 转 http://itindex.net/detail/49108-spring-boot-%E5%BC%80%E5%8F%91 spring多年以 ...
- Real-Rime Rendering (2) - 变换和矩阵(Translation and Matrics)
提要 在图形的计算中,比如旋转.缩放.平移.投影等操作,矩阵都扮演着极其重要的角色,它是操作图元的基本工具.虽然很多的图形API已经封装好了这些矩阵操作,但是理解这些矩阵操作的原理会非常非常有帮助,比 ...
- PreTranslateMessage作用和用法
PreTranslateMessage作用和用法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗体的消息都要通过这里,比較经常使用, ...
- Codeforces Round #258 (Div. 2)[ABCD]
Codeforces Round #258 (Div. 2)[ABCD] ACM 题目地址:Codeforces Round #258 (Div. 2) A - Game With Sticks 题意 ...
- python一些技巧
1. 使用目录管理 sys.path.append(sys.argv[0][:sys.argv[0].rfind('com'+os.sep+'abc')]) from com.abc.libs imp ...
- 9.7noip模拟试题
题目名称 日历游戏 最大公约数 密码 英文代号 calendar gcd pasuwado 输入文件名 calendar.in gcd.in pasuwado.in 输出文件名 calendar.ou ...
- C#畅谈“网络电视”
C#畅谈“网络电视” 以上是大家比较喜欢的网络电视软件,例如:PPTV,BOX央视影音,PPS等. 今天我就和大家来聊一下简单的“网络电视”.虽然和上边的软件没发比,但是正在向着这个目标努力中…… 一 ...
- angular中ueditor插件的使用
#在angularjs中使用ueditor编辑器需要注意事项: 在ui-view中使用放置ueditor的div,页面加载时编辑器在页面中是不显示的,需要通过指令手动replay 例: /** * u ...
- struts2学生信息管理系统篇章③
package com.java1234.util; public class PageUtil { //传进来四个参数,tagetUtil是跳转链接的头部,totalNum是总个数,currentP ...