虚拟机环境中Keepalived虚拟IP自动漂移的研究
- 格式:pdf
- 大小:1.42 MB
- 文档页数:2
Nginx和Keepalived的组合常用于实现高可用性(High Availability, HA)的Web服务。
下面简要介绍Nginx和Keepalived的工作原理以及它们如何一起提供高可用性。
Nginx工作原理1. 反向代理:Nginx作为一个反向代理服务器,接受客户端的请求,然后将请求转发到后端服务器(如Apache、Tomcat等)。
它可以根据配置将请求分发到不同的后端服务器上,实现负载均衡。
2. 热重载:Nginx能够在不重启的情况下动态更新配置,这使得它能够快速适应服务变化,如后端服务器的故障或新增。
3. 高性能:Nginx使用异步事件驱动的方法处理请求,这使得它在处理大量并发请求时具有很高的性能。
Keepalived工作原理1. VRRP(Virtual Router Redundancy Protocol):Keepalived实现VRRP协议,用于提供IP地址(虚拟IP,VIP)的高可用性。
VRRP允许多个路由器(或Keepalived实例)协同工作,共同提供虚拟IP的服务,其中一个是主路由器,负责处理所有的请求,其他的是备份路由器。
2. 健康检查:Keepalived可以配置健康检查脚本来监控Nginx实例的状态。
如果主Nginx实例发生故障,Keepalived将自动将VIP切换到备份Nginx实例上。
3. 故障转移:当主Nginx实例不可用时,Keepalived会根据配置的策略(如抢占式或非抢占式)将VIP转移给备用实例。
Nginx与Keepalived的结合1. 配置Nginx:在Nginx配置中,通常会设置一个监听端口,并将请求代理到Keepalived管理的VIP上。
2. 配置Keepalived:Keepalived配置中定义了VIP和两个Nginx 实例(主备关系)。
它使用VRRP协议确保VIP的高可用性,并使用健康检查来监控Nginx实例。
3. 故障切换:当主Nginx实例发生故障时,Keepalived会自动将VIP切换到备用Nginx实例,这样就可以确保Web服务的连续性。
云计算中的虚拟机迁移技术研究一、引言虚拟化技术的发展使得云计算逐渐成为了信息技术的核心。
虚拟化技术能够将物理资源抽象化成虚拟资源,从而为云计算提供了基础。
虚拟机是云计算中的一种核心技术,它将物理机变成了多个虚拟机,使得多个租户共享机器的同时,互不干扰。
然而,虚拟机迁移是云计算中的一个重要问题,涉及到如何在具有随时随地访问的云中移动虚拟机的运行状态,如何保证虚拟机在迁移时不会出现中断或数据丢失以及如何在保证迁移过程中能够提供高质量服务。
本文主要探讨在云计算中的虚拟机迁移技术研究,从迁移的流程、迁移时的安全与可靠性以及虚拟机迁移技术的优化方面进行论述。
二、虚拟机迁移的流程虚拟机迁移指的是将运行在一台物理机上的虚拟机迁移到另一台物理机上的一种操作。
虚拟机迁移可以实现在不影响虚拟机运行的情况下,让虚拟机更均衡地分布在不同的物理机上,以达到资源最优的目的,同时可以避免物理机抱死等情况影响整个云计算中其他虚拟机的运行。
虚拟机迁移的流程如下:1. 源物理机选择合适的目标物理机在虚拟机迁移之前,需要先选择合适的目标物理机。
一般来说,物理机需要满足更高的计算能力和存储能力,来保证迁移后虚拟机的正常运行。
但是为了保证云计算的负载均衡,也需要选择相对空闲的物理机作为目标物理机。
2. 迁移准备工作在虚拟机迁移之前,需要先确定虚拟机的运行状态,如虚拟机的内存、CPU、磁盘等资源是否可以被迁移。
当然,在网络方面,也需要保证源物理机和目标物理机之间的网络连接畅通。
3. 虚拟机迁移操作在确定迁移准备工作完成后,进行虚拟机的迁移操作。
虚拟机的迁移可以基于实时镜像备份、内存迁移操作或磁盘映像等多种方式。
4. 迁移后的后续工作虚拟机完成迁移后,需要重新分配资源,并重新启动虚拟机。
三、虚拟机迁移的安全性与可靠性虚拟机迁移作为云计算中的一项核心技术,需要保证迁移过程中的安全性与可靠性。
虚拟机的迁移操作可能会导致虚拟机运行的中断或数据的丢失,对云计算的运营造成严重影响,因此,对虚拟机迁移的安全性和可靠性进行保障是云计算运营过程中的重要工作。
云计算中的虚拟机迁移与调度技术研究随着云计算的普及,虚拟化技术被广泛应用在数据中心、企业和个人用户的计算机系统中。
虚拟化技术通过将系统资源的抽象与物理基础设施分离,提供了更高的利用率和更好的弹性,从而为云计算提供了基础。
虚拟机迁移技术是虚拟化技术的一个关键应用之一,可以在不影响应用程序可用性的情况下,为虚拟机分配更好的资源和防止瓶颈的出现。
虚拟机调度技术是对虚拟机资源的动态管理,可以在系统资源紧缺的情况下更好地分配资源。
本文将着重讨论虚拟机迁移和调度技术,并探讨当前技术的现状以及未来的发展趋势。
一、虚拟机迁移技术虚拟机迁移技术被广泛应用于数据中心和云计算环境中。
其优点是实现负载均衡,提高资源利用率,解决服务器维护、升级和故障处理时的停机问题。
虚拟机迁移技术的核心是将虚拟机从一个物理主机迁移到另一个物理主机,以达到平衡资源负载的目的。
虚拟机迁移技术的实现大致可以分为两种方式:预先分配和实时调整。
预先分配是指在虚拟机启动时将虚拟机分配到特定的物理主机上,使其具有固定的资源。
这样做的好处是在长时间内保证虚拟机性能的稳定和一致性。
然而,当负载分布不平衡时,会导致物理主机资源的浪费和负载不平衡的问题。
因此,预先分配的虚拟机迁移技术不如实时调整的虚拟机迁移技术灵活。
实时调整是指在虚拟机运行时根据负载分布情况动态对虚拟机进行迁移。
在实时调整中,虚拟机会不断地根据负载情况对主机进行选择。
这种方式灵活性高,可以针对不同的负载情况进行虚拟机调整,有效解决了资源利用率不高和主机利用率不足的问题。
然而,实时调整的虚拟机迁移技术对数据中心的网络和存储系统造成了较大的压力和复杂性,因而可能导致快速移动虚拟机产生的网络延迟问题等。
二、虚拟机调度技术虚拟机调度技术是对虚拟机的资源动态管理,可以在资源紧缺的情况下更好地分配虚拟机的资源。
虚拟机调度可以在不影响虚拟机的性能和可用性的前提下实现负载均衡。
现代虚拟机调度技术的实现方法有多种,在资源分配和管理方面表现出了不同的优缺点。
云计算环境下的虚拟机迁移算法研究一、引言随着云计算技术的快速发展,越来越多的企业和个人开始将自己的应用程序和数据存储在云平台上,这为大规模数据交换和资源共享提供了可能性。
虚拟化技术是实现云计算的基础,它可以将一个物理服务器划分成多个虚拟服务器,以提高资源利用率和灵活性。
然而,在云计算环境下,虚拟机迁移算法的研究成为了一个重要的问题,它可以提高云资源的利用效率和可靠性。
二、虚拟机迁移技术的应用虚拟机迁移技术可以在不影响用户访问的情况下将虚拟机从一个物理服务器迁移到另一个物理服务器。
这项技术在云计算中具有非常广泛的应用,例如:1. 实现负载均衡:将虚拟机从负载较高的服务器迁移到负载较低的服务器上,以平衡整个系统的负荷,提高系统的性能和稳定性。
2. 节约能源:将虚拟机从一台服务器迁移到另一台服务器上,可以关闭原服务器来节约能源成本,提高服务器的利用率。
3. 硬件维护:当一台服务器需要进行硬件更换或维护时,虚拟机迁移可以将其上运行的虚拟机迁移到其他服务器上,以确保服务的持续性和可靠性。
三、虚拟机迁移的挑战虚拟机迁移技术虽然有着众多的优点,但也面临着一些挑战,例如:1. 虚拟机迁移的时间:由于虚拟机迁移需要将虚拟机的内存、硬盘、网络数据等全部迁移,所以迁移时间一般较长,在高并发的应用场景中可能会影响到用户的服务质量。
2. 迁移过程中的数据一致性:由于虚拟机迁移需要将虚拟机的数据全部迁移,所以如果在迁移过程中有数据写入操作,则可能会导致数据不一致性问题。
3. 相邻节点选择问题:虚拟机迁移需要选择一个相邻节点来迁移,但如何选择相邻节点是一个非常复杂的问题,需要考虑到网络延迟、带宽情况、硬件配置等方面的因素。
四、虚拟机迁移算法的研究为了解决上述问题,许多学者提出了各种虚拟机迁移算法,其中比较经典的算法包括:1. 基于预测的虚拟机迁移算法:该算法通过对当前系统的负载和资源利用情况进行预测,选择最佳的迁移节点。
2. 基于流量特征的虚拟机迁移算法:该算法通过对系统流量特征的分析,在迁移时选择最佳的节点,以提高系统的性能和稳定性。
网络简报版权所有○C 2009。
Enterprise Strategy Group, Inc. 保留所有权利。
通过智能化、自动化的感知虚拟机网络解决方案使虚拟机的漂移成为可能时间:2009年3月作者:Bob Laliberte (分析师)摘要:企业纷纷部署服务器虚拟化,希望通过整合受益,以达到降低资本及运营成本的目的。
此外,服务器虚拟化的益处还包括通过网络存储来强化可移动性和可用性。
然而,如何确保高可移动性虚拟机(VM )的网络性能和安全性很快成为了一个操作难题。
为了实现对动态环境的支持,VM 需要智能网络。
当许多厂商还只是谈论这个概念时,BLADE Network Technologies 已经积极地针对所有服务器虚拟化技术推出了产品来解决问题。
概述服务器虚拟化技术使IT 重要举措之一的基础设施整合成为可能。
虽然VMware 依然占据着行业的领导地位,但Microsoft 、Citrix 以及其他公司产品的影响也在加强。
许多环境下,用户使用着不同厂商的虚拟机(VM )解决方案。
而减少服务器基础设施将会带来诸多好处,如提高利用率、减少物理设施需求来降低采购开支、减少维护及运营支出、降低能耗和散热需求,保证对更加灵活和动态的计算环境的支持。
因此,上述原因刺激了众多企业将服务器虚拟化技术纳入到数据中心。
ESG 的研究显示,虚拟化技术正在生产环境中得到广泛的应用(见图1)。
在参与调查的365家企业中,有81%的企业表示已经在其生产环境中部署了服务器虚拟化技术。
另外,有46%的企业指出他们正在虚拟环境中运行一级应用程序。
图1. 服务器虚拟化的采用第2页考虑到被支持应用的重要性,确保资源池内的虚拟机与传统物理基础设施具有相同级别的性能和安全性是至关重要的。
许多企业在将应用从物理服务器移植到虚拟机的过程中发现,这一新的虚拟环境将面临很大的挑战—如何确保支持的基础设施能够适应虚拟机在虚拟资源池中的漂移。
VM每漂移一次,网络就需要检查一遍服务质量(QoS)、访问控制列表(ACL)以及虚拟局域网(VLAN),以保证这些设置都能够随着虚拟机进行迁移,尤其当出现混合负载争夺可用物理资源时,这一点就变得更加重要。
虚拟机的IP地址分配和网络设置的方式虚拟机的IP地址分配和网络设置是在虚拟化环境中非常重要的一部分。
正确的IP地址分配和网络设置能够确保虚拟机之间以及与外部网络的通信。
本文将介绍虚拟机IP地址分配和网络设置的方式,以及其相关的具体操作步骤。
一、静态IP地址分配方式静态IP地址分配方式是指通过手动设置虚拟机的IP地址、子网掩码、默认网关等网络参数来实现网络连接。
这种方式适用于网络环境稳定、IP地址不经常变动的情况。
操作步骤:1. 打开虚拟机的控制面板,在网络设置中选择手动分配IP地址。
2. 输入IP地址、子网掩码和默认网关等网络参数,确保与网络环境相匹配。
3. 点击应用或保存按钮,完成静态IP地址的设置。
二、动态主机配置协议(DHCP)方式DHCP方式是指通过网络中的DHCP服务器自动分配一个唯一的IP 地址给虚拟机。
这种方式适用于大规模部署虚拟机的情况,能够简化网络管理和配置工作。
操作步骤:1. 打开虚拟机的控制面板,在网络设置中选择使用DHCP服务器分配IP地址。
2. 确保网络连接正常,虚拟机会自动向DHCP服务器发送请求获取IP地址。
3. DHCP服务器收到请求后,会给虚拟机分配一个可用的IP地址,虚拟机将自动应用该地址。
三、网络地址转换(NAT)方式NAT方式是指通过虚拟机管理软件(如VMware、VirtualBox等)自动为虚拟机分配一个内部IP地址,而对外部网络隐藏。
这种方式适用于需要虚拟机与外部网络通信,但不需要外部网络直接访问虚拟机的情况。
操作步骤:1. 打开虚拟机管理软件的设置界面,选择网络设置中的NAT模式。
2. 确保虚拟机的网络连接正常,虚拟机将自动获取到一个内部IP地址。
3. 虚拟机可以通过网络地址转换的方式与外部网络进行通信。
四、桥接方式桥接方式是指虚拟机通过桥接虚拟网络适配器与物理网络适配器相连,直接在物理网络上获得一个独立的IP地址。
这种方式适用于需要虚拟机与外部网络完全隔离,且需要让外部网络直接访问虚拟机的情况。
三.keepalived介绍及⼯作原理⼀、keepalived的介绍Keepalived软件起初是专为LVS负载均衡软件设计的,⽤来管理并监控LVS集群系统中各个服务节点的状态,后来⼜加⼊了可以实现⾼可⽤的VRRP功能。
因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的⾼可⽤解决⽅案软件。
Keepalived软件主要是通过VRRP协议实现⾼可⽤功能的。
VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的⽬的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个⽹络可以不间断地运⾏。
所以,Keepalived⼀⽅⾯具有配置管理LVS的功能,同时还具有对LVS下⾯节点进⾏健康检查的功能,另⼀⽅⾯也可实现系统⽹络服务的⾼可⽤功能。
keepalived:vrrp协议:Virtual Router Redundancy Protocol术语:虚拟路由器:Virtual Router虚拟路由器标识:VRID(0-255),唯⼀标识虚拟路由器物理路由器:master:主设备backup:备⽤设备priority:优先级VIP:Virtual IPVMAC:Virutal MAC (00-00-5e-00-01-VRID)通告:⼼跳,优先级等;周期性⼯作⽅式:抢占式,⾮抢占式安全⼯作:认证:⽆认证简单字符认证:预共享密钥MD5⼯作模式:主/备:单虚拟路径器主/主:主/备(虚拟路径器1),备/主(虚拟路径器2)⼆、Keepalived服务的重要功能1、管理LVS负载均衡软件早期的LVS软件,需要通过命令⾏或脚本实现管理,并且没有针对LVS节点的健康检查功能。
为了解决LVS的这些使⽤不便的问题,Keepalived就诞⽣了,可以说,Keepalived软件起初是专为解决LVS的问题⽽诞⽣的。
云计算中的虚拟机迁移技术研究近年来,随着云计算技术的不断发展,云计算已成为各企业和个人的主要选择之一。
云计算平台的灵活性和高性能为用户提供了无限的可能性。
而在云计算平台中,虚拟机迁移技术被广泛应用,为用户提供了更高效的资源利用率和灵活的业务布局。
虚拟机迁移是将在一台物理机上运行的虚拟机在不中断服务的情况下转移到其他物理机上。
这一技术在云计算环境中起到了至关重要的作用,能够实现资源的动态分配和负载均衡,提高系统的可用性和性能。
首先,虚拟机迁移技术可以实现资源的动态分配。
在云计算平台中,不同的任务对计算资源的需求是不一样的。
通过虚拟机的迁移,可以根据任务的需求合理分配计算资源,提高资源的利用率。
例如,一些任务在某个时间段内需要较高的计算资源,而其他时间段只需要较低的计算资源。
通过虚拟机迁移技术,可以根据不同时间段的需求自动调整计算资源分配,达到资源的动态分配和配置的效果。
其次,虚拟机迁移技术能够实现负载均衡。
在云计算平台中,物理机上可能运行多个虚拟机,虚拟机的负载情况会影响到整个系统的性能和稳定性。
通过虚拟机迁移技术,可以将资源负载高的虚拟机转移到负载较低的物理机上,实现负载均衡。
这样可以避免某个物理机负载过高而导致性能下降,同时提高整个系统的可用性。
此外,虚拟机迁移技术可以提高系统的可靠性。
在云计算平台中,由于网络故障、硬件故障或其他不可预测的原因,物理机的故障是无法避免的。
通过虚拟机迁移技术,当一个物理机发生故障时,可以将运行在该物理机上的虚拟机迁移到其他正常的物理机上,从而避免了系统的中断和数据的丢失,提高了系统的可靠性。
然而,在实际应用中,虚拟机迁移技术面临着一些挑战和限制。
首先,虚拟机迁移会导致网络延迟和带宽消耗。
当虚拟机被迁移到其他物理机上时,需要传输大量的数据,这不仅会消耗网络带宽,还会增加用户等待时间。
其次,虚拟机迁移会对系统的性能产生影响。
在虚拟机迁移过程中,可能会出现短暂的性能下降,导致用户的服务质量下降。
虚拟机的IP地址分配和网络设置的方法随着信息技术的不断发展,虚拟化技术在计算机领域扮演着越来越重要的角色。
虚拟机(Virtual Machine,简称VM)作为现代计算机系统的重要组成部分,可以提供多个独立的、隔离的运行环境,为用户提供了更高效、更强大的计算资源利用方式。
在虚拟机的使用过程中,正确设置IP地址和网络配置是非常关键的。
本文将介绍虚拟机的IP地址分配和网络设置的方法。
一、IP地址分配的方法在虚拟机中,IP地址的分配方式一般可以通过以下几种方式进行:1. 静态IP地址分配静态IP地址分配是根据网络管理员的要求手动配置IP地址,确保每个虚拟机具有唯一的IP地址。
这种分配方式适用于网络结构稳定、IP地址需求少的情况下。
具体操作步骤如下:(1)打开虚拟机软件,选择需要设置IP地址的虚拟机。
(2)进入虚拟机设置界面,找到网络设置选项。
(3)选择“静态IP地址”选项,填写相应的IP地址、子网掩码、默认网关等信息。
(4)保存设置并重启虚拟机,使IP地址生效。
2. 动态IP地址分配(DHCP)动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一种自动分配IP地址的方法,通过DHCP服务器自动分配IP地址给虚拟机。
这种分配方式适用于网络结构复杂、IP地址需求较多的情况下。
具体操作步骤如下:(1)打开虚拟机软件,选择需要设置IP地址的虚拟机。
(2)进入虚拟机设置界面,找到网络设置选项。
(3)选择“自动获取IP地址”或“DHCP”选项,使虚拟机通过DHCP 服务器来获取IP地址。
(4)保存设置并重启虚拟机,使IP地址生效。
二、网络设置的方法除了IP地址的分配,虚拟机的网络设置也需要注意。
1. 桥接模式桥接模式可以使得虚拟机和主机处于同一网络,并且可以直接访问主机所在网络的其他计算机。
具体操作步骤如下:(1)打开虚拟机软件,选择需要设置网络的虚拟机。
(2)进入虚拟机设置界面,找到网络设置选项。
云计算中的虚拟机迁移技术研究云计算是当今互联网领域的热点技术,它不仅提供了高效、弹性和可靠的资源共享方式,还为企业和个人用户提供了灵活、安全、低成本的服务。
虚拟机迁移技术作为云计算中的重要组成部分,在提高资源利用率和灵活性方面起着举足轻重的作用。
本文将介绍云计算中虚拟机迁移技术的概念、分类、原理以及应用场景。
一、概念虚拟机迁移是指将正在运行的虚拟机实例从一台物理主机迁移到另一台物理主机的过程。
通过虚拟机迁移技术,用户可以在不中断服务的情况下实现资源的动态调度和分配,提高系统的灵活性和可用性。
二、分类根据迁移方式的不同,虚拟机迁移技术可分为两种主要类型:基于内存的迁移和基于磁盘的迁移。
1. 基于内存的迁移基于内存的迁移是指将虚拟机运行所需的内存内容和状态从源主机迁移到目标主机。
该方法可以极大地减少迁移过程对虚拟机的影响,减少迁移时间,但需要保证源主机和目标主机有足够的内存容量来支持迁移。
2. 基于磁盘的迁移基于磁盘的迁移是指将虚拟机的磁盘镜像文件从源主机传输到目标主机,并在目标主机上重建虚拟机。
该方法相对较慢,但可以在目标主机上利用磁盘镜像文件精确重建虚拟机的环境。
三、原理虚拟机迁移技术的实现主要依赖于虚拟化技术和网络技术。
1. 虚拟化技术虚拟化技术通过在物理主机上运行虚拟机监视器(Hypervisor),将物理主机资源虚拟化为多个逻辑实例。
通过虚拟机监视器的介入,虚拟机的内存、CPU、磁盘等资源可以被动态分配和管理,实现虚拟机的迁移。
2. 网络技术网络技术在虚拟机迁移中起到了承载和传输虚拟机数据的重要作用。
迁移过程中,源主机和目标主机之间需要建立连接,传输虚拟机的内存、磁盘和网络状态,确保迁移过程的数据的完整性和一致性。
四、应用场景虚拟机迁移技术在云计算中有广泛的应用场景,以下列举几个典型的应用场景。
1. 负载均衡通过虚拟机迁移技术,系统可以根据当前的资源占用情况,在不同的物理主机上动态调度和分配虚拟机实例,实现负载均衡的效果。
Data Base Technique •数据库技术Electronic Technology & Software Engineering 电子技术与软件工程• 153【关键词】虚拟机 集群 高可用 Keepalived在生产环境和对集群运行稳定性要求较高的环境里,一般都需要进行集群的高可用和负载均衡配置。
实现负载均衡既有硬件方案也有软件方案。
硬件方案的成本较高,很多集群都采用了软件方案。
在软件方案中,很多人选择使用Keepalived 与负载均衡软件配合使用以达到集群的高可用和负载均衡。
随着虚拟化技术和云计算的发展,集群的构成也发生了变化,以前的集群一般是以服务器裸机来构建,但现在随着业务的云化,很多集群实际上构建于虚拟机之上,也称虚拟机集群。
由于虚拟机不像裸机直接运行于服务器硬件之上,它的工作必须依赖hypervisor ,因此在虚拟机环境中,某些软件的行为也发生了变化。
本文将主要研究Keepalived 在部分虚拟机环境中虚拟IP 不能自动漂移的问题。
1 研究虚拟机环境中Keepalived虚拟IP 自动漂移的背景在采用软件方案建设高可用负载均衡集群时,我们一般会考虑Keepalived 或Heartbeat 与LVS 、HAProxy 、NGNIX 等负载均衡软件配合使用,以实现集群的高可用和负载均衡。
以Keepalived 为例,Keepalived 负责负载均衡服务器的高可用,而负载均衡服务器上的负载均衡软件则根据具体的负载均衡算法将访问流量转发至后端服务器。
可以看出,Keepalived 是访问数据链中非常关键的一环,一旦Keepalived 不能正常工作,即使负载均衡服务器和后端服务器工作正常,整个集群也无法正常提供服务。
我们研究发现,在部分虚拟机集群中,Keepalived 的虚拟IP 自动漂移功能在某些情况下并不能正常工作。
如今公有云得到了大力发展,很多在公有云平台上建立的虚拟机环境中Keepalived 虚拟IP 自动漂移的研究文/盛乐标 周庆林随着云计算的发展,各行各业的业务也开始云化。
随着云端业务的增长,以虚拟机为基础搭建的虚拟机集群也迅速增多。
但是,某些软件在虚拟机上的行为与在裸机上的行为却存在差异。
本文研究的Keepalived 在虚拟机环境中的某些场景,会因为虚拟IP 不能正常漂移而导致故障转移失效。
本文将详细分析Keepalived 虚拟IP 漂移异常的原因,并提出一套可行的解决方案。
摘 要集群实际上都是基于虚拟机的虚拟机集群。
该功能的失常,给虚拟机集群的正常运行带来了很大的隐患。
本文将分析该功能失常的原因,并给出具体的解决方案。
2 虚拟机环境中Keepalived虚拟IP漂移的行为分析2.1 Keepalived工作原理Keepalived 是以虚拟路由冗余协议(Virtual Router Redundancy Protocol ,VRRP )为基础实现集群或多台服务器高可用的软件。
Keepalived 将一组服务器组成一个服务器组,在这组服务器里有一个Master 节点,其它均为Backup 节点。
Master 节点会获得一个虚拟IP (Virtual IP ,VIP ),Backup 节点没有虚拟IP 。
Master 节点正常工作时,会周期性地在同网段内发送VRRP 组播(心跳包)。
当Backup 节点接收不到VRRP 心跳包时,则认为Master 节点发生故障,此时故障转移机制开始工作。
所有的Backup 节点根据它们的优先级选出一个新的Master 节点,原Master 节点的虚拟IP 漂移至新的Master 节点继续对外提供服务。
Keepalived 服务器上如果安装了负载均衡软件,还可以将来访的流量分流至各个后端服务器。
Keepalived 的工作原理图详见图1。
2.2 Keepalived节点环境在我们的测试环境中,所有虚拟机的hypervisor 均为VMware ESXi 6.5。
虚拟机中安装的操作系统为CentOS 7.4。
Master 节点的IP 地址为192.168.2.6,Backup 节点的IP 地址为192.168.2.7,虚拟IP 地址为192.168.2.5。
Keepalived 使用的网络接口名称为ens192。
两台Keepalived 节点的Keepalived 软件版本均为v1.3.5,另外还安装了负载均衡软件HAProxy ,软件版本均为1.5.18。
Keepalived 安装完以后,进行相关配置,步骤如下:(1)关闭CentOS 的SELinux 功能。
(2)将系统参数net.ipv4.ip_forward 设置为1,以允许数据包转发。
(3)由于Keepalived 需要发送目的地为224.0.0.18的VRRP 组播信息,因此在Keepalived 节点添加相应的防火墙规则:firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens192 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens192 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload(4)进行Keepalived 的配置,配置文件如下:! Configuration File for keepalived global_defs { router_id main_router vrrp_lower_prio_no_advert true }vrrp_script check_haproxy {script "/etc/keepalived/check_haproxy.sh" interval 3 weight -2 fall 10 rise 2}vrrp_instance VI_1 { state MASTER interface ens192 virtual_router_id 51 advert_int 2 priority 101 authentication { auth_type PASSauth_pass 6be37dc3b2c96197d1600c583e10ad1f}virtual_ipaddress { 192.168.2.5 }图1:Keepalived 工作原理图(注:以Keeapalived Master 节点和Backup节点各一台为例。
带箭头的黑色实线代表正常的网络路径,蓝色虚线代表故障转移后的网络路径。
)154 •电子技术与软件工程 Electronic Technology & Software Engineering数据库技术• Data Base Techniquetrack_script {check_haproxy }}上述配置文件主要需要注意两点,vrrp_instance VI_1 的state 参数主节点设置为MASTER ,备份节点设置为BACKUP ,优先级参数priority 主节点要高于备份节点,本文中主节点优先级为101,备份节点优先级为100。
除了上述参数和router_id 各自命名外,两台Keepalived 节点其它参数的设置均一致。
check_haproxy.sh 是Keepalived 的健康检查脚本,主要用于检测节点上HAProxy 工作是否正常。
(5)启动Keepalived 服务。
2.3 虚拟IP不能自动漂移的故障特征在两台Keepalived 节点部署完成以后,我们进行了四组测试,测试结果如下:(1)停止、启动、重启Keepalived 服务,Keepalived 故障转移成功。
(2)重启Network 服务,Keepalived 故障转移成功。
(3)关闭或重启其中一台节点,Keepalived 故障转移成功。
(4)通过ifdown 、ifup 命令关闭和打开网络接口(ifdown ens192和ifup ens192),Keepalived 故障转移失败。
四组测试中,前三组Keepalived 均成功地进行了故障转移,将原Master 节点的虚拟IP 转移至Backup 节点,但是在第四组测试中,我们相继使用ifdown 和ifup 命令关闭和打开网络接口,Keepalived 均不能进行故障转移。
因为Keepalived 通过VRRP 协议实现故障转移,我们通过在BACKUP 节点运行tcpdump –i ens192 –n vrrp 命令来查看成功进行故障转移时VRRP 心跳包的变化。
下面是运行systemctl stop keepalived.service 命令前后tcpdump 命令输出的三条VRRP 心跳包内容:11:51:11.137727 I P 192.168.2.6 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 101, authtype simple, intvl 2s, length 2011:51:12.023422 I P 192.168.2.6 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 0, authtype simple, intvl 2s, length 2011:51:12.633406 I P 192.168.2.7 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 2s, length 20我们发现在Keepalived 服务被停止时,Master 节点会发送一条含有信息prio 0的VRRP 心跳包,Backup 节点收到该心跳包后随即进行故障转移。
我们又尝试了service network restart 命令,也可以正常收到包含prio 0的VRRP 心跳包。
但是当我们使用ifdownens192命令关闭网络接口时,异常情况发生了:ens192接口被禁用后,在Backup 节点仍然可以正常、持续收到Master 节点发送的VRRP 心跳包(prio 值非0),但此时Master 节点的IP 地址已经不可用(ens192上的两条IP 192.168.2.5、192.168.2.6均已丢失),而Master 节点的Keepalived 服务也因为获取不到IP 信息进入inactive (dead )状态。