Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327388
  • 博文数量: 103
  • 博客积分: 3886
  • 博客等级: 中校
  • 技术积分: 1005
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-28 15:00
文章分类

全部博文(103)

文章存档

2011年(30)

2010年(73)

分类:

2010-05-09 22:37:15

####################################
#lvs_dr_configuration
#Author:楚霏
#Date: 2009-08-25
#Last Update:2009-09-10
####################################

一、准备工作
####################################
环境:Centos 5.3 x86_64
所需软件:
piranha
ipvsadm
####################################

二、环境介绍
####################################
#所有机器全是Centos 5.3 x86_64
#Primary_LVS_Server
eth0参数
IPADDR=10.0.0.52
NETMASK=255.255.255.0
eth0:0参数
IPADDR=10.0.0.252
NETMASK=255.255.255.0

#Backup_LVS_Server
eth0参数
IPADDR=10.0.0.53
NETMASK=255.255.255.0
eth0:0参数
IPADDR=10.0.0.252
NETMASK=255.255.255.0

#Real_Server_1
eth0参数
IPADDR=192.168.0.231
NETMASK=255.255.255.0
lo:0参数
DEVICE=lo:0
ONBOOT=yes
IPADDR=10.0.0.252
NETMASK=255.255.255.255

#Real_Server_2
eth0参数
IPADDR=192.168.0.232
NETMASK=255.255.255.0
lo:0参数
DEVICE=lo:0
ONBOOT=yes
IPADDR=10.0.0.252
NETMASK=255.255.255.255
####################################

三、Primary_LVS_Server上的安装配置
####################################
(1)安装ipvsadm,piranha
yum install ipvsadm modcluster piranha system-confi-cluster
####################################

####################################
(2)配置网络参数
#参考本文第二部分进行eth0的配置
#新建一个虚拟网卡配置文件eth0:0
cat << EOF >> /etc/sysconfig/network-scripts/ifcfg-eth0:0
#----------------------------引用文字-开始----------------------------
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.252
NETMASK=255.255.255.0
EOF
#----------------------------引用文字-结束----------------------------

service network restart
####################################

####################################
(3)开启路由转寄
vi /etc/sysctl.conf
使下边这项值等于1
#----------------------------引用文字-结束----------------------------
net.ipv4.ip_forward = 1
#----------------------------引用文字-结束----------------------------

sysctl -p
#----------------------------引用文字-开始----------------------------
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
#----------------------------引用文字-结束----------------------------
####################################

####################################
(4)配置/etc/sysconfig/ha/lvs.cf
#方法一
cat << EOF >> /etc/sysconfig/ha/lvs.cf
#----------------------------引用文字-开始----------------------------
serial_no = 28
primary = 10.0.0.52
service = lvs
backup_active = 0
backup = 0.0.0.0
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
nat_nmask = 255.255.255.0
debug_level = NONE
virtual HTTP {
active = 1
address = 10.0.0.252 eth0:1
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = wlc
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server real_1 {
address = 10.0.0.231
active = 1
weight = 1
}
server real_2 {
address = 10.0.0.232
active = 1
weight = 1
}
}
EOF
#----------------------------引用文字-结束----------------------------

#方法二
#piranha还提供了一个通过web配置lvs.cf的方式
#也可用浏览器打开's_ip:3636来进行配置,这需要primary安装并开启web服务
service httpd start
#打开piranha-gui
service piranha-gui start
#打开's_ip:3636来进行配置
#----------------------------配置-开始----------------------------
选择Global Setting
Primary server public IP: 10.0.0.52 #这个是 Primary LVS Router eth0
Use network type: Direct Routing
然后accept

选择Virtual Servers
ADD,然后选中并点击EDIT

Name: HTTP
Application port: 80
Protocal: TCP
Virtual Server Address: 10.0.0.252
Virtual IP Network Mask: 255.255.255.0
Device: eth0:1
Re-entry Time: 15
Service Timeout: 6
Quiesce server: No
Load Monitor Tool: none
Scheduling: Weighted least-connections #加权最小连接法(默认)
Persistence Network Mask: Unused
选择accept,然后再点击Virtual Servers,点击(de)active,激活

选择real server

ADD,然后选中并点击EDIT

Name: real_1
Address: 10.0.0.231 #Real_Server_1 eth0
Weighted: 1

Name: real_2
Address: 10.0.0.232 #Real_Server_2 eth0
Weighted: 1
添加以后,分别激活
#----------------------------配置-结束----------------------------
#配置完成后,安全起见,关闭web服务和piranha-gui
service httpd stop
service piranha-gui stop

#不管通过哪种方法,配置完成后启动pulse服务
service pulse start
####################################

四、后端的real server上的配置
####################################
(1)配置网络环境
#参考本文第二部分进行eth0的配置
#新建一个虚拟网卡配置文件ifcfg-lo:0
cat << EOF >> /etc/sysconfig/network-scripts/ifcfg-lo:0
#----------------------------引用文字-开始----------------------------
DEVICE=lo:0
ONBOOT=yes
IPADDR=10.0.0.252
NETMASK=255.255.255.255
EOF
#----------------------------引用文字-结束----------------------------
####################################

####################################
(2)关闭arp,这一步很关键.
vi /etc/sysctl.conf
#更改以下参数
#----------------------------引用文字-开始----------------------------
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
#----------------------------引用文字-结束----------------------------

#验证一下
sysctl -p
#----------------------------输出文字-开始----------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
#----------------------------输出文字-结束----------------------------

#重启网络服务
service network restart
####################################

五、测试
####################################
(1)在Primary_LVS_Server上测试一下是否可以连上两台Real_Server
ipvsadm -l
#----------------------------输出文字-开始----------------------------
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP bogon:http wlc
-> bogon:http Route 1 0 0
-> bogon:http Route 1 0 0
#----------------------------输出文字-结束----------------------------
####################################

####################################
(2)在Real_Server_1和Real_Server_2上分别建不同内容的index.html
#在Real_Server_1上
echo 11111111111 >> /web根目录/index.html

#在Real_Server_2上
echo 22222222222 >> /web根目录/index.html

#在这三台服务器的任一客户端用浏览器不断刷新

#如果配置成功了,则说明配置成功了
####################################

六、增加一台Backup_LVS_Server
####################################
#如果需要增加一台Backup_LVS_Server,请阅读接下来的七和八这两部分
####################################

七、Backup_LVS_Server上的安装配置
####################################
(1)安装ipvsadm,piranha
yum install ipvsadm modcluster piranha system-confi-cluster
####################################

####################################
(2)配置网络参数
#参考本文第二部分进行eth0的配置
#新建一个虚拟网卡配置文件eth0:0
cat << EOF >> /etc/sysconfig/network-scripts/ifcfg-eth0:0
#----------------------------引用文字-开始----------------------------
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.252
NETMASK=255.255.255.0
EOF
#----------------------------引用文字-结束----------------------------

service network restart
####################################

####################################
(3)开启路由转寄
vi /etc/sysctl.conf
使下边这项值等于1
#----------------------------引用文字-结束----------------------------
net.ipv4.ip_forward = 1
#----------------------------引用文字-结束----------------------------

sysctl -p
#----------------------------引用文字-开始----------------------------
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
#----------------------------引用文字-结束----------------------------
####################################

####################################
(4)配置/etc/sysconfig/ha/lvs.cf
#编辑Primary_LVS_Server上的lvs.cf
vi /etc/sysconfig/ha/lvs.cf
#----------------------------引用文字-开始----------------------------
serial_no = 29
primary = 10.0.0.52
service = lvs
backup_active = 1 #打开Backup_LVS_Server
backup =10.0.0.53 #设置Backup_LVS_Server的ip
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
nat_nmask = 255.255.255.0
debug_level = NONE
virtual HTTP {
active = 1
address = 10.0.0.252 eth0:1
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = wlc
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server real_1 {
address = 10.0.0.231
active = 1
weight = 1
}
server real_2 {
address = 10.0.0.232
active = 1
weight = 1
}
}
EOF
#----------------------------引用文字-开始----------------------------

#Backup_LVS_Server把Primary_LVS_Server上的lvs.cf拷贝过来即可
#在Backup_LVS_Server上执行
scp root@10.0.0.52:/etc/sysconfig/ha/lvs.cf /etc/sysconfig/ha/lvs.cf

#在Backup_LVS_Server启动pulse服务
service pulse start
####################################

八、测试Backup_LVS_Server是否能及时顶替Primary_LVS_Server
####################################
#将Primary_LVS_Server关机,用浏览器继续刷新

#如果正常打开,说明工作正常
####################################

阅读(831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~