首页 > 其他分享 >openGauss资源池化开发者入门指南(一)

openGauss资源池化开发者入门指南(一)

时间:2024-03-20 14:33:05浏览次数:24  
标签:om dss sh 池化 开发者 install path openGauss

openGauss资源池化开发者入门指南(一)
一、内容简介
openGauss 资源池化是 openGauss 推出的一种新型的集群架构.通过 DMS 和 DSS 组件,实现集群中多个节点的底层存储数据共享和节点间的内存实时共享

达到节省底层存储资源以及集群内部支持一写多读且可以实时一致性读的目的.

本系列的主旨在于帮助对资源池化开发感兴趣的开发者快速入门

以及提供一些对开发有帮助的经验总结

二、预备知识
开发者最好具备以下基础:

Linux 的基础命令,比如 dd 命令,iscis 等
对磁阵有一定的了解
对传统的 openGauss 编译方式十分熟悉
二、安装指南
资源池化架构参考:
在社区正式发布的版本中, 如果需要搭建资源池化架构, 硬件上需要准备磁阵, 服务器和光交换机.
在社区正式发布的版本中, CM 和 OM 是必选的组件
因为使用 OM 的安装过程和传统的基本一致, 即先执行 gs_preinstall 然后执行 gs_install, 通过 xml 中的配置项控制是否开启 dss 和 dms. 所以在资料中只是对 xml 内容进行了修改和说明, 对其他内容没有详细的说明, 这里对 xml 的内容中进行一些补充性的说明
选项 说明
enable_dss 共享存储模式开关,取值范围 on/off,默认为 off,共享存储不支持 dcf 模式. 开启后, 表示数据文件/xlog 文件/双写/pg_clog/pg_csnlog/pg_multixact 会写入到底层的共享存储中
dss_home dss 实例目录,enable_dss 为 on 时必选。dsssever 启动时需要的存放 dss 配置项以及 dssserver 的运行日志等相关必须文件的目录, 在 OS 的文件系统中, 每个节点都会有一份
ss_dss_vg_name dss 共享卷名,enable_dss 为 on 时必选. 这是个逻辑名称, 即 dssserver 使用的卷名, 可以命名为 data, data1, data2, mydata 均可, 配置后 dss 访问文件的路径即为 +data/base, +data/pg_xlog0 这种
dss_vg_info dss 挂载卷组信息,包含一个共享卷组,其余为日志卷组,日志卷组的数量和 dn 的数量保持一致,集中式每个节点最多有一个 dn。卷组形如“data:/dev/sdb”,卷组和卷组之间以“,”隔开,enable_dss 为 on 时必选。日志卷组磁盘大小需要大于 dn 参数 max_size_for_xlog_prune 的值. 这里说明一下这个格式"data:/dev/sdb" , data 表示数据的卷名, 和上一个 ss_dss_vg_name 的配置一致, /dev/sdb 表示 OS 中可识别的设备名称, 即对应磁阵映射到 OS 中的 LUN 显示的设备名称, 实际使用中也可以用自己做的软链接, 链接到实际的设备名称上, 方便识别, 比如 "data:/dev/forcitest", /dev/forcitest 实际是一个指向/dev/sdb 的软链接, 这种也是可以的. 依此类推理解 p0:/dev/sde, p0 就是节点 1 的 xlog 存放的卷名, /dev/sde 就是块设备名称. 一套集群中只有一个 data 卷, 然后每个节点都有一个 xlog 卷, 即 p0, p1, p2 等, 对应节点 0,1,2 的 xlog 卷. data 卷和 xlog 卷的大小均建议最少 1TB 起步
votingDiskPath cm 的投票卷,enable_dss 为 on 时必选。 给 CM 用的, 没有特别需要注意的, 大小可以不用太大
shareDiskDir cm 的共享卷,enable_dss 为 on 时必选。给 CM 用的, 没有特别需要注意的, 大小可以不用太大
ss_interconnect_type mes 通信协议类型,默认值 TCP,取值范围 TCP/RDMA,默认为 TCP。
ss_rdma_work_config rdma 用户态 poll 占用起止 cpu,ss_interconnect_type 为 RDMA 时有效,形如"10 15",中间以空格分隔。RDMA 和 TCP 是二选一的, RDMA 需要网卡和交换机层面支持
对于安装环境的准备, 除了传统的 openGauss 中需要准备的内容之外, 需要注意的就是要提前配置好磁阵对应的 LUN, 不同厂商的磁阵可能有一些不同的配置方式, 按照自己的需求选择是否配置多路径(openEuler 20.03 目前只支持 linux 自带的 multipath 服务)等, 如果配置了多路径,上面的/dev/sdx 注意配成多路径映射后的名字

三、提供一个简易的一键式安装脚本
下面提供一个可以一键式安装的 shell 脚本, 可以满足快速部署环境的需求

脚本主要分为 2 个
一个 om_pssh.sh 主要用于实现 ssh 时自动输入密码
一个 om_install.sh 主要用于实现自动安装
需要准备好的是一个集成了 om, cm 和数据库的安装包 (一般 release 的包会包含) , 如果没有的话, 可能需要自己做包, 在编译时带上-pkg 选项, 分别做出来 openGauss, OM 和 CM 的包,再放到一起压缩成集成的安装包
注意, 下面的脚本中以所有需要输入的密码都是"Password"为例
以下脚本请勿使用于生产环境
以下为纯手敲, 博主已经尽力了.
如使用中有错误, 建议自行定制修改
先是 om_pssh.sh

!/bin/bash

function auto_() {
expect <<-EOF
spawn $*
set timeout -1
expect {
"yes/no" { send "yes\n"; exp_continue }
"denied" { exit 1; }
"assword" { send "Password\n"; exp_continue }
"anger
\nyes" { send "yes\n"; exp_continue }
"Pdb" { interact }
"pass phrase for*:" { send "Password\n"; exp_continue }
"passphrase" { send "Password\n"; exp_continue }
"database:" { send "Password\n"; exp_continue }
}
EOF
}

auto_ $*
再是 om_install.sh

!/bin/sh

节点ip, 以空格分割

IPS="1.2.3.4 1.2.3.5 1.2.3.6"

安装用户名

user=omm

存放分发安装包的路径, 要独用, 不能为根目录

om_path=/data/omm

xml文件路径,xml需要保证配置正确

xlm_file=/data/install/1p2s.xml
cur_path=$(pwd)

if [ -z ${om_path} ] || [ ${om_path} == '/' ]; then
echo "om_path can not be NULL and '/', please input valid parameter"
exit 0;
fi

echo "=====start om install now"

all_node_ssh_proc()
{
for ip in IPS
do
sh ${cur_path}/om_pssh.sh ssh root@$ip $*
done
}

clean_env()
{
all_node_ssh_proc sudo pkill -9 -u ${user}
all_node_ssh_proc sudo rm -rf ${om_path}/${user}
all_node_ssh_proc sudo pkill -9 -u ${user}
all_node_ssh_proc sudo cp /etc/usr_bashrc /home/${user}/.bashrc
all_node_ssh_proc "su - ${user} -c 'ipcrm -a'"
all_node_ssh_proc sudo rm -f ${om_path}/gauss_pack/script/ENVFILE
}

get_tar()
{
all_node_ssh_proc sudo rm -rf ${om_path}/*
if [! -d ${om_path}/gauss_pack ]; then
mkdir -p ${om_path}/gauss_pack
fi
cd ${om_path}
#这里自行替换成安装包的路径
cp /home/pkg/openGauss-XXX.tar.gz .
cd ${om_path}/gauss_pack
rm -rf *
#这里自行替换成安装包的名称
tar -zxvf ../openGauss-XXX.tar.gz
#这里自行替换成安装包中om包的名称
tar -zxvf openGauss-3.0.0-openEuler-64bit-om.tar.gz
#这里自行替换成安装包中cm包的名称
tar -zxvf openGauss-3.0.0-openEuler-64bit-cm.tar.gz
chmod 777 -R ${om_path}
cp ${cur_path}/om_pssh.sh ${om_path}/
chmod 777 -R ${om_path}
}

pre_install()
{
chmod 777 -R ${om_path}
cd ${om_path}/gauss_pack/script/
${om_path}/om_pssh.sh ./gs_preinstall -U ${user} -G ${user} --sep-env-file=${om_path}/gauss_pack/script/ENVFILE -X ${xml_file}
source ${om_path}/gauss_pack/script/ENVFILE
chmod 777 -R ${om_path}
}

om_install()
{
all_node_ssh_proc chmod 777 -R ${om_path}
su - ${user}<<EOF
cd ${om_path}/gauss_pack/script/
source ${om_path}/gauss_pack/script/ENVFILE
${om_path}/om_pssh.sh gs_install -X ${xml_file} --time-out=3600
source ${om_path}/gauss_pack/script/ENVFILE
cm_ctl query -Cvdip
EOF
}

function main() {
echo "==om install="
clean_env
get_tar
pre_install
om_install
}

main
使用方法;

把 om_pssh.sh 和 om_install.sh 放到一个目录下, 准备好 xml, 安装包, 用户名, 密码等之后
执行 sh om_install.sh 即可, 都运行正常的话, 只需要等着就能安装成功

标签:om,dss,sh,池化,开发者,install,path,openGauss
From: https://www.cnblogs.com/helloopenGauss/p/18085140

相关文章

  • 美国政府敦促开发者:停止使用 C、C++
    “C、C++不安全,新应用开发时就别用了,旧应用应该采取迁移行动”,近日,美国白宫国家网络主任办公室(ONCD)在一份主题为《回到基础构件:通往安全软件之路》的19页PDF报告中强烈呼吁道。其直言,C和C++这几种编程语言既缺乏与内存安全相关的特性,又在关键系统中大量使用,可......
  • GTC 2024 开幕,英伟达发布新一代 GPU 架构;Apple ID 或将淘汰丨 RTE 开发者日报 Vol.168
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人......
  • openGauss Copy接口支持容错机制
    Copy接口支持容错机制可获得性本特性自openGauss1.0.0版本开始引入。特性简介支持将Copy过程中的部分错误导入到指定的错误表中,并且保持Copy过程不被中断。客户价值提升Copy功能的可用性和易用性,提升对于源数据格式异常等常见错误的容忍性和鲁棒性。特性描述openGauss提......
  • openGauss DCF
    DCF可获得性本特性自openGauss2.0.0版本开始引入。特性简介DCF(DistributedConsensusFramework,分布式共识框架)基于Paxos算法实现数据同步强一致。DCF模式开关开启后,DN可以支持基于Paxos协议的复制与仲裁能力。客户价值DN基于Paxos的自选主及日志复制,复制过程中支持压缩及......
  • openGauss Anomaly_detection_数据库指标采集_预测与异常监控
    Anomaly-detection:数据库指标采集、预测与异常监控可获得性本特性自openGauss1.1.0版本开始引入。特性简介anomaly_detection是openGauss集成的、可以用于数据库指标采集、预测以及异常监控与诊断的AI工具,是dbmind套间中的一个组件。支持采集的信息包括IO_Read、IO_Write、CPU......
  • openGauss CM
    CM可获得性本特性自openGauss3.0.0版本开始引入。特性简介CM(ClusterManager)是一款数据库管理软件,由cm_server和cm_agent组成。cm_agent是部署在数据库每个主机上,用来启停和监控各个数据库实例进程的数据库管理组件。cm_server是用来进行数据库实例管理和实例仲裁的组件。......
  • openGauss DB4AI-数据库驱动AI
    DB4AI:数据库驱动AI可获得性本特性自openGauss2.1.0版本开始引入。特性简介DB4AI是指利用数据库的能力驱动AI任务,实现数据存储、技术栈的同构。通过在数据库内集成AI算法,令openGauss具备数据库原生AI计算引擎、模型管理、AI算子、AI原生执行计划的能力,为用户提供普惠AI技术......
  • openGauss DSS功能增强
    DSS功能增强可获得性本特性自openGauss5.1.0版本开始引入,仅适用于资源池化架构。特性简介DSS支持线程池,支持DSS接入能力与资源占用的可配置。DSS支持DSSserver发生故障崩溃时,生成黑匣子日志的能力。DSS支持NoF/NoF+接口。客户价值DSS通过支持线程池,实现了对服务器CPU......
  • openGauss Index-advisor_索引推荐
    Index-advisor:索引推荐可获得性本特性自openGauss1.1.0开始引入。特性简介Index-advisor工具是一个覆盖多种任务级别和使用场景的数据库智能索引推荐工具,其具备单Query索引推荐功能、虚拟索引功能、workload级别索引推荐功能,可以为用户提供可靠的索引建议。客户价值为客户提......
  • openGauss MySQL一键式迁移工具gs_rep_portal
    MySQL一键式迁移工具gs_rep_portal可获得性本特性自openGauss5.0.0版本开始引入。特性简介gs_rep_portal是一个用Java编写的,在linux系统上运行的,集成了全量迁移、增量迁移、反向迁移、数据校验的工具。gs_rep_portal支持以上工具的一键式安装上述工具,设定迁移任务,任务根据用......