美文网首页
vastbase资源池化技术

vastbase资源池化技术

作者: 苏水的北 | 来源:发表于2023-11-01 15:35 被阅读0次

本文档主要介绍资源池化架构下的一些最佳实践和使用注意事项,用于支撑对相关特性感兴趣的开发者可以快速部署、实践或进行定制化开发。 本文档建议开发者至少具有一定的基础,能够熟练编译openGauss源码、掌握一些存储的基本知识和linux系统的基本命令。

资源池化架构可以参考下图。


image.png

1.读写节点和只读节点共享一份底层存储。
2.读写节点和只读节点之间通过TCP或RDMA协议使用DMS组件共享Shared Buffer Pool中的热数据页。
3.读写节点和只读节点通过DSS API和DSS Server的协同访问底层共享存储中的持久化的数据。

说明:

  • 存储自身的配置、LUN的划分以及存储节点与物理机的连通配置不在安装指导范围中,此处假定物理机已经可以看到用于安装数据库的LUN。
  • 一套集群需要(3+N)个LUN,说明如下:
    1. cm_vote, cm投票盘,1套集群1个
    2. cm_shared, cm数据盘,1套集群1个
    3. dss_shared, 数据库数据盘,1套集群1个
    4. dss_private_N, 数据库xlog盘,1套集群中根据节点数量每个节点1个,比如1主1备,就是2个:dss_private_0和dss_private_1,1主2备就是3个:dss_private_0、dss_private_1和dss_private_2,以此类推。

开始环境搭建:

1.设置DSS需要用的卷(一主两备)

image.png

1.1 创建LUN组和LUN,并映射

image.png
image.png

1.2 创建完成后检查卷组架构图,正确架构如下:

image.png

1.3 在3台服务器上查看多路径盘符:

node1
node2
node3

1.4 3个节点多路径盘符需一致,集群XML文件配置只能配相同名称:

注意:如果三节点盘符一致,直接在XML文件配置即可,如果不一致需要创建软连接,操作如下:
说明:可以看到三个节点,对于3T这个数据盘分别是hk,hi,hh,因为不能在集群xml配置文件中对数据盘统一使用,所以处理方法如下。
创建软连接:
node1:

ln -svf  /dev/ultrapathk   /dev/ss_data_1
ln -svf  /dev/ultrapathl   /dev/ss_xlog0_1
ln -svf  /dev/ultrapathm   /dev/ss_xlog1_1
ln -svf  /dev/ultrapathn   /dev/ss_xlog2_1
ln -svf  /dev/ultrapathq   /dev/vs_cm_vote_1
ln -svf  /dev/ultrapathr   /dev/vs_cm_share_1

node2:

ln -svf  /dev/ultrapathi   /dev/ss_data_1
ln -svf  /dev/ultrapathh   /dev/ss_xlog0_1
ln -svf  /dev/ultrapathj   /dev/ss_xlog1_1
ln -svf  /dev/ultrapathl   /dev/ss_xlog2_1
ln -svf  /dev/ultrapathn   /dev/vs_cm_vote_1
ln -svf  /dev/ultrapatho   /dev/vs_cm_share_1

node3:

ln -svf  /dev/ultrapathh   /dev/ss_data_1
ln -svf  /dev/ultrapathi   /dev/ss_xlog0_1
ln -svf  /dev/ultrapathj   /dev/ss_xlog1_1
ln -svf  /dev/ultrapathk   /dev/ss_xlog2_1
ln -svf  /dev/ultrapathn   /dev/vs_cm_vote_1
ln -svf  /dev/ultrapatho   /dev/vs_cm_share_1

2.基础环境准备

2.1集群XML文件配置格式如下(只需在主节点上配置此文件):

[root@node1 software]# cat cluster_config1025.xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- 整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="Cluster_template" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="node1,node2,node3" />
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/opt/vastbase1/install/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/var/log/vastbase1" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/opt/vastbase1/tmp" />
<!--数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/opt/vastbase1/install/om" />
<!--数据库core文件目录-->
<PARAM name="corePath" value="/opt/vastbase1/corefile"/>
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="10.80.113.201,10.80.113.202,10.80.113.203"/>
<!-- 资源池化模式开关 -->
<PARAM name="enable_dss" value="on"/>
<!-- dss实例目录 -->
<PARAM name="dss_home" value="/opt/vastbase1/install/data/dss"/>
<!-- dss共享卷名 -->
<PARAM name="ss_dss_vg_name" value="data"/>
<!-- dss挂载卷组名和卷组信息,包含共享卷 -->
<PARAM name="dss_vg_info" value="data:/dev/ss_data_1,p0:/dev/ss_xlog0_1,p1:/dev/ss_xlog1_1,p2:/dev/ss_xlog2_1"/>
<!-- cm投票卷 -->
<PARAM name="votingDiskPath" value="/dev/vs_cm_vote_1"/>
<!-- cm共享卷 -->
<PARAM name="shareDiskDir" value="/dev/vs_cm_share_1"/>
<!-- dss开启ssl认证开关 -->
<PARAM name="dss_ssl_enable" value="on"/>
<!-- mes通信协议类型  -->
<PARAM name="ss_interconnect_type" value="TCP"/>
<!-- rdma绑定cpu序列  -->
<PARAM name="ss_rdma_work_config" value="1 7"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
    <!-- node1上的节点部署信息 -->
    <DEVICE sn="node1">
        <PARAM name="name" value="node1"/>
        <!-- node1所在的AZ及AZ优先级 -->
        <PARAM name="azName" value="AZ1"/>
        <PARAM name="azPriority" value="1"/>
        <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
        <PARAM name="backIp1" value="10.80.113.201"/>
        <PARAM name="sshIp1" value="10.80.113.201"/>
        <!--CM节点部署信息-->
        <PARAM name="cmsNum" value="1"/>
        <PARAM name="cmServerPortBase" value="25000"/>
        <PARAM name="cmServerListenIp1" value="10.80.113.201,10.80.113.202,10.80.113.203"/>
        <PARAM name="cmServerHaIp1" value="10.80.113.201,10.80.113.202,10.80.113.203"/>
        <PARAM name="cmServerlevel" value="1"/>
        <PARAM name="cmServerRelation" value="node1,node2,node3"/>
        <PARAM name="cmDir" value="/opt/vastbase1/data/cmserver"/>
        <!--dn-->
        <PARAM name="dataNum" value="1"/>
                    <PARAM name="dataPortBase" value="25400"/>
                    <PARAM name="dataNode1" value="/opt/vastbase1/install/data/dn,node2,/opt/vastbase1/install/data/dn,node3,/opt/vastbase1/install/data/dn"/>
        <PARAM name="dataNode1_syncNum" value="1"/>
    </DEVICE>

    <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
    <DEVICE sn="node2">
        <PARAM name="name" value="node2"/>
        <PARAM name="azName" value="AZ1"/>
        <PARAM name="azPriority" value="1"/>
        <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
        <PARAM name="backIp1" value="10.80.113.202"/>
        <PARAM name="sshIp1" value="10.80.113.202"/>
        <!-- cm -->
        <PARAM name="cmServerPortStandby" value="25000"/>
        <PARAM name="cmDir" value="/opt/vastbase1/data/cmserver"/>
    </DEVICE>

    <!-- node3上的节点部署信息,其中“name”的值配置为主机名称 -->
    <DEVICE sn="node3">
        <PARAM name="name" value="node3"/>
        <PARAM name="azName" value="AZ1"/>
        <PARAM name="azPriority" value="1"/>
        <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
        <PARAM name="backIp1" value="10.80.113.203"/>
        <PARAM name="sshIp1" value="10.80.113.203"/>
        <!-- cm -->
        <PARAM name="cmServerPortStandby" value="25000"/>
        <PARAM name="cmDir" value="/opt/vastbase1/data/cmserver"/>
    </DEVICE>
</DEVICELIST>
</ROOT>

2.2 yum安装依赖包(3个节点都做):

yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch  readline-devel  expect bzip2 gcc

2.3 关闭防火墙服务(3个节点都做):

systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
systemctl status firewalld.service

2.4 关闭SELINUX配置

getenforce 
setenforce 0 
vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
reboot

2.5 时间同步配置

方法一: 将数据库各节点的时区设置为相同时区
1、以root用户登录操作系统。
2、将/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件,从而设置时区和时间。

cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

方法二: 手工设定时间
1、以root用户登录操作系统。
2、执行date -s命令设置时区和时间。

date -s "2023-10-25 14:15:00"
将系统时间写入硬件时间
hwclock –w

2.6 IPC参数设置

2.6.1 进入/etc/systemd/logind.conf文件,查看是否已经设置了RemoveIPC=no,如果没有则执行步骤3,否则跳过。

vi /etc/systemd/logind.conf
在配置文件末尾新增配置项RemoveIPC=no

2.6.2 进入/usr/lib/systemd/system/systemd-logind.service文件,添加RemoveIPC=no

vi /usr/lib/systemd/system/systemd-logind.service
修改或添加配置项RemoveIPC=no

2.6.3 重新加载配置参数

systemctl daemon-reload
systemctl restart systemd-logind

2.6.4 检查修改是否生效

loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC

2.7 配置hostname

注意:修改3个节点hostname与XML配置文件的nodeNames保持一致。

1.查看当前hostname
hostname
2.分别修改3个节点hostname与XML配置文件保持一致
vi /etc/hostname
3.重启服务器
reboot
4.修改完成后执行hostname查看当前节点名称

2.8 创建数据库安装用户和组

groupadd  dbgrp
useradd vastbase -g dbgrp
image.png

3.安装池化集群

安装流程:

1.准备安装环境:
HAS V3.1 for Vastbase一主两备集群安装至少需要准备三台物理机或虚拟机进行安装部署。准备软硬件环境、进行系统环境配置等操作。
2.上传文件:
根据准备安装集群的CPU和操作系统平台,下载对应的HAS V3.1 for Vastbase安装包,将安装包上传至任意一个用于部署集群的节点上。
3.解压安装包:
以root用户执行tar命令解压HAS V3.1 for Vastbase安装包。
4.配置XML文件:
安装前需要先创建cluster_config.xml文件。可以参考后文给出的样例自行创建,或使用解压后的安装包中提供的xml模板进行修改。 此xml文件包含部署Vastbase集群的服务器信息、安装路径、IP地址以及端口号等配置信息。用户需要根据实际场景配置对应的XML文件。
5.执行预安装脚本:
以root用户执行gs_preinstall预安装脚本,为下一步安装准备好需要的环境和用户。
6.执行安装脚本:
切换到预安装时创建的集群安装用户,使用gs_install脚本安装数据库集群。
7.配置许可文件:
可选步骤。完成安装流程后,Vastbase集群将使用安装包中提供的临时许可文件,有效期为3个月。如需使用正式的有效许可文件,可执行此步骤。

3.1 解压安装包

1.mkdir /opt/software
tar -zxvf Vastbase-G100_2.2_Build14(xxxxx)-HAS-3.1(xxxx)-xxx-xx-xx.tar.gz -C /opt/software
解压后得到的主要文件包括:Vastbase G100数据库安装包、OM工具安装包、HAS安装包
2.继续使用root用户解压OM安装包,会在当前目录下生成script子目录。
tar -zxvf Vastbase-G100-2.2_Buildxxx-xxx-om.tar.gz

3.2 配置XML文件

在2.1节已经配置完成。

3.3 执行预安装脚本

执行预安装脚本gs_preinstall可以协助自动完成如下的安装环境准备工作:
1、自动设置Linux内核参数以达到提高服务器负载能力的目的。这些参数直接影响数据库系统的运行状态,请仅在确认必要时调整。
2、自动将XML配置文件、安装包拷贝到其他主机的相同目录下,安装用户和用户组不存在时,自动创建安装用户以及用户组。
3、读取XML配置文件中的目录信息并创建,将目录权限授予安装用户。

cd software/script/
./gs_preinstall -U vastbase1 -G vastbase1 -X /opt/software/cluster_config1025.xml   --sep-env-file=/home/vastbase1/.Vastbase

注意:参数--sep-env-file不能忽略,必须指定。这样在装多套资源池化集群的时候,不会发生争抢资源的故障。


image.png
image.png
image.png

3.4 执行安装脚本

su - vastbase1
sourc .Vastbase
gs_install -X /opt/software/cluster_config1025.xml --dn-guc="max_process_memory=305GB"
image.png
image.png

3.5 集群状态查询:

image.png

4.重建池化集群

4.1 关闭集群

cm_ctl stop

4.2 修改.Vastbase文件环境变量,source生效

image.png

4.3 删除数据文件目录

cd /opt
rm -rf vastbase1/

4.4 开始预安装、安装两步。

5.安装集群错误处理方法:

5.1 [GAUSS-51222] pssh命令无法使用报错:

企业微信截图_1698057151973.png

处理方法:
1.查看当前pssh版本路径:


image.png

2.pssh版本问题导致,查找软件自带的pssh软件路径

[root@node1 software]# cd /opt/software/script/gspylib/pssh/
image.png

3.需改环境变量,把$GPHOME改为/opt/software/


image.png

source /etc/profile

5.2 [GAUSS-51257] 报错:

image.png

处理方法:
1.此报错属于产品bug;
2.重新搭建集群,参考第4章节重建。

6.日志目录

image.png image.png image.png

6.优化网卡:

6.1 mlnx_qos安装方法如下:

注意:安装包需要找华为获取。

1.将软件压缩包上传到操作系统,解压mlnx-tools压缩包:
tar -zxvf mlnx-tools-5.1.3.tar.gz
2.以python3方式安装为例,执行如下命令安装mInx-tools的utils工具:
cd mlnx-tools-5.1.3/ofed_scripts/utils/
python3 setup.py install
3.执行如下命令安装mlnx-tools的scripts工具:
cd ofed_scripts/
cp cma_roce_tos /usr/local/bin/ -v
cp ibdev2netdev /usr/local/bin/ -v
chmod a+x /usr/local/bin/cma_roce_tos
chmod a+x /usr/local/bin/ibdev2netdev
ef9909f596294cfb3aed65ac199b5db.png

6.2 设置网卡属性:

6.2.1 查看命令
mlnx_qos -i   网卡名
6.2.2 设置命令
mlnx_qos -i 网卡名  --pfc 0,0,0,1,0,0,0,0  --trust dscp
6.2.3 设置成功查看
image.png

相关文章

网友评论

      本文标题:vastbase资源池化技术

      本文链接:https://www.haomeiwen.com/subject/xsadidtx.html