美文网首页ceph
虚拟IP原理

虚拟IP原理

作者: Joncc | 来源:发表于2018-11-23 18:14 被阅读11次

转自 http://blog.csdn.net/whycold/article/details/11898249

高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。

实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

怎么实现故障检测的那?

      心跳,采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。

怎么实现自动切换那?

      虚IP。何为虚IP那,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

开始我也不明白这是怎么实现的,以为是软件动态改IP地址,其实不是这样,其实现原理主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑 地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关 系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现 的关键。

下边就是我电脑上的arp缓存的内容。

(192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0

(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0

(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0

192.168.1.217、192.168.1.218是两台真实的电脑,

192.168.1.217为对外提供数据库服务的主机。

192.168.1.218为热备的机器。

192.168.1.219为虚IP。

大家注意红字部分,219、217的MAC地址是相同的。

再看看那217宕机后的arp缓存

(192.168.1.219) at 00:21:5A:DB:7F:C2 [ether] on bond0

(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0

(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0

这就是奥妙所在。当218 发现217宕机后会向网络发送一个ARP数据包,告诉所有主机192.168.1.219这个IP对应的MAC地址是00:21:5A:DB:7F:C2,这样所有发送到219的数据包都会发送到mac地址为00:21:5A:DB:7F:C2的机器,也就是218的机器。

=======================================

在做HA的时候需要为服务器设计虚拟IP,也就是一个主机对应多个IP地址?刚听起来好神奇,原来这样也是可能的

看了下面的这个链接 自己配了一下

http://hi.baidu.com/pbottle/item/7175d29702a0a0bd83d29533

在eth0处引用别名,设置完子网掩码即可

ifconfig eth0:0 166.111.69.100 netmask 255.255.255.0 up

ifconfig查看此时的信息

点击(此处)折叠或打开

eth0 Link encap:Ethernet HWaddr 08:00:27:64:59:11

          inet addr:166.111.69.17 Bcast:166.111.69.255 Mask:255.255.255.0

          inet6 addr: 2402:f000:1:4412:a00:27ff:fe64:5911/64 Scope:Global

          inet6 addr: fe80::a00:27ff:fe64:5911/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

          RX packets:597673 errors:0 dropped:0 overruns:0 frame:0

          TX packets:215472 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:67285933 (67.2 MB) TX bytes:22782158 (22.7 MB)

eth0:0 Link encap:Ethernet HWaddr 08:00:27:64:59:11

          inet addr:166.111.69.100 Bcast:166.111.69.255 Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

lo Link encap:Local Loopback

          inet addr:127.0.0.1 Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING MTU:16436 Metric:1

          RX packets:843 errors:0 dropped:0 overruns:0 frame:0

          TX packets:843 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:67174 (67.1 KB) TX bytes:67174 (67.1 KB)

然后找另一台机器ping这个vip(eth0:0)就可以看到显示结果了。

写在/etc/rc.local里也可以,写在这里就不怕断电后机器无法正常使用了。

相关文章

  • nginx 高可用HA keepalived学习

    一、原理介绍 上图就是keepalived的双机主备原理,用户通过访问虚拟ip,然后虚拟ip是和nignx相关联的...

  • Nginx 集群搭建(主备切换)

    nginx集群原理 利用虚拟IP,将同一个虚拟IP绑定到多个实际网卡上的IP,形成访问一个虚拟IP时,实际访问的是...

  • 虚拟IP原理

    转自 http://blog.csdn.net/whycold/article/details/11898249 ...

  • 网络配置

    1、Linux网络配置原理图(含虚拟机) 2、查看网络IP和网关 2.1、查看虚拟网络编辑器 2.2、修改ip地址...

  • mysql高可用部署

    实现原理mysql replication 实现主主复制,再加上keepalived实现共用虚拟IP。从而实现自动...

  • 网络配置设置IP地址

    1.linux网络配置原理 目前我们采用的是虚拟机NAT 2.查看网络ip和网关 2.1查看虚拟网络编辑器imag...

  • 虚拟主机和宿主机互相ping通,但是ssh连不上

    虚拟主机:ping 主机ip——通主机:ping虚拟主机ip——通 主机:telnet 虚拟主机ip 22开启te...

  • Vmware + Centos7 配置本地网络

    原理:虚拟机通过本机网络连外网,避免因为网络限制mac地址无法上网; 接下来,则是要对具体的虚拟机设置静态的IP地...

  • 虚IP的理解

    1.虚拟IP是什么? 要是单讲解虚拟 IP,理解起来很困难,所以干脆把动态 IP 、固定 IP 、实体 IP 与虚...

  • iOS IP 直连原理剖析

    iOS IP 直连原理剖析 iOS IP 直连原理剖析

网友评论

    本文标题:虚拟IP原理

    本文链接:https://www.haomeiwen.com/subject/xlcsqqtx.html