1、默认配置
以下内容是keepalived.conf中的全局配置内容样例:
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.200.200 1358
real_server 192.168.200.2 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
2、配置详解
2.1、配置简介
我们可以通过 man keepalived.conf 方式来查看所有的配置信息,在keepalived.conf配置文件中,虚拟主机配置段主要包含以下两部分内容:Virtual server group(s) and Virtual server(s)。而默认配置文件中的全局配置信息仅仅是Virtual server(s)的一部分。
接下来我们主要来讲解一下默认的内容中的比较重要的一部分,其他内容,我们会随着课程逐渐展开,或者大家在课下遇到问题后再来解决。
2.2、配置格式:
virtual_server {…}
注意:
这里设定的是VIP相关信息,而VIP必须与VRRP中设定的virtual_ipaddress内容一致
常见属性:
delay_loop 用于服务轮询的延迟计时器
lb_algo 设定访问后端服务的调度策略
在当前的keepalived版本下,它支持7种调度算法 rr|wrr|lc|wlc|lblc|sh|dh
lb_kind 设定数据转发的模型
因为是基于IPVS进行负载均衡的,所以数据转发的模型与LVS一致 NAT|DR|TUN
persistence_timeout 设定数据持久性的超时时间,默认为6分钟
protocol 设定数据通信的协议,默认支持三种 TCP|UDP|SCTP
这一项是必备的,因为我们使用ipvsadm 创建集群的时候,必须指定通信协议
sorry_server 备用真实主机,当所有RS失效后,开始启用该后备主机。
real_server 设定后端主机的信息
2.3、真实主机属性
real_server 192.168.12.132 80 {
weight 3
inhibit_on_failure
notify_up |
notify_down |
}
上述示例中每个选项的含义如下:
☆ real_server:是设置real_server段开始的标识,用来指定real_server节点,后面跟的是real_server的真实IP地址和端口,IP与端口之间用空格隔开。
★weight:用来配置real_server节点的权值。权值大小用数字表示,数字越大,权值越高,默认是1。设置权值的大小可以为不同性能的服务器分配不同的负载,
为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配系统资源。
☆inhibit_on_failure:表示在检测到real server节点失效后,把它的“weight”值设置为0,而不是从IPVS中删除。
★notify_up:此选项与上面介绍过的notify_master有相同的功能,后跟一个脚本,表示在检测到real server节点服务处于UP状态后执行的脚本。
☆notify_down:表示在检测到real server节点服务处于DOWN状态后执行的脚本。
健康检测段允许多种检查方式,常见的有HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK。
HTTP_GET 以HTTP方式来检查后端主机
TCP_CHECK 以TCP方式来检查后端主机
SMTP_CHECK 以SMTP方式来检查后端主机
DNS_CHECK 以DNS方式来检查后端主机
MISC_CHECK 以MISC方式来检查后端主机
2.4、HTTP检测属性
url {
path 指定要检查的URL的路径
digest 校验码验证,校验计算:genhash -s -p -u /path/to/url
status_code 状态码方式验证,推荐使用这种方法
}
注意:
由于digest方式太繁琐,而且文件一旦变动,老的digest就不能用了,所以不推荐
connect_timeout 连接超时时间,默认5s
nb_get_retry get方式获取检测url页面的重试次数
delay_before_retry 重试的间隔时间,默认1s
2.5、TCP检测属性
connect_ip 测试目标的ip,默认是RS的ip,可省略
connect_port 测试目标的端口,默认是RS的port,可省略
connect_timeout 连接超时时间
nb_get_retry 重试次数,可省略
delay_before_retry 重试间隔时间,默认1s
2.6、MISC检测属性
MISC_CHECK检测方式的示例:
MISC_CHECK {
misc_path /usr/local/bin/script.sh
misc_timeout 5
!misc_dynamic
}
MISC健康检查方式可以通过执行一个外部程序来判断real server节点的服务状态,使用非常灵活。
misc_path : 用来指定一个外部程序或者一个脚本路径。
misc_timeout : 设定执行脚本的超时时间。
misc_dynamic : 表示是否用动态调整real server节点权重,“!misc_dynamic”表示不启用,相反则表示启用。在启用这个功能后,Keepalived的healthchecker进程将通过退出状态码来动态调整real server节点的weight值,如果返回状态码为0,表示健康检查正常,real server节点权重保持不变;如果返回状态码为1,表示健康检查失败,那么将real server节点权重设置为0;如果返回状态码为2 ~ 255之间任意数值,表示健康检查正常,但real server节点的权重将被设置为返回状态码减2,例如返回状态码为10,real server节点权重将被设置为8(10 – 2)。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net