当前位置: 首页 > news >正文

深圳做积分商城网站公司5188大数据官网

深圳做积分商城网站公司,5188大数据官网,网站建设与推广王钊,wordpress cdn优化一、集群相关概念简述 HA是High Available缩写#xff0c;是双机集群系统简称#xff0c;指高可用性集群#xff0c;是保证业务连续性的有效解决方案#xff0c;一般有两个或两个以上的节点#xff0c;且分为活动节点及备用节点。 1、集群的分类 LB#xff1a;负载均衡…一、集群相关概念简述 HA是High Available缩写是双机集群系统简称指高可用性集群是保证业务连续性的有效解决方案一般有两个或两个以上的节点且分为活动节点及备用节点。 1、集群的分类 LB负载均衡集群 lvs负载均衡nginx反向代理HAProxyHA高可用集群 heartbeatkeepalivedredhat5 : cman rgmanager , conga(WebGUI) -- RHCSCluster Suite集群套件redhat6 : cman rgmanager , corosync pacemakerredhat7 : corosync pacemaker数据库redisHPC高性能集群SPoF: Single Point of Failure,解决单点故障 2.系统可用性的计算公式 SLAService-Level Agreement 服务等级协议提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约 AMTBF/(MTBFMTTR) A高可用性指标95%, 99%, 99.5%, ...., 99.999%99.9999%等MTBF平均无故障时间MTTR平均修复时间 3.系统故障 硬件故障设计缺陷、 wear out 损耗、非人为不可抗拒因素 软件故障设计缺陷 bug 4.实现高可用 提升系统高用性的解决方案降低 MTTR- Mean Time To Repair( 平均故障时间 ) 解决方案建立冗余机制 active/passive 主 / 备 active/active 双主 active -- HEARTBEAT -- passive active -- HEARTBEAT -- active 二.keepalived 1.Keepalived介绍 Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA)其实两种不同的含义广义来讲是指整个系统的高可用行狭义的来讲就是之主机的冗余和接管    它与HeartBeat RoseHA 实现相同类似的功能都可以实现服务或者网络的高可用但是又有差别HeartBeat是一个专业的、功能完善的高可用软件它提供了HA 软件所需的基本功能比如心跳检测、资源接管检测集群中的服务在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大但是部署和使用相对比较麻烦 与HeartBeat相比Keepalived主要是通过虚拟路由冗余来实现高可用功能虽然它没有HeartBeat功能强大但是Keepalived部署和使用非常的简单所有配置只需要一个配置文件即可以完成 Keepalived起初是为LVS设计的专门用来监控集群系统中各个服务节点的状态它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态如果某个服务器节点出现异常或者工作出现故障Keepalived将检测到并将出现的故障的服务器节点从集群系统中剔除这些工作全部是自动完成的不需要人工干涉需要人工完成的只是修复出现故障的服务节点。   后来Keepalived又加入了VRRP的功能VRRPVritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题通过VRRP可以实现网络不间断稳定运行因此Keepalvied 一方面具有服务器状态检测和故障隔离功能另外一方面也有HA cluster功能. 2.keepalived相关概念  vrrp协议Virtual Redundant Routing Protocol 虚拟冗余路由协议Virtual Router虚拟路由器VRID(0-255)虚拟路由器标识master主设备当前工作的设备backup备用设备priority优先级优先级越大优先工作具体情况示工作方式决定VIP虚拟IP地址正真向客户服务的IP地址VMAC虚拟MAC地址(00-00-5e-00-01-VRID)抢占式如果有优先级高的节点上线则将此节点转为master非抢占式即使有优先级高的节点上线在当前master工作无故障的情况运行抢占等到此master故障后重新按优先级选举master心跳master将自己的心跳信息通知集群内的所有主机证明自己正常工作安全认证机制 无认证任何主机都可成为集群内主机强烈不推荐简单的字符认证使用简单的密码进行认证AH认证sync group同步组VIP和DIP配置到同一物理服务器上MULTICAST组播多播Failovermaster故障故障切换故障转移Failback故障节点重新上线故障切回 3.VRRP协议与工作原理  在现实的网络环境中。主机之间的通信都是通过配置静态路由或者(默认网关)来完成的而主机之间的路由器一旦发生故障通信就会失效因此这种通信模式当中路由器就成了一个单点瓶颈为了解决这个问题就引入了VRRP协议。 VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由这个虚拟路由器通过虚拟IP一个或者多个)对外提供服务而在虚拟路由器内部十多个物理路由器协同工作同一时间只有一台物理路由器对外提供服务这台物理路由设备被成为主路由器Master角色)一般情况下Master是由选举算法产生它拥有对外服务的虚拟IP提供各种网络功能如ARP请求ICMP 数据转发等而且其它的物理路由器不拥有对外的虚拟IP也不提供对外网络功能仅仅接收MASTER的VRRP状态通告信息这些路由器被统称为“BACKUP的角色”当主路由器失败时处于BACKUP角色的备份路由器将重新进行选举产生一个新的主路由器进入MASTER角色继续提供对外服务整个切换对用户来说是完全透明的。    每个虚拟路由器都有一个唯一的标识号称为VRID一个VRID与一组IP地址构成一个虚拟路由器在VRRP协议中所有的报文都是通过IP多播方式发送的而在一个虚拟路由器中只有处于Master角色的路由器会一直发送VRRP数据包处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息用来监控Master运行状态一一般不会发生BACKUP抢占的情况除非它的优先级更高而当MASTER不可用时BACKUP也就无法收到Master发过来的信息于是就认定Master出现故障接着多台BAKCUP就会进行选举优先级最高的BACKUP将称为新的MASTER这种选举角色切换非常之快因而保证了服务的持续可用性。 VRRP相关术语  VRRP路由器执行VRRP协议一个或多个实例的路由器 虚拟路由器由一个Master路由器和多个Backup路由器组成。当中不管Master路由器还是Backup路由器都是一台VRRP路由器下行设备将虚拟路由器当做默认网关。 VRID虚拟路由器标识在同一个VRRP组内的路由器必须有相同的VRID事实上VRID就相当于一个公司的名称每一个员工介绍自己时都要包括公司名称表明自己是公司的一员相同的道理VRID表明了这个路由器属于这个VRRP组。 Master路由器虚拟路由器中承担流量转发任务的路由器 Backup路由器当一个虚拟路由器中的Master路由器出现问题时可以取代Master路由器工作的路由器 虚拟IP地址虚拟路由器的IP地址一个虚拟路由器能够拥有一个或多个虚拟IP地址。 IP地址拥有者接口IP和虚拟路由器IP地址同样的路由器就叫做IP地址拥有者。 主IP地址从物理接口设置的IP地址中选择一个选择规则是总是选用第一个IP地址VRRP通告报文总是用主IP地址作为该报文IP包头的源IP。 虚拟MAC地址组成方式是00-00-5E-00-01-{VRID}前三个字节00-00-5E是IANA组织分配的接下来的两个字节00-01是为VRRP协议指定的最后的VRID是虚拟路由器标识取值范围[1255] VRRP相关技术 通告心跳优先级等周期性 工作方式抢占式非抢占式 安全认证 无认证 简单字符认证预共享密钥 MD5 工作模式 主 / 备单虚拟路由器 主 / 主主 / 备虚拟路由器 1 备 / 主虚拟路由器 2 4.keepalived功能 vrrp 协议的软件实现原生设计目的为了高可用 ipvs 服务 官网 http://keepalived.org/ 功能 基于 vrrp 协议完成地址流动 为 vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 ) 为 ipvs 集群的各 RS 做健康状态检测 基于脚本调用接口完成脚本中定义的功能进而影响集群事务以此支持 nginx 、 haproxy 等服务 5.Keepalived体系结构 Keepalived起初是为LVS设计的由于Keeplalived可以实现对集群节点的状态检测而IPVS可以实现负载均衡功能因此,Keepalived借助于第三方模块IPVS就可以很方便地搭建一套负载均衡系统在这里有个误区由于Keepalived可以和IPVS一起很好的工作所以会有人以为Keepalived就是一个负载均衡软件这种理解是错误 在Keepalived当中IPVS模块是可配置的如果需要负载均衡功能可以在编译Keepalived时开打负载均衡功能也可以通过编译参数关闭。    NetLINK模块主要用于实现一些高级路由框架和一些相关参数的网络功能完成用户空间层Netlink Reflector模块发来的各种网络请求。     这个图我们可以看到用户空间层(user space)是建立在内核空间层之上的(kernel sapce) 用户空间层主要有4个部分        Scheduler I/O Multiplexer 是一个I/O复用分发调度器它负载安排Keepalived所有内部的任务请求        Memory Mngt 是一个内存管理机制这个框架提供了访问内存的一些通用方法               Control Plane  是keepalived的控制版面可以实现对配置文件编译和解析        Core componets  这部分主要保护了下面5个部分              1.Watchdog是计算机可靠领域中极为简单又非常有效的检测工具Keepalived正是通过它监控Checkers和VRRP进程的。              2.Checkers: 这是Keepalived最基础的功能也是最主要的功能可以实现对服务器运行状态检测和故障隔离。              3.VRRP Stack: 这时keepalived后来引用VRRP功能可以实现HA集群中失败切换功能。              4.IPVS wrapper: 这个是IPVS功能的一个实现IPVS warrper模块将可以设置好的IPVS规则发送的内核空间并且提供给IPVS模块最终实现IPVS模块的负载功能。              5.Netlink Reflector用来实现高可用集群Failover时虚拟IP(VIP)的设置和切换 Netlink Reflector的所有请求最后都发送到内核空间层的NETLINK 模块来完成。 6.keepalived环境准备 要求各节点时间必须同步ntpchrony 关闭防火墙和selinux  7.keepalived相关配置文件 软件包名keepalived 主程序文件/usr/sbin/keepalived 主配置文件/etc/keepalived/keepalived.conf 配置文件示例/usr/share/doc/keepalived/ Unit File/lib/systemd/system/keepalived.service Unit File的环境配置文件/etc/sysconfig/keepalived 安装软件包 # yum install keepalived配置文件参数详解 全局配置 ! Configuration File for keepalived global_defs { notification_email { 594233887qq.com #keepalived 发生故障切换时邮件发送的目标邮箱可以按行区分写多个 timiniglee-zln163.com } notification_email_from keepalivedKA1.timinglee.org #发邮件的地址 smtp_server 127.0.0.1 #邮件服务器地址 smtp_connect_timeout 30 #邮件服务器连接timeout router_id KA1.timinglee.org #每个keepalived主机唯一标识 #建议使用当前主机名但多节点重名不影响 vrrp_skip_check_adv_addr #对所有通告报文都检查会比较消耗性能 #启用此配置后如果收到的通告报文和上一个报文是同一 #个路由器则跳过检查默认值为全检查 vrrp_strict #严格遵循vrrp协议#启用此项后以下状况将无法启动服务:#1.无VIP地址#2.配置了单播邻居#3.在VRRP版本2中有IPv6地址#建议不加此项配置 vrrp_garp_interval 0 #报文发送延迟0表示不延迟 vrrp_gna_interval 0 #消息发送延迟 vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围 } 配置虚拟路由器 vrrp_instance VI_1 { state MASTER interface eth0 #绑定为当前虚拟路由器使用的物理接口如eth0,可以和VIP不在一个网卡 virtual_router_id 51 #每个虚拟路由器惟一标识,范围0-255每个虚拟路由器此值必须唯一#否则服务无法启动#同属一个虚拟路由器的多个keepalived节点必须相同#务必要确认在同一网络中此值必须唯一 priority 100 #当前物理节点在此虚拟路由器的优先级范围1-254#值越大优先级越高,每个keepalived主机节点此值不同 advert_int 1 #vrrp通告的时间间隔默认1s authentication { #认证机制 auth_type AH|PASS #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用) uth_pass 1111 #预共享密钥仅前8位有效#同一个虚拟路由器的多个keepalived节点必须一样 } virtual_ipaddress { #虚拟IP,生产环境可能指定上百个IP地址 IPADDR/MASK brd IPADDR dev STRING scope SCOPE label LABEL 172.25.254.100 #指定VIP不指定网卡默认为eth0,注意不指定/prefix,默认32 172.25.254.101/24 dev eth1 172.25.254.102/24 dev eth2 label eth2:1 } } keepalived虚拟路由管理 实验环境 设备角色IPka1keepalived1192.168.10.170/24ka2keepalived2192.168.19.180/24webserver1real server192.168.10.220/24webserver2real server192.168.10.230/24 注vip设置为192.168.10.240/24 四台主机全部关闭防火墙和selinux webserver1webserver2上安装web服务后面的测试可以更加清晰的看出结果 [rootwebserver1 ~]# yum install httpd -y [rootwebserver1 ~]# echo webserver1 - 192.168.10.220 /var/www/html/index.html [rootwebserver1 ~]# systemctl restart httpd.service [rootwebserver1 ~]# curl 192.168.10.220 webserver1 - 192.168.10.220[rootwebserver2 ~]# yum install httpd -y [rootwebserver2 ~]# echo webserver2 - 192.168.10.230 /var/www/html/index.html [rootwebserver2 ~]# systemctl restart httpd.service [rootwebserver2 ~]# curl 192.168.10.230 webserver2 - 192.168.10.230ka1,ka2上安装keepalived软件包 [rootka1 ~]# yum install keepalived -y[rootka2 ~]# yum install keepalived -y 在ka1上进行配置 [rootka1 ~]# vim /etc/keepalived/keepalived.conf # 全局设定 global_defs {notification_email {2948250195qq.com # 发送邮件通知给谁}notification_email_from keepli.org #发送的邮件从哪来smtp_server 127.0.0.1 # 邮件服务器ip smtp_connect_timeout 30 # 连接邮件服务器的超时时间router_id ka1 # 虚拟路由的idvrrp_skip_check_adv_addr # 同一来源的只检测一次 # vrrp_strict # 强制使用vrrp协议vrrp_garp_interval 0 vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18 # 接收通告数据的IP地址(组播地址)}# 虚拟路由器配置vrrp_instance VI_1 {state MASTER # 主设备interface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 100 # 优先级advert_int 1authentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0} } [rootka1 ~]# systemctl restart keepalived.service # 重启服务 [rootka1 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20linkether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)RX packets 88607 bytes 6246698 (5.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 65079 bytes 4618871 (4.4 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)# vip 为 192.168.10.240ka2和ka1配置相同所以我们可以使用scp进行复制 [rootka1 ~]# scp /etc/keepalived/keepalived.conf root192.168.10.180:/etc/keepalived/keepalived.conf The authenticity of host 192.168.10.180 (192.168.10.180) cant be established. ECDSA key fingerprint is SHA256:Yrid63PgwDQh7wiaQmCGsLuxK3Cht8v/wekHTAza/XI. ECDSA key fingerprint is MD5:d7:be:70:41:82:ff:81:40:5b:a7:40:10:d1:0c:ca:bf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 192.168.10.180 (ECDSA) to the list of known hosts. root192.168.10.180s password: keepalived.conf 100% 4143 4.5MB/s 00:00 唯一要变的就是我们将ka1当作主设备ka2当作从使用需要改两个配置 [rootka1 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 {state BACKUP # 从设备interface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 80 # 优先级改为80两个设备优先级不一样advert_int 1authentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0} }[rootka2 ~]# systemctl restart keepalived.service 测试 [rootka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18[rootka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 19:06:36.826789 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:06:37.828337 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:06:38.829688 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:06:39.831263 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:06:40.832678 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:06:41.833834 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20# 使用tcpdump进行抓包 # -i 就是ens33接收到底数据 # -nn 表示不做解析 # host指定观察的那个ip # 224.0.0.18 组播地址 ka1的优先级高于ka2所以正常情况看不到ka2的数据。若此时ka1发生故障ka2则会迅速补上此时在ka1上的vip也会跑到ka2上 [rootka1 ~]# systemctl stop keepalived.service [rootka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 19:09:39.386202 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 19:09:40.387629 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 19:09:41.388011 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 19:09:42.389522 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 19:09:43.390689 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 19:09:44.391255 IP 192.168.10.180 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20 [rootka2 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.180 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:fe2c:7bd prefixlen 64 scopeid 0x20linkether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)RX packets 119533 bytes 8259027 (7.8 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 39657 bytes 3009635 (2.8 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet) 因为默认是抢占模式当ka1好了之后vip则会跑到ka1上流量也会回到ka1上 [rootka1 ~]# systemctl start keepalived.service [rootka1 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20linkether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)RX packets 92906 bytes 6566009 (6.2 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 67173 bytes 4781344 (4.5 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)[rootka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 19:13:06.604998 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:13:07.605229 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:13:08.605816 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 19:13:09.606386 IP 192.168.10.170 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20keepalived虚拟路由的通讯设定 此时ka1,ka2是ping不通vip的,因为防止被攻击所有的数据流量打过来后可能会有恶意攻击我们最终的数据流量是要转到real server上的所以他默认会把你的vip访问功能给掉 [rootka1 ~]# ping 192.168.10.240 PING 192.168.10.240 (192.168.10.240) 56(84) bytes of data. ^Z [7] 已停止 ping 192.168.10.240[rootka1 ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 0.0.0.0/0 0.0.0.0/0 match-set keepalived dstChain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 这就是导致ping不通的原因---- match-set keepalived dst 如果要想ping通就需要在配置文件中添加参数 ka1,ka2相同 global_defs {notification_email {2948250195qq.com # 发送邮件通知给谁}notification_email_from keepli.org #发送的邮件从哪来smtp_server 127.0.0.1 # 邮件服务器ipsmtp_connect_timeout 30 # 连接邮件服务器的超时时间router_id ka1 # 虚拟路由的idvrrp_skip_check_adv_addr # 同一来源的只检测一次vrrp_strict # 强制使用vrrp协议vrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18 # 接收通告数据的IP地址(组播地址)vrrp_iptables }# 在最后一行添加 # 或者将vrrp_strict 注释掉效果相同 测试 [rootka1 ~]# ping 192.168.10.240 PING 192.168.10.240 (192.168.10.240) 56(84) bytes of data. 64 bytes from 192.168.10.240: icmp_seq1 ttl64 time0.021 ms 64 bytes from 192.168.10.240: icmp_seq2 ttl64 time0.028 ms 64 bytes from 192.168.10.240: icmp_seq3 ttl64 time0.035 ms 64 bytes from 192.168.10.240: icmp_seq4 ttl64 time0.034 ms ^C --- 192.168.10.240 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2998ms rtt min/avg/max/mdev 0.021/0.029/0.035/0.007 ms [rootka1 ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination keepalived日志独立 默认情况下keepalived的日志和其他的服务是捆在一起的 要想将其日志独立出来就要修改其配置文件 [rootka1 ~]# vim /etc/sysconfig/keepalived # Options for keepalived. See keepalived --help output and keepalived(8) and # keepalived.conf(5) man pages for a list of all options. Here are the most # common ones : # # --vrrp -P Only run with VRRP subsystem. # --check -C Only run with Health-checker subsystem. # --dont-release-vrrp -V Dont remove VRRP VIPs VROUTEs on daemon stop. # --dont-release-ipvs -I Dont remove IPVS topology on daemon stop. # --dump-conf -d Dump the configuration data. # --log-detail -D Detailed log messages. # --log-facility -S 0-7 Set local syslog facility (defaultLOG_DAEMON) #KEEPALIVED_OPTIONS-D -S 6 # 指定采集日志用的id是60-7都行重启服务 [rootka1 ~]# systemctl restart keepalived.service 编辑rsyslog.conf文件 #### RULES ##### Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console# Log anything (except mail) of level info or higher. # Dont log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages# The authpriv file has restricted access. authpriv.* /var/log/secure# Log all the mail messages in one place. mail.* -/var/log/maillog# Log cron stuff cron.* /var/log/cron# Everybody gets emergency messages *.emerg :omusrmsg:*# Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler# Save boot messages also to boot.log local7.* /var/log/boot.log local6.* /var/log/keepalived.log 在rules模块下可以添加 将日志采集在那个文件中可以自定义local加id  重启服务 [rootka1 ~]# systemctl restart rsyslog.service 测试 [rootka1 ~]# systemctl restart rsyslog.service [rootka1 ~]# ll /var/log/keepalived.log -rw-------. 1 root root 55473 8月 12 19:40 /var/log/keepalived.log [rootka1 ~]# tail -f /var/log/keepalived.log Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Adding sorry server [192.168.200.200]:1358 to VS [10.10.10.2]:1358 Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Removing alive servers from the pool for VS [10.10.10.2]:1358 Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Remote SMTP server [127.0.0.1]:25 connected. Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: SMTP alert successfully sent. Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Timeout connecting server [192.168.201.100]:443. Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Check on service [192.168.201.100]:443 failed after 3 retry. Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Removing service [192.168.201.100]:443 from VS [192.168.200.100]:443 Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Lost quorum 1-01 0 for VS [192.168.200.100]:443 Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: Remote SMTP server [127.0.0.1]:25 connected. Aug 12 19:40:20 ka1 Keepalived_healthcheckers[3771]: SMTP alert successfully sent. ^Z [8] 已停止 tail -f /var/log/keepalived.logkeepalived独立子配置文件 当生产环境复杂时 /etc/keepalived/keepalived.conf 文件中内容过多不易管理 将不同集群的配置比如不同集群的 VIP 配置放在独立的子配置文件中利用 include 指令可以实现包含子配置文件 格式 include /path/file     可以指定一个路径 [rootka1 ~]# vim /etc/keepalived/keepalived.conf }# vrrp_instance VI_1 { # state MASTER # 主设备 # interface ens33 # vip使用的真实设备是谁 # virtual_router_id 100 # 虚拟路由id唯一的 # priority 100 # 优先级 # advert_int 1 # authentication { # auth_type PASS # 发通告带的信息 # auth_pass 1111 # } # virtual_ipaddress { # vip id # 设定网卡子接口 # 192.168.10.240/24 dev ens33 label ens33:0 # } #} include /etc/keepalived/conf.d/*.conf # 将以上注释的内容指定在这个文件中# 我们将以上的内容独立出来放在一个新的文件里面include指向新文件前提是一定要有这个文件 [rootka1 ~]# mkdir -p /etc/keepalived/conf.d [rootka1 ~]# vim /etc/keepalived/conf.d/192.168.10.240.confvrrp_instance VI_1 {state MASTER # 主设备interface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 100 # 优先级advert_int 1authentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0} }[rootka1 ~]# systemctl restart keepalived.service 测试 [rootka1 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20linkether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)RX packets 107150 bytes 7643447 (7.2 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 75971 bytes 5480440 (5.2 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)注意将原配置文件独立出来后原来的文件要么注释掉要么删掉否则独立出来的文件会和之前的文件冲突 keepalived非抢占和延迟抢占 非抢占模式 nopreempt 默认为抢占模式 preempt 即当高优先级的主机恢复在线后会抢占低先级的主机的 master 角色 这样会使 vip 在 KA 主机中来回漂移造成网络抖动 建议设置为非抢占模式 nopreempt 即高优先级主机恢复后并不会抢占低优先级主机的 master 角色 非抢占模块下 , 如果原主机 down 机 , VIP 迁移至的新主机 , 后续也发生 down 时 , 仍会将 VIP 迁移回原主机 注意要关闭 VIP抢占必须将各 keepalived 服务器state配置为BACKUP   ka1,和ka2配置相同 vim /etc/keepalived/keepalived.conf }vrrp_instance VI_1 {state BACKUP interface ens33 # vip使用的真实设备是谁 virtual_router_id 100 # 虚拟路由id唯一的 priority 100 # 优先级 advert_int 1 nopreemptauthentication {auth_type PASS # 发通告带的信息 auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口 192.168.10.240/24 dev ens33 label ens33:0} }# 设置非抢占模式 需要将state 改为 BACKUP 以及加一行参数 nopreempt [rootka2 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 {state BACKUP interface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 80 # 优先级advert_int 1nopreempt authentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0我先重启ka2再重启ka1vip将会跑到ka2上并且不会回去当ka2挂掉vip才会回去不管优先级 [rootka2 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.180 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:fe2c:7bd prefixlen 64 scopeid 0x20linkether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)RX packets 142318 bytes 10033173 (9.5 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 45810 bytes 3472473 (3.3 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)[rootka2 ~]# systemctl stop keepalived.service [rootka1 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20linkether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)RX packets 111441 bytes 7967231 (7.5 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 78058 bytes 5653940 (5.3 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet) 延迟抢占preempt_delay 抢占延迟模式即优先级高的主机恢复后不会立即抢回VIP而是延迟一段时间默认300s再抢回VIP preempt_delay # #指定抢占延迟时间为#s默认延迟300s 注意需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict [rootka1 ~]# vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUPinterface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 100 preempt_delay 10s # 抢占延迟10sadvert_int 1 # nopreempt authentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0}[rootka2 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 {state BACKUPinterface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 80 # 优先级advert_int 1preempt_delay 10s # nopreemptauthentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0}测试由于pa1的优先级高于pa2我先启动pa2 down掉pa1vip会到pa2上我再启动pa1vip不会立刻回到pa1上而是10秒后 [rootka2 ~]# systemctl restart keepalived.service [rootka2 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.180 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:fe2c:7bd prefixlen 64 scopeid 0x20linkether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)RX packets 146839 bytes 10374458 (9.8 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 47473 bytes 3611473 (3.4 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags73UP,LOOPBACK,RUNNING mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10hostloop txqueuelen 1000 (Local Loopback)RX packets 607 bytes 44033 (43.0 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 607 bytes 44033 (43.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[rootka1 ~]# date 2024年 08月 12日 星期一 20:19:31 CST [rootka1 ~]# systemctl restart keepalived.service [rootka1 ~]# ifconfig ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20linkether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)RX packets 115304 bytes 8272918 (7.8 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 79935 bytes 5800622 (5.5 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)lo: flags73UP,LOOPBACK,RUNNING mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10hostloop txqueuelen 1000 (Local Loopback)RX packets 942 bytes 69116 (67.4 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 942 bytes 69116 (67.4 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[rootka1 ~]# date 2024年 08月 12日 星期一 20:19:48 CST #差不多就是这个意思 VIP单播配置 默认 keepalived 主机之间利用多播相互通告消息会造成网络拥塞可以替换成单播减少网络流量 [!NOTE] 注意启用 vrrp_strict 时不能启用单播 # 在所有节点 vrrp_instance 语句块中设置对方主机的 IP 建议设置为专用于对应心跳线网络的地址而非使 用业务网络 unicast_src_ip IPADDR # 指定发送单播的源 IP unicast_peer { IPADDR # 指定接收单播的对方目标主机 IP ...... } # 启用 vrrp_strict 时不能启用单播 , 否则服务无法启动 , 并在 messages 文件中记录下面信息 Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: (m44) Strict mode does not support authentication. Ignoring. Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: (m44) Unicast peers are not supported in strict mode Jun 16 17:50:06 centos8 Keepalived_vrrp[23180]: Stopped - used 0.000606 user time, 0.000000 system time Jun 16 17:50:06 centos8 Keepalived[23179]: Keepalived_vrrp exited with permanent error CONFIG. Terminating Jun 16 17:50:06 centos8 systemd[1]: keepalived.service: Succeeded. Jun 16 17:50:06 centos8 Keepalived[23179]: Stopped Keepalived v2.0.10 (11/12,2018) 组播变单播实验 ka1和ka2互相进行通告 [rootka1 ~]# vim /etc/keepalived/keepalived.conf global_defs {notification_email {2948250195qq.com # 发送邮件通知给谁}notification_email_from keepli.org #发送的邮件从哪来smtp_server 127.0.0.1 # 邮件服务器ipsmtp_connect_timeout 30 # 连接邮件服务器的超时时间router_id ka1 # 虚拟路由的idvrrp_skip_check_adv_addr # 同一来源的只检测一次 # vrrp_strict #注释此行与vip单播模式冲突vrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18 # 接收通告数据的IP地址(组播地址) # vrrp_iptables }vrrp_instance VI_1 {state MASTERinterface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 100 # preempt_delay 10s # 抢占延迟10sadvert_int 1 # nopreemptauthentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0}unicast_src_ip 192.168.10.170 # 发送源就是本机ipunicast_peer {192.168.10.180 # 接收源就是对端也就是ka2}[rootka2 ~]# vim /etc/keepalived/keepalived.confglobal_defs {notification_email {2948250195qq.com # 发送邮件通知给谁}notification_email_from keepli.org #发送的邮件从哪来smtp_server 127.0.0.1 # 邮件服务器ipsmtp_connect_timeout 30 # 连接邮件服务器的超时时间router_id ka1 # 虚拟路由的idvrrp_skip_check_adv_addr # 同一来源的只检测一次 # vrrp_strict # 注释此行与vip单播模式冲突vrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18 # 接收通告数据的IP地址(组播地址) # vrrp_iptablesvrrp_instance VI_1 {state BACKUPinterface ens33 # vip使用的真实设备是谁virtual_router_id 100 # 虚拟路由id唯一的priority 80 # 优先级advert_int 1 # preempt_delay 10s # nopreemptauthentication {auth_type PASS # 发通告带的信息auth_pass 1111}virtual_ipaddress { # vip id # 设定网卡子接口192.168.10.240/24 dev ens33 label ens33:0}unicast_src_ip 192.168.10.180 # 发送源就是本机ipunicast_peer {192.168.10.170}测试 [rootka1 ~]# tcpdump -i ens33 -nn src host 192.168.10.170 and dst 192.168.10.180tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 09:43:21.998624 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 09:43:23.005985 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 09:43:24.011231 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 09:43:25.017003 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 09:43:26.017906 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20 09:43:27.024354 IP 192.168.10.170 192.168.10.180: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20# 在170上看180到170的数据 # 在180上看170到180的数据 未完。。。。。
http://www.w-s-a.com/news/445325/

相关文章:

  • 网站搜索 收录优化百度推广页面投放
  • 响应式网站的优点浙江省网站域名备案
  • 网站安全 扫描深圳被点名批评
  • 在哪个网站可以一对一做汉教网站优化策略
  • 龙岩做网站的顺企网宁波网站建设
  • 昆山网站建设河北连锁餐厅vi设计公司
  • 新蔡县住房和城乡建设局网站南昌租房网地宝网
  • 南宁做网站费用iis编辑网站绑定
  • 家用宽带做网站服务器建网站费用明细
  • 电商 网站 降低 跳出率 措施 效果书画院网站模板
  • 兰州移动官网网站建设上海工商网上公示系统
  • 在招聘网站里做电话销售免费空间可以上传网站吗
  • 梅州建站怎么做中国建设银行官网下载
  • 网站静态化设计广州网站备案方案
  • 西安网络技术有限公司网站扬中网站建设方案
  • 青海省教育厅门户网站wordpress core
  • idc科技公司网站模板蜜雪冰城网络营销案例分析
  • 微信与网站对接手机软件怎么做
  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站
  • 东海县建设局网站wordpress 好用的主题