虚拟IP

| 分类 计算机知识  | 标签 virtual ip 

##1. HA特性

额,我们项目中用到了HA(High Availablity)技术,但是自己听见了却发现不知道啥玩意。果断扫盲一下。HA是指通过尽量缩短因日常维护操作或者意外情况导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心业务因为意外而宕机设置的安全保障。

上面文绉绉的说了一段,其实我也是云里雾里的。看完之后总结一下就是:

对于核心业务,需要保证提供服务的机器因意外宕机时,有备用机器可以无缝切换提供服务。所以,HA要求主备机器之间是无状态的。

而实现HA的方式也就容易理解了。比如采用两台环境完全相同的机器提供相同的服务,但是一个对外提供服务,一个随时热身,当对外的机器挂掉时,可以第一时间充当对外服务器,且不需要或者尽可能少的切换操作。

那么,我们怎样实现故障检测呢?

  • 心跳:这个名词看了瞬间感觉高大上啊,有木有!备用服务器定时发送一个数据包,如果机器在最大响应时间内没有响应,就认为发生故障,失去了心跳。于是备用服务器就会切换成主服务器。而这个实现的核心技术就是——虚拟IP。

##2. 虚拟IP

首先我们来定义一下什么是虚拟IP:

虚拟IP指的是一个机器有一个真实的IP之外,还有一个备用IP。使用这两个IP都可以访问这台机器。我们知道,IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址,IP地址是逻辑地址。而地址就想门牌号只有一个,而虚拟IP就是指它不是真正的IP,但它具有IP的功能。

那么,这个虚拟IP又是怎么实现的呢?

  • TCP/IP协议族的ARP协议

ARP是地址解析协议,它的作用很简单,将一个IP地址转换为MAC地址,然后给传输层使用。而每台机器都有一个ARP高速缓存,它会定时给本网络的主机发送数据包收集主机的IP和MAC对应的地址,说是缓存是因为它不可能固定不变,当你更改一台机器的时候,IP对应的MAC就不一样,这时候就需要动态更新。关于ARP是如何工作的,这个随便赵本计算机网络都可以搞清楚。我们主要说一下虚拟IP是如何实现的。

当外部根据IP地址访问时,主机会去ARP高速缓存中找到这个IP地址对应的MAC地址,然后再进行后续的操作。我们可以使用arp -a查看机器的ARP高速缓存,每一条记录大概是(ip_address) at mac_address的样子。假如有ip1 at mac1和ip2 at mac2这两条记录。ip1是对外提供服务的,ip2是热备机器。现在每隔一个固定时间,ip2机器会给ip1机器发送一个数据包,规定时间不响应的话,ip2会发送一个APR数据包,让路由器修改路由表.


上一篇     下一篇