快速掌握keepalived

转载请注明出处:

  Keepalived是一个基于VRRP(虚拟路由冗余协议)的开源软件,用于在Linux系统上实现高可用性和负载均衡。它的主要功能是通过多台服务器之间的协作,确保在其中一台服务器发生故障时,另一台服务器可以接管其功能,并继续提供服务,从而实现系统的高可用性。

常用功能:

  1. 虚拟IP(Virtual IP): Keepalived通过配置一个虚拟IP地址,将其绑定到多个服务器上,使得这些服务器可以共享一个IP地址。当主服务器发生故障时,备份服务器会接管该虚拟IP地址并继续提供服务。

  2. VRRP:Keepalived使用VRRP协议来实现服务器之间的冗余备份。VRRP协议定义了服务器之间的选举机制,主服务器发送心跳包以表明自己的存活状态,备份服务器监听主服务器的心跳包,一旦主服务器失去响应,备份服务器会接管其角色。

  3. 健康检查(Health Checks): Keepalived可以周期性地对服务器进行健康检查,例如检查服务器上的某个端口是否正常运行,以确定服务器的状态。如果检测到故障,Keepalived可以自动触发故障转移。

配置示例说明:

  以下是一个简单的Keepalived配置示例,假设有两台服务器:Server A(IP地址为192.168.1.10)和Server B(IP地址为192.168.1.11),要实现故障转移和负载均衡。

  在Server A上的配置文件keepalived.conf

复制代码
global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER  # 主服务器设置为MASTER
    interface eth0  # 使用的网络接口
    virtual_router_id 51  # 虚拟路由ID,用于标识VRRP组
    priority 100  # 主服务器的优先级较高
    advert_int 1  # 发送心跳包的时间间隔
    authentication {
        auth_type PASS
        auth_pass password  # 验证密码
    }
    virtual_ipaddress {
        192.168.1.100  # 虚拟IP地址
    }
}

virtual_server 192.168.1.100 80 {  # 定义虚拟服务器
    delay_loop 6  # 检查服务器的时间间隔
    lb_algo rr  # 负载均衡算法,此处使用轮询算法
    lb_kind NAT  # 负载均衡方式,此处使用NAT模式
    persistence_timeout 50  # 连接保持时间
    protocol TCP  # 使用TCP协议
}

  在Server B上的配置文件keepalived.conf与Server A相似,只需修改以下几行:

复制代码
vrrp_instance VI_1 {
    state BACKUP  # 备份服务器设置为BACKUP
    priority 90  # 备份服务器的优先级较低
}

  参数说明:

  • auth_type: 这个配置项指定了身份验证的类型。在示例中,PASS表示使用基于密码的身份验证。还可以选择其他选项,如AH(基于身份验证头)或PASSAH(同时使用密码和身份验证头)等。
  • auth_pass: 这个配置项指定了用于身份验证的密码。在示例中,将password替换为您要使用的实际密码。

  使用这个配置,当两个运行keepalived的主机之间建立VRRP通信时,它们将相互验证提供的身份验证信息是否匹配。如果身份验证信息不匹配,通信将被拒绝,并且无法建立故障转移。

  在以上配置中,Server A被配置为主服务器(MASTER)并具有较高的优先级,Server B被配置为备份服务器(BACKUP)并具有较低的优先级。另外,虚拟IP地址被定义为192.168.1.100,并且将请求分发到两台服务器上的端口80。且虚拟ip 也可以通过

  当主服务器(Server A)失去响应时,备份服务器(Server B)会自动接管虚拟IP地址,从而实现故障转移和高可用性。同时,请求会通过负载均衡算法分发到两台服务器上,实现了负载均衡。
  

相关推荐
冰封之寂10 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
xiaoye-duck10 小时前
《Linux系统编程》Linux 系统多线程(五):<线程同步与互斥>线程互斥(上):从条件变量到生产者消费者模型详解
linux·线程
一叶龙洲12 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
酷可达拉斯12 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
寒水馨13 小时前
Linux下载、安装llama.cpp-b10068(附安装包llama-b10068-bin-ubuntu-vulkan-x64.tar.gz)
linux·ubuntu·llm·llama·本地部署·llama.cpp·推理引擎
我星期八休息15 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
ziguo112216 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
三84417 小时前
使用Samba/NFS实现文件共享/自动挂载共享目录/autofs自动挂载服务
linux·服务器·网络
高铭杰17 小时前
万物皆可KV(2)SurrealDB 存储布局分析
linux·服务器
无小道18 小时前
深入解析操作系统文件缓冲区:页缓存、基数树与f_pos的协同设计
linux·缓存·文件缓冲区