更多>>Linux Blog

Linux服务器LVS Dr模式负载均衡配置

本文主要是在虚拟机的环境下,关于Linux服务器负载均衡技术之一LVS Dr模式的配置方式。

一、环境


真实机:Win7/64位操作系统

虚拟机:VMware虚拟机10.0

虚拟机安装Linux系统:CentOS6.5


二、基本配置


1、实验规划

directorserver 200.168.10.1   对应 lvs-server

vip 200.168.10.10

realserver1 200.168.10.2    对应 web-server-1

realserver2 200.168.10.3    对应 web-server-2


2、虚拟机安装完毕后,更改名字,作为LVS服务器

“虚拟机”-“设置”-“选项”,在虚拟机名称一栏,更改为:lvs-server,点击“确定”。


3、在关闭LVS服务器的情况下,克隆出2台机器,作为WEB服务器

“虚拟机”-“管理”-“克隆”-“下一步”-“下一步”-“下一步”,在虚拟机名称一栏里输入:web-server-1,在位置一栏选择合适的位置,“完成”-“关闭”


再次回到lvs-server界面,同上,再克隆出一台机器,只是在虚拟机名称一栏里输入:web-server-2


4、在lvs-server界面中,开启虚拟机,检测是否安装了ipvsadm

(1)检测:# ipvsadm -h

(2)安装:# yum -y install ipvsadm

(3)关闭虚拟机


5、对三台机器更改网卡的网络连接方式

(1)在lvs-server界面,选中“网络适配器”,选中“自定义(U):特定虚拟网络”,选择“VMnet1(仅主机模式)”,点击“确定”

(2)在web-server-1界面,选中“网络适配器”,选中“自定义(U):特定虚拟网络”,选择“VMnet1(仅主机模式)”,点击“确定”

(3)在web-server-2界面,选中“网络适配器”,选中“自定义(U):特定虚拟网络”,选择“VMnet1(仅主机模式)”,点击“确定”


6、将三台机器开启,分别检测防火墙和selinux状态

开启终端,桌面右键-“open in terminal”

(1)检测selinux状态:# sestatus

(2)关闭selinux:

# vi /etc/selinux/config 在打开的配置文件中

将 SELINUX=enforcing 修改为 SELINUX=disabled 保存后退出(重启生效)

(3)将三台机器分别重启,以使selinux更改生效

(4)重启后,再次检测selinux状态

(5)检测防火墙状态:# service iptables status

(6)关闭防火墙:# service iptables stop


三、配置IP


1、真实机IP的配置


打开网络和共享中心,选中“VMware Network Adapter VMnet1”-“属性”-“TCP/IPv4”-“属性”,在弹出的窗口中,配置如下:

IP地址:200.168.10.4

子网掩码:255.255.255.0

“确定”-“关闭”-“关闭”


2、lvs-server IP的配置


(1)先通过 # ifconfig 查看网卡信息

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls


(2)打开网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改:

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"


新增:

IPADDR=200.168.10.1

NETMASK=255.255.255.0

保存后退出


(4)然后重启网卡:

# service network restart


(5)可再次通过 # ifconfig 查看配置结果


3、web-server-1 IP的配置


(1)先通过 # ifconfig 查看网卡

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls

如果网卡名称为:eth1,如果配置文件中有ifcfg-eth0,没有ifcfg-eth1,则把ifcfg-eth0复制一份,并命名为ifcfg-eth1

# cp ifcfg-eth0 ifcfg-eth1

# ls


(2)接着打开eth1网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1


由于 ifcfg-eth1 是由 ifcfg-eth0 复制过来的,所以做如下修改:


修改:

将 DEVICE="eth0" 修改为 DEVICE="eth1"

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"

将 HWADDR="00:0C:29:50:B3:F8" 修改为 HWADDR="00:0C:29:E9:2A:33"


删除:

删除 UUID 所在的一行


新增:

IPADDR=200.168.10.2    //IP

NETMASK=255.255.255.0    //子网掩码

保存后退出


(3)然后重启网卡:

# service network restart


(4)可再次通过 # ifconfig  # route 查看配置结果


4、web-server-2 IP的配置


(1)先通过 # ifconfig 查看网卡

记住网卡的名称、MAC地址(HWaddr)等基本信息

接着查看网卡有没有对应的配置文件:

# cd /etc/sysconfig/network-scripts/

# ls

如果网卡名称为:eth1,如果配置文件中有ifcfg-eth0,没有ifcfg-eth1,则把ifcfg-eth0复制一份,并命名为ifcfg-eth1

# cp ifcfg-eth0 ifcfg-eth1

# ls


(2)接着打开eth1网卡的配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-eth1


由于 ifcfg-eth1 是由 ifcfg-eth0 复制过来的,所以做如下修改:


修改:00:0C:29:4F:C4:69 

将 DEVICE="eth0" 修改为 DEVICE="eth1"

将 BOOTPROTO="dhcp" 修改为 BOOTPROTO="none"

将 HWADDR="00:0C:29:50:B3:F8" 修改为 HWADDR="00:0C:29:4F:C4:69"


删除:

删除 UUID 所在的一行


新增:

IPADDR=200.168.10.3    //IP

NETMASK=255.255.255.0    //子网掩码

保存后退出


(3)然后重启网卡:

# service network restart


(4)可再次通过 # ifconfig  # route 查看配置结果


四、脚本编写


1、lvs-server 脚本的配置

(1)新增 eth0:0网卡 ,并增加路由

# ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255

# route add -host 200.168.10.10 dev eth0:0

(2)编写脚本

# cd

# vi ipvs.sh  //编辑内容如下:


#!/bin/bash

#ipvs.sh


ipvsadm -C

ipvsadm -At 200.168.10.10:80 -s rr

ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g

ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g

ipvsadm -L -n


内容结束,保存后退出


说明:

-C 把以前的转换表清除

-A 增加一个带有调度算法的转换表 t 表示TCP通信

-s 表示算法

rr 表示轮叫

-r 真实服务器

-g 表示dr模式


为脚本执行添加权限: # chmod a+x ipvs.sh


执行脚本: # ./ipvs.sh


2、web-server-1 脚本的配置

(1)新增 lo:0网卡 ,并增加路由

# ifconfig lo:0 200.168.10.10 netmask 255.255.255.255

# route add -host 200.168.10.10 dev lo:0

(2)编写脚本

# cd

# vi arp.sh  //编辑内容如下:


#!/bin/bash

#arp.sh


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


内容结束,保存后退出


为脚本执行添加权限: # chmod a+x arp.sh


执行脚本: # ./arp.sh


同理,把上述操作,在 web-server-2 上再操作一次。


五、测试


1、开启httpd服务

在web-server-1、web-server-2这两台web服务器上,分别开启httpd服务

# service httpd restart


2、建立测试文件

在web-server-1、web-server-2这两台web服务器上,分别建立文件


web-server-1:

# cd /var/www/html/

# ls

# vi index.html

输入如下内容:

<h1>200.168.10.2</h1>


web-server-2:

# cd /var/www/html/

# ls

# vi index.html

输入如下内容:

<h1>200.168.10.3</h1>


输入的内容不一样,以方便区分


3、在自己的真实机上,测试

打开浏览器,地址栏中输入: http://200.168.10.10  按F5键刷新查看页面的变化(如果无输出 Ctrl+F5 强制刷新 或 检查防火墙是否开启)

如果在不断的刷新中 200.168.10.2 和 200.168.10.3 交替出现变换出现,则说明实验成功。


六、关于测试结果


如果在测试时,提示无法打开网页,请检查:

(1)web-server-1,web-server-2 这两台机器的 httpd 服务是否启动了

(2)lvs-server,web-server-1,web-server-2 这三台机器的防火墙是否关闭


评论列表

暂时没有相关记录

发表评论

用来接收审核回复提醒,请认真填写

  换一张?
captcha
看不清?点击图片换一张