用 KVM 搭建web集群实验笔记 - LVS和Keeplived负载均衡(DR模式)
2016-09-17 01:19
666 查看
LVS和Keeplived负载均衡(DR模式)
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS项目介绍http://www.linuxvirtualserver.org/zh/lvs1.html。
LVS有三种模式:NAT模式、IP隧道模式(VS-TUN)和直接路由模式(VS-DR),本实验只是涉及直接路由模式。
keepalived是集群管理中保证集群高可用的一个服务软件,简而言之,它的主要功能检查后端服务器 ( real server)的健康情况,如后端服务器出现故障,则将它隔离,恢复后将它加入。keepalived运行在 LVS之上,提高系统的可用性。
负载均衡主服务器 ipvs01 192.168.122.21
负载均衡备服务器 ipvs02 192.168.122.22
web服务器1 web01 192.168.122.26
web服务器2 web02 192.168.122.27
虚拟IP vip 192.168.122.20
1. 软件安装
centOS6.6可直接用yum 安装这两个软件
在ipvs01和ipvs02上安装,未特殊说明的部分,表示两台机器都要安装,且安装配置完全一样。
检查ipvsadm配置
用yum安装的ipvsadm有一个/etc/init.d/ipvsadm脚本,可以用service命令来启停,可以用chkconfig命令设置自启动,
用yum安装的keepalived有一个/etc/init.d/keepalived脚本,可以用service命令来启停,可以用chkconfig命令设置自启动,
chkconfig ipvsadm on
chkconfig keepalived on
检查
编辑文件
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
保存文件,执行命令,使之生效。
sysctl -p
用命令检查,返回1表示开启的路由转发
cat /proc/sys/net/ipv4/ip_forward
3.配置ipvs01和ipvs02
ipvs01为主机,在ipvs01配置/etc/keepalived/keepalived.conf
其中persistence_timeout会影响到轮询,在这个时间总是分发到同一台机器。
4.配置web01和web02(realserver)
编辑/etc/init.d/realserver文件,用chmod +x /etc/init.d/realserver 设置可执行权限 用chkconfig realserver on 设置自启动
#!/bin/bash
#chkconfig: 2345 79 20
#description:realserver
SNS_VIP=192.168.122.20
. /etc/init.d/functions
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
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
用yum install httpd 和 yum install php 安装 apache和php
在web01编辑文件 /var/www/html/index.php
[root@web01 html]# more index.php
<?php
echo "===========================</br>";
echo " This is web01.</br>";
echo "============================</br>";
echo "</br>";
//phpinfo();
?>
[root@web01 html]#
在web02编辑文件 /var/www/html/index.php
[root@web02 html]# more index.php
<?php
echo "===========================</br>";
echo " This is web02.</br>";
echo "============================</br>";
echo "</br>";
//phpinfo();
?>
[root@web02 html]#
在浏览输入http://192.168.122.20进行验证。注意参数persistence_timeout的影响,开始以为不轮询分配,原来是两次刷新浏览器的时间小于persistence_timeout。
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS项目介绍http://www.linuxvirtualserver.org/zh/lvs1.html。
LVS有三种模式:NAT模式、IP隧道模式(VS-TUN)和直接路由模式(VS-DR),本实验只是涉及直接路由模式。
keepalived是集群管理中保证集群高可用的一个服务软件,简而言之,它的主要功能检查后端服务器 ( real server)的健康情况,如后端服务器出现故障,则将它隔离,恢复后将它加入。keepalived运行在 LVS之上,提高系统的可用性。
负载均衡主服务器 ipvs01 192.168.122.21
负载均衡备服务器 ipvs02 192.168.122.22
web服务器1 web01 192.168.122.26
web服务器2 web02 192.168.122.27
虚拟IP vip 192.168.122.20
1. 软件安装
centOS6.6可直接用yum 安装这两个软件
在ipvs01和ipvs02上安装,未特殊说明的部分,表示两台机器都要安装,且安装配置完全一样。
yum -y install ipvsadm yum install keepalived
检查ipvsadm配置
[root@ipvs01 keepalived]# modprobe -l|grep ipvs kernel/net/netfilter/ipvs/ip_vs.ko kernel/net/netfilter/ipvs/ip_vs_rr.ko kernel/net/netfilter/ipvs/ip_vs_wrr.ko kernel/net/netfilter/ipvs/ip_vs_lc.ko kernel/net/netfilter/ipvs/ip_vs_wlc.ko kernel/net/netfilter/ipvs/ip_vs_lblc.ko kernel/net/netfilter/ipvs/ip_vs_lblcr.ko kernel/net/netfilter/ipvs/ip_vs_dh.ko kernel/net/netfilter/ipvs/ip_vs_sh.ko kernel/net/netfilter/ipvs/ip_vs_sed.ko kernel/net/netfilter/ipvs/ip_vs_nq.ko kernel/net/netfilter/ipvs/ip_vs_ftp.ko kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
用yum安装的ipvsadm有一个/etc/init.d/ipvsadm脚本,可以用service命令来启停,可以用chkconfig命令设置自启动,
用yum安装的keepalived有一个/etc/init.d/keepalived脚本,可以用service命令来启停,可以用chkconfig命令设置自启动,
chkconfig ipvsadm on
chkconfig keepalived on
检查
[root@ipvs01 init.d]# chkconfig --list |grep -E 'ipvsadm|keepalived' ipvsadm 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭 keepalived 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 [root@ipvs01 init.d]#2. 开启路由转发
编辑文件
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
保存文件,执行命令,使之生效。
sysctl -p
用命令检查,返回1表示开启的路由转发
cat /proc/sys/net/ipv4/ip_forward
3.配置ipvs01和ipvs02
ipvs01为主机,在ipvs01配置/etc/keepalived/keepalived.conf
其中persistence_timeout会影响到轮询,在这个时间总是分发到同一台机器。
[root@ipvs01 keepalived]# pwd /etc/keepalived [root@ipvs01 keepalived]# more keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@testing.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_MASTER } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.122.20 } } virtual_server 192.168.122.20 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.122.26 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.122.27 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }在备机ipvs02上配置/etc/keepalived/keepalived.conf, 其中router_id在要唯一, state为BACKUP,priority 不一样略小,其他相同配置。
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_SLAVE } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.122.20 } }
4.配置web01和web02(realserver)
编辑/etc/init.d/realserver文件,用chmod +x /etc/init.d/realserver 设置可执行权限 用chkconfig realserver on 设置自启动
#!/bin/bash
#chkconfig: 2345 79 20
#description:realserver
SNS_VIP=192.168.122.20
. /etc/init.d/functions
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
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
用yum install httpd 和 yum install php 安装 apache和php
在web01编辑文件 /var/www/html/index.php
[root@web01 html]# more index.php
<?php
echo "===========================</br>";
echo " This is web01.</br>";
echo "============================</br>";
echo "</br>";
//phpinfo();
?>
[root@web01 html]#
在web02编辑文件 /var/www/html/index.php
[root@web02 html]# more index.php
<?php
echo "===========================</br>";
echo " This is web02.</br>";
echo "============================</br>";
echo "</br>";
//phpinfo();
?>
[root@web02 html]#
在浏览输入http://192.168.122.20进行验证。注意参数persistence_timeout的影响,开始以为不轮询分配,原来是两次刷新浏览器的时间小于persistence_timeout。
相关文章推荐
- 用 KVM 搭建web集群实验笔记 - LNMP
- 用 KVM 搭建web集群实验笔记 - NFS & Samba 服务
- Docker笔记三:基于LVS DR模式构建WEB服务集群
- Docker笔记三:基于LVS DR模式构建WEB服务集群
- 用 KVM 搭建web集群实验笔记 - MySQL多实例和主从复制
- 用 KVM 搭建web集群实验笔记 - memcached
- 用 KVM 搭建web集群实验笔记 - nagios 安装配置
- 用 KVM 搭建web集群实验笔记 - 安装Nginx 和配置Web服务
- 用 KVM 搭建web集群实验笔记 - 环境准备
- 高可用负载均衡集群Keepalived+lvs-DR模式的搭建
- LVS集群、DR模式搭建、Keepalived+LVS DR
- 负载均衡集群 之 LVS (2) DR模式搭建 和 keepalived+lvs
- 采用Lvs DR(直接路由)模式搭建集群
- 高可用集群实验一:lvs的NAT模式、DR模式搭建及性能对比
- lvs集群服务的DR模式和NAT模式详解及实验
- 使用LVS(Linux Virtual Server)在Linux上搭建负载均衡的集群服务(DR模式
- LVS-DR模式的配置及Heartbeat+Ldirectord+DR高可用负载均衡集群的搭建
- Keepalived+LVS-DR模式高可用负载均衡集群的搭建
- centos6.5里搭建LVS+Keepalived(DR模式)集群
- Linux集群架构(LVS DR模式搭建、keepalived + LVS)