首页 > 其他分享 >LVS负载均衡+高可用集群解决方案 ipvsadm+heartbeat+ldirectord

LVS负载均衡+高可用集群解决方案 ipvsadm+heartbeat+ldirectord

时间:2022-10-17 20:01:32浏览次数:61  
标签:ldirectord 12 20 LVS 17 ipvsadm 调度机 heartbeat 2011

前言

  • LVS的介绍可以查看本公众号的文章:

LVS 搭建集群的一些介绍(方案,优化)

  • 首先按照本公众号中的前两篇日志:

LVS VS-TUN ipvsadm+heartbeat-ldirectord搭建linux集群  
LVS VS-DR ipvsadm+heartbeat-ldirectord搭建linux集群

  • 配置好无高可用的LVS集群。

整体方案需要的工具

  • heartbeat:用于搭建双机热备环境,可以通过专门的心跳线来连接双机,也可以通过普通的网线来连接。(需安装)
  • ipvsadm:负载均衡软件(前期已安装)
  • heartbeat-ldirector:heartbeat的组件,有两个主要功能,一是调用ipvsadm命令生成lvs的策略,二是对realserver进行健康检测(前期已安装)

测试环境

  • 主调度机IP:eth0:192.168.11.10
  • 备调度机IP:eth0:192.168.11.11
  • 调度机VIP:eth0:0:192.168.11.20
  • 真实机1IP:eth0:192.168.11.12
  • 真实机2IP:eth0:192.168.11.13

安装与配置(主调度机)

1
yum install heartbeat //安装heartbeat
2
把ha.cf,haresources,authkeys,ldirectord.cf 都复制到/etc/ha.d/
cp -rf /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d //高可用主备配置文件
cp -rf /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d //认证配置文件
cp -rf /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d //资源配置文件
cp -rf /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d //ldirector配置文件(前期已配置好ldirector.不用再次复制此文件.)
3
修改host
用uname -n 查看主,被调度机的主机名,并且增加到host文件中.
vi /etc/hosts
lvs1 192.168.11.10
lvs2 192.168.11.11
4
修改/etc/ha.d/ha.cf,完整内容如下:
logfile /var/log/ha-log //记录日志
logfacility local0
keepalive 2 //主备调度机心跳检查的间隔 秒
deadtime 6 //多久没有检测到心跳时宣布死亡,进行切换
warntime 4 //警告时间,记录日志,不切换
initdead 120 //heartbeat第一次启动时启动其所控资源的时间。在一些配置中,节点重启后需要花一些时间启动网络。这个时间与"deadtime"不同,要单独对待。 至少是标准死亡时间的两倍。
udpport 694 //心跳检查的默认端口
ucast eth0 192.168.11.11 //采用网卡eth0的udp单播来通知心跳,ip应为另外一台调度机的IP
auto_failback on //主节点重启成功后,on即为再重新切换为使用主节点工作。off则是等到副节点down调后拿回资源。
#watchdog /dev/watchdog //启动内核看门狗功能,能让系统在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳。如果使用该特性,则在内核中装入softdog内核模块,用来生成实际的设备文件,输入insmod softdog加载模块。
node svn.ivg.com 主节点名称 uname -n查看
node sylar-db 备节点名称 uname -n查看
5
修改/etc/ha.d/authkeys 认证文件:
auth 3
3 md5 Hello!
保留这两行即可。
1,2,3表示认证算法选择,这里选择了md5算法
Authkeys的权限必须是0600。
chmod 0600 /etc/ha.d/authkeys
6
资源文件/etc/ha.d/haresources 说明:
该文件的格式为:
主调度机名称 脚本1 脚本x ... VIP 脚本2 脚本y ...
该文件作用:当启动heartbeat时,heartbeat会根据这个文件执行操作:先执行脚本1,然后执行脚本x,再创建虚拟接口eth0:0并配置VIP,再执行脚本2,最后执行脚本y。而停止的时候则安装相反顺序执行。说明:这些脚本必须放在/etc/init.d/或/etc/ha.d/resource.d下,且不能开机启动,必须支持 “脚本名 start ” 这样的启动方式和“脚本名 stop ”这样的停止方式。
7
修改资源文件/etc/ha.d/haresources
lvs1 192.168.11.20 ldirectord
解释:先创建虚拟接口eth0:0配置VIP,再启动ldirectord(调用ipvsadm命令生成已经在ldirectord.cf中配置好的lvs的策略,对realserver进行健康检测)。
8
ldirectord配置文件 /etc/ha.d/ldirectord.cf
前期已经配置好,不做修改。

安装与配置(备调度机)

1
备调度机原来未做过任何配置需要重新安装:
yum install ipvsadm
yum install heartbeat
yum install heartbeat-ldirectord
2
默认启动不了ldirectord,需要修改/etc/rc.d/init.d/ldirectord 注释掉该行: . /etc/ha.d/shellfuncs
3
修改网络参数:
echo "1" >/proc/sys/net/ipv4/ip_forward //DR模式需要开启转发,tun模式可关闭,改为0
echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
4
从主调度机上复制需要的4个配置文件到备调度机相应目录
cd /etc/ha.d/
scp ha.cf authkeys haresources ldirectord.cf 192.168.1.11:/etc/ha.d/
5
修改一项配置/etc/ha.d/ha.cf
找到该行 ucast eth0 192.168.11.11 修改为主节点的IP ucast eth0 192.168.11.10
其它文件均不需要修改。

启动

  • ldirectord会调用ipvsadm命令生成lvs的策略启动ipvsadm,而heartbeat会调用资源文件加载eth0:0 VIP和启动ldirectord。所以只需要启动主调度机的heartbeat和备调度机的heartbeat即可。
  • 分别再主备两台调度机上运行service heartbeat start 即可启动heartbeat。(正常情况为主调度机能用ifconfig看到虚拟接口eth0:0,用ipvsadm能查看到IP负载列表,而备调度机均看不到这些。如果出现主备调度机均能看到这些信息,可以重启下主调度机的heartbeat)
  • 可查看日志:tail -100f /var/log/ha-log
  • 在出现“Local status now set to: 'up'”时候需要等待一段时间检测另一台调度机状况。如果未启动另一台调度机则需要等待最长initdead设置的时间。之后才能正常启动完成。
  • ==(正常情况为主调度机能用ifconfig看到虚拟接口eth0:0,用ipvsadm能查看到IP负载列表,而备调度机均看不到这些。如果出现主备调度机均能看到这些信息,可以重启下主调度机的heartbeat)==
正常启动信息如下(只启动主,备未启动):
heartbeat[19417]: 2011/12/20_17:04:30 info: Version 2 support: false
heartbeat[19417]: 2011/12/20_17:04:30 WARN: Logging daemon is disabled --enabling logging daemon is recommended
heartbeat[19417]: 2011/12/20_17:04:30 info: **************************
heartbeat[19417]: 2011/12/20_17:04:30 info: Configuration validated. Starting heartbeat 2.1.3
heartbeat[19418]: 2011/12/20_17:04:30 info: heartbeat: version 2.1.3
heartbeat[19418]: 2011/12/20_17:04:30 info: Heartbeat generation: 1324289702
heartbeat[19418]: 2011/12/20_17:04:30 info: glib: ucast: write socket priority set to IPTOS_LOWDELAY on eth0
heartbeat[19418]: 2011/12/20_17:04:30 info: glib: ucast: bound send socket to device: eth0
heartbeat[19418]: 2011/12/20_17:04:30 info: glib: ucast: bound receive socket to device: eth0
heartbeat[19418]: 2011/12/20_17:04:30 info: glib: ucast: started on port 694 interface eth0 to 192.168.11.11
heartbeat[19418]: 2011/12/20_17:04:30 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[19418]: 2011/12/20_17:04:30 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[19418]: 2011/12/20_17:04:30 info: G_main_add_SignalHandler: Added signal handler for signal 17
heartbeat[19418]: 2011/12/20_17:04:30 info: Local status now set to: 'up' //启动到该位置等待了2分钟,未检测到备机,继续。
heartbeat[19418]: 2011/12/20_17:06:31 WARN: node LVS2: is dead
heartbeat[19418]: 2011/12/20_17:06:31 info: Comm_now_up(): updating status to active
heartbeat[19418]: 2011/12/20_17:06:31 info: Local status now set to: 'active'
heartbeat[19418]: 2011/12/20_17:06:31 WARN: No STONITH device configured.
heartbeat[19418]: 2011/12/20_17:06:31 WARN: Shared disks are not protected.
heartbeat[19418]: 2011/12/20_17:06:31 info: Resources being acquired from sylar-db.
harc[20118]: 2011/12/20_17:06:31 info: Running /etc/ha.d/rc.d/status status
mach_down[20148]: 2011/12/20_17:06:31 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down[20148]: 2011/12/20_17:06:31 info: mach_down takeover complete for node sylar-db.
heartbeat[19418]: 2011/12/20_17:06:31 info: mach_down takeover complete.
heartbeat[19418]: 2011/12/20_17:06:31 info: Initial resource acquisition complete (mach_down)
IPaddr[20204]: 2011/12/20_17:06:31 INFO: Resource is stopped
heartbeat[20119]: 2011/12/20_17:06:31 info: Local Resource acquisition completed.
harc[20243]: 2011/12/20_17:06:31 info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp
ip-request-resp[20243]: 2011/12/20_17:06:31 received ip-request-resp 192.168.11.20 OK yes
ResourceManager[20264]: 2011/12/20_17:06:31 info: Acquiring resource group: svn.ivg.com 192.168.11.20 ldirectord
IPaddr[20291]: 2011/12/20_17:06:31 INFO: Resource is stopped
ResourceManager[20264]: 2011/12/20_17:06:31 info: Running /etc/ha.d/resource.d/IPaddr 192.168.11.20 start
IPaddr[20367]: 2011/12/20_17:06:31 INFO: Using calculated nic for 192.168.11.20: eth0
IPaddr[20367]: 2011/12/20_17:06:31 INFO: Using calculated netmask for 192.168.11.20: 255.255.255.0
IPaddr[20367]: 2011/12/20_17:06:31 INFO: eval(none)
heartbeat[19418]: 2011/12/20_17:06:41 info: local resource transition completed.

真实机配置

与前期配置好的LVS集群真实机配置一样,不需要修改。

测试

  • 主备启动完成后
  • 使用VIP加端口进行访问:正常。
  • 查看主调度机ipvsadm,看到请求。
  • 停止主调度机heartbeat再次访问:正常。
  • 查看备调度机ipvsadm,看到请求。
  • 启动主调度机heartbeat再次访问:正常。
  • 查看主调度机ipvsadm,看到请求。
  • 检查备调度机ipvsadm无IP规则,虚拟接口eth0:0关闭。正常。


LVS负载均衡+高可用集群解决方案 ipvsadm+heartbeat+ldirectord_重启


标签:ldirectord,12,20,LVS,17,ipvsadm,调度机,heartbeat,2011
From: https://blog.51cto.com/starsliao/5764171

相关文章

  • LVS+Keepalived+httpd安装及配置
    LVS+Keepalived+httpd安装及配置目录1环境...12安装LVS软件(分别在LVS-Master和LVS-Backup中)...11.1.查看是否有IPVS模块...11.2.安装IPVS管理工具...13安装keepal......
  • 空值、NULL的对比(tdsqlVSPG)
    NULL值的对比PG\mysql中空字符串与null是不同的;而oracle中,空字符串与null等同。NULL和''ORACLE认为''等同于NULL,'a'||null结果是'a'NULL和''不同,'a'||null结......
  • 基于Keepalived实现LVS双主高可用集群
    1、环境准备设备IP地址作用系统版本Keepalived-Lvs192.168.100.118Keepalived-Lvs负载冗余Rocky8.6Keepalived-Lvs192.168.100.123Keepalived-Lvs负载冗余Rocky8.6Nginx192.......
  • 基于Keepalived实现LVS双主高可用集群
     1、环境准备设备IP地址作用系统版本Keepalived-Lvs192.168.100.118Keepalived-Lvs负载冗余Rocky8.6Keepalived-Lvs192.168.100.123Keepalived-L......
  • lvs负载均衡
    目录基本介绍基本工作原理LVS的组成LVS相关术语lvs三种工作模式NAT原理和特点DR原理和特点Tun原理和特点LVS调度算法实践LVS搭建HTTP负载均衡集群实践LVS的NAT模式基本介......
  • LVS负载均衡
    [LVS负载均衡]LVS负载均衡目录Lvs负载均衡[lvs简介][lvs作用][lvs体系结构]lvs的三种工作模式[基于NAT的LVS模式负载均衡][基于TUN模式的负载均衡][基于DR模......
  • Lvs负载均衡
    Lvs负载均衡目录Lvs负载均衡lvs简介lvs作用lvs体系结构lvs的三种工作模式基于NAT的LVS模式负载均衡基于TUN模式的负载均衡基于DR模式的LVS负载均衡LVS管理工具LVS的10种调......
  • LVS负载均衡
    LVS负载均衡目录LVS负载均衡一、LVS是什么二、LVS的作用三、lvs的三种工作模式1.基于NAT的LVS模式负载均衡2.基于TUN模式的LVS负载均衡3.LVS(DR)负载模式四、LVS管理工具......
  • keepalived实现lvs高可用
    keeplaived实现lvs高可用名称ipnode1(lvs,keepalived)192.168.6.152node2(lvs,keepalived)192.168.6.153rs1192.168.6.135rs2192.168.6.154#在......
  • Keepalived lvs
    keepalived选举策略首先,每个节点有一个初始优先级,由配置文件中的priority配置项指定,MASTER节点的priority应比BAKCUP高。运行过程中keepalived根据vrrp_script......