Keepalived+LVS配置高可用服务器
来源:互联网 发布:人造奶油危害 知乎 编辑:程序博客网 时间:2024/06/05 09:11
keepalived 高可用集群实践【故障切换转移原理VRRP】
安装keepalived:yum –y install keepalived【安装路径/etc/keepalived/】
启动keepalived:service keepalived start
启动后有3个进程表示安装正确:ps -ef|grep keep|grep -v grep
配置文件:/etc/keepalived/keepalived.conf
内容说明【keepalived.conf】:
全局定义:
global_defs: 全局配置标识,表面下面的区域{}是全局配置
notification_email:邮箱地址,可多个,每行一个,发生操作时发邮件到配置上的邮箱,
notification_email_from:表示发送通知邮件时邮件源地址是谁
smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1
smtp_connect_timeout:连接smtp超时时间
router_id:服务器的路由标识,同一个局域网内是唯一的,通常为hostname
VRRP实例定义区块
vrrp_instance:vrrp实例名:各服务器上实例配置域,每个vrrp_instance实例可以认为是keepalived服务的一个实例,这样的实例可以配置多个,存在主节点的配置实例,备节点上也要有。
state:实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写
interface:对外提供服务的网卡接口,即VIP绑定的网卡接口。主流2个或2个以上的接口
virtual_router_id:虚拟路由的ID号,主备节点必须一样,唯一的,他将决定多播的 MAC 地址。
priority:节点优先级,取值范围0~254,MASTER要比BACKUP高,一般相隔50
advert_int:MASTER与BACKUP节点间同步检查的时间间隔,单位为秒
authentication:验证类型和验证密码。类型主要有 PASS、AH 两种,通常使用PASS类型。【认证】
virtual_ipaddress:虚拟IP地址池,可以有多个IP,每个IP占一行,配置时最好明确指出子网掩码以及虚拟IP绑定的网络接口,接口与前面的interface参数配置一样。
注意:这个IP是我们工作中需要和域名绑定的IP,即和配置的高可用服务监听的IP保持一致
虚拟服务器virtual_server定义块【VIP虚拟IP】
virtual_server:定义一个虚拟服务器加端口号,这个ip是virtual_ipaddress中定义的其中一个
delay_loop:健康检查时间间隔,单位:秒
lb_algo:负载均衡调度算法【常用wlc加权最少连接或rr伦叫】
lb_kind:负载均衡转发规则【DR、NAT、TUN】
persistence_timeout:http服务会话保持时间秒【持久性_超时】
protocol:转发协议【TCP和UDP】
real_server:真实服务器IP和端口,可以定义多个
weight:负载权重,值越大,转发的优先级越高
notify_down:服务停止后执行的脚本
TCP_CHECK:服务有效性检测
connect_port:服务连接端口
connect_timeout:服务连接超时时长,秒
nb_get_retry:服务连接失败重试次数
delay_before_retry:重试连接间隔、秒
【virtual_serverIP 端口模块包括real_serverIP 端口模块】
配置keepalived实现单实例单IP自动接管:【帮助man keepalived.conf】
【在Realserver里配置主备实例RIP】
【配置keepalived主备实例virtual_router_id、advert_int、authentication、virtual_ipaddress必须一致】
配置主服务器lb01MASTER10.0.0.7:
修改vi/etc/keepalived/keepalived.conf结果为:
! ConfigurationFile for keepalived
global_defs { 【全局配置标识】
notification_email { 【邮箱地址】
1046465305-@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc 【发送通知邮件时邮件源地址】
smtp_server 127.0.0.1 【发送email时使用的smtp服务器地址】
smtp_connect_timeout 30 【连接smtp超时时间】
router_id lb01 【服务器的路由标识,唯一】
}
vrrp_instanceVI_1 { 【实例名】
state MASTER 【状态】
interface eth0 【网卡接口】
virtual_router_id 55 【虚拟路由的ID号,主备节点必须一样】
priority 150 【节点优先级主高】
advert_int 1 【MASTER与BACKUP节点间同步检查的时间间隔】
authentication { 【验证类型和验证密码,类型PASS通用】
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { 【虚拟IP地址池,VIP地址】
10.0.0.12/24 dev eth0 label eth0:1
}
}
启动keepalived服务:service keepalived start
查看配置结果是否有虚拟IP10.0.0.12:ip addr|grep 10.0.0.12 有内容显示
配置备服务器lb02BACKUP
把主服务器修改内容:router_id lb02 stateBACKUP priority 100
启动keepalived服务:service keepalived start
查看配置结果是否有虚拟IP10.0.0.12:ip addr|grep 10.0.0.12 无内容显示
进行高可用主备服务器之间的切换:
停掉主服务器的keepalived服务,在备服务器上运行ip addr|grep 10.0.0.12,有内容显示。同理,主在运行,备就不显示内容。
【后面配置省略的】
virtual_server10.10.10.3 1358 { 【定义虚拟服务器VIP加端口号】
delay_loop 3 【健康检查时间间隔】
lb_algo rr 【负载均衡调度算法】
lb_kind NAT 【负载均衡转发规则DR、NAT、TUN】
nat_mask 255.255.255.0
persistence_timeout 50 【http服务会话保持时间秒、持久连接】
protocol TCP 【转发协议TCP和UDP】
real_server 192.168.200.4 1358 {【真实服务器RIP和端口,可以定义多个】
weight 1【负载权重,值越大,转发的优先级越高】
HTTP_GET { 【健康状态检查】
url { 【说明】
path /testurl/test.jsp 【测试页面】
digest640205b7b0fc66c1ea91c463fac6334d
}
{ status_code 200 【返回的状态吗】
connect_port <PORT> 【端口】}
connect_timeout 3【服务连接超时时长】
nb_get_retry 3【服务连接失败重试次数】
delay_before_retry 3【重试连接间隔】
}
【一个Realserver可以配置多个URL】
}
real_server 192.168.200.5 1358 { }
}
记录实时日志:tail –f/var/log/message
如果所有的Realserver都宕机,如何处理:在客户端启动httpd服务,提供说明界面,然后再real_server 192.168.200.41358{}上添加sorry_server 127.0.0.1 80【服务和端口】,重启keeplieved。
LVS+Keepalived在DR模式下配置高可用实用集群
两台负载均衡服务器和两台Realserver服务器
图解说明:
分别在LVS-Master和LVS-BACKUP上安装LVS和Keepalived
LVS-Master的配置文件如下
[root@linux5~]# cat /etc/keepalived/keepalived.conf
global_defs {
notification_email{
jimo291@gmail.com #email 通知
}
notification_email_fromjimo291@gmail.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS1 # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_sync_grouptest { #设置vrrp组
group {
loadbalance
}
}
vrrp_instanceloadbalance {
state MASTER #设置lvs的状态,报错MASTER和BACKUP两种,必须大写
interface eth0 #设置对外服务的接口
lvs_sync_daemon_inteface eth0 #设置lvs监听的接口
virtual_router_id 51 #设置虚拟路由表示
priority 180 #设置优先级,数值越大,优先级越高
advert_int 5 #设置同步时间间隔
authentication{ #设置验证类型和密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress{ #设置lvs vip
192.168.1.115
}
}
virtual_server192.168.1.115 80 {
delay_loop 6 #健康检查时间间隔
lb_algo rr #负载均衡调度算法
lb_kind DR #负载均衡转发规则
#persistence_timeout 20 #设置会话保持时间,对bbs等很有用
protocol TCP #协议
real_server 192.168.1.103 80 {
weight 3 #设置权重
TCP_CHECK { 【服务有效性检测】
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.104 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
LVS-backup的配置文件如下【和主机的配置一样只要修改state和priority两项就可以了】
global_defs {
notification_email{
jimo291@gmail.com
}
notification_email_fromjimo291@gmail.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS2
}
vrrp_sync_grouptest {
group {
loadbalance
}
}
vrrp_instanceloadbalance {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 150
advert_int 5
authentication{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress{
192.168.1.115
}
}
virtual_server192.168.1.115 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 20
protocol TCP
real_server 192.168.1.103 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.104 80 {
weight 3
TCP_CHECK { #【注意这之间有个空格】
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
分别在主备上启动keepalived: /etc/init.d/keepalived start
查看日志:tail -f/var/log/message
这里说的LVS.并不是用ipvsadm软件配置.而是直接用keepalived的virtual_server配置项控制的.
安装ipvsadm只是可以看到负载状况.其实只需要keepalived也可以实现负载均衡集群.
Realserver的配置【两台客户端的脚本都一样】
cat/etc/rc.d/init.d/realserver.sh【755权限】
#!/bin/bash
# description:Config realserver lo and apply noarp
SNS_VIP=192.168.1.115
/etc/rc.d/init.d/functions
case"$1" in
start)
ifconfig lo:0 $SNS_VIP netmask255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null2>&1
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
在Realserver上启动这个脚本,并启动httpd服务。
测试说明:
在浏览器上输入VIP地址,通过主备负载均衡服务器调用Realserver1和Realserver2服务器http服务显示的网页内容,负载均衡启动LVS+Keepalived服务,Realserver启动http服务,停止任何一台机器都能够保证运行。
查看日志:更详细信息请查看日志,tail -f /var/log/messages
- Keepalived+LVS配置高可用服务器
- 配置LVS+keepalived高可用负载均衡服务器
- keepalived+LVS+MySql Cluster 高可用配置
- keepalived+LVS+MySqlCluster 高可用配置
- lvs + keepalived 高可用
- lvs+keepalived高可用
- keepalived 及 keepalived配置LVS高可用集群
- lvs+keepalived 高可用服务
- Keepalived+LVS-DR模式配置高可用负载均衡集群
- CentOS6.4 LVS+keepalived高可用负载均衡服务配置
- Keepalived+LVS-DR模式配置高可用负载均衡集群
- 配置LVS+keepalived 高可用负载均衡集群
- CentOS6.4 LVS+keepalived高可用负载均衡服务配置
- lvs+keepalived实现高可用群集配置详解
- LVS+Keepalived+Squid+Nginx高可用负载均衡缓存配置
- Keepalived+LVS-DR模式配置高可用负载均衡集群
- lvs+keepalived实现高可用群集配置详解
- Keepalived(rpm包)+LVS高可用集群配置
- 使用 /sys 文件系统访问 Linux 内核
- IntelliJ IDEA导入Maven项目
- shell笔记(C语言中文网)
- 逻辑卷中磁盘预警后的处理
- 7、关于requests项目
- Keepalived+LVS配置高可用服务器
- pxe+kickstart无人值守自动安装CentOS6.5
- 在Jquery里格式化Date日期时间数据
- Coursera ML笔记 -----week9-1 异常检测
- 记录一次解决Android显示本地html的问题,赞
- Android中,JNI技术的相关基础知识
- 唯一身份访问者(独立访客)与访问次数的区别
- 我的MBD学习之路
- 修改Matlab启动工作默认文件夹