




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
延时文字第九章常用集群配置Linux基础与服务管理主要内容
目录9.19.29.3LVS高性能负载均衡器HAProxy高可用软件Keepalived9.3高可用软件Keepalived9.3.19.3.29.3.3Keepalived简介Keepalived
安装及配置Keepalived
基于非抢占模式配置实例
Keepalived是Linux下的一个免费的、轻量级的高可用解决方案。是一个由C语言编写的路由软件,主要目标是为Linux系统和基于Linux的基础架构提供简单而强大的负载平衡和高可用性设。Keepalived实现了一组检查器,以根据其健康状况动态地和自适应地维护和管理负载平衡的服务器池。另一方面,VRRP实现了高可用性协议。VRRP是路由器故障转移的基础。此外,Keepalived为VRRP有限状态机实现了一组挂钩,提供低级和高速协议交互。为了提供最快的网络故障检测,Keepalived实现了BFD协议。VRRP状态转换可以考虑BFD提示来驱动快速状态转换。9.3.1Keepalived简介
Keepalived框架可以单独使用,也可以与其他软件一起使用。Keepalived最开始是为LVS设计的,主要用来监控集群中各个服务节点的运行状态。当服务节点出现故障被检测到,则会被Keepalived从集群中剔除,待恢复后再重新加入集群,期间的工作自动完成,不需要人工干预,需要人工完成的部分仅限于修复出现故障的服务节点。VRRP协议,全称:VirtualRouterRedundancyProtocol(虚拟路由器冗余协议)。它是一种选择协议、路由备份协议,是Keepalived最重要的一个功能。可以将多个路由器组成一个虚拟路由器(一主多备),在网络发生故障时,可以实现透明切换。通过VRRP协议组成的虚拟路由器,通过一个或多个虚拟IP对外提供服务,在内部则是多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,被称为主路由器。其工作过程大致如下:启用VRRP功能后,根据优先级确定自己的在虚拟路由器中的角色,优先级高的为主路由器,其他的为备用路由器。主路由器定期向其他备用路由器发送VRRP报文,通告自己的工作状态正常,备用路由器则会定时接收。12VRRP根据不同的抢占方式,确定是否替换主备状态:●抢占方式:备用路由器收到报文后,会对比优先级,若大于通告报文中的优先级,则切换为主路由器,否则报持状态不变;●非抢占方式:主路由器在没有出现故障的情交下,主路由器与备用路由器将一直保持原有的状态。Keepalived简介9.3.19.3.1Keepalived简介若备用路由器在一定时间内没有收到主路由器发送的VRRP报文,则认为主路由器无法正常工作,此时备用路由器将会选举出优先级高的作为主路由器并发送VRRP报文,替代原有主路由器持续工作。了解了VRRP如何工作,下面将介绍Keepalived是如何工作的。但在介绍之前,还需要了解一下它的设计架构及健康检查机制。Keepalived大致分两层结构:用户空间和内核空间。其大多数核心功能均在用户空间,而内核空间中的两个模块,IPVS主要实现负载均衡,NETLINK则主要提供高级路由及其他相关的网络功能。图9-27是官方给出的Keepalived体系结构拓扑图。3Keepalived简介3Keepalived提供了三个守护进程,分别负责不同的功能:●父进程:负责fork子进程并对其进行监控。●VRRP子进程:负责VRRP框架。●键康检查子进程:负责健康检查。Keepalived依赖于VRRP协议实现高可用,同时还实现基于TCP/IP协议栈的多层(3层、4层、5/7层)的健康检查机制,能够提供服务节点检查及故障隔离的功能。其运行机制大致如下:●网络层:主要通过ICMP协议,向服务节点发送ICMP数据包(类似ping命令的方式),若无响应,则判定为故障节点并将其从集群中移除。●传输层:主要通过TCP协议,向后端发起一个TCP连接请求,若无响应,则判定为故障节点并将其从集群中移除。●应用层:主要根据用户的一些设定来判断节点是否正常,若不正常,则判定为故障节点并将其从集群中移除。常用的方式即使用脚本进行检测。39.3.1Keepalived简介9.3.1Keepalived一般会同时运行在两台或更多服务器上,同时提供服务且存在主从之分。实际提供服务的只有主服务节点。其工作原理与VRRP类似。Keepalived会根据配置文件中定义的优先级或节点的主从标记,确定哪一台服务器中运行的服务可以成为主节点并使用VIP(虚拟IP)对外提供服务,其他的则成为从节点。若Keepalived的主节点出现故障停止提供服务或所在的服务器宕机时,会将主节点移除并在从节点中选举出优先级较高的节点作为新的主节点并接管VIP继续提供服务,保证服务的不间断。待故障节点恢复后,再重新加入并重新确定是否需要切换主从关系。3Keepalived简介9.3.2Keepalived安装及基础配置
9.3.2Keepalived安装及基础配置Keepalived安装比较简单,安装的方式主要分为两种:●可以使用YUM源直接进行安装。如下所示。[root@keepalive-master~]#yuminstall-ykeepalived如果出现图中这种重复的语句就使用rm-F/var/run/yum.pid命令强制关闭yum再重新安装,下图所示。19.3.2Keepalived安装及基础配置●如果需要使用最新版本,也可以在官网:/下载最新的版本编译安装。安装(此处使用YUM源进行安装)过程,Keepalived的配置(/etc/keepalived/keepalived.conf)主要分为以下七个部分,也可以在/usr/share/doc/keepalived-<版本号>/samples目录下查看官方提供的配置文件示例或使用命令“mankeepalived.conf”查看相关参数及说明。由于参数较多且限于篇幅,下面将简单介绍其主要功能及常用的配置参数:201global_defs02static_ipaddress和static_routes定义全局设置,包括如发送消息的邮件地址、SMTP服务器的IP、SMTP服务器的超时时间、主机识别字符串、VRRP多播地址等。●notification_email:故障时接收邮件的地址,可以多个,每行一个;●notification_email_from:邮件发送地址;●smtp_server:SMTP服务器地址;●smtp_connect_timeout:SMTP连接超时时间;●router_id:主机识别标志。出现故障需要发送邮件时,通知邮件会使用到它。●vrrp_skip_check_adv_addr:跳过报文检查。当收到的报文与上一个报文来自同一个路由器时有效;●vrrp_strict:vrrp协议严格模式,严格遵守vrrp协议;●vrrp_garp_interval:网卡上APR消息之间的延迟;●vrrp_gna_interval:网卡上发送的未经请求的NA消息之间的延迟。Keepalived安装及基础配置定义静态IP地址和路由。如果服务器上已经定义且这些服务器具有网络连接,则不需要此部分。3.vrrp_sync_group9.3.2Keepalived安装及基础配置定义一起故障转移的VRRP备份VRRP同步组。●group:vrrp_instance实例名,可以多个,每行一个;●notify_master:状态转为MASTER时,执行的脚本;●notify_backup:状态转为BACKUP时,执行的脚本;●notify_fault:状态转为FAULT时,执行的脚本;●notify:当出现状态转换时,即会执行的脚本。在notify_*脚本之后执行。●smtp_alert:状态发生转换时,触发邮件发送。相关的信息在global_defs中定义;●global_tracking:所有VRRP共享相同的跟踪配置。4.vrrp_instance5.vrrp_script为VRRP同步组的内部或外部网络接口的成员定义可移动的虚拟IP地址,在状态切换时会漂移到其他节点上继续提供服务。每个VRRP实例必须具有唯一的“virtual_router_id”值,标志着哪些主/备服务器可以使用同一个虚拟IP地址提供服务。即同一“vrrp_instance”中,此值在MASTER或BACKUP节点上必须一致。还可以指定状态在切换为MASTER、BACKUP和FAULT时,是否触发SMTP警报。●state:节点的状态。可为:MASTER、BACKUP。单节点时,默认为MASTER,当有多个节点时,选举出优先级最高的成为MASTER。●interface:发送vrrp报文的网卡。●virtual_router_id:虚拟路由器标识。全局唯一且范围在0-255之间的整数数字。同一个实例中,主从节点中的此值必须一致。●priority:优先级数值。值越大,优先级越高。若为MASTER,建议值设置比其他节点高出至少50。●advert_int:VRRP广告时间间隔(以秒为单位)(例如0.92)(默认使用)。●authentication:设置认证信息。●virtual_ipaddress:虚拟IP地址,可以多个,每行一个。当状态在MASTER和BACKUP之间切换时,添加或删除的IP地址。Keepalived安装及基础配置定义跟踪脚本。主要用于健康检查。当需要根据业务进程的运行状态决定是否需要进行主备切换时,可以通过编写脚本对业务进程进行检测监控。主要用于vrrp_instance和vrrp_sync_group部分。●script:执行脚本的路径;●interval:每两次调用执行脚本的时间间隔;●timeout:脚本执行的超时时间;●weight:权重值。按此权重调整优先级,默认为0。6.virtual_server_group9.3.2Keepalived安装及基础配置定义虚拟服务器组,允许真实服务器成为多个虚拟服务器组的成员,每行一个。成员格式为:IP地址或范围和端口号,以空格分隔。7.virtual_server定义用于负载平衡的虚拟服务器,该服务器由多个真实服务器组成。后接虚拟IP地址和端口号,以空格分隔。●delay_loop:轮询的延迟时间;●lb_algo:LVS负载均衡调度算法。官方给出的可选项为:rr、wrr、lc、wlc、lblc、sh、dh;●lb_kind:LVS转发模式。官方给出的可选项为:NAT、DR、TUN;●persistence_timeout:LVS会话超时时间,默认6分钟;●protocol:第四层网络协议,默认为TCP。官方给出的可选项为:TCP、UDP、SCTP;●real_server:定义LVS真实服务器节点。有多少个真实服务器节点,则需要多少段;●weight:real_server中使用。权重值,默认为1;●inhibit_on_failure:real_server中使用。当键康检查失败时,权重值会被重置为0;●notify_up:real_server中使用。当健康检查认为服务为UP状态时,执行的脚本;●notify_down:real_server中使用。当健康检查认为服务为DOWN状态时,执行的脚本;●HTTP_GET:real_server中使用。健康检查定义,官方给出的可选项为:HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、DNS_CHECK、MISC_CHECKKeepalived安装及基础配置9.3.2Keepalived安装及基础配置9.3.3Keepalived基于非抢占模式配置实例
本节内容,将演示如何配置Keepalived的非抢占模式,同时会涉及到LVS的相关内容。演示中使用了四台服务器,两台作为Keepalived及ipvsadm节点,两台做为后端的真实服务器。ipvsadm在演示中主要用于查看LVS集群的相关信息,而具体的配置则是通过Keepalived配置文件直接进行配置管理的。即实际的演示内容是Keepalived+LVS的集群,关于LVS后端真实服务器的配置,由于在前面的章节中已经有过详细步骤,因此本小节将不再进行演示。同时所有服务器已完成了一些常用的初始化内容,如设置主机名、关闭SELinux、测试域名解析等,后续不再进行说明。Keepalived在运行过程中,可以配置抢占和非抢占模式。两者的区别如下:●抢占模式:即在一个Keepalived集群中同时存在MASTER和BACKUP节点,且MASTER节点的优先级比BACKUP节点高,当MASTER节点故障时,在BACKUP节点中选举出优先级最高的节点作为新的MASTER继续提供服务并抢占VIP,但是当原来的MASTER恢复后,会将VIP抢回。9.3.3
●非抢占模式:即在一个Keepalived集群中只存在BACKUP节点,选举出优先级最高的成为MASTER提供服务,当作为MASTER节点故的服务器障时,在其他BACKUP节点中选举出优先级最高的节点作为新的MASTER继续提供服务并抢占VIP,但是在原来作为MASTER节点的服务器恢复后,不会抢回VIP,而是作为一个BACKUP节点加入到集群中。可以通过两种方式设置非抢占模式,第一种即在优先级高的节点的配置文件中添加参数:nopreempt;第二种则是将所有BACKUP节点的优先级设置为相同的值。了解了抢占与非抢占模式的区别,在Keepalived的运行中,还有一种被称为“脑裂”的问题,它是由于配置不当或MASTER/BACKUP节点之间的检测出现异常,导致VIP同时在MASTER节点与BACKUP节点出现引起的,会导致出现资源争抢、同时读写、数据损坏等问题。Keepalived+LVS的集群主要分为两部分:后端的真实服务器(RealServer)和前端的负载调度节点(LoadBalancer)。演示所需的服务器信息,如表9-5所示。9.3.3
9.3.3
表9-5Keepalived+LVS集群配置信息HOSTNAMEIPADDRESSROLESkeepalived-backup1VIP:00,DIP:28Keepalived,ipvsadmkeepalived-backup2VIP:00,RIP:04Keepalived,ipvsadmkeepalived-nginx1VIP:00,RIP:05Nginxkeepalived-nginx2VIP:00,RIP:17Nginx以上服务器对应的架构图,如图9-28所示。
图9-28Keepalived+LVS集群架构图9.3.3Keepalived基于非抢占模式配置实例[root@keepalived-nginx1~]#yuminstall-ynginx[root@keepalived-nginx1~]#systemctlenablenginx.service[root@keepalived-nginx1~]#systemctlstartnginx.service[root@keepalived-nginx1~]#firewall-cmd--add-port=80/tcp[root@keepalived-nginx1~]#echo"keepalived-nginx105">/usr/share/nginx/html/index.html安装并配置完成后,在浏览器中访问,若出现如图9-29所示的内容,则说明Nginx服务已安装成功并能正常提供服务。图9-29Nginx服务验证1.配置后端真实服务器对Nginx1服务器配置如下:1)登录keepalived-nginx1,安装Nginx服务并进行简单配置(使用默认站点即可),方便演示过程中查看具体的效果。需要执行的命令如下。9.3.3Keepalived基于非抢占模式配置实例2)登录keepalived-nginx1,由于涉及到LVS,因此还需要配置虚拟IP地址及路由规则、抑制ARP设置等,命令如下所示(具体的演示步骤,可以参考前面相关小节)。[root@keepalived-nginx1~]#ifconfiglo:000broadcast00netmask55up[root@keepalived-nginx1~]#routeadd-host00devlo:0[root@keepalived-nginx1~]#echo"1">/proc/sys/net/ip.>v4/conf/lo/arp_ignore[root@keepalived-nginx1~]#echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce[root@keepalived-nginx1~]#echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore[root@keepalived-nginx1~]#echo"2">/proc/sys/net/ipv4/conf/all/arp_announce3)配置永久生效的防火墙规则,允许Nginx服务持续对外提供服务。命令如下所示。[root@keepalived-nginx1~]#firewall-cmd--permanent--add-port=80/tcp[root@keepalived-nginx1~]#firewall-cmd--reload9.3.3Keepalived基于非抢占模式配置实例若能通过“firewall-cmd--list-all”查看到如图9-30所示的内容,则说明防火墙规则已生效。图9-30添加防火墙规则[root@keepalived-nginx2~]#yuminstall-ynginx[root@keepalived-nginx2~]#systemctlenablenginx.service[root@keepalived-nginx2~]#systemctlstartnginx.service[root@keepalived-nginx2~]#firewall-cmd--add-port=80/tcp[root@keepalived-nginx2~]#echo"keepalived-nginx217">/usr/share/nginx/html/index.html4)登录keepalived-nginx2,安装Nginx服务并做简单配置(使用默认站点即可),方便演示过程中查看具体的效果。需要执行的命令如下。9.3.3Keepalived基于非抢占模式配置实例安装并配置完成后,在浏览器中访问,若出现如图9-31所示的内容,则说明Nginx服务已安装成功并能正常提供服务。图9-31Nginx服务验证5)登录keepalived-nginx2,由于涉及到LVS,因此还需要配置虚拟IP地址及路由规则、抑制ARP设置等,命令如下所示(具体的演示步骤,可以参考前面相关小节)。[root@keepalived-nginx2~]#ifconfiglo:000broadcast00netmask55up[root@keepalived-nginx2~]#routeadd-host00devlo:0[root@keepalived-nginx2~]#echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignore[root@keepalived-nginx2~]#echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce[root@keepalived-nginx2~]#echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore[root@keepalived-nginx2~]#echo"2">/proc/sys/net/ipv4/conf/all/arp_announce9.3.3Keepalived基于非抢占模式配置实例若能通过“firewall-cmd--list-all”查看到如图9-32所示的内容,则说明防火墙规则已生效。图9-32添加防火墙规则6)配置永久生效的防火墙规则,允许Nginx服务持续对外提供服务。命令如下所示。[root@keepalived-nginx2~]#firewall-cmd--permanent--add-port=80/tcp[root@keepalived-nginx2~]#firewall-cmd--reload9.3.3Keepalived基于非抢占模式配置实例若能通过“firewall-cmd--list-all”查看到如图9-32所示的内容,则说明防火墙规则已生效。图9-32添加防火墙规则9.3.3Keepalived基于非抢占模式配置实例2.配置LoadBalanc1)登录keepalived-backup1,分别安装keepalived和ipvsadm。命令如下。[root@keepalived-backup1~]#yuminstall-ykeepalivedipvsadm[root@keepalived-backup1~]#systemctlenablekeepalived.service[root@keepalived-backup1~]#systemctlstartkeepalived.service若通过“keepalived-v”与“ipvsadm-L-n”命令可查看到如图9-33所示的内容,则说明安装成功(此时由于未修改keepalived的配置文件,ipvsadm显示的信息为默认配置的信息)图9-33keepalived与ipvsadm验证9.3.3Keepalived基于非抢占模式配置实例2)登录keepalived-backup1,先ifconfig查看网卡名称:9.3.3Keepalived基于非抢占模式配置实例!ConfigurationFileforkeepalived
global_defs{notification_email{notification_emal@}notification_email_fromAlexandre.Cassen@firewall.locsmtp_serversmtp_connect_timeout30router_idLVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval0vrrp_gna_interval0}
vrrp_instanceVI_1{stateBACKUPinterfaceeth0virtual_router_id51priority100nopreemp改成相应的网卡名修改配置文件:/etc/keepalived/keepalived.conf,将其中的内容修改为如下所示的内容(建议根据实际情况进行修改)。9.3.3Keepalived基于非抢占模式配置实例advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{00}}virtual_server0080{delay_loop1lb_algorrlb_kindDRpersistence_timeout0protocolTCPreal_server0580{weight1HTTP_GET{url{path/}connect_timeout3nb_get_retry3delay_before_retry3}}real_server1780{weight1HTTP_GET{url{path/}connect_timeout3nb_get_retry3delay_before_retry3}}}9.3.3Keepalived基于非抢占模式配置实例3)登录keepalived-backup1,配置永久生效的防火墙规则,允许各节点间通过VRRP协议通信,以实现Keepalived各节点之间通信及允许其他主机可以通过该服务器的80端口访问后端Nginx服务,命令如下所示。[root@keepalived-backup1~]#firewall-cmd--permanent--direct--add-ruleipv4filterINPUT0--in-interfaceeth0--destination8--protocolvrrp-jACCEPT[root@keepalived-backup1~]#firewall-cmd--permanent--direct--add-ruleipv4filterOUTPUT0--in-interfaceeth0--destination8--protocolvrrp-jACCEPT[root@keepalived-backup1~]#firewall-cmd--permanent--add-port=80/tcp[root@keepalived-backup1~]#firewall-cmd--reload此时,若通过“firewall-cmd--list-all”命令,只能是看到关于80端口的信息,若需要查看通过“--direct”参数添加的规则,则需要使用“firewall-cmd--direct--get-all-rules”命令。如图9-34所示。图9-34添加防火墙规则9.3.3Keepalived基于非抢占模式配置实例4)登录keepalived-backup1,重启keepalived服务即可。[root@keepalived-backup1~]#systemctlrestartkeepalived.service
重启成后,再次使用“ipvsadm-L-n”命令,可以查看到其中的信息已经发生了变更,如图9-35所示。图9-35ipvsadm信息5)登录keepalived-backup2,分别安装keepalived和ipvsadm。命令如下。[root@keepalived-backup2~]#yuminstall-ykeepalivedipvsadm[root@keepalived-backup2~]#systemctlenablekeepalived.service[root@keepalived-backup2~]#systemctlstartkeepalived.service若通过“keepaliv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司销售授权合同标准文本
- 农村租房屋土地合同标准文本
- 仪器检测 采购合同标准文本
- 企业旗杆维修合同标准文本
- 公司ceo合同标准文本
- 2018年春人教版九年级历史上册教学设计
- 游戏本地化翻译与配音服务行业深度调研及发展战略咨询报告
- 盲文学习辅助设备行业深度调研及发展战略咨询报告
- 纳米技术展示中心行业深度调研及发展战略咨询报告
- 用户体验研究与设计实验室行业深度调研及发展战略咨询报告
- 期末考试-公共财政概论-章节习题
- MOOC 走进舞蹈艺术-首都师范大学 中国大学慕课答案
- AED急救知识课件
- 2023版《思想道德与法治》(绪论-第一章)绪论 担当复兴大任 成就时代新人;第一章 领悟人生真谛 把握人生方向 第3讲 创造有意义的人生
- 2023年水处理BOT合同模板范本
- mil-std-1916抽样标准(中文版)
- 监控施工方案范文六篇
- 支气管镜麻醉
- 2023-2024苏教版七年级数学上册期末试卷
- 少数民族民歌 课件-2023-2024学年高中音乐人音版(2019)必修 音乐鉴赏
- 云南白药成本控制分析报告
评论
0/150
提交评论