暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

hhdb数据库介绍(8-5)

原创 恒辉信达 2024-11-25
58

部署

手动部署

HA(主备)模式集群部署

主备节点模式集群部署教程所用环境以及部署组件说明如下所示:

部署环境:

项目 名称
服务器属性 物理机
操作系统 CentOS Linux release 7.6.1810 (Core)
存储节点版本 5.7.25
JDK JDK1.7_80

部署组件:

组件名称 安装数量
计算节点 2
Keepalived 2
管理平台 1
配置库 1
存储节点 4

说明
本章主要介绍在HA集群模式下的计算节点server.xml配置、Keepalived安装与配置、启动说明、高可用切换等。计算节点、管理平台、配置库、存储节点的安装步骤本章不再赘述,具体参照上一章单节点模式集群部署。

实例 IP 服务端口 管理端口 HA角色
主计算节点 192.168.200.190 3323 3325 Master
备计算节点 192.168.200.191 3323 3325 Slave

HA计算节点部署示意图
image.png

注意
主备计算节点服务器上再分别安装keepalived程序,选用VIP为:192.168.200.140

计算节点

1.安装主备计算节点
分别在192.168.220.190、192.168.200.191安装计算节点服务,安装过程参照上一章节“计算节点”说明。

2.修改主备计算节点配置文件
部署好的主备计算节点需要修改对应的配置文件server.xml,具体修改如下所示:

主计算节点192.168.200.190上server.xml配置修改

<property name="haState">master</property><!--HA 角色,主节点:master,备节点:backup--> <property name="haNodeHost"></property><!--HA 角色,其他节点 IP:PORT--> <property name="VIP">192.168.200.140</property><!--虚拟IP地址-->
备计算节点192.168.200.191上server.xml配置修改 <property name="haState">backup</property><!--HA 角色,主节点:master,备节点:backup--> <property name="haNodeHost">192.168.200.190:3325</property><!--HA 角色,其他节点 IP:PORT--> <property name="VIP">192.168.200.140</property><!--虚拟IP地址-->

说明
配置文件中的haNodeHost为主计算节点的IP+管理端口,只需在备计算节点上配置该参数即可。
启动主备服务时,如果haState的角色为master则会开启服务端口(3323)、管理端口(3325);如果是 Backup 角色,则只会开启管理端口(3325)。 当 master服务故障后,keepalived 检测到服务不可用,会自动切换 vip 到 slave 所在的服务器,并启用 slave 的服务端口(3323),保证服务不中断。

Keepalived

1.安装keepalived
可用yum方式安装keepalived,也可在keepalived官网下载安装tar包。

# yum方式安装keepalived(主备计算节点所在服务器上执行keepalived安装命令) yum -y install keepalived # 启动或关闭keepalived service keepalived start / server keepalived stop # 查看keepalived运行状态 service keepalived status

2.修改keepalived配置文件
Keepalived配置文件默认存放在/etc目录下为keepalived.conf,将下列实例内容复制替换到对应的keepalived配置文件中,并按照标红位置进行实际修改(标准的计算节点 安装包中对应的conf 目录下也有keepalived主备模式的配置文件,也可将其直接复制到/etc目录下,进行自定义修改)。

主计算节点:192.168.200.190的keepalived配置信息:

! Configuration File for keepalived global_defs { router_id hotdb-ha vrrp_garp_master_refresh 20 vrrp_garp_master_refresh_repeat 2 } vrrp_script check_hotdb_process { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh process" interval 5 fall 2 rise 1 weight -10 } vrrp_script check_hotdb_connect_state { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh connect_master" interval 5 fall 3 rise 1 timeout 5 weight -10 } vrrp_script check_hotdb_connect_server_state { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh connect_server" interval 5 fall 10 rise 1 timeout 5 weight -10 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 143 nopreempt priority 100 advert_int 5 authentication { auth_type PASS auth_pass 1111 } #unicast_src_ip 192.168.200.150 #unicast_peer { # 192.168.200.151 #} track_script { check_hotdb_process check_hotdb_connect_state check_hotdb_connect_server_state } #be careful in red hat track_interface { eth0 } virtual_ipaddress { 192.168.240.101/24 dev eth0 label eth0:1 } virtual_ipaddress_excluded { } notify_master "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh master_notify_master" notify_backup "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh master_notify_backup" notify_fault "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh master_notify_backup" }

备计算节点:192.168.200.191的keepalived配置信息:

! Configuration File for keepalived global_defs { router_id hotdb-ha vrrp_garp_master_refresh 20 vrrp_garp_master_refresh_repeat 2 } vrrp_script check_hotdb_process { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh process" interval 5 fall 2 rise 1 weight -10 } vrrp_script check_hotdb_connect_state { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh connect_backup" interval 5 fall 3 rise 1 timeout 5 weight -10 } vrrp_script check_hotdb_connect_server_state { script "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh connect_server" interval 5 fall 10 rise 1 timeout 5 weight -10 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 143 priority 95 advert_int 5 authentication { auth_type PASS auth_pass 1111 } #unicast_src_ip 192.168.200.151 #unicast_peer { # 192.168.200.150 #} track_script { check_hotdb_process check_hotdb_connect_state #check_hotdb_connect_server_state } #be careful in red hat track_interface { eth0 } virtual_ipaddress { 192.168.240.101/24 dev eth0 label eth0:1 } virtual_ipaddress_excluded { } notify_master "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh backup_notify_master" notify_backup "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh backup_notify_backup" notify_fault "/bin/bash /usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh backup_notify_backup" }

注意
主备 keepalived 的相关配置也可参考计算节点安装目录 conf 目录下的keepalived.conf.master,
keepalived.conf.backup 脚本,红色区域需要根据实际信息修改其他使用默认即可。

关于自定义修改内容说明:

  • script 脚本路径为计算节点实际安装路径,调用的 master/backup 脚本根据实际的主备角色进行配置

  • interface:绑定的网卡

  • nopreempt:设置是否开启抢占模式。添加此参数,将不开启抢占模式;否则开启抢占模式。例如主的参数值是 priority 100,备的参数值是 priority 95, 该参数只需要在主 keepalived 配置脚本设置

  • priority:优先级,优先级高的为master

  • virtual_ipaddress:instance绑定的vip(vip 需与计算节点所在的ip 同网段)

  • Label:给本地网卡起一个虚拟名称,用于绑定虚拟网卡IP,例如把虚拟网卡eth0:1 绑定到本地网卡eth0上

  • Script:判断服务是否正常的脚本路径,通常存放在计算节点的bin目录下, 例如:/usr/local/hhdb/hhdb-server/bin/check_hotdb_process.sh,该脚本可检查计算节点主备服务的进程是否存在,主备计算节点的3323端口和3325端口的状态是否正常

3.启动说明
由于两台机器上的计算节点互为主备关系,在服务启动的时,需要注意启动的顺序问题,如下为标准启动顺序:

先启动主(192.168.200.190)的keepalived,待ping通vip后再启动主计算节点服务

# 启动主keepalived服务 service keepalived start # Ping通vip后再启动主计算节点服务 sh /usr/local/hhdb/hhdb-server/bin/hotdb_server start

image.png
主计算节点服务启动完等待20秒后再启动备(192.168.200.191)的keepalived,keepalived启动完成后等待10秒再启动备计算节点服务

# 启动备keepalived服务 service keepalived start # 启动备计算节点服务 sh /usr/local/hhdb/hhdb-server/bin/hotdb_server start

高可用切换说明

当主机192.168.200.190服务上的计算节点服务故障时,检测脚本(vrrp_scripts)检测到计算节点主服务端口不可访问或 hacheck 连续失败超过 3 次时,主keepalived优先级会进行自动调整,变成 90(weight -10),备机 192.168.200.191服务上的 keepalived 收到比自己优先级低的 vrrp 包(192.168.200.191 上优先级为 95)后,将切换到 master 状态,抢占 vip(192.168.200.140),同时在进入 master 状态后,执行 notify_master 脚本,访问备服务 3325 端口执行online 命令启动并初始化备计算节点服务端口,若 192.168.200.191 的计算节点启动成功,则主备切换成功后继续提供服务。如下图:
image.png
Keepalived 的 VIP 此时已在 192.168.200.191 服务器上
image.png

高可用重建说明

具体可参考管理平台中的高可用重建章节,通过该功能可实现:当192.168.200.190服务器上计算节点发生故障切换后,手动触发计算节点高可用重建功能,即可修复 192.168.200.190 服务器上计算节点服务及主备关系,当 192.168.200.191 服务器上计算节点再发生故障时,可自动进行回切到 192.168.200.190上。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论