hhdb数据库介绍(8-5)

部署

手动部署

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计算节点部署示意图

注意
主备计算节点服务器上再分别安装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


主计算节点服务启动完等待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 的计算节点启动成功,则主备切换成功后继续提供服务。如下图:

Keepalived 的 VIP 此时已在 192.168.200.191 服务器上

高可用重建说明

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

posted @   恒辉信达  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示