centos7 lvs keepalived做DNS集群负载
2LVS + keepalived
5 bind dns源站
yum -y install ipvsadm keepalived
lvs增加并发
echo "options ip_vs conn_tab_bits=22" > /etc/modprobe.d/ip_vs.conf 然后重启服务器
cat check_dns_resolve.sh # 该文件加执行权限
#!/bin/bash
# check dns resolve a_check="check.healthcheck.check"
nslookup_bin="/usr/bin/nslookup" ns_ip=$1
port=53
timeout=2 function EchoHelp(){
echo "use: ./check_dns_resolve.sh [ip] {port}"
exit 1
} if [ $2 ]; then
port=$2
fi if [ $ns_ip -a $a_check ]; then
$nslookup_bin -timeout=${timeout} -port=$port $a_check $ns_ip > /dev/null
else
EchoHelp fi exit $?
keepalived_notify.py 参照 https://www.cnblogs.com/linkenpark/p/7416998.html
lvs1 keepalived配置:
cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
keepalived@qq.com
}
notification_email_from keepalived@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs_canlu
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 162
mcast_src_ip 172.16.12.26
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass sPkdd98m
}
virtual_ipaddress {
172.16.12.30
}
notify_master "/bin/python /tuandai/script/keepalived_notify.py master 172.16.12.26 172.16.12.30"
notify_backup "/bin/python /tuandai/script/keepalived_notify.py backup 172.16.12.26 172.16.12.30"
}
## dns_bind
virtual_server 172.16.12.30 53 {
delay_loop 6
lb_algo lc
lb_kind DR
#persistence_timeout 1
protocol UDP
real_server 172.16.7.14 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.14"
misc_timeout 5
}
}
real_server 172.16.7.15 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.15"
misc_timeout 5
}
}
real_server 172.16.7.16 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.16"
misc_timeout 5
}
}
real_server 172.16.7.17 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.17"
misc_timeout 5
}
}
real_server 172.16.7.18 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.18"
misc_timeout 5
}
}
}
lvs2 keepalived配置:
global_defs {
notification_email {
keepalived@qq.com
}
notification_email_from keepalived@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs_canlu
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 162
mcast_src_ip 172.16.12.27
priority 99
advert_int 2
authentication {
auth_type PASS
auth_pass sPkdd98m
}
virtual_ipaddress {
172.16.12.30
}
notify_master "/bin/python /tuandai/script/keepalived_notify.py master 172.16.12.27 172.16.12.30"
notify_backup "/bin/python /tuandai/script/keepalived_notify.py backup 172.16.12.27 172.16.12.30"
}
## dns_bind
virtual_server 172.16.12.30 53 {
delay_loop 6
lb_algo lc
lb_kind DR
#persistence_timeout 1
protocol UDP
real_server 172.16.7.14 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.14"
misc_timeout 5
}
}
real_server 172.16.7.15 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.15"
misc_timeout 5
}
}
real_server 172.16.7.16 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.16"
misc_timeout 5
}
}
real_server 172.16.7.17 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.17"
misc_timeout 5
}
}
real_server 172.16.7.18 53 {
weight 10
MISC_CHECK {
misc_path "/usr/bin/sh /etc/keepalived/check_dns_resolve.sh 172.16.7.18"
misc_timeout 5
}
}
}
keepalived进程检测:
cat /script/check_keepalived.sh
#!/bin/bash servicename="keepalived"
showname="keepalived"
pid="keepalived"
status="${showname}_failed"
success_status="${showname}_success" function CheckPs(){
local ret=`pidof $pid | wc -l`
echo $ret
} if [ $(CheckPs) == 0 ]; then
service $servicename restart
sleep 1
if [ $(CheckPs) != 0 ]; then
status=$success_status
fi else
status=$success_status
fi echo $status
添加定时任务
cat /etc/crontab
## check keepalived
* * * * * root sh /script/check_keepalived.sh > /dev/null;
centos7 lvs keepalived做DNS集群负载的更多相关文章
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- lunix 集群,负载均衡,location
nginx location语法: location支持的语法优先级: 复制代码location匹配顺序 # www.s14hanju.com/1.location = / { 我是代码1} ...
- zookeeper在集群负载均衡中的应用
zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...
- haproxy+keepalived实现web集群高可用性[转]
负载均衡集群的概念 负载均衡是设计分布式系统架构必须要考虑的因素之一,它指的是通过调度分发的方式尽可能将“请求”.“访问”的压力负载平均分摊到集群中的各个节点,避免有些节点负载太高导致访问延迟,而有些 ...
- Keepalived高可用集群应用
Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...
- Apache + Tomcat集群 + 负载均衡
Part I: 取经处: http://www.ramkitech.com/2012/10/tomcat-clustering-series-simple-load.html http://blog ...
- Haproxy+keepalived高可用集群实战
1.1 Haproxy+keepalived高可用集群实战 随着互联网火热的发展,开源负载均衡器的大量的应用,企业主流软件负载均衡如LVS.Haproxy.Nginx等,各方面性能不亚于硬件负载均衡 ...
- Application Request Route实现IIS Server Farms集群负载详解
序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...
随机推荐
- POJ-2689 Prime Distance (两重筛素数,区间平移)
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13961 Accepted: 3725 D ...
- 65. Valid Number *HARD*
Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ...
- Animation同时改变多个属性的动画
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- DB2默认的事务及并发锁机制
今天有点时间,试验了一下DB2的并发锁机制,结果,和MSSQL的差不多:1.DB2的缺省行为,事务以可执行的SQL开始,以COMMIT或ROLLBACK结束:2.DB2缺省是否提交,以工具的不同而不同 ...
- JavaScript运算符:递增递减运算符前置和后置的区别
从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...
- spring cloud学习(四) Fegin 的使用
Feign 的使用 什么是Feign? Feign : Declarative REST clients. Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创 ...
- PHP:第二章——PHP中的switch语句
<?php header("Content-Type:text/html;charset=utf-8"); /* switch语句: */ //例1: /*$i = 99; ...
- TClientDataSet的FileName属性
读取cds文件数据. FileName一定要在设计时输入,否则程序运行时,不会自动读取cds文件. 因为FORM创建时,数据集组件也相应创建,如果是在运行时 设置FileName,那么是在数据集组件创 ...
- 读书笔记 C# Linq查询之group关键字浅析
在C#中,自从有了Linq查询表达式后,程序员对可被迭代的序列或列表执行一系列的筛选.排序.过滤.分组.查询等操作.本文章所要讲述的是group关键字. Linq查询表达式,是以from关键字开头,以 ...
- spring数据源
包含三部分内容 1.spring jdbc 2. spring datasource 3.spring Connection pooling 完整的项目请往百度云盘下载: https://pan.ba ...