部署HAS服务
安装HAS
在当前主流的x86_64指令集以及鲲鹏aarch64指令集的操作系统中,HAS的安装包信息如下:
HAS_VastbaseG100_${指令集名称}_${版本}_${datetime}.zip
使用root用户直接将安装包解压到HAS的安装目录:(此处假设安装包放在/home/vastbase/has路径下)
mkdir -p /home/vastbase/has
cd /home/vastbase/has
unzip HAS_VastbaseG100_${指令集名称}_${版本}_${datetime}.zip
安装包在Linux解压后已经具有可执行权限。
如果已经在其他平台解压了安装包,需要使用命令
chmod +x 可执行文件名
赋予用户(数据库用户)可执行权限,下同。
配置HAS
HAS配置文件默认放在/home/vastbase/has/etc目录中,默认名称为vastbase.yml。
HAS配置文件路径和文件名称应与vastbase-has文件中CONFIG_FILE 所指定的内容保持一致。
vastbase-has文件在后续配置中会使用到。
在数据库主、备节点上使用数据库用户vastbase编辑HAS的yml配置文件,写入仲裁存储、共享存储、Vastbase的相关信息。2个数据库节点的HAS配置文件略有不同,需要注意修改。
更多HAS配置文件模板和关键参数参考vastbase.yml。
配置VIP
步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查has_callback.sh脚本是否具备可执行权限,若缺少权限,则用如下语句进行赋权:
chmod +x has_callback.sh
步骤2 脚本中执行的命令需要管理员权限,因此需要添加vastbase用户为sudoer。使用root用户执行visudo命令,并添加内容:
visudo
vastbase ALL=(ALL) NOPASSWD: ALL #将该行内容加至文件末尾
为确保内容生效,请将上述内容添加至配置文件的最末行。
语句中的vastbase为数据库用户,可替换成实际的用户名。
确认/usr/bin/sudo命令具有执行权限,如果不具备执行权限,执行
chmod u+s /usr/bin/sudo
赋予执行权限。确认/usr/sbin/ip和/usr/sbin/arping命令具有执行权限,如果不具备执行权限,执行
chmod +x
赋予执行权限。
步骤3 使用vastbase用户编辑has_callback.sh脚本,在数据库主、备节点使用相同配置。修改部分如图所示,需对应VIP节点的网卡信息:
该脚本文件由HAS在节点角色切换时调用,用于绑定与释放VIP。脚本内容参考has_callback.sh。
VIP地址等信息以及ip与arping命令实际路径请根据实际情况填写。
配置脚本
配置check_peer_mount_info.sh脚本
步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查check_peer_mount_info.sh文件是否具备可执行权限,无权限则使用如下语句授权:
chmod +x check_peer_mount_info.sh
文件调用于failover发生前:检查仲裁盘中的挂载信息失败后,会调用此脚本返回对端挂载信息。脚本参考
步骤2 参考下图修改配置文件,该文件调用于failover发生前:检查仲裁盘中的挂载信息失败后,会调用此脚本返回对端挂载信息。脚本参考check_peer_mount_info.sh。
check_peer_mount_info.sh修改部分:
配置项描述如下:
CONNECT_TIMEOUT=10:ssh连接超时时间,默认为10s。CONNECT_TIMEOUT秒内ssh没有返回则视为连接超时。
PEER_USER:ssh连接的对端用户(数据库安装用户)。
PEER_IP:ssh连接的对端的IP。
PEER_MOUNT_POINT:对端的共享设备挂载目录。
PEER_VASTBASE_DIR:对端的数据库集簇所在目录。
SSH_RESULT_FILE:本脚本临时记录命令的日志信息,用于检查命令执行的结果是否符合预期。
配置mount.sh脚本
步骤1 使用数据库用户vastbase进行操作。在/home/vastbase/has/bin目录下检查mount.sh文件是否具备可执行权限,无权限则使用如下语句授权:
chmod +x mount.sh
步骤2 参考下图修改配置文件,该文件用于在主节点启动数据库时挂载数据存储设备。脚本参考mount.sh。
mount.sh修改部分:
配置umount.sh脚本
步骤1 使用数据库用户进行操作。在/home/vastbase/has/bin目录下检查umount.sh是否具备可执行权限,无权限则使用如下语句授权:
chmod +x umount.sh
步骤2 参考下图修改配置文件,该文件由HAS在节点角色切换时调用,用于在停止HAS服务或切换为备节点时取消挂载。脚本参考umount.sh。
umount.sh修改部分:
配置check_arbitrator.sh脚本
步骤1 使用数据库用户进行操作。在/home/vastbase/has/bin目录下检查check_arbitrator.sh是否具备可执行权限,无权限则使用如下语句授权:
chmod +x check_arbitrator.sh
步骤2 参考下图修改配置文件,该文件用于在HAS服务启动前检查仲裁设备读写权限。如当前用户没有相应权限则进行添加。脚本参考check_arbitrator.sh。
check_arbitrator.sh修改部分:
配置check_switchover.sh脚本
步骤1 使用数据库用户进行操作,在/home/vastbase/has/bin目录下检查check_switchover.sh是否具备可执行权限,无权限则使用如下语句授权:
chmod +x check_switchover.sh
步骤2 参考下图修改配置文件,该文件由HAS在switchover前进行调用,用于检查是否有其他进程正在使用挂载点,如果有,则switchover失败;否则继续进行switchover。脚本参考check_switchover.sh。
check_switchover.sh修改部分:
配置HAS服务
使用root用户将HAS加入系统服务,便于管理。
1、配置服务。
参考下图修改配置文件/usr/lib/systemd/system/has.service,参考has.service。
2、配置服务启动时的环境变量。
参考下图修改配置文件/etc/sysconfig/vastbase-has,参考配置文件vastbase-has。
- vastbase-has中的VIP地址等信息需要与has_callback.sh中保持一致。
- “CONFIG_FILE”即配置文件vastbase.yml的路径。
以服务方式启动HAS后,数据库进程也属于该服务,若使用
kill -9
杀死HAS进程,数据库进程也会被杀死。3、加载HAS服务。
systemctl daemon-reload
4、HAS操作命令。
启动HAS服务前,需要进行检查操作,参见:启动前检查。
启动HAS服务:
systemctl start has
查看启动状态:
systemctl status has
停止HAS服服务命令:
systemctl stop has
HAS启动完毕,查看集群状态:
/home/vastbase/has/bin/sd_hasctl -c <yml配置文件> list
经验证,集群功能正常。
至此,HAS V1.4 for Vastbase G100高可用集群部署完成。