2023年Keepalived的安装配置_第1页
2023年Keepalived的安装配置_第2页
2023年Keepalived的安装配置_第3页
2023年Keepalived的安装配置_第4页
2023年Keepalived的安装配置_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页2023Keepalived的安装配置Keepalived的安装配置

Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat、RoseHA实现的功能类似,都可以实现效劳或者网络的高可用,但是又有差异。下面我打算了关于Keepalived安装和配置的文章,供给给大家参考!

一、Keepalived的安装过程

Keepalived的安装特别简洁,下面通过源码编译的方式介绍下Keepalived的安装过程。首先翻开Keepalived的官方网址://,从中可以下载到各种版本的Keepalived,这里下载的是keepalived-1.2.12.tar.gz。以操作系统环境Centos6.3为例,Keepalived安装步骤如下:

[root@keepalived-masterapp]#tarzxvfkeepalived-1.2.12.tar.gz

[root@keepalived-masterapp]#cdkeepalived-1.2.12

[root@keepalived-masterkeepalived-1.2.12]#./configure--sysconf=/etc\?UseIPVSFramework表示运用IPVS框架,也就是负载均衡模块,后面的;Yes;表示启用IPVS功能。一般在搭建高可用负载均衡集群时会启用IPVS功能,假设只是运用Keepalived的高可用功能,那么不须要启用IPVS模块,可以在编译Keepalived时通过;--disable-lvs;关闭IPVS功能。

?IPVSsyncdaemonsupport表示启用IPVS的同步功能,此模块一般和IPVS模块一起运用,假设须要关闭,可在编译Keepalived时通过;--disable-lvs-syncd;参数实现。

?IPVSuselibnl表示运用新版的libnl。libnl是NETLINK的一个实现,假设要运用新版的libnl,须要在系统中安装libnl和libnl-devel软件包。

?UseVRRPFramework表示运用VRRP框架,这是实现Keepalived高可用功能必需的模块。

?UseVRRPVMAC表示运用根底VMAC接口的xmitVRRP包,这是Keepalived在1.2.10版本及以后新增的一个功能。

至此,Keepalived的安装介绍完毕。下面起先进入Keepalived配置的讲解。

二、Keepalived的全局配置

在上节安装Keepalived的过程中,指定了Keepalived配置文件的路径为/etc/Keepalived/Keepalived.conf,Keepalived的全部配置均在这个配置文件中完成。由于Keepalived.conf文件中可配置的选项比拟多,这里依据配置文件所实现的功能,将Keepalived配置分为三类,分别是:全局配置(GlobalConfiguration)、VRRPD配置和LVS配置。下面将主要介绍下Keepalived配置文件中一些常用配置选项的含义和用法。

Keepalived的配置文件都是以块(block)的形式组织的,每个块的内容都包含在{}中,以;#;和;!;开头的行都是注释。全局配置就是对整个Keepalived都生效的配置,根本内容如下:

!ConfigurationFileforkeepalived

global_defs{

notification_email{

dba.gao@gmail

ixdba@163

}

notification_email_fromKeepalived@localhost

smtp_server

smtp_connect_timeout30

router_idLVS_DEVEL

}

全局配置以;global_defs;作为标识,在;global_defs;区域内的都是全局配置选项,其中:

?notification_email用于设置报警邮件地址,可以设置多个,每行一个。留意,假设要开启邮件报警,须要开启本机的Sendmail效劳。

?notification_email_from用于设置邮件的发送地址。

?smtp_server用于设置邮件的smtpserver地址。

?smtp_connect_timeout用于设置连接smtpserver的超时时间。

?router_id表示运行Keepalived效劳器的一个标识,是发邮件时显示在邮件主题中的信息。

三、Keepalived的VRRPD配置

VRRPD配置是Keepalived全部配置的核心,主要用来实现Keepalived的高可用功能。从结构上来看,VRRPD配置又可分为VRRP同步组配置和VRRP实例配置。

这里首先介绍同步组实现的主要功能。同步组是相对于多个VRRP实例而言的,在多个VRRP实例的环境中,每个VRRP实例所对应的网络环境会有所不同,假设一个实例处于网段A,另一个实例处于网段B,而假设VRRPD只配置了A网段的检测,那么当B网段主机出现故障时,VRRPD会认为自身仍处于正常状态,进而不会进行主备节点的切换,这样问题就出现了。同步组就是用来解决这个问题的,将全部VRRP实例都参加到同步组中,这样任何一个实例出现问题,都会导致Keepalived进行主备切换。

下面是两个同步组的配置样例:

vrrp_sync_groupG1{

group{

VI_1

VI_2

VI_5

}

notify_backup"/usr/local/bin/vrrp.backarg1arg2"

notify_master"/usr/local/bin/vrrp.mastarg1arg2"

notify_fault"/usr/local/bin/vrrp.faultarg1arg2"

}

vrrp_sync_groupG2{

group{

VI_3

VI_4

}

}

其中,G1同步组包含VI_1、VI_2、VI_5三个VRRP实例,G2同步组包含VI_3、VI_4两个VRRP实例。这五个实例将在vrrp_instance段进行定义。另外,在vrrp_sync_group段中还出现了notify_master、notify_backup、notify_fault和notify_stop四个选项,这是Keepalived配置中的一个通知机制,也是Keepalived包含的四种状态。下面介绍每个选项的含义。

?notify_master:指定当Keepalived进入Master状态时要执行的脚本,这个脚本可以是一个状态报警脚本,也可以是一个效劳管理脚本。Keepalived允许脚本传入参数,因此敏捷性很强。

?notify_backup:指定当Keepalived进入Backup状态时要执行的脚本,同理,这个脚本可以是一个状态报警脚本,也可以是一个效劳管理脚本。

?notify_fault:指定当Keepalived进入Fault状态时要执行的脚本,脚本功能与前两个类似。

?notify_stop:指定当Keepalived程序终止时须要执行的脚本。

下面正式进入VRRP实例的配置,也就是配置Keepalived的高可用功能。VRRP实例段主要用来配置节点角色(主或从)、实例绑定的网络接口、节点间验证机制、集群效劳IP等。下面是实例VI_1的一个配置样例。

vrrp_instanceVI_1{

stateMASTER

interfaceeth0

virtual_router_id51

priority100

advert_int1

mcast_src_ip

garp_master_delay10

track_interface{

eth0

eth1

}

authentication{

auth_typePASS

auth_passqwaszx

}

virtual_ipaddress{

#/brddevscopelabel

6

7deveth1

8deveth2

}

virtual_routes{

#src[to]/via|gwdevscope

srcto/24via54deveth1

/24via54deveth1

/24deveth2

/24via54

/24via52or53

}

nopreempt

preemtp_delay300

}

以上VRRP配置以;vrrp_instance;作为标识,在这个实例中包含了假设干配置选项,分别介绍如下:

?vrrp_instance是VRRP实例起先的标识,后跟VRRP实例名称。

?state用于指定Keepalived的角色,MASTER表示此主机是主效劳器,BACKUP表示此主机是备用效劳器。

?interface用于指定HA监测网络的接口。

?virtual_router_id是虚拟路由标识,这个标识是一个数字,同一个vrrp实例运用唯一的标识,即在同一个vrrp_instance下,MASTER和BACKUP必需是一样的。

?priority用于定义节点优先级,数字越大表示节点的优先级就越高。在一个vrrp_instance下,MASTER的优先级必需大于BACKUP的优先级。

?advert_int用于设定MASTER与BACKUP主机之间同步检查的时间间隔,单位是秒。

?mcast_src_ip用于设置发送多播包的地址,假设不设置,将运用绑定的网卡所对应的IP地址。

?garp_master_delay用于设定在切换到Master状态后延时进行Gratuitousarp恳求的时间。

?track_interface用于设置一些额外的网络监控接口,其中任何一个网络接口出现故障,Keepalived都会进入FAULT状态。

?authentication用于设定节点间通信验证类型和密码,验证类型主要有PASS和AH两种,在一个vrrp_instance下,MASTER与BACKUP必需运用相同的密码才能正常通信。

?virtual_ipaddress用于设置虚拟IP地址(VIP),又叫做漂移IP地址。可以设置多个虚拟IP地址,每行一个。之所以称为漂移IP地址,是因为Keepalived切换到Master状态时,这个IP地址会自动添加到系统中,而切换到BACKUP状态时,这些IP又会自动从系统中删除。Keepalived通过;ipaddressadd;吩咐的形式将VIP添加进系统中。要查看系统中添加的VIP地址,可以通过;ipadd;吩咐实现。;virtual_ipaddress;段中添加的IP形式可以多种多样,例如可以写成;89/24deveth1;这样的形式,而Keepalived会运用IP吩咐;ipaddradd89/24deveth1;将IP信息添加到系统中。因此,这里的配置规那么和IP吩咐的运用规那么是一样的。

?virtual_routes和virtual_ipaddress段一样,用来设置在切换时添加或删除相关路由信息。运用方法和例子可以参考上面的例如。通过;iproute;吩咐可以查看路由信息是否添加胜利,此外,也可以通过上面介绍的notify_master选项来代替virtual_routes实现相同的功能。

?nopreempt设置的是高可用集群中的不抢占功能。在一个HACluster中,假设主节点死机了,备用节点会进行接管,主节点再次正常启动后一般会自动接管效劳。这种来回切换的操作,对于实时性和稳定性要求不高的业务系统来说,还是可以接受的,而对于稳定性和实时性要求很高的业务系统来说,不建议来回切换,终归效劳的切换存在肯定的风险和不稳定性,在这种状况下,就须要设置nopreempt这个选项了。设置nopreempt可以实现主节点故障复原后不再切回到主节点,让效劳始终在备用节点工作,直到备用节点出现故障才会进行切换。在运用不抢占时,只能在;state;状态为;BACKUP;的节点上设置,而且这个节点的优先级必需高于其他节点。

?preemtp_delay用于设置抢占的延时时间,单位是秒。有时候系统启动或重启之后网络须要经过一段时间才能正常工作,在这种状况下进行发生主备切换是没必要的,此选项就是用来设置这种状况发生的时间间隔。在此时间内发生的故障将不会进行切换,而假设超过;preemtp_delay;指定的时间,并且网络状态异样,那么才起先进行主备切换。

四、Keepalived的LVS配置

由于Keepalived属于LVS的扩展工程,因此,Keepalived可以与LVS无缝整合,轻松搭建一套高性能的负载均衡集群系统。下面介绍下Keepalived配置文件中关于LVS配置段的配置方法。

LVS段的配置以;virtual_server;作为起先标识,此段内容有两局部组成,分别是real_server段和健康检测段。下面是virtual_server段常用选项的一个配置例如:

virtual_server0080{

delay_loop6

lb_algorr

lb_kindDR

persistence_timeout50

persistence_granularity

protocolTCP

ha_suspend

virtualhost

sorry_server

下面介绍每个选项的含义。

?virtual_server:设置虚拟效劳器的起先,后面跟虚拟IP地址和效劳端口,IP与端口之间用空格隔开。

?delay_loop:设置健康检查的时间间隔,单位是秒。

?lb_algo:设置负载调度算法,可用的调度算法有rr、wrr、lc、wlc、lblc、sh、dh等,常用的算法有rr和wlc。

?lb_kind:设置LVS实现负载均衡的机制,有NAT、TUN和DR三个模式可选。

?persistence_timeout:会话保持时间,单位是秒。这个选项对动态网页是特别有用的,为集群系统中的session共享供给了一个很好的解决方案。有了这个会话保持功能,用户的恳求会始终分发到某个效劳节点,直到超过这个会话的保持时间。须要留意的是,这个会话保持时间是最大无响应超时时间,也就是说,用户在操作动态页面时,假设在50秒内没有执行任何操作,那么接下来的操作会被分发到另外的节点,但是假设用户始终在操作动态页面,那么不受50秒的时间限制。

?persistence_granularity:此选项是协作persistence_timeout的,后面跟的值是子网掩码,表示长久连接的粒度。默认是55,也就是一个单独的客户端IP。假设将掩码修改为,那么客户端IP所在的整个网段的恳求都会安排到同一个realserver上。

?protocol:指定转发协议类型,有TCP和UDP两种可选。

?ha_suspend:节点状态从Master到Backup切换时,暂不启用realserver节点的健康检查。

?virtualhost:在通过_GET/SSL_GET做健康检测时,指定的Web效劳器的虚拟主机地址。

?sorry_server:相当于一个备用节点,在全部realserver失效后,这个备用节点会启用。

下面是real_server段的'一个配置例如:

real_server3280{

weight3

inhibit_on_failure

notify_up|

notify_down|

}

下面介绍每个选项的含义。

?real_server:是real_server段起先的标识,用来指定realserver节点,后面跟的是realserver的真实IP地址和端口,IP与端口之间用空格隔开。

?weight:用来配置realserver节点的权值。权值大小用数字表示,数字越大,权值越高。设置权值的大小可以为不同性能的效劳器安排不同的负载,为性能高的效劳器设置较高的权值,而为性能较低的效劳器设置相对较低的权值,这样才能合理地利用和安排了系统资源。

?inhibit_on_failure:表示在检测到realserver节点失效后,把它的;weight;值设置为0,而不是从IPVS中删除。

?notify_up:此选项与上面介绍过的notify_maser有相同的功能,后跟一个脚本,表示在检测到realserver节点效劳处于UP状态后执行的脚本。

?notify_down:表示在检测到realserver节点效劳处于DOWN状态后执行的脚本。

健康检测段允很多种检查方式,常见的有_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK。首先看TCP_CHECK检测方式例如:

TCP_CHECK{

connect_port80

connect_timeout3

nb_get_retry3

delay_before_retry3

}

下面介绍每个选项的含义介。

?connect_port:健康检查的端口,假设无指定,默认是real_server指定的端口。

?connect_timeout:表示无响应超时时间,单位是秒,这里是3秒超时。

?nb_get_retry:表示重试次数,这里是3次。

?delay_before_retry:表示重试间隔,这里是间隔3秒。

下面是_GET和SSL_GET检测方式的例如:

_GET|SSL_GET

{

url{

path/

digeste6c271eb5f017f280cf97ec2f51b02d3

status_code200

}

connect_port80

bindto0

connect_timeout3

nb_get_retry3

delay_before_retry2

}

下面介绍每个选项的含义。

?url:用来指定/SSL检查的URL信息,可以指定多个URL。

?path:后跟具体的URL路径。

?digest:SSL检查后的摘要信息,这些摘要信息可以通过genhash吩咐工具获得。例如:genhash-s0-p80-u/。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论