实验:
server1:调度器
1.配置yum源
[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.7.250/source6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.7.250/source6.5/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.7.250/source6.5/LoadBalancer
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.7.250/source6.5/ResilientStorage
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.7.250/source6.5/ScalableFileSystem
enabled=1
gpgcheck=0
2.安装ipvsadm (集群管理服务)
yum install ipvsadm -y
3.添加ip
ip addr add 172.25.7.100/24 dev eth0
4.设置LVS的vip,vip添加RS地址,并设置为DR模式
[root@server1 ~]# ipvsadm -A -t 172.25.7.100:80 -s rr ## rr:表示轮循算法,-t:TCP, -s:sheduler
[root@server1 ~]# ipvsadm -a -t 172.25.7.100:80 -r 172.25.7.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.7.100:80 -r 172.25.7.3:80 -g #-r:RS地址,-g:DR模式,如果手误,可以使用 ipvsadm -C 清除策略再重新添加
5.保存策略
[root@server1 ~]# /etc/init.d/ipvsadm save
server2服务器
1.添加虚拟ip
[root@server2 ~]# ip addr add 172.25.7.100/24 dev eth0
2.安装arp防火墙
virtual server与real server的地址一致,所以进入real server时需要把虚拟ip DROP掉,即拦截real server的虚拟ip
所以下载安装软件
yum install arptables_jf -y
3.设置arp抑制
对INPUT 进行拒绝
[root@server2 ~]# arptables -A IN -d 172.25.7.100 -j DROP
对OUTPUT 进行伪装
[root@server2 ~]# arptables -A OUT -s 172.25.7.100 -j mangle --mangle-ip-s 172.25.7.2
[root@server2 ~]# /etc/init.d/arptables_jf save
查看arptables的状态
4.开启httpd,修改发布页面
[root@server2 ~]# vim /var/www/html/index.html
<h1>server2</h1>
[root@server2 ~]# /etc/init.d/httpd start
server3服务器:
servevr3服务器与serverv2服务器的设置基本相同。
1.添加虚拟ip
2.安装arp防火墙
3.设置arp抑制
4.开启httpd,修改发布页面
测试:
1.负载均衡:
调度器查看ipvs的状态:
2.查看mac地址:
总结:DR实现负载均衡流程如下:
DR: client ---> VS --->RS --->client
高可用集群High-Avaliability
server1:
[1]停止 ldirectord 服务
[root@server1 html]# /etc/init.d/ldirectord stop
[root@server1 html]# chkconfig ldirectord off
[2]下载并安装keepalived
[root@server1 ~]# yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm -y
[root@server1 ~]# tar zxf keepalived-2.0.6.tar.gz
[root@server1 ~]# cd keepalived-2.0.6
[root@server1 keepalived-2.0.6]# vim INSTALL
[root@server1 keepalived-2.0.6]# yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel
[3]源码编译三部曲:
[root@server1 keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 keepalived-2.0.6]# make
[root@server1 keepalived-2.0.6]# make install
[4]生成软连接:
[root@server1 ~]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 init.d]# chmod +x keepalived
[root@server1 local]# ln -s /usr/local/keepalived/etc/keepalived/ /etc
[root@server1 local]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server1 local]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server1 local]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[5]修改keepalived配置文件:
[root@server1 keepalived-2.0.6]# cd /etc/keepalived/
[root@server1 keepalived]# vim keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict ##必须注释
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 7
priority 100 ## 权重
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.7.100
}
}
virtual_server 172.25.7.100 80 { #VS
delay_loop 3
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 172.25.7.2 80 { #RS
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.7.3 80 { #RS
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
向server4发送文件:
[root@server1 ~]# scp -r /usr/local/keepalived/ server4:/usr/local/
[root@server1 ~]# scp -r /etc/keepalived/keepalived.conf server4:/etc/keepalived/
[6]删除vip,开启keepalived服务
[root@server1 keepalived]# ip addr del 172.25.7.100/24 dev eth0
[root@server1 keepalived]# /etc/init.d/keepalived start
server4:
生成同样的软连接:
[root@server4 ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@server4 ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server4 ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server4 ~]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
修改keepalived配置文件:
[root@server1 keepalived]# vim keepalived.conf
vrrp_instance VI_1 {
state BACKUP ##状态为备用
interface eth0
virtual_router_id 7
priority 50 ##修改优先级50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.7.100
}
}
开启服务:
[root@server4 keepalived]# /etc/init.d/keepalived start
查看日至:
测试:当server1的keepalived服务关闭
[root@server1 keepalived]# /etc/init.d/keepalived stop