CDN架构实践:LVS 和keepalived 配置实例
来源:互联网 发布:唐氏筛查自动计算软件 编辑:程序博客网 时间:2024/06/08 12:40
0x01 初衷
最近在研究分布式的东西,就拿CDN来练手了(基于《CDN技术详解》),所以就萌生了自己建个CDN集群的想法,当然都是开源的内容,只是个人实践,高手请指教。后续还会增加GSLB、分布式文件系统和网络存储。 下面是我实践的一些记录及过程。
0x02 配置
实际中,我同时开了4个虚拟机运行,其中两个是LVS+Keepalived,两个是server,下面是借鉴的拓扑图
至于如何安装LVS和keepalivde,此文就略过了。
下面是LVS master的 keepalived配置
!Configuration File for keepalivedglobal_defs {notification_email {xxxxxx@qq.com}notification_email_from xxxxxx@qq.comsmtp_server smtp.qq.com#smtp_connect_timeout 30#router_id LVS_DEVELrouter_id LVS_DEVEL_MASTER}#VIP1vrrp_instance VI_1 {state MASTERinterface eth0lvs_sync_daemon_interface eth0virtual_router_id 51priority 200advert_int 5authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.10.10.200}}virtual_server 10.10.10.200 80 {delay_loop 6lb_algo wlclb_kind DRpersistence_timeout 60protocol TCPreal_server 10.10.10.103 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 10.10.10.104 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}}
这是相关的启动脚本
#!/bin/bashecho "1" > /proc/sys/net/ipv4/ip_forwardIPVSADM='/sbin/ipvsadm'VIP=10.10.10.200RS1=10.10.10.103RS2=10.10.10.104ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 uproute add -host $VIP dev eth0:1$IPVSADM -C$IPVSADM -A -t $VIP:80 -s rr$IPVSADM -a -t $VIP:80 -r $RS1:80 -g -w 1$IPVSADM -a -t $VIP:80 -r $RS2:80 -g -w 1$IPVSADM -L -n它们都是开机启动的。
LVS backup的配置文件就不写了,主要它们的不同点就是router_id 和 priority 一定要不同。
对于RS的配置如下:
#!/bin/bash #description: Config realserverSNS_VIP=10.10.10.200#/etc/rc.d/init.d/functionscase "$1" instart)/sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP/sbin/route add -host $SNS_VIP dev lo:0echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/lo/arp_announceecho "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/all/arp_announcesysctl -p > /dev/null 2>&1echo "RealServer Start OK";;stop)/sbin/ifconfig lo:0 down/sbin/route del $SNS_VIP > /dev/null 2>&1echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" > /proc/sys/net/ipv4/conf/lo/arp_announceecho "0" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" > /proc/sys/net/ipv4/conf/all/arp_announcesysctl -p > /dev/null 2>&1echo "RealServer Start OK";;*)echo "Usage: $0 {start|stop}"exit 1esacexit 0
0x03 问题
在这个解决的过程中,遇到了一个问题就是脑裂, LVS backup进入master状态后,不能切回backup(master起来之后),后来才发现是centos默认启用了iptables规则,导致master和backup"心跳“检测失败。其余的小问题,略过......
另外,抓包解决的过程中,发现master和backup一直都在给后端服务器端口80发送报文,给分析解决问题加了个”窗户纸“,其实这是后端服务器健康检测的报文,分析问题的时候不要被误导了。
0 0
- CDN架构实践:LVS 和keepalived 配置实例
- keepalived + LVS 配置和部署
- lvs + keepalived 系统架构
- Centos7-Lvs+Keepalived架构
- lvs和keepalived的结合配置
- LVS+keepalived keepalived.conf配置
- lvs+keepalived简单配置
- lvs+keepalived简单配置
- keepalived+lvs的配置
- lvs(ipvsadm)-keepalived配置
- docker+lvs+keepalived配置
- LVS+Keepalived配置示例
- 配置 lvs+keepalived
- heartbeat+lvs和keepalived
- 【CDN 最佳实践】CDN缓存策略解读和配置策略
- 【CDN 最佳实践】CDN缓存策略解读和配置策略
- LVS-NAT, LVS-DR, LVS-KEEPALIVED,LVS-TUN配置
- LVS和keepalived安装过的配置语句
- Gson解析Json实例
- IIS的各种身份验证详细测试
- Java回忆录(一)-------邂逅
- android客户端和java服务端之间用socket来传输图片(示例代码)
- 数据结构—数组实现两个栈,不上溢
- CDN架构实践:LVS 和keepalived 配置实例
- android ViewPager动画的实现原理及效果
- 深入了解Java运行时的内存区域
- android network 整理计划
- 通过Xcode导出ipa包
- Invalidate()
- sleep(0)
- 1033. 旧键盘打字(20)
- oralce 一个SQL插入多条记录