Keepalived:
什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,
也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会
导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,
可以说这个协议就是keepalived实现的基础。
配置高可用的负载均衡
实验环境
真机:
1、获得安装包
get keepalived-2.0.6.tar.gz
get libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm
2、传到server1
server1:
[root@server1 local]# chkconfig ldirectord off
[root@server1 local]# /etc/init.d/ldirectord stop
Stopping ldirectord... success
cd
yum install openssl-devel.x86_64 -y ##安装keepalived的依赖包:openssl-devel
yum install gcc -y ##安装编译语言
tar zxf keepalived-2.0.6.tar.gz ##解压
1、编译keepalived的源码包
server1:
cd keepalived-2.0.6
./configure --prefix=/usr/local/keeplived --with-init=SYSV
make
make install
2、制作软链接,给予文件权限
cd /usr/local/keeplived/etc/rc.d/init.d/
ls
chmod +x keepalived
cd /usr/local/keeplived/etc/rc.d/init.d/
ln -s /usr/local/keeplived/etc/rc.d/init.d/keepalived /etc/init.d/
cd ..
cd ..
cd keepalived/
ln -s /usr/local/keeplived/etc/keepalived /etc/
cd ..
cd sysconfig/
ln -s /usr/local/keeplived/etc/sysconfig/keepalived /etc/sysconfig/
cd ..
cd ..
cd sbin/
ln -s /usr/local/keeplived/sbin/keepalived /sbin
which keepalived
3、将keeplived文件传至server4:
将keepalived开启检查是否有错
/etc/init.d/keepalived start
/etc/init.d/keepalived stop
将文件传到server4
cd /usr/local/
scp -r keeplived/ server4:/usr/local
4、server4 keeplived配置
查看server1是否传送
cd /usr/local/keeplived
ls
制作软链接
cd /etc/rc.d/init.d/
ln -s /usr/local/keeplived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keeplived/etc/keepalived /etc/
ln -s /usr/local/keeplived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keeplived/sbin/keepalived /sbin
将keeplived打开查看是否有错
/etc/init.d/keepalived start
/etc/init.d/keepalived stop
5、server1中编写keepalived配置文件
server1:
yum install mailx -y
cd /etc/keepalived
vim keepalived.conf
! Configuration File for keepalived
全局配置
----
global_defs { #全局定义块
notification_email { #邮件通知
root@localhost
}
#notification_email 指定keepalived在发生事件(切换),需要发送email到的对象。可以有多个,每行一个。
notification_email_from keepalive@localhost
smtp_server 127.0.0.1 #smtp_*指定发送email的smtp服务器
smtp_connect_timeout 30
router_id LVS_DEVEL #router_id运行keepalived的机器的一个标识
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
VRRPD配置
-------
vrrp_instance VI_1 {
##state指定instance的初始化状态,在两台router都启动后,马上会发生竞选,高priority的会竞选为Master,因而这里的state并不表示这台就一直是Master
state MASTER # 指定该节点为主节点,备用节点设置为BACKUP
interface eth0 # 绑定虚拟IP的网络接口
virtual_router_id 61 # 设置验证信息,两个节点需一致
priority 100 # 主节点的优先级,数值在1~254,注意从节点必须比主节点的优先级别低
advert_int 1 # 组播信息发送间隔,两个节点需一致
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.61.100 # 指定虚拟IP,两个节点需设置一样
}
}
虚拟服务配置
------
virtual_server 172.25.61.100 80 {
delay_loop 3 #指定检查间隔
lb_algo rr #指定lvs算法
lb_kind DR #指定lvs模式为DR
#persistence_timeout 50 #持久连接设置,会话保持时间,在此处需要注释
protocol TCP #指定转发协议为TCP协议
#后端实际TCP服务配置
real_server 172.25.61.2 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.61.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
打开服务,配置文件修改完后将服务打开查看是否有错
/etc/init.d/keepalived start
查看日志,配置文件是否生效
cat /var/log/messages
6、将配置文件传至server4
scp keepalived.conf server4:/etc/keepalived/
7、server4修改配置文件
cd /etc/keepalived/
vim keepalived.conf
将18行 state MASKST改为BACKUP
打开服务
/etc/init.d/keepalived start
7、物理机检测
物理机检测:
[root@foundation10 ~]# curl 172.25.10.100
www.linux.org -server3
[root@foundation10 ~]# curl 172.25.10.100
www.linux.org -server2