Linux负载均衡概念与实践(二)
构建实践LVS+Keepalived实现负载均衡
keepalived概述
1.keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能——判断LVS负载调度器,节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
2.keepalived的热备原理概述 keepalived采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——有多台路由组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务 ,其他路由器处于冗余状态,若当前在线路由器失败,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。热备组内的每台路由器都有可能成为主路由器,虚拟路由器的IP地址可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用keepalived时,漂移地址的实现不需要手动建立虚接口配置文件,而是由keepalived根据配置文件自动管理。
结构总览(图像来自网络)
1、环境说明
系统版本:ubuntu14.04 LTS
LVS服务器:192.168.1.107,192.168.1.105
真实服务器(Real Server):192.168.1.106,192.168.1.107,192.168.1.108
VIP:192.168.1.70
部署目的:
用户请求192.168.1.70的报文转发至其它3个IP台机器,没一台机器配置的都是静态IP 106,107,108已经部署了apache2,监听8888端口,提供相同服务.
LVS搭建在105,107上面,107为主,105为备
2.Real Server上配置VIP的监听
分别在Real Server上执行一下脚本root权限执行
vim rs.sh
#!/bin/bash
SNS_VIP=192.168.1.70
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/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 /sbin/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
保存该脚本,然后执行.(要有执行权限)
./rs.sh start
3.LVS配置主从
安装keeplived软件包
apt-get install keepalived
sudo vim /etc/keepalived/keepalived.conf
globel_defs{
notification_email{
yangqingbin@gfan.com #指定keepalived在切换时需要发送到的email对象,一行一个
}
notification_email_from sns_lvs@gmail.com #指定发件人 smtp_server
127.0.0.1 #指定SMTP服务器地址
smtp_connection_timeout 30 #指定SMTP连接超时时间
router_id easyfun-107 #设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1{
state MASTER #指定keepalived的角色,MASTER为主,SLAVE为从,BACKUP为备
interface eth0 #设置实例绑定到那个网卡
virtual_router_id 51 #VRID标记(0~255),主备要保持相同
priority 150 #优先级,MASTER要高于BACKUP的优先级(至少50)
advert_int 1 #检查间隔时间,默认1秒
authentication {
auth_type PASS #指定要使用那一种认证(PASS|AH)
auth_pass 123456 #指定要使用的密码字符串
}
virtual_ipaddress {
192.168.1.70 #定义虚拟IP(VIP),可多设,每行-个
}
}
#定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.1.70 8888 {
delay_loop 1 #设置健康检测时间,单位为秒
lb_algo wrr #设置LVS调度的算法rr|wrr|lc|wlc|lblc|lblcr|sh|dh
lb_kind DR #设置LVS实现负载的机制,(NAT|TUN|DR)三个模式
nat_mask 255.255.255.0
persistence_timeout 60 #会话保持时间
protocol TCP #使用的协议
real_server 192.168.1.106 8888 { #指定real_server1的ip地址
weight 3 #配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout 10 #连接远程真实服务器超时时间(秒)
nb_get_retry 3 #最大重试次数
delay_before_retry 3 #连续两次重试的延迟时间(秒)
connect_port 8888 #健康检查的端口
}
}
real_server 192.168.1.108 8888 { #指定real_server2的ip地址
weight 3 #配置节点权重
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 8888
}
}
real_server 192.168.1.107 8888 { #指定real_server2的ip地址
weight 3 #配置节点权重
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 8888
}
}
}
保存退出,
开启keepalived服务
service keepalived start
查看状态 ipvsadm -L -n
配置LVS从服务器(另一台LVS)
apt-get install keepalived
从服务器的配置和主服务器大致相同,要在keepalived.conf中修改两处 将state 由 MASTER改为BACKUP
将priority由150改成100
sudo vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP # 这里改为BACKUP
interface eth1
virtual_router_id 51
priority 100 # 这里改为100,master优先级是150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.70
}
}
保存退出,
开启keepalived服务
service keepalived start
查看状态 ipvsadm -L -n
4.验证负载均衡主从切换,以及模拟真实服务器down掉相应服务,查看ipvsadm的状态 ipvsadm -L c
Linux负载均衡概念与实践(二)的更多相关文章
- Linux负载均衡概念与实践(一)
根据网上文章整理. 负载均衡软件LVS(Linux Virtual Server)概念篇 lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡.它是基于linux内核实现的.2 ...
- Linux负载均衡软件LVS之二(安装篇)[转]
Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...
- Linux负载均衡软件LVS之二(安装篇)
一. 安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务I ...
- (转)Linux负载均衡软件LVS之一(概念篇)
转:http://ixdba.blog.51cto.com/2895551/552947 Linux负载均衡软件LVS之二(安装篇):http://ixdba.blog.51cto.com/28955 ...
- Linux负载均衡软件LVS简介
Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...
- 搞懂分布式技术9:Nginx负载均衡原理与实践
搞懂分布式技术9:Nginx负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容, ...
- nginx负载均衡集群(二)
nginx负载均衡配置实战 一.配置基于域名虚拟主机的web节点 web02和web01做同样的操作,nginx配置文件如下: [root@web01 conf]# cat nginx.conf wo ...
- linux负载均衡(什么是负载均衡)
linux负载均衡(什么是负载均衡) 一.总结 一句话总结: 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...
- Centos7 nginx的负载均衡概念与配置
一.负载均衡概念 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单 ...
随机推荐
- Java登陆测试
package test001; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOEx ...
- Aizu 2302 On or Off dfs/贪心
On or Off Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...
- C# 创建、安装和卸载Windows服务程序
1.新建一个windows服务程序. 2.点击这个服务类,从工具箱中加入一个Timer控件,右键这个Timer控件 命名为 timerOrderDeductionDetailJob,Enable设为T ...
- 征服 Nginx + Tomcat
2年前一直折腾Apache,现如今更习惯Nginx. 搭建网站又遇到2年前遇到的问题——Session同步. (参考我以前的帖子——征服 Apache + Tomcat)只不过现今担当负载均衡的Apa ...
- Web应用Word生成
前段时间接到一个Web应用自己主动生成Word的需求,现整理了下一些关键步骤拿来分享一下. 思路:(注:这里仅仅针对WORD2003版本号.其他版本号大同小异.) 由于WORD文件内部的数据及格式等是 ...
- [原创]oracle 顺序号生成函数。仿Sequence
问题提出自项目中的老代码:一个Bill表,存储所有的表单信息,比如:员工入职单,离职单等等.(别喷,我知道要分多个表.但领导的意愿你是没办法违背的)表单的单据号是以四个字母+年月日+数字顺序号来表示. ...
- QSqlQueryModel的实例操作
QSqlQueryModel类为SQL的结果集提供了一个只读的数据模型,下面我们先利用这个类进行一个最简单的操作. 我们新建Qt4 Gui Application工程,我这里工程名为queryMode ...
- Dubbo架构设计详解--转载
原文地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...
- iOS之设置状态栏颜色
状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent 一.在info.plist中,将View contro ...
- INSTALLING QUARTUS II V.13.1 64 BIT ON RHEL/CENTOS 6 64 BIT
http://www.digitalsolutionslab.com/installing-quartus-ii-v-13-1-64-bit-on-rhelcentos-6-64-bit/ I hav ...