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和工作模式
打开网络与共享中心,点击更改适配器设置,可以看到你添加好的环回网卡,我的系统上网卡名字是“以太网”;
在“以太网”上点右键选择属性,然后在双击Internet协议版本4 (TCP/IPv4),填写IP地址如下。
配置好后点击确定,然后点应用,环回网卡的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和以太网,读者就根据自己的网卡名称来修改。
命令配置成功会提示“确定”
(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服务器上。
在 virtual_ipaddress ***释掉原有的IP,新增VIP 192.168.0.188
编辑virtual_server 如下图所示
保存退出
(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确实已经绑定成功了。
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正常工作。
FAQ:错误笔记
(1). 因为Keepalived不会自动检查配置文件的语法,所以配置文件的语法错误都要自己手动检查,所以一定要仔细。在配置过程中可能遇到的错误是:
TCP_CHECK和{ 之间一定要有空格隔开,否则会配置出错,出错的症状是使用ipvsadm -L -n 只看到1台realserver;