1. 基本规划

一共5个IP地址,4台服务器,两台做LVS+Keepalived高可用负载均衡,两台做Web 服务器。

LVS的IP地址是:

192.168.0.181

192.168.0.182

web服务器的IP地址是

192.168.0.183

192.168.0.184

虚拟IP(VIP)地址是:

192.168.0.188

2. 配置IIS

IIS上最重要的配置就是环回网卡配置,配置完成后还需要修改一下网卡的IP和工作模式。具体步骤如下

(1)配置环回网卡

打开控制面板,点击硬件,然后在点击设备管理器;

打开设备管理器后,鼠标点中网络适配器,然后点击操作,选择里面的“添加过时硬件”;

弹出的窗口单击下一步,然后选择“安装我手动从列表选择的硬件”,下一步;

弹出窗口,右边滚动条拉到底,选择网络适配器,下一步;

厂商选择Microsoft,网络适配器选择Microsoft KM-TEST环回适配器,下一步;

等到系统安装环回网卡,安装好了点击完成。

(2)配置环回网卡IP和工作模式

打开网络与共享中心,点击更改适配器设置,可以看到你添加好的环回网卡,我的系统上网卡名字是“以太网”;

spacer.gifspacer.gif

wKiom1Z8_MXzN6lQAAA2_UWcYyA837.png

在“以太网”上点右键选择属性,然后在双击Internet协议版本4 (TCP/IPv4),填写IP地址如下。

spacer.gifwKioL1Z8_NvTLvWQAAAL4H3iKvQ898.png

配置好后点击确定,然后点应用,环回网卡的IP地址就算配置好了。


再来设置环回网卡的工作模式,在Windows系统中,网卡有两种工作模式,强工作模式(stronghost)和弱工作模式(weakhost),在强工作模式下,正常网卡和环回网卡之间是不能进行数据转发的,数据转发只能工作在弱工作模式下,如果没有设置弱工作模式的话,等环境配置好了以后,使用VIP地址不能访问Web服务器,使用ipvsadm -lcn查看连接状态时,会发现所有的连接状态都是SYN_RECV状态。

以管理员身份打开命令提示符,设置弱工作模式命令如下:

netsh interface ipv4 set interface "Ethernet0" weakhostreceive=enabled

netsh interface ipv4 set interface "Ethernet0" weakhostsend=enabled

netsh interface ipv4 set interface "以太网" weakhostreceive=enabled

netsh interface ipv4 set interface "以太网" weakhostsend=enabled

interface后面跟的是你的两块网卡的名称,我这里是Ethernet0和以太网,读者就根据自己的网卡名称来修改。

命令配置成功会提示“确定”

spacer.gifwKiom1Z8_MbiHRG9AAAgRdEjHpw873.png

(3)配置好IIS,建立好你的测试网站,然后打开IE浏览器,确认使用VIP和Web服务器的实际IP都可以访问

telnet 192.168.0.183 80

telnet 192.168.0.184 80

telnet 192.168.0.188 80

2. 配置LVS+Keepalived

LVS端操作:在director1上操作

(1). 安装keepalived编译所需要的依赖软件

yum -y install gcc kernel-devel openssl-devel

(2). 编译安装keepalived-1.2.19.tar.gz

tar -zxf keepavlived-1.2.19.tar.gz

cd keepalived-1.2.19

 ./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-573.12.1.el6.x86_64/

make

make install


(3). 创建keepalived的命令链接

ln -s /usr/local/sbin/keepalived /sbin

(4). 修改keepalived配置文件

cd /etc/keepalived

cp keepalived.conf keepalived.conf.bak

vim keepalived.conf

在priority 100 下新增unicast_src_ip,这个新增的选项是防止在只支持单播IP地址环境下,master lvs和backup lvs争抢master角色,导致两台LVS上都绑定了VIP,进而导致访问后台web服务器时,所有连接全都集中到一台web服务器上。

spacer.gifwKioL1Z8_NyyBQ6RAAAICPPp41Q091.png

在 virtual_ipaddress ***释掉原有的IP,新增VIP 192.168.0.188

spacer.gifwKiom1Z8_Mazgq9iAAAJHqmd-ZQ286.png

编辑virtual_server 如下图所示

spacer.gifwKiom1Z8_MaCxuzXAAAtc7OhQjs150.png

保存退出

(5). 开启IP地址转发功能

 vi /etc/sysctl.conf

    net.ipv4.ip_forward = 1

    sysctl -p(使设置立即生效)

(6). 安装ipvsadm

yum -y install ipvsadm

(7). 启动keepalived并添加到开机自启动

service keepalived start

chkconfig --add keepalived

chkconfig keepalived on

(8). 在director2上进行同样的操作,唯一的区别是在第4步编辑keepalived.conf文件的时候,把vrrp_instance 选项下面的state 改为BACKUP,同时把priority 由100改为80。

(9). 启动backup lvs

service keepalived start

(10). 使用ip addr命令查看VIP绑定情况,可以看到VIP确实已经绑定成功了。

spacer.gifwKioL1Z8_NyTzGhMAAAnja6aBdk478.png

3. 使用同网段的IP地址客户端访问后端web网页,即打开http://192.168.0.188,查看网页是否正常。我这里确认是可以成功打开的

4. 测试

(1)断开其中一台web服务器,刷新网页,发现网页终端了1秒钟,再次刷新后正常,使用ipvsadm -lcn查看时发现已经自动转移到正常的web服务器上了

(2)断开master LVS,查看backup LVS的日志,发现BACKUP LVS成功切换到MASETER状态,VIP也成功绑定到网卡eth0上,说明LVS正常工作。

spacer.gifwKiom1Z8_MfzYhFmAAA2QJv24-I056.png

spacer.gifwKioL1Z8_N2CiOWbAAAfbrrQwUI611.png

FAQ:错误笔记

(1). 因为Keepalived不会自动检查配置文件的语法,所以配置文件的语法错误都要自己手动检查,所以一定要仔细。在配置过程中可能遇到的错误是:

TCP_CHECK和{ 之间一定要有空格隔开,否则会配置出错,出错的症状是使用ipvsadm -L -n 只看到1台realserver;

wKioL1Z8_euRhD2bAAAaWaKzzJM566.png