搭建LVS负载均衡测试环境

发表于:2014-9-11 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:壹頁書    来源:51Testing软件测试网采编

  实现负载均衡有很多种方式
  土豪直接F5,性能最好,价格最贵
  没钱也可以使用Apache,Nginx 工作在网络的第四层,虽然性能一般,但是很灵活,比如可以将80端口映射到真实服务器的8080端口.
  还有一种选择LVS ,它工作在网络的第三层,性能较好,非常稳定.
  但是它不能实现端口的重新映射.因为在网络的第三层,并不清楚端口的信息。
  下面的实验搭建了一个LVS负载均衡测试环境,采用DR的方式。
  客户端访问LVS前置机
  这个请求如下
  源MAC(client mac) 目标MAC(DR mac) 源IP(client IP) 目标IP(DR IP,VIP)
  LVS前置机会将报文改写之后转发真实的服务器
  改写如下
  源MAC(client mac) 目标MAX(真实服务器MAC) 源IP(client IP) 目标IP(DR IP,VIP)
  因为真实的服务器将VIP绑定到了环回地址,所以会处理这个请求,并返回响应的报文.
  网络层的源目对掉
  源MAC(真实服务器MAC) 目标MAC(client mac) 源IP(DR IP,VIP) 目标IP(client IP)
  所以LVS DR的本质就是网络层的欺骗。
  实验采用VirtualBox虚拟机,并且配置内部网络,关闭SELinux和防火墙
  首先,在LVS DR前置机上安装ipvsadm命令
  yum install ipvsadm -y
  然后配置两台真实服务器(RealServer)的Http服务
  yum install httpd -y
  service httpd start
  chkconfig httpd on
  并分别改写/var/www/html/index.html的内容为"real server 1"和"real server 2"
  然后在两台真实服务器上执行如下的脚本
vim lvs_real.sh
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=192.168.16.199
source /etc/rc.d/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
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号