Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103183896
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-25 10:48:02

作者: Lynghu  出自:
  Keepalived是Linux下面实现VRRP 备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接。在新浪动态应用平台上,Keepalived配合LVS在线上服务中有着很好的稳定性。

  Nginx是基于Linux 2.6内核中epoll模型http服务器,与Apache进程派生模式不同的是Nginx进程基于于Master+Slave多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave进程所有的业务信号都由主进程发出,Slave进程所有的超时任务都会被Master中止,属于非阻塞式任务模型。在新浪博客应用平台上,经过将近8个月的运行,没有因为主进程退出或者子进程僵死导致服务中致的故障存在。

  在生产环境中,任何的机器宕机导致的损失都需要被降到最低,传统的生产环境中,都是将服务器直接放置在4/7层交换机后面以避免因为服务器或者服务器软件故障导致的服务中止。当前的业务模式下,有许多高并发的服务需求,Js小文件、高速动态接口、Nginx七层业务,都希望所有的Socket操作能够尽快完成,减少用户的时间等待。4/7层交换机由于负责了新浪全站多个产品的服务,经常会成为高并发服务应用的一个制约条件。于是,就孕育出了使用Keepalived+Nginx实现双机交叉热备使用公网ip进行DNS轮询服务的想法,这个方案可以运用于需要高并发服务的所有应用环境。越少的Socket通讯层,数据到达用户桌面的速度越快。

  1、服务器IP存活检测:

  服务器IP存活检测是由Keepalived自己本身完成的,将2台服务器配置成Keepalived互为主辅关系,任意一方机器故障对方都能够将IP接管过去。

  2、服务器应用服务存活检测:

  一个正常的业务服务,除了保证服务器的状态存活之外,还需要应用业务的存活。之前之所以有Apache服务器因为进程僵死导致HTTP不响应从而影响服务是因为Apache的进程模式导致的。在Nginx的进程模型下,可以认为只要Nginx进程存活状态,服务就是正常的,于是只需要做到检测进程存活就能够做到检测服务的存活。Slave进程的健康状态由Nginx自身的Master进程去完成,Master进程的存活可以通过服务器上的专用脚本进行监测,一旦发现Nginx Master进程异常退出,则立即重新启动Nginx进程,该方案已经在新浪博客系统上运行近半年。

  3、服务器在线维护:

  Keepalived的服务IP通过其配置文件进行管理,依靠其自身的进程去确定服务器的存活状态,如果在需要对服务器进程在线维护的情况下,只需要停掉被维护机器的Keepalived服务进程,另外一台服务器就能够接管该台服务器的所有应用。
阅读(445) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~