uc浏览器导航,信息如何优化上百度首页,国家企业信用信息公示系统官网站,拱墅区哪里有网站建设keepalived基础
keepalived的原理是根据vrrp协议#xff08;主备模式#xff09;去设定的
vrrp技术相关原理 状态机#xff1b; 优先级0~255 心跳线1秒 vrrp工作模式
双主双备模式 VRRP负载分担过程 vrrp安全认证#xff1a;使用共享密匙 keepalived工具介绍
keepal…keepalived基础
keepalived的原理是根据vrrp协议主备模式去设定的
vrrp技术相关原理 状态机 优先级0~255 心跳线1秒 vrrp工作模式
双主双备模式 VRRP负载分担过程 vrrp安全认证使用共享密匙 keepalived工具介绍
keepalived是专门为LVS和HA高可用主备模式设计的一款健康行检查工具
举例说明当有两台lvs服务器工作时出现故障而lvs本身又无法健康性检查所以借助keepalived工具 当主服务器出现故障此时备服务器顶上当主服务器恢复时有三种模式
1.抢占模式当主恢复好时立马切换到这
2.不抢占模式当主恢复好时依然在备服务器上运行
3.延迟抢占当主恢复好时多少秒从备切换到主上 keepalived架构 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 主配置文件详解
/etc/keepalived/keepalived.conf
global_defs {notification_email {rootlocalhost#keepalived 发生故障切换时邮件发送的目标邮箱可以按行区分写多个rootlocalhost360601212qq.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项,则无需启用此项配置
} 切记在修改配置文件的时候记得备份以防万一出错 配置文件讲解 简要来说全局配置只需要改三处
1.自己的ip 2.路由id名字 3.严格模式关闭 给lvs调度器设置
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 LABEL192.168.200.100 #指定VIP不指定网卡默认为,注意不指定/prefix,默认为/32192.168.200.101/24 dev eth1 #指定VIP的网卡建议和interface指令指定的岗卡不在一个网卡192.168.200.102/24 dev eth2 label eth2:1 #指定VIP的网卡label
}
track_interface {
#配置监控网络接口一旦出现故障则转为FAULT状态实现地址转移eth0eth1…
} 如果当项目中有很多的虚拟ip则建立子配置文件 虚拟服务器端的具体配置 delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR persistence_timeout 0#连接保持时间改为0 否则 无法体现效果protocol TCP#采用协议 真实服务器端配置 weight 1#45行删除#节点权重TCP_CHECK{connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}}
解释说明检查80端口相当于keepalived 用curl这个命令访问真是服务器的80端口如果80端口能访问代表活着如果80端口检查失败则下线不会自动调度过去。
超时时间3秒如果3秒不回应则代表此真是服务器挂掉
重试次数3次去访问80端口3次以上如果不回复则认为此服务器挂掉 实验操作 第一步四台服务器全部关闭防火墙关闭防护 主lvs调度服务器
先下载lvs keepalived 第二步切换到主配置文件然后备份 第三步 修改主配置文件 随后ipvsadm -ln 查看一下规则 虚拟ip 跟真实ip都在里面 备LVS服务器配置
第一步 下载ipvsadm keepalived 然后进入到主lvscentos1服务器将配置文件直接复制到备服务器里面省的重新写配置文件了 然后再进入到备服务器将data里面的keepalived配置文件移动到自己keepalived的配置文件中 然后再keepalived配置文件中修改里面的备模式 路由id名 优先级即可 修改过配置文件然后重启 然后开启ipvsadm centos3 真实服务器配置httpd 加入虚拟ip 是因为DR模式lvs服务器跟真实服务器要用相同的虚拟ip地址真实服务器回给客户端才不会有冲突并且要将路由转发给关了当配置相同的虚拟ip时客户端访问lvs服务器跟真是服务器会同时响应但是客户端应到lvs服务器所以要将真实服务器的路由转发功能给关闭
ifconfig lo:0 192.168.68.188 netmask 255.255.255.255 关闭路由转发 然后给网页写入内容 然后关闭长连接 centos4真是服务器配置 然后配置虚拟ip 并且关闭路由转发
ifconfig lo:0 192.168.68.188 netmask 255.255.255.255 然后关闭长连接是为了更好的出现7-3 到7-4的转换 然后客服端去访问虚拟服务器 现在模拟当主lvs关闭keepalived服务时7-3 7-4页面是否会出来 客户端访问时还是会出现7-3 7-4 是因为lvs直接到备服务器上面了 打开备服务器虚拟ip跑到备服务器上面了所以还是会正常运行 我们keepalived默认是抢占模式可以看一下再次打开主keepalived服务器然后看虚拟ip 非抢占模式 操作如下
主lvs服务器 nopreempt 然后重启 备服务器配置 随后关闭主服务器查看虚拟机ip可以看见开启非抢占模式主服务器关闭之后重启 虚拟ip不会回到主服务器上 而是当主服务器关闭切换到备服务器上就一直在备服务器上了 可以查看备服务器 延迟抢占 preempt_delay 60 主服务器配置 备服务器配置 然后模拟主服务器关闭 密码是明文传输的可以通过抓包看见 组播地址 vrrp默认的单播地址是224.0.0.18
如果要修改组播地址主备服务器都要修改 加在严格模式下方
vrrp_mcast_group4 234.6.6.6这地址自定义范围224~239 主备的修改是一样的 都是backup 随后保存然后重启 在备服务器上抓包 修改单播地址 unicast_src_ip 192.168.68.3unicast_peer{192.168.68.4}主服务器配置
备服务器配置 随后在备服务器上抓包 单播修改成功 通知脚本 #!/bin/bash
#
contact940132245qq.com
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在主服务器上面配置
写一个脚本 keepalive.sh 随后给这个脚本文件加上权限 随后修改主配置文件 notify_master /opt/keepalive.sh masternotify_backup /opt/keepalive.sh backupnotify_fault /opt/keepalive.sh fault随后保存重启 然后模拟master故障 随后打开自己的qq邮箱会发一个邮件过来 日志功能 随后在日志文件中添加6级别 因为修改了keepalived 跟rsyslog 所以都要重新加载 因为把keepalived日志放在了data下面 可以查看一下 查看一下日志 重点 脑裂
脑裂的意思就是当主服务器没有故障时备服务器认为自己是主虚拟ip188会出现在主备上面 怎么模拟脑裂------在备服务器上模拟屏蔽掉主服务器所有的报文包括屏蔽vrrp协议 在备lvs服务器上面屏蔽掉主服务器的所有流量包括vrrp报文 然后在主备上面ip a 都能看见虚拟机 使用其他应用的高可用性 vrrp script
当有两台nginx代理服务器nginx是无法处理自身单点故障的可以通过keepalived来实现如果一台nginx代理服务器出故障直接跳到另外一台nginx代理服务器上
keepalived利用脚本去解决nginx的高并发 定义vrrp script 实验操作 主 备nginx服务器 都要下载nginx 跟keepalived
主备服务器相同操作 然后开启nginx 主服务器配置修改 然后重启 随后写一个脚本能够让keepalived运行nginx的脚本并且给这个脚本执行的权限 脚本里面的内容 随后修改keepalived配置文件里面的内容 将virtual以下的内容删除因为不需要 第二步在全部配置下面写入脚本切记一定是在全局配置里面写入脚本 随后在virtual里面去执行脚本 保存之后重新加载 将主服务器上面的配置文件复制到备服务器上nginx配置文件中 将主服务器上面的keepalived配置文件复制到备服务器上 备服务器上配置
随后nginx配置文件拷过来之后重启一下 然后进入主页访问虚拟地址192.168.68.188 会出现7-3 7-4 现在模拟主nginx服务器停止出现故障 然后进入主页访问虚拟ip还是会出现7-3 7-4 因为主nginx坏掉是直接跳到备nginx上了