当时自己整理写出来的,共享一下。
神马都是浮云,LVS 架构看过N次了,就是没有时间折腾,今天抽空,从DR 模式开始整整了。
我的环境:VMware workstation + 3台 Ubuntu Server 10 版本的。以下相关IP 及主机名:
系统 主机名 IP 内存 硬盘 安装服务 备注
ubuntu web1 192.168.104.129 512MB 15GB LAMP+OpenSSH (网关设置为192.168.104.2)
ubuntu web2 192.168.104.130 512MB 15GB LAMP+OpenSSH (网关设置为192.168.104.2)
ubuntu dispatch 192.168.104.132 384MB 10GB OpenSSH+lvsadm (网关设置为192.168.104.2)
VIP 192.168.104.135
ubuntu 服务器安装就不多说了,敲着回车键一路过,到最后选择软件包的时候注意下就行了
(ipvsadm 需要等系统装好后再安装)
调度机器上的配置过程如下:
使用root 用户(其他用户用sudo方式安装iplvsadm)
root@dispatch:~# apt-get install ipvsadm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
heartbeat keepalived ldirectord
The following NEW packages will be installed:
ipvsadm
0 upgraded, 1 newly installed, 0 to remove and 60 not upgraded.
Need to get 45.6 kB of archives.
After this operation, 197 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ natty/main ipvsadm i386 1:1.25.clean-1ubuntu1 [45.6 kB]
Fetched 45.6 kB in 2s (16.1 kB/s)
Preconfiguring packages ...
Selecting previously deselected package ipvsadm.
(Reading database ... 48251 files and directories currently installed.)
Unpacking ipvsadm (from .../ipvsadm_1%3a1.25.clean-1ubuntu1_i386.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Setting up ipvsadm (1:1.25.clean-1ubuntu1) ...
update-rc.d: warning: ipvsadm start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (2 3 5)
* ipvsadm is not configured to run. Please run dpkg-reconfigure ipvsadm
打开内核IP转发功能
root@dispatch:~# echo "1" >/proc/sys/net/ipv4/ip_forward (永久生效修改内核文件sysctl.conf)
编辑lvsdr 配置文件(安装时不会有的,手工创建):
root@dispatch:~# vim /etc/init.d/lvsdr
意思不多说,内容如下
#!/bin/bash
#description:start LVS of Directorserver DR
VIP=192.168.104.135
RIP1=192.168.104.129
RIP2=192.168.104.130
#./etc/rc.d/init.d/functions
case "$1" in
start)
echo "start LVS of DirectorServer DR"
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/ipvadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g
/sbin/ipvsadm
;;
stop)
echo "stop LVS of DirectorServer DR"
echo "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 down
;;
*)
echo "Usage:$0{start|stop}"
exit 1
esac
给个执行权限:
root@dispatch:~# chmod +x /etc/init.d/lvsdr
启动该服务:
root@dispatch:~# /etc/init.d/lvsdr start
start LVS of DirectorServer DR
/etc/init.d/lvsdr: line 25: /sbin/ipvadm: No such file or directory
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.104.135:www rr
-> 192.168.104.129:www Route 1 0 0
-> 192.168.104.130:www Route 1 0 0
root@dispatch:~#
真实服务器配置如下:
root@web1:~# vi /etc/init.d/lvsdr
#!/bin/bash
#descrpption :start realserver DR
VIP=192.168.104.135
#./etc/rc.d/init.d/functions
case "$1" in
start)
echo "start LVS of RealServer DR"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage:$0 {start|stop}"
exit 1
esac
给执行权限,启动服务
root@web1:~# chmod +x /etc/init.d/lvsdr
root@web1:~#/etc/init.d/lvsdr start
start LVS of RealServer DR
建立一个测试主页面,两个页面的内容可以不一样(便于看效果)
打开IE,浏览器,输入http://192.168.104.135 多刷新几次,(用 Ctrl + F5 吧)
root@dispatch:~# ipvsadm -lnc
IPVS connection entries
pro expire state source virtual destination
TCP 01:00 SYN_RECV 192.168.104.1:55950 192.168.104.135:80 192.168.1.129:80
TCP 01:00 SYN_RECV 192.168.104.1:55993 192.168.104.135:80 192.168.1.129:80
TCP 01:00 SYN_RECV 192.168.104.1:55970 192.168.104.135:80 192.168.1.130:80
TCP 01:00 SYN_RECV 192.168.104.1:55957 192.168.104.135:80 192.168.1.130:80
TCP 01:00 SYN_RECV 192.168.104.1:55969 192.168.104.135:80 192.168.1.129:80
TCP 01:00 SYN_RECV 192.168.104.1:55966 192.168.104.135:80 192.168.1.130:80
TCP 01:00 SYN_RECV 192.168.104.1:55965 192.168.104.135:80 192.168.1.129:80
TCP 01:00 SYN_RECV 192.168.104.1:55949 192.168.104.135:80 192.168.1.130:80
root@dispatch:~# ipvsadm --list
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.104.135:www rr
-> 192.168.104.129:www Route 1 1 0
-> 192.168.104.130:www Route 1 0 0
没有评论:
发表评论