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

好网站建设公司业务做彩票网站非法吗

好网站建设公司业务,做彩票网站非法吗,最新军事新闻,网站空间地址目录 一、集群的概述 1、什么是集群 2、普通集群与负载均衡集群 2.1 普通集群#xff08;Regular Cluster#xff09; 2.2 负载均衡集群#xff08;Load Balancing Cluster#xff09; 2.3 高可用集群#xff08;High Availability Cluster#xff09; 2.4 区别 …目录 一、集群的概述 1、什么是集群 2、普通集群与负载均衡集群 2.1 普通集群Regular Cluster 2.2 负载均衡集群Load Balancing Cluster 2.3 高可用集群High Availability Cluster 2.4 区别 二、Keepalive基础概述 1、vrrp虚拟路由冗余协议技术 1.1 vrrp协议概念 1.2 vrrp技术工作原理 1.3 vrrp状态机  1.4 vrrp协议的抢占功能 2、keepalived 概述 2.1 keepalived 作用 2.2 Keepalived 架构 2.3 安装keepalived 2.4 keepalived的相关文件及组成 2.4.1 keepalived的相关文件 2.4.2 主配置文件的组成 2.4.3 主配置文件的全局配置详解 2.4.4 主配置文件的vrrp_instance模块详解 2.4.5 主配置文件的virtual_server模块详解 三、部署LVSkeepalived集群 1、部署master负载调度服务器 1.1 修改主配置文件 1.2 调整/proc响应参数 2、部署backup负载调度服务器 2.1 修改主配置文件 2.2 调整/proc响应参数 3、部署节点服务器1 3.1 设置虚拟网卡VIP 3.1.1 临时设置虚拟回环网卡 3.1.2 永久设置虚拟回环网卡 3.2 忽略ARP请求 3.2 安装并启动nginx软件 3.4 新建网页站点文件 3.5 关闭长连接 4、部署节点服务器2 4.1 设置虚拟网卡VIP 4.1.1 临时设置虚拟回环网卡 4.1.2 永久设置虚拟回环网卡 4.2 忽略ARP请求 4.3 安装并启动nginx软件 4.4 新建网页站点文件 4.5 关闭长连接 5、客户端测试 四、其他有用配置 1、主从抢占模式配置 1.1 抢占模式默认模式 1.2 非抢占模式 1.3 延迟抢占模式 2、组播/单播地址 2.1 组播地址 2.2 单播地址 3、通知脚本 3.1 配置邮箱 3.2 编写脚本 3.3 修改keepalived主配置文件 3.4 测试 4、日志功能 4.1 修改keepalived日志配置文件 4.2 修改rsyslog主配置文件 五、实现其它应用的高可用性 VRRP Script 1、VRRP Script实现步骤 2、部署nginxkeepalived集群 2.1 部署master调度服务器 2.1.1 修改nginx主配置文件 2.1.2 修改keepalived主配置文件 2.2 部署backup调度服务器 六、高可用集群的脑裂问题 1、什么是脑裂 2、导致脑裂的原因 3、预防和解决脑裂问题 4、使用iptables规则模拟脑裂 一、集群的概述 1、什么是集群 在计算机科学中集群Cluster是指一组相互连接的计算机节点这些计算机协同工作以完成共同的任务。集群可以通过网络相互通信和协作从而形成一个整体系统 由多台主机构成但对外只能表现为一个整体只提供一个访问入口域名或者ip地址相当于一个大型计算机 集群通常被用于提高计算性能、可靠性和可扩展性 2、普通集群与负载均衡集群 2.1 普通集群Regular Cluster 普通的群集的部署是通过一台度器控制调配多台节点服务器进行业务请求的处理但是仅仅是一台调度器就会存在极大的单点故障风险当该调度器的链路或则调度器本身出现故障时就会导致整个业务的无法正常进行 2.2 负载均衡集群Load Balancing Cluster 负载均衡集群是一种普通集群的特殊形式其中引入了负载均衡器Load Balancer来均衡各个节点之间的工作负载。负载均衡器可以根据不同的算法如轮询、最小连接数等将传入的请求分发到集群中的不同节点以确保各个节点的负载大致均衡。负载均衡集群可以提高系统的性能和可靠性同时还能更好地应对突发的高负载情况 2.3 高可用集群High Availability Cluster 高可用集群是由一台主调度器和一台或多台备用调度器。在主调度器能够正常运转时由主调度器进行节点服务器业务的分配处理其余备用调度器处于待机状态不参与当前的集群运转。当主调度器出现故障无法运转时此时备用调度器会由优先级最高的调度承担主调度器的工作而出现故障的主调调度器便会退出当前工作由人工维修后返回集群 2.4 区别 普通集群是基本形式负载均衡集群在此基础上引入负载均衡器以提高性能高可用集群则在此基础上更加注重系统的可用性和容错能力。根据具体的需求和场景可以选择合适的集群形式来搭建系统以满足要求 二、Keepalive基础概述 1、vrrp虚拟路由冗余协议技术 1.1 vrrp协议概念 vrrp技术旨在提供网络设备的冗余和高可用性。它允许多台路由器或交换机共享一个虚拟 IP 地址从而实现对外部网络的透明故障切换 VRRP 协议工作在 OSI 模型的网络层第三层其基本原理是将一组路由器配置为 VRRP 组并选择其中一台路由器作为虚拟路由器的主节点其他路由器则成为备用节点。主节点负责处理传入流量而备用节点则处于待命状态 1.2 vrrp技术工作原理 VRRPVirtual Router Redundancy Protocol的工作模式基于主备模式。在这种模式下多个路由器或交换机被组织成一个 VRRP 组其中包括一个主节点和一个或多个备用节点。这些节点一起协作以提供冗余和高可用性 当主节点不可用时备用节点中优先级最高的节点将接管虚拟 IP 地址成为新的主节点从而实现快速故障切换。这种模式确保了即使某个节点发生故障整个系统仍能够继续提供服务从而实现了网络设备的冗余和高可用性 VRRP 组多个路由器被配置为一个 VRRP 组。每个组都有一个虚拟 IP 地址和一个虚拟 MAC 地址用于代表整个组 主节点VRRP 组中具有最高优先级的节点会成为主节点负责处理传入流量并使用虚拟 IP 地址提供服务  备用节点其他节点则成为备用节点处于待命状态。它们监视主节点的可达性并准备接管虚拟 IP 地址以确保服务的连续性 Hello 消息VRRP 节点定期发送 Hello 消息以通知其它节点自己的存在。这些消息还可以用于检测对等节点的可达性 虚拟路由器Virtual Router是一个逻辑实体它由一组物理路由器Physical Routers共同提供服务。虚拟路由器的主要目的是提供冗余和高可用性以防止单点故障 虚拟路由器标识Virtual Router IdentifierVRID是VRRP协议中的一个重要参数用于标识一个VRRP组。在一个VRRP组中所有的路由器都需要配置相同的VRID以便它们可以识别彼此并协同工作。当一个路由器成为VRRP组的Master时它会发送带有自己的VRID的VRRP包以通知其他路由器它的存在 虚拟 IP 地址 (VIP)这是由 VRRP 组共享的虚拟 IP 地址。它允许多个路由器共享一个 IP 地址以提供冗余和高可用性。VIP 通常与 VRRP 组中的主节点相关联并且在发生故障转移时会迁移到备用节点。 虚拟 MAC 地址 (VMAC)VMAC 是与虚拟 IP 地址相关联的虚拟 MAC 地址。当 VIP 迁移到 VRRP 组中的另一台路由器时VMAC 也会相应地切换到新的路由器以确保网络设备可以正确地识别并路由流量到新的主节点00-00-5e-00-01-VRID) 故障切换如果一个节点停止发送 Hello 消息其他节点会认为该节点已经失效触发故障转移。此时备用节点中优先级最高的节点将接管虚拟 IP 地址并成为新的主节点 快速故障切换VRRP 允许在几秒内完成主备节点之间的切换从而减少服务中断时间 1.3 vrrp状态机  优先级 默认0 - 2550代表主路由器主动退出255代表有设备和虚拟ip冲突可手动配置1-254优先级相同再比较接口IP地址大小IP地址大的优先优先级默认为100缺省值是100  1.4 vrrp协议的抢占功能 优先级每个VRRP路由器都有一个优先级优先级高的路由器会成为Master。当一个路由器的优先级超过当前Master的路由器它会接管Master的角色预先抢占在预先抢占模式下当一个优先级更高的路由器重新上线或者其优先级超过当前Master的路由器它会立即接管Master的角色而不管当前Master的路由器是否正常工作非预先抢占在非预先抢占模式下当一个优先级更高的路由器重新上线或者其优先级超过当前Master的路由器它不会立即接管Master的角色而是等待当前Master的路由器失效后才会接管Master的角色抢占延迟抢占延迟是指在预先抢占模式下当一个路由器的优先级超过当前Master的路由器它需要等待一段时间抢占延迟时间后才能接管Master的角色。这是为了防止网络中频繁的Master切换抢占权重抢占权重是指在预先抢占模式下当一个路由器的优先级超过当前Master的路由器它需要满足一定的抢占权重条件后才能接管Master的角色。这是为了防止网络中频繁的Master切换 2、keepalived 概述 2.1 keepalived 作用 keepalived 是一个用于实现高可用性的开源软件它主要用于在Linux系统上实现负载均衡和故障转移 基于vrrp协议keepalived 可以创建一个虚拟的IP地址这个IP地址可以被多个服务器共享。当一个服务器出现故障时keepalived 会自动将这个IP地址转移到其他正常的服务器以保证服务的可用性配置简单能为vip地址所在的节点生成ipvs规则(在配置文件中预先定义) 健康检查keepalived 可以定期检查后端真实服务器RS的健康状态如果一个服务器出现故障keepalived 会自动将这个服务器从负载均衡中移除以避免将请求发送到故障的服务器。 支持多种负载均衡算法keepalived 支持多种负载均衡算法包括轮询、加权轮询、最小连接数等支持多种通信协议keepalived 支持多种通信协议包括TCP、HTTP、SMTP基于脚本调用接口完成脚本中定义的功能进而影响集群事务以此支持nginx、haproxy等服务 keepalived工具官网http://keepalived.org/ 2.2 Keepalived 架构 #官网文档 https://keepalived.org/doc/ http://keepalived.org/documentation.html 用户空间核心组件 vrrp stackVIP消息通告 虚拟ip checkers监测real server简单来说 就是监控后端真实服务器的服务是否存活 system call实现 vrrp 协议状态转换时调用脚本的功能 SMTP邮件组件报警邮件 IPVS wrapper生成IPVS规则直接生成ipvsadm Netlink Reflector网络接口将虚拟地址ipvip地址飘动 WatchDog监控进程整个架构是否有问题 控制组件提供keepalived.conf 的解析器完成Keepalived配置 IO复用器针对网络目的而优化的自己的线程抽象 内存管理组件为某些通用的内存管理功能例如分配重新分配发布等提供访问权限 2.3 安装keepalived #yum安装keepalived软件 yum install -y keepalived.x86_64 2.4 keepalived的相关文件及组成 2.4.1 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 CentOS 2.4.2 主配置文件的组成 /etc/keepalived/keepalived.conf 配置组成 GLOBAL CONFIGURATION Global definitions全局配置定义邮件配置route_idvrrp配置。组播地址等 VRRP CONFIGURATION VRRP instance(s)定义vrrp协议中的每个vrrp虚拟路由器的规则基本信息 LVS CONFIGURATIONlvs调度服务器的规则设置 Virtual server group(s) Virtual server(s)LVS集群的VS和RS 2.4.3 主配置文件的全局配置详解 [rootlocalhost ~]#vim /etc/keepalived/keepalived.conf global_defs {notification_email {rootlocalhost#keepalived 发生故障切换时邮件发送的目标邮箱可以按行区分写多个rootlocalhostnumqq.com}notification_email_from keepalivedlocalhost  #发邮件的地址smtp_server 127.0.0.1     #邮件服务器地址smtp_connect_timeout 30   #邮件服务器连接timeoutrouter_id R1#每个keepalived主机唯一标识建议使用当前主机名但多节点重名不影响vrrp_skip_check_adv_addr  #对所有通告报文都检查会比较消耗性能启用此配置后如果收到的通告报文和上一个报文是同一个路由器则跳过检查默认值为全检查vrrp_strict #严格遵守VRRP协议,启用此项后以下状况将无法启动服务:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址开启动此项并且没有配置vrrp_iptables时会自动开启iptables防火墙规则默认导致VIP无法访问,建议不加此项配置。vrrp_garp_interval 0 #gratuitous ARP messages 免费ARP报文发送延迟0表示不延迟vrrp_gna_interval 0 #unsolicited NA messages 不请自来消息发送延迟vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围224.0.0.0到239.255.255.255,默认值224.0.0.18 vrrp_iptables        #此项和vrrp_strict同时开启时则不会添加防火墙规则,如果无配置vrrp_strict项,则无需启用此项配置 } 2.4.4 主配置文件的vrrp_instance模块详解 [rootlocalhost ~]#vim /etc/keepalived/keepalived.conf vrrp_instance STRING { #String为vrrp的实例名,一般为业务名称配置参数......} #配置参数 state MASTER|BACKUP #当前节点在此虚拟路由器上的初始状态状态为MASTER或者BACKUP interface IFACE_NAME #绑定为当前虚拟路由器使用的物理接口如eth0,bond0,br0,可以和VIP不在一个网卡 virtual_router_id VRID #每个虚拟路由器惟一标识范围0-255每个虚拟路由器此值必须唯一否则服务无法启动同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一 priority 100 #当前物理节点在此虚拟路由器的优先级范围1-254值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #vrrp通告的时间间隔默认1sauthentication { #认证机制auth_type AH|PASS   #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)auth_pass PASSWORD #预共享密钥仅前8位有效同一个虚拟路由器的多个keepalived节点必须一样 } include /etc/keealived/conf.d/*.conf virtual_ipaddress { #虚拟IP,生产环境可能指定上百个IP地址IPADDR/MASK brd IPADDR dev STRING scope SCOPE label LABEL172.16.12.10#指定VIP不指定网卡默认为,注意不指定/prefix,默认为/32172.16.12.11/24 dev eth1   #指定VIP的网卡建议和interface指令指定的岗卡不在一个网卡172.16.12.12/24 dev eth2 label eth2:1 #指定VIP的网卡label } track_interface { #配置监控网络接口一旦出现故障则转为FAULT状态实现地址转移eth0eth1… } 2.4.5 主配置文件的virtual_server模块详解 [rootlocalhost ~]#vim /etc/keepalived/keepalived.conf virtual_server 172.16.12.200 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR persistence_timeout 0#连接保持时间改为0 否则 无法体现效果protocol TCP#采用协议real_server 172.16.12.12 80 {weight 1#45行删除#节点权重TCP_CHECK{connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}}real_server 172.16.12.13 80 {weight 1TCP_CHECK{connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}三、部署LVSkeepalived集群 前提关闭所有设备的防火墙和核心防护 [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 1、部署master负载调度服务器 1.1 修改主配置文件 [rootlocalhost ~]#yum install -y keepalived.x86_64 #yum安装keepalived软件 [rootlocalhost ~]#systemctl start keepalived.service [rootlocalhost ~]#cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak #下面将修改主配置文件为避免修改错误导致无法挽回的后果建议备份原始主配置文件 [rootlocalhost ~]#vim /etc/keepalived/keepalived.conf global_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0 }vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {172.16.12.200} }virtual_server 172.16.12.200 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 172.16.12.12 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 172.16.12.13 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}} } #下面其他多余的配置可删除 注抓包能够得到同一热备组间master服务器与backup服务器之间通告的认证密码是明文传输的 [rootlocalhost ~]#systemctl restart keepalived.service [rootlocalhost ~]#ip a [rootlocalhost ~]#yum install -y ipvsadm.x86_64 [rootlocalhost ~]#ipvsadm-save /etc/sysconfig/ipvsadm [rootlocalhost ~]#systemctl start ipvsadm.service [rootlocalhost ~]#systemctl restart keepalived.service [rootlocalhost ~]#ipvsadm -ln 1.2 调整/proc响应参数 [rootlocalhost ~]#vim /etc/sysctl.conf net.ipv4.conf.all.send_redirects 0 net.ipv4.conf.default.send_redirects 0 net.ipv4.conf.ens33.send_redirects 0 [rootlocalhost ~]#sysctl -p 2、部署backup负载调度服务器 2.1 修改主配置文件 [rootlocalhost ~]#yum install -y keepalived.x86_64 #yum安装keepalived软件 [rootlocalhost ~]#systemctl start keepalived.service [rootlocalhost ~]#cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak #下面将修改主配置文件为避免修改错误导致无法挽回的后果建议备份原始主配置文件 #在master调度服务器上远程拷贝文件到backup调度服务器上 [rootlocalhost ~]#scp /etc/keepalived/keepalived.conf 172.16.12.11:/opt [rootlocalhost ~]#cd /opt [rootlocalhost opt]#mv keepalived.conf /etc/keepalived/ 修改主配置文件  [rootlocalhost ~]#systemctl restart keepalived.service [rootlocalhost ~]#ip a [rootlocalhost ~]#yum install -y ipvsadm.x86_64 [rootlocalhost ~]#ipvsadm-save /etc/sysconfig/ipvsadm [rootlocalhost ~]#systemctl start ipvsadm.service [rootlocalhost ~]#systemctl restart keepalived.service [rootlocalhost ~]#ipvsadm -ln 2.2 调整/proc响应参数 [rootlocalhost ~]#vim /etc/sysctl.conf net.ipv4.conf.all.send_redirects 0 net.ipv4.conf.default.send_redirects 0 net.ipv4.conf.ens33.send_redirects 0 [rootlocalhost ~]#sysctl -p 3、部署节点服务器1 3.1 设置虚拟网卡VIP 3.1.1 临时设置虚拟回环网卡 [rootlocalhost ~]#ifconfig lo:0 172.16.12.200/32 [rootlocalhost ~]#ip a 3.1.2 永久设置虚拟回环网卡 [rootlocalhost ~]#cd /etc/sysconfig/network-scripts/ [rootlocalhost network-scripts]#cp ifcfg-lo ifcfg-lo:0 [rootlocalhost network-scripts]#vim ifcfg-lo:0 #修改回环网卡名IP地址子网掩码 DEVICElo:0 IPADDR172.16.12.200 NETMASK255.255.255.255 NETWORK127.0.0.0 [rootlocalhost network-scripts]#systemctl restart network [rootlocalhost network-scripts]#ip a 3.2 忽略ARP请求 #添加系统只响应目的IP为本地IP的ARP请求 #系统不使用原地址来设置ARP请求的源地址而是物理mac地址上的IP [rootlocalhost ~]#vim /etc/sysctl.conf net.ipv4.conf.all.arp_ignore 1 net.ipv4.conf.all.arp_announce 2 net.ipv4.conf.default.arp_ignore 1 net.ipv4.conf.default.arp_announce 2 net.ipv4.conf.lo.arp_ignore 1 net.ipv4.conf.lo.arp_announce 2 [rootlocalhost ~]#sysctl -p 3.2 安装并启动nginx软件 [rootlocalhost ~]#yum install epel-release.noarch -y [rootlocalhost ~]#yum install -y nginx [rootlocalhost ~]#systemctl start nginx 3.4 新建网页站点文件 [rootlocalhost ~]#echo welcome to web 1 /usr/share/nginx/html/index.html [rootlocalhost ~]#cat /usr/share/nginx/html/index.html 3.5 关闭长连接 4、部署节点服务器2 4.1 设置虚拟网卡VIP 4.1.1 临时设置虚拟回环网卡 [rootlocalhost ~]#ifconfig lo:0 172.16.12.200/32 [rootlocalhost ~]#ip a 4.1.2 永久设置虚拟回环网卡 [rootlocalhost ~]#cd /etc/sysconfig/network-scripts/ [rootlocalhost network-scripts]#cp ifcfg-lo ifcfg-lo:0 [rootlocalhost network-scripts]#vim ifcfg-lo:0 #修改回环网卡名IP地址子网掩码 DEVICElo:0 IPADDR172.16.12.200 NETMASK255.255.255.255 NETWORK127.0.0.0 [rootlocalhost network-scripts]#systemctl restart network [rootlocalhost network-scripts]#ip a 4.2 忽略ARP请求 #添加系统只响应目的IP为本地IP的ARP请求 #系统不使用原地址来设置ARP请求的源地址而是物理mac地址上的IP [rootlocalhost ~]#vim /etc/sysctl.conf net.ipv4.conf.all.arp_ignore 1 net.ipv4.conf.all.arp_announce 2 net.ipv4.conf.default.arp_ignore 1 net.ipv4.conf.default.arp_announce 2 net.ipv4.conf.lo.arp_ignore 1 net.ipv4.conf.lo.arp_announce 2 [rootlocalhost ~]#sysctl -p 4.3 安装并启动nginx软件 [rootlocalhost ~]#yum install epel-release.noarch -y [rootlocalhost ~]#yum install -y nginx [rootlocalhost ~]#systemctl start nginx 4.4 新建网页站点文件 [rootlocalhost ~]#echo welcome to web 2 /usr/share/nginx/html/index.html [rootlocalhost ~]#cat /usr/share/nginx/html/index.html 4.5 关闭长连接 5、客户端测试 1客户端访问虚拟地址可以看到负载均衡1:1 2关闭master负载调度服务器的keepalived服务测试客户端能否访问到网页 3重新开启原来master服务器的keepalived服务测试是否抢占虚拟地址 四、其他有用配置 1、主从抢占模式配置 1.1 抢占模式默认模式 当一个优先级更高的路由器重新上线或者其优先级超过当前Master的路由器它会立即接管Master的角色而不管当前Master的路由器是否正常工作 详细可参考上述的测试情况 1.2 非抢占模式 关闭默认的抢占模式一定要将原master调度服务器主配置文件里的state修改成BACKUP否则可能会不成功再添加 nopreempt 即可那么当原master重新上线也不会抢占当前正在工作的服务器它现在反而会变成了backup服务器 测试  1.3 延迟抢占模式 preempt_delay 60 #指定抢占延迟时间为60s默认延迟300s 测试  2、组播/单播地址 2.1 组播地址 #两个调度服务器都需要配置 vrrp_mcast_group4 234.6.6.6 #组播地址范围224~239 测试 [rootlocalhost ~]#tcpdump -i ens33 -nn src host 172.16.12.10 2.2 单播地址 默认keepalived主机之间利用多播相互通告消息会造成网络拥塞可以替换成单播即只有同一热备组master和backup调度服务器之间通告信息减少网络流量 注意启用 vrrp_strict 时不能启用单播在所有节点vrrp_instance语句块中设置对方主机的IP建议设置为专用于对应心跳线网络的地址而非使用业务网络 unicast_src_ip 172.16.12.11unicast_peer {172.16.12.10 } 测试 [rootlocalhost ~]#tcpdump -i ens33 -nn src host 172.16.12.10 3、通知脚本 通知脚本notification script是用来在状态转换发生时通知管理员或执行特定操作的脚本。当Keepalived监测到故障或状态变化时例如主服务器故障或切换到备用服务器它会触发通知脚本。记录状态变化和事件日志并发送电子邮件或短信通知给管理员或运维团队等操作 1当前节点成为主节点时触发的脚本 notify_master STRING|QUOTED-STRING 2当前节点转为备节点时触发的脚本 notify_backup STRING|QUOTED-STRING 3当前节点转为“失败”状态时触发的脚本 notify_fault STRING|QUOTED-STRING 4通用格式的通知触发机制一个脚本可完成以上三种状态的转换时的通知 notify STRING|QUOTED-STRING 5当停止VRRP时触发的脚本 notify_stop STRING|QUOTED-STRING 3.1 配置邮箱 #非必要 [rootlocalhost ~]# vim /etc/mail.rc set fromnumqq.com set smtpsmtp.qq.com set smtp-auth-usernum5qq.com set smtp-auth-password******* #POP3/IMAP/SMTP/Exchange/CardDAV 授权码 3.2 编写脚本 [rootlocalhost ~]#cd /opt [rootlocalhost opt]#vim keepalive.sh #!/bin/bash contactnumqq.com #qq邮箱 notify() {mailsubject$(hostname) to be $1, vip floatingmailbody$(date %F %T): vrrp transition, $(hostname) changed to be $1echo $mailbody | mail -s $mailsubject $contact } case $1 in master)notify master;; backup)notify backup;; fault)notify fault;; *)echo Usage: $(basename $0) {master|backup|fault}exit 1;; esac [rootlocalhost opt]#chmod x keepalived.sh 3.3 修改keepalived主配置文件 [rootlocalhost opt]#vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 {……notify_master /opt/keepalive.sh masternotify_backup /opt/keepalive.sh backupnotify_fault /opt/keepalive.sh fault } [rootlocalhost opt]#systemctl restart keepalived.service 3.4 测试 模拟master调度服务器宕机 [rootlocalhost opt]#systemctl restart keepalived.service [rootlocalhost opt]#killall keepalived 4、日志功能 开启keepalived单独日志功能 4.1 修改keepalived日志配置文件 [rootlocalhost opt]# vim /etc/sysconfig/keepalived KEEPALIVED_OPTIONS-D -S 6 [rootlocalhost opt]#systemctl restart keepalived.service 4.2 修改rsyslog主配置文件 [rootlocalhost opt]#vim /etc/rsyslog.conf local6.* /var/log/keepalive.log [rootlocalhost opt]#systemctl restart rsyslog.service 测试  [rootlocalhost opt]#systemctl restart keepalived.service [rootlocalhost opt]#find /var/log/ -name keepalive* #查看是否生成独立的keepalived日志文件 /var/log/keepalive.log [rootlocalhost opt]#cat /var/log/keepalive.log #查看日志 五、实现其它应用的高可用性 VRRP Script 1、VRRP Script实现步骤 keepalived利用 VRRP Script 技术可以调用外部的辅助脚本进行资源监控并根据监控的结果实现优先动态调整从而实现其它应用的高可用性功能 VRRP Script 技术分以下两步实现 1定义脚本 vrrp_script自定义资源监控脚本vrrp实例根据脚本返回值公共定义可被多个实例调用定义在vrrp实例之外的独立配置块一般放在global_defs设置块之后。通常此脚本用于监控指定应用的状态。一旦发现应用的状态异常则触发对MASTER节点的权重减至低于SLAVE节点从而实现 VIP 切换到 SLAVE 节点 vrrp_script SCRIPT_NAME {script STRING|QUOTED-STRING #此脚本返回值为非0时会触发下面OPTIONS执行OPTIONS } vrrp_script SCRIPT_NAME { #定义一个检测脚本在global_defs 之外配置script STRING|QUOTED-STRING #shell命令或脚本路径(注意执行权限)interval INTEGER #间隔时间单位为秒默认1秒timeout INTEGER #超时时间weight INTEGER:-254..254 #默认为0,如果设置此值为负数当上面脚本返回值为非0时会将此值与本节点权重相加可以降低本节点权重即表示fall. 如果是正数当脚本返回值为0会将此值与本节点权重相加可以提高本节点权重即表示 rise.通常使用负值fall INTEGER #执行脚本连续几次都失败,则转换为失败建议设为2以上rise INTEGER #执行脚本连续几次都成功把服务器从失败标记为成功user USERNAME [GROUPNAME] #执行监测脚本的用户或组 init_fail #设置默认标记为失败状态监测成功之后再转换为成功状态 } 2 调用脚本 track_script调用vrrp_script定义的脚本去监控资源定义在VRRP实例之内调用事先定义的vrrp_script track_script {SCRIPT_NAME_1SCRIPT_NAME_2 } 2、部署nginxkeepalived集群 前提两个调度服务器都需要安装并开启nginx软件关闭ipvsadm软件 [rootlocalhost ~]#yum install epel-release.noarch -y [rootlocalhost ~]#yum install -y nginx [rootlocalhost ~]#systemctl start nginx [rootlocalhost log]#systemctl stop ipvsadm 两个调度服务器都要备份nginx主配置文件  [rootlocalhost ~]#cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak #下面将修改nginx主配置文件为避免修改错误导致无法挽回的后果建议备份原始主配置文件 2.1 部署master调度服务器 2.1.1 修改nginx主配置文件 [rootlocalhost ~]#vim /etc/nginx/nginx.conf #在http模块下配置upstream web {server 172.16.12.12;server 172.16.12.13;}#在server模块下配置location / {proxy_pass http://web;} [rootlocalhost ~]#systemctl restart nginx 2.1.2 修改keepalived主配置文件 先编写脚本 [rootlocalhost ~]#vim /etc/keepalived/ng.sh #!/bin/bash killall -0 nginx [rootlocalhost ~]#chmod x /etc/keepalived/ng.sh 修改keepalived主配置文件 [rootlocalhost ~]#vim /etc/keepalived/keepalived.conf vrrp_script check_down {script /etc/keepalived/ng.shinterval 1weight -30fall 3rise 2timeout 2 }track_script {check_down} [rootlocalhost ~]#systemctl restart keepalived.service 2.2 部署backup调度服务器 其实backup调度服务器的nginx配置文件和keepalived配置文件其实一样的只需要master调度服务器将配置文件远程拷贝并替换到backup调度服务器的配置文件即可 [rootlocalhost ~]#scp /etc/nginx/nginx.conf 172.16.12.11:/etc/nginx/ [rootlocalhost ~]#scp /etc/keepalived/keepalived.conf 172.16.12.11:/etc/keepalived/keepalived.conf [rootlocalhost ~]#scp /etc/keepalived/ng.sh 172.16.12.11:/etc/keepalived/ng.sh [rootlocalhost log]#systemctl restart nginx [rootlocalhost log]#systemctl restart keepalived.service 至于节点服务器1和节点服务器2的配置和之前的一样就行 测试此时master调度服务器正在工作客户端能访问到 关闭master负载调度服务器的nginx服务测试客户端能否访问到网页 此时当master调度服务器的nginx服务故障后backup调度服务器会顶上进行工作 六、高可用集群的脑裂问题 1、什么是脑裂 在高可用(HA)系统中当联系2个节点的“心跳线”断开时本来为一整体、动作协调的HA系统就分裂成为2个独立的个体由于相互失去了联系都以为是对方出了故障。两个节点上的HA软件像“裂脑人一样争抢“共享资源”、争起“应用服务”就会发生严重后果。共享资源被瓜分、两边“服务都起不来了;或者两边“服务”都起来了但同时读写“共享存储”导致数据损坏  2、导致脑裂的原因 硬件原因 高可用服务器各节点之间心跳线链路发生故障导致无法正常通信因心跳线坏了包括断了老化因网卡及相关驱动坏了ip配置及冲突问题网卡直连因心跳线间连接的设备故障网卡及交换机因仲裁的机器出问题采用仲裁的方案。 运用配置原因 高可用服务器上开启了 iptables 防火墙阻挡了心跳消息传输高可用服务器上心跳网卡地址等信息配置不正确导致发送心跳失败其他服务配置不当等原因如心跳方式不同心跳广插冲突、软件Bug等Keepalived 配置里同一VRRP实例如果 virtual_router_id 两端参数配置不一致也会导致裂脑问题发生 3、预防和解决脑裂问题 同时使用串行电缆和以太网电缆连接、同时使用两条心跳线路这样一条线路断了另外一条还是好的依然能传送心跳消息当检查脑裂时强行关闭一个心跳节点这个功能需要特殊设备支持如stonith、fence相当于备节点接收不到心跳消息通过单独的线路发送关机命令关闭主节点的电源建立完善的监控系统实时监测集群的状态和健康状况及时发现潜在的问题并采取相应的措施  4、使用iptables规则模拟脑裂 #在backup调度服务器上配置iptables规则拒绝接受来自master调度服务器的数据包 [rootlocalhost ~]#iptables -A INPUT -s 172.16.12.10 -j REJECT 这样就有整个集群就会有两个调度服务器在工作争抢“共享资源”、争起“应用服务”导致发生严重后果
http://www.w-s-a.com/news/605103/

相关文章:

  • 成品电影网站建设中国最顶尖设计师
  • 网站建设报价清单明细视频网站如何做营销
  • 建设农业网站的论文做国外网站有哪些
  • 怎么做网页 网站制作张家港网站制作哪家好
  • 创世网站建设公司书籍封面设计网站
  • 国外优秀网站设计欣赏小程序推广赚佣金
  • 徐州人才网官方网站邯郸seo优化公司
  • 海南响应式网站建设哪里好瑞安电影城网站建设
  • wordpress widgetkit济南优化网站厂家
  • 麦片网站建设佛山短视频推广渠道
  • 免费自助建网站销售的网络建设
  • 传媒大气的网站网站怎么做分类聚合
  • 网站可以自己备案吗crm系统架构图
  • 罗湖网站建设58做网站的公司盐城
  • 网站开发答辩想要去网站做友情链接怎么发邮件
  • 网站名称填写什么广告网络推广怎么做
  • 做网站架构需要注意什么百度竞价排名推广
  • 网站接口设置地税局内网网站建设
  • 谷歌提交网站入口wordpress前台自动登录
  • 规模以上工业企业的标准是什么洛阳霞光seo网络公司
  • 怎样用文本建一个网站做美容美发学校网站公司
  • 南宁企业网站建设制作芜湖网站建设推广
  • 泉州市建设局网站公示深圳建站公司好坏
  • 如何搭建网站教程一个人制作网站
  • 网站开发专业都有哪些课程广州安全教育平台账号找回
  • 网站调整方案适合平面设计师的网站
  • 免费服务器建立网站用html5做的旅游网站代码
  • 学校英语网站栏目名称WordPress禁用邮件注册
  • 手机qq网页版网站沧州手机网站开发
  • 深圳罗湖网站设计公司建设的网站属于无形资产吗