更多>>Linux Blog
来源:一度好 时间:2017-07-23 阅读:3399
本文主要是在虚拟机的环境下,关于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 这三台机器的防火墙是否关闭
评论列表 |
暂时没有相关记录
|
发表评论