lvs(dr)+keepalived
系统:centos6.5mini
环境:
|
机器名 |
Ip地址 |
角色 |
Vip-web: 192.168.20.50 Vip-mysql: 192.168.20.60 |
|
lvs01 |
192.168.20.100 |
Lvs |
|
|
lvs02 |
192.168.20.200 |
Lvs |
|
|
Web01 |
192.168.20.10 |
Web |
|
|
Web02 |
192.168.20.20 |
Web |
|
|
Mysql01 |
192.168.20.30 |
Mysql |
|
|
Mysql02 |
192.168.20.40 |
Mysql |
注: 这个实验做的是web和mysql 负载均衡
1.各个机器关掉iptables,selinux,如下命令
[root@lvs01 ~]# service iptables stop
[root@lvs01 ~]# chkconfig iptables off
[root@lvs01 ~]# getenforce
Disabled
2.web01和web02 上安装web服务,将VIP绑定到真实服务器的网口eth0,修改sysctl.conf
[root@web01 ~]# yum install -y httpd
[root@web01 ~]# /etc/init.d/httpd restart
[root@web01 ~]# chkconfig httpd on
[root@web01 ~]# cat /var/www/html/index.html
web01
[root@web01 ~]# ip addr add 192.168.20.50/24 dev eth0
[root@web01 ~]# vi /etc/rc.d/rc.local
ip addr add 192.168.20.50/24 dev eth0
[root@web01 ~]# vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@web01 ~]# sysctl -p
[root@web02 ~]# yum install -y httpd
[root@web02 ~]# /etc/init.d/httpd restart
[root@web02 ~]# chkconfig httpd on
[root@web02 ~]# cat /var/www/html/index.html
web2
[root@web02 ~]# ip addr add 192.168.20.50/24 dev eth0
[root@web02 ~]# vi /etc/rc.d/rc.local
ip addr add 192.168.20.50/24 dev eth0
[root@web01 ~]# vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@web01 ~]# sysctl -p
3.在mysql01和mysql02上安装mysql 服务,在mysql01上创建mysql01,并且赋予用户myusr01从任何服务器登录的权限,而在mysql02上创建mysql02,并且赋予用户myusr01从任何服务器登录的权限。将VIP绑定到真实服务器的网口eth0,修改sysctl.conf。
[root@mysql01 ~]# yum install -y mysql mysql-server
[root@mysql01 mysql]# /etc/init.d/mysqld start
[root@mysql01 mysql]# chkconfig mysqld on
[root@mysql01 ~]# mysql -uroot -p
Enter password:
mysql> create database mysql01;
mysql> grant all privileges on *.* to 'myusr01'@'%' identified by '00000000' with grant option;
mysql> flush privileges;
mysql> quit;
[root@mysql01 ~]# ip addr add 192.168.20.60/24 dev eth0
[root@mysql01 ~]# vi /etc/rc.d/rc.local
ip addr add 192.168.20.60/24 dev eth0
[root@mysql01 ~]# vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@mysql01 ~]# sysctl -p
[root@mysql02 ~]# yum install -y mysql mysql-server
[root@mysql02 mysql]# /etc/init.d/mysqld start
[root@mysql02 mysql]# chkconfig mysqld on
[root@mysql02 ~]# mysql -uroot -p
Enter password:
mysql> create database mysql02;
mysql> grant all privileges on *.* to 'myusr01'@'%' identified by '00000000' with grant option;
mysql> flush privileges;
mysql> quit;
[root@mysql01 ~]# ip addr add 192.168.20.60/24 dev eth0
[root@mysql01 ~]# vi /etc/rc.d/rc.local
ip addr add 192.168.20.60/24 dev eth0
[root@mysql01 ~]# vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@mysql01 ~]# sysctl -p
4. 在lvs01和lvs02 上安装lvs+keepalived
[root@lvs01 ~]#yum install ipvsadm keepalived –y
[root@lvs02 ~]#yum install ipvsadm keepalived –y
5.Keepalived的配置
[root@lvs01 ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int 1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.20.50
}
}
vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id
priority
advert_int 1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.20.60
}
}
virtual_server 192.168.20.50 80{
delay_loop 6 #健康检查时间间隔,单位s
lb_algo rr #负载均衡调度算法设置为加权轮叫
lb_kind DR # LVS工作机制,这里是DR模式
nat_mask 255.255.255.0 #网络掩码,DR模式要保障真是服务器和lvs在同一网段
persistence_timeout 0 #会话保持时间,单位s,测试时数值尽量小一点,轮询结果明显。
protocol TCP #协议
real_server 192.168.20.10 80{ #设定真实服务器地址以及端口,
weight 1 # 设置权重,数字越低,调度的比例越小。
}
real_server 192.168.20.20 80{
weight 1
}
}
virtual_server 192.168.20.60 3306{
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.20.30 3306{
weight 1
}
real_server 192.168.20.40 3306{
weight 1
}
}
[root@lvs01 ~]# /etc/init.d/keepalived restart
[root@lvs02 ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs02
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id
priority
advert_int 1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.20.50
}
}
vrrp_instance VI_2 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int 1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.20.60
}
}
virtual_server 192.168.20.50 80{
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.20.10 80{
weight 1
}
real_server 192.168.20.20 80{
weight 1
}
}
virtual_server 192.168.20.60 3306{
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.20.30 3306{
weight 1
}
real_server 192.168.20.40 3306{
weight 1
}
}
[root@lvs02 ~]# /etc/init.d/keepalived restart
(注意:lvs+keepalived这是一种双主模式,注意route_id的不同,优先级,主备之分)
6.查看vip
[root@lvs01 ~]# ip addr list

[root@lvs02 ~]# ip addr list

7.验证web集群
7.1正常测试,可以看到的是通过vip 访问,可以以轮询的方式将客户的请求发送到web服务器上


7.2 当lvs01 down机了,可以看到vip 漂移到lvs02上,依然可以正常访问web服务
[root@lvs02 ~]# ip addr list


8.验证mysql集群
8.1 正常测试,可以看到的是通过vip 访问,可以以轮询的方式将客户的请求发送到mysql服务器上
[root@lvs01 ~]# mysql -h 192.168.20.60 -umyusr01 -p00000000 -e 'show databases'

[root@lvs01 ~]# mysql -h 192.168.20.60 -umyusr01 -p00000000 -e 'show databases'

8.2 当lvs02 down机了,vip 会飘到lvs01 上,mysql 服务依然可以正常服务
[root@lvs01 ~]# ip addr list

[root@lvs01 ~]# mysql -h 192.168.20.60 -umyusr01 -p00000000 -e 'show databases'


9.查看lvs

lvs(dr)+keepalived的更多相关文章
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- lvs/dr+keepalived搭建成功后,开启防火墙,虚拟IP不能访问,但是真实IP却可以访问
lvs/dr+keepalived搭建成功后,开启防火墙,虚拟IP不能访问,但是真实IP却可以访问,如果关闭防火墙虚拟IP就可以访问网站了,这个问题肯定是防火墙在作怪. 经过这两的不懈奋斗和大家的帮助 ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- Linux下部署LVS(DR)+keepalived+Nginx负载均衡
架构部署 LVS/keepalived(master):192.168.21.3 LVS/keepalived(Slave):192.168.21.6 Nginx1:192.168.21.4 N ...
- 虚拟机 搭建LVS + DR + keepalived 高可用负载均衡
一:环境说明: LVS-DR-Master: 10.3.0.82 LVS-DR-Backup: 10.3.0.70 VIP: 10.3.0.60 ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡(转)
一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. ...
- VM虚拟机上 实现CentOS 6.X下部署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 ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
随机推荐
- R语言︱关联规则+时间因素=序贯关联规则
序贯模型=关联规则+时间因素. 了解这个模型可以参考李明老师的<R语言与网站分析 [李明著][机械工业出版社][2014.04][446页]>,第九章,第二节的"序列模型关联分析 ...
- 判断一个jquery对象是否为空
今天用jquery $获取一个jquery对象.$("#id") 然后用判断这个对象是否存在,id不存在的时候,判断这个是否存在, if($("#id")) 始 ...
- faultString = "java.lang.NullPointerException : null"
1.错误描述 (mx.messaging.messages::ErrorMessage)#0 body = (null) clientId = "E75F6AF8-5E0E-4184-3AF ...
- JavaScript总结-网页上显示时间
网页上显示时间 代码如下: <TABLE> <TR> <TD><span id="localtime"></span> ...
- javaWeb学习之页面js树
常用方法add(parameters):添加节点信息 Index Name Type Discription 1 id Number 当前节点的ID 2 preId Number 当前节点的父节点ID ...
- jquery回调函数的一个案例
1.引言 今天在学习<jQuery基础教程>在学习编写插件的时候,书中说利用回调函数来当参数,会极大的提高程序的灵活性.对回调函数很陌生.研究了一下给的示例程序.感觉对回调函数有了基本的了 ...
- C# 程序员最常犯的 10 个错误(转)
关于C#关于本文常见错误 #1:把引用当做值来用,或者反过来常见错误 #2:误会未初始化变量的默认值常见错误 #3:使用不恰当或未指定的方法比较字符串常见错误 #4:使用迭代式 (而不是声明式)的语句 ...
- Keras FAQ: 常见问题解答
Keras官方中文版文档 如何引用 Keras? 如何在 GPU 上运行 Keras? 如何在多 GPU 上运行 Keras 模型? "sample", "batch&q ...
- I2C总线协议的软件模拟实现方法
I2C总线协议的软件模拟实现方法 在上一篇博客中已经讲过I2C总线通信协议,本文讲述I2C总线协议的软件模拟实现方法. 1. 简述 所谓的I2C总线协议的软件模拟实现方法,就是用软件控制GPIO的输入 ...
- Asp.net mvc 5 razor
一开始学习dotnet的web项目是Asp.net webform,完全不理解项目为什么要这样设计,就简单的使用ajax调用后台的代码不好吗?为什么还要搞一些什么代码后置的东东. 还有就是有各种加载问 ...