Keepalived

本文详细介绍了Keepalived的安装配置过程,以及如何通过VRRP_script进行健康检查。在服务器A和B上分别配置了用于监控PostgreSQL和OpenFlow的服务,确保在主服务器故障时能平滑切换到备用服务器。配置中涉及到了vrrp_instance的状态、优先级、认证和虚拟IP地址等关键参数,以及check_script的使用,如check_pg_alived和chk_openflow_process。当检测脚本返回值非0时,将降低优先级,触发主从切换。

keepalived实现服务高可用 全面

keepalived之vrrp_script详解

Keepalived状态切换的条件和因素

keepalived安装配置
systemctl start keepalived
keepalived正常运行后,会启动3个进程,其中一个是父进程,负责监控其子进程。一个是vrrp子进程,另外一个是checkers子进程。

[root@ ~]# ps -ef | grep keep
root      47386  47323  0 10:47 pts/0    00:00:00 grep --color=auto keep
root     197314      1  0  2018 ?        00:02:52 /usr/sbin/keepalived -D -d -S 0
root     197315 197314  0  2018 ?        00:50:52 /usr/sbin/keepalived -D -d -S 0
root     197316 197314  0  2018 ?        00:18:22 /usr/sbin/keepalived -D -d -S 0

安装
yum install keepalived -y
或者tar.gz安装

启动
service keepalived start

停止
service keepalived stop

重启
service keepalived restart

https://www.cnblogs.com/darendu/archive/2019/05/17/10881791.html

keepalived实现服务高可用

Keepalived原理与实战精讲–VRRP协议

keepalived双进程双VIP配置及原理图

/opt/context/keepalive_check/checkNginx.sh   注意脚本名字不要跟 nginx 进程名字重了 check_nginx也不行
auth_pass 5678   两进程密码要不一样
要配置抢占 不写nopreempt   配置不抢占写nopreempt的问题 https://www.cnblogs.com/arjenlee/p/9258188.html#auto_id_2

服务器A

! Configuration File for keepalived

#global_defs {
#   notification_email {
#     francs3@163.com
#   }
#   smtp_server 127.0.0.1
#   smtp_connect_timeout 30
#   router_id DB1_PG_HA_MASTER
#}

vrrp_script check_pg_alived {
    script "/usr/local/bin/pg_monitor.sh"
    #script "/home/postgres/bin/psql -c 'select 1;'"
    interval 2
    fall 3    # require 3 failures for KO
}

vrrp_instance VI_POSTGRES {
    state MASTER
    interface bond0.170     #网卡名对应修改
    virtual_router_id 126
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_pg_alived
    }
    virtual_ipaddress {
        11.115.127.170     #keepalive对外提供虚ip
    }
    smtp_alert
    notify_master /usr/local/bin/active_standby.sh
}

vrrp_instance VI_OPENFLOW {
    state BACKUP
    interface bond0.170
    virtual_router_id 151
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1133
    }
    virtual_ipaddress {
        11.115.127.169
    }

    track_script {
       # chk_openflow_process
    }
}

服务器B

! Configuration File for keepalived

#global_defs {
#   notification_email {
#     francs3@163.com
#   }
#   smtp_server 127.0.0.1
#   smtp_connect_timeout 30
#   router_id DB1_PG_HA_SLAVE
#}

# vrrp_script check_pg_alived {
#    script "/usr/local/bin/pg_monitor.sh"
#    #script "/home/postgres/bin/psql -c 'select 1;'"
#    interval 10
#    fall 3    # require 3 failures for KO
#}

vrrp_script chk_openflow_process {
    script "/etc/keepalived/check_of.sh"
    interval 2           
    weight -20 
}

vrrp_instance VI_POSTGRES {
    state BACKUP
    interface bond0.170     #网卡名对应修改
    virtual_router_id 126
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
       #check_pg_alived
    }
    virtual_ipaddress {
        11.115.127.170     #keepalive对外提供虚ip
    }
    #smtp_alert
    #notify_master /usr/local/bin/active_standby.sh
}

vrrp_instance VI_OPENFLOW {
    state MASTER
    interface bond0.170
    virtual_router_id 151
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1133
    }
    virtual_ipaddress {
        11.115.127.169
    }

    track_script {
        chk_openflow_process
    }
}
vrrp_script 里的script返回值为0时认为检测成功,其它值都会当成检测失败;

weight 为负时,脚本检测成功时此weight不影响priority,检测失败时priority – abs(weight)

	主失败:
		主 priority – abs(weight) < 从priority 时会切换主从
	主成功:
		主 priority > 从priority 主依然为主


检测nginx进程存在,count >0  exit 0 脚本检测成功时此weight不影响priority
检测nginx进程不存在,count =0  exit 1 脚本检测失败 priority-20
nginx起来之后,检测nginx进程存在,count >0  exit 0 脚本检测成功时此weight不影响priority,还是原来配置的100

vim /etc/keepalived/check_of.sh

#!/bin/bash

count=`ps aux | grep -v grep | grep nginx | wc -l` 
   
if [ $count -gt 0 ]; then    # -gt 大于
	exit 0
else
	exit 1
fi
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
皮肤烧伤识别作为医学与智能技术交叉的前沿课题,近年来在深度学习方法推动下取得了显著进展。该技术体系借助卷积神经网络等先进模型,实现了对烧伤区域特征的高效提取与分类判别,为临床诊疗决策提供了重要参考依据。本研究项目系统整合了算法设计、数据处理及模型部署等关键环节,形成了一套完整的可操作性方案。 在技术实现层面,首先需要构建具有代表性的烧伤图像数据库,涵盖不同损伤程度及愈合阶段的临床样本。通过对原始图像进行标准化校正、对比度增强等预处理操作,有效提升后续特征学习的稳定性。网络架构设计需充分考虑皮肤病变的区域特性,通过多层卷积与池化操作的组合,逐步抽象出具有判别力的烧伤特征表示。 模型优化过程中采用自适应学习率调整策略,结合交叉熵损失函数与梯度下降算法,确保参数收敛的稳定性。为防止过拟合现象,引入数据扩增技术与正则化约束,增强模型的泛化能力。性能验证阶段采用精确率、召回率等多维度指标,在独立测试集上全面评估模型对不同烧伤类型的识别效能。 经过充分验证的识别系统可集成至医疗诊断平台,通过规范化接口实现与现有医疗设备的无缝对接。实际部署前需进行多中心临床验证,确保系统在不同操作环境下的稳定表现。该技术方案的实施将显著缩短烧伤评估时间,为临床医师提供客观量化的辅助诊断依据,进而优化治疗方案制定流程。 本项目的突出特点在于将理论研究与工程实践有机结合,既包含前沿的深度学习算法探索,又提供了完整的产业化实施路径。通过模块化的设计思路,使得医疗专业人员能够快速掌握核心技术方法,推动智能诊断技术在烧伤外科领域的实际应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值