Heartbeat VIP/IP 与 别名/辅助IP

2017-01-24  本文已影响1249人  _阿聪

真实IP

真实IP又被称为管理IP,一般是配置在物理网卡上的实际IP,这可以看作你本人的姓名,如:张三在负载均衡及高可用环境中,管理IP是不对外提供用户访问服务的,而作为管理服务器用,如SSH可以通过这个管理IP连接服务器。

[root@crazy-acong ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:2C:5C:43  
          inet addr:192.168.40.10  Bcast:192.168.40.255  Mask:255.255.255.0

提示:这里配置在eth0网卡上的IP就是真实IP,也称为管理IP

虚拟IP

虚拟IP即VIP,这只是一个概念而已,可能会误导你,实际上就是heartbeat临时绑定在物理网卡上的别名(heartbeat3以上页采用了辅助IP),如eth0:x ,x为0-255的任意数字,你可以在一块网卡上绑定多个别名。这个VIP可以看作是你上网的QQ网名、昵称、外号等。在实际生产环境中,需要在DNS配置中把网站域名地址解析到这个VIP地址,由这个VIP对用户提供服务。如:把www.zhangcong.top解析到VIP 1.1.1.1 上。

这样做的好处就是当提供服务的服务器宕机以后,在接管的服务器上会直接自动配置上同样的VIP提供服务。如果是使用管理IP的话,来回迁移就难以做到,而且,管理IP迁移走了,我们就只能去机房连接服务器了,VIP 的实质就是确保两台服务器有一个管理IP不动,就是随时可以连上服务器,然后增加绑定其他的VIP,这样就算VIP转移走了,也不至于服务器本身连不上,因为还有管理IP可以使用

Linux系统给网卡配置VIP的方法常见的有两种,即别名IP(alias ip)以及辅助IP(secondary ip address)。
ip alias 和 secondary ip address 是两种不同的实现方式,用来在 Linux 系统中给同一个物理网卡增加多个ip地址

别名IP(alias ip)

ip alias 是由 Linux 系统的 ifconfig 命令来创建和维护的,别名IP就是在网卡设备上绑定的第二个及以上的IP,例如:

# 使用下面两种方法都可以
[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20 netmask 255.255.255.0 up
[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20/24 up 
# heartbeat2 软件默认是使用这个命令来添加的
# 使用别名的方法配置的VIP可以通过ifconfig查看,也可以通过ip addr 查看
[root@crazy-acong ~]# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:2C:5C:43  
          inet addr:192.168.40.20  Bcast:192.168.40.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

# 提示:这个ip就是启动heartbeat服务时,由heartbeat调用相关脚本配置的
# 使用下面两种方法都可以
[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20 netmask 255.255.255.0 down
[root@crazy-acong ~]# ifconfig eth0:1 down
# 写入到网卡配置文件可以让别名IP永久生效,名字可以为ifcfg-eth0:x,x为0-255的任意数字,IP等内容格式和ifcfg-eth0一致,或者将命令写入/etc/rc.local

注意:别名IP将被遗弃,用辅助IP替代

辅助IP(secondary ip address)

辅助IP则是由Linux系统的ip命令创建和维护的,ip addr add 创建的辅助IP,不能通过ifconfig查看,但是通过ifconfig创建的别名IP却可以在ip addr show 命令查看。

[root@crazy-acong ~]# ip addr add 192.168.40.20/24 dev eth0

# keepalived 软件默认使用这个命令来添加VIP,也是heartbeat3软件采用的方案
# ip add 可以查看别名和辅助IP,用ifconfig无法查到辅助IP配置情况
[root@crazy-acong ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:2c:5c:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.40.10/24 brd 192.168.40.255 scope global eth0
    inet 192.168.40.20/24 scope global secondary eth0
    inet6 fe80::20c:29ff:fe2c:5c43/64 scope link 
       valid_lft forever preferred_lft forever

# ip addr show 、 ip addr 、 ip add 这三个命令的结果都是一样的
[root@crazy-acong ~]# ip addr del 192.168.40.20/24 dev eth0

提示: heartbeat 和 keepalived 在启动时就是分别利用上面命令来配置VIP的。在停止时利用下面的命令来删除VIP。以上两种方式配置VIP,在高可用环境中的作用是一样的,没什么区别,只是由于当时的系统环境等历史原因,选择的配置命令方式不同。heartbeat3 版本起,不在使用别名,而是使用辅助IP提供服务,而 keepalived 软件一直都是使用的辅助IP技术。

上一篇下一篇

猜你喜欢

热点阅读