首页 > 其他分享 >资源池化基于DORADO双集群搭建指南(非日志合一)

资源池化基于DORADO双集群搭建指南(非日志合一)

时间:2024-04-11 11:26:17浏览次数:32  
标签:opt dn gs huawei 池化 DORADO install 日志 data

资源池化基于DORADO双集群搭建指南----非日志合一
10.10.10

前置条件

工程已完成代码编译,或者。
主备存储已经挂载磁阵LUN设备,并且已经安装ultrapath多路径软件,磁阵设备可用。
限制条件

两套正常的dorado存储,需要搭建两套资源池化集群。
基于资源池化本地日志和同步复制共享xlog两份日志基础上部署,所以需要单独划分一个同步复制共享xlog卷,后期会支持两份日志合一。
组网方式

生产中心 主端 业务计算节点0 10.0.0.10 主存储 Dorado1
业务计算节点1 10.0.0.20
容灾中心 备端 业务计算节点0 20.0.0.10 备存储 Dorado2
业务计算节点1 20.0.0.20
操作步骤

在主存储上创建资源池化需要的lun,以及远程同步复制xlog卷对应的lun,并且所有lun全部映射到业务计算节点上
需要保证同一个Dorado lun在一个集群内多台机器上映射的盘符一致,若不一致可以通过建立软连接的方法,使其对openGauss暴露的盘符一致即可。

例如wwn为00000000000001的盘在主机群0节点的盘符为sda,在主机群1节点的盘符为sdb,我们可以通过

ll /dev/disk/by-id // 查看lun对应的wwn来确定具体的盘符
ln -s /dev/sda /dev/first // 在0节点执行
ln -s /dev/sdb /dev/first // 在1节点执行
然后将/dev/first作为我们可用的盘

lun 盘符
data /dev/sda
xlog0 /dev/sdb
xlog1 /dev/sdc
votingDiskPath /dev/sdd
shareDiskDir /dev/sde
远程同步复制xlog /dev/sdf
主存储上准备xml文件。 在《文档->安装指南->企业版安装->安装openGauss->创建XML配置文件->配置数据库名称及各项目录》中有配置说明, https://docs.opengauss.org/zh/docs/5.0.0/docs/InstallationGuide/创建XML配置文件.html

根据配置说明准备资源池化集群需要的xml文件,以一主一备举例:

        <PARAM name="cmDir" value="/opt/huawei/install/cm"/>
        <PARAM name="cmsNum" value="1"/>
        <PARAM name="cmServerPortBase" value="27000"/>
        <PARAM name="cmServerListenIp1" value="10.0.0.10,10.0.0.20"/>
        <PARAM name="cmServerlevel" value="1"/>
        <PARAM name="cmServerRelation" value="node1,node2"/>

        <PARAM name="dataNum" value="1"/>
        <PARAM name="dataPortBase" value="25400"/>
        <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2,/opt/huawei/install/data/dn"/>
    </DEVICE>

    <!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称(hostname) -->
    <DEVICE sn="node2">
        <PARAM name="name" value="node2"/>
        <PARAM name="azName" value="AZ1"/>
        <PARAM name="azPriority" value="1"/>
        <PARAM name="backIp1" value="10.0.0.20"/>
        <PARAM name="sshIp1" value="10.0.0.20"/>
        <PARAM name="cmDir" value="/opt/huawei/install/cm"/>
    </DEVICE>
</DEVICELIST>
将xml保存在/opt/software/openGauss/cluster_config.xml中

Tips: 用户需要修改节点名称、节点IP、目录、盘符、端口号

在主存储上执行如下操作安装部署主集群,安装用户omm。 执行《文档->安装指南->企业版安装->安装openGauss->初始化安装环境》中的步骤, https://docs.opengauss.org/zh/docs/5.0.0/docs/InstallationGuide/初始化安装环境.html

简化步骤如下:

su - root
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
将下载的安装包放置/opt/software/openGauss目录下

cd /opt/software/openGauss
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz

cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml --sep-env-file=/home/omm/env

chown omm:dbgrp /dev/sdf // 远程同步复制xlog的权限需要手动处理,需要在所有节点处理

su - omm
source /home/omm/env
gs_install -X /opt/software/openGauss/cluster_config.xml --dorado-config=/dev/sdf
参数解释:

sep-env-file 分离环境变量,参数取值是一个安装用户omm可以访问到的文件目录
dorado-config 主存储上为远程同步复制xlog划分的lun,只取值主存储对应的远程同步复制xlog划分的lun对应的盘符
omm 操作系统用户
dbgrp 操作系统用户属组
查询主集群状态。 建立容灾关系之后就是主集群,未建立容灾关系之前还是资源池化单集群。

[huawei@node1 dn_6001]$ cm_ctl query -Cvidp
[ CMServer State ]

node node_ip instance state

1 node1 10.0.0.10 1 /opt/huawei/install/cm/cm_server Primary
2 node2 10.0.0.20 2 /opt/huawei/install/cm/cm_server Standby

[ Defined Resource State ]

node node_ip res_name instance state

1 node1 10.0.0.10 dms_res 6001 OnLine
2 node2 10.0.0.20 dms_res 6002 OnLine
1 node1 10.0.0.10 dss 20001 OnLine
2 node2 10.0.0.20 dss 20002 OnLine

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state | node node_ip instance state

1 node1 10.0.0.10 6001 25400 /opt/huawei/install/data/dn P Primary Normal | 2 node2 10.0.0.20 6002 25400 /opt/huawei/install/data/dn S Standby Normal
在备存储上准备lun和xml文件。 同第1步和第2步一样,第1步不需要创建远程同步复制xlog对应的lun

在备存储上集群(建立容灾关系之后就是备集群)上执行如下操作安装部署备集群,安装用户omm。

简化步骤如下:

su - root
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
将下载的安装包放置/opt/software/openGauss目录下

cd /opt/software/openGauss
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz

cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml --sep-env-file=/home/omm/env

chown omm:dbgrp /dev/sdf // 远程同步复制xlog的权限需要手动处理,需要在所有节点处理

su - omm
gs_install -X /opt/software/openGauss/cluster_config.xml
Tips: 备存储上单集群安装部署gs_install不加dorado-config参数

查询备存储上集群(建立容灾关系之后就是备集群)状态。 建立容灾关系之后就是备集群,未建立容灾关系之前还是资源池化单集群。

[omm@node1 dn_6001]$ cm_ctl query -Cvidp
[ CMServer State ]

node node_ip instance state

1 node1 20.0.0.10 1 /opt/huawei/install/cm/cm_server Primary
2 node2 20.0.0.20 2 /opt/huawei/install/cm/cm_server Standby

[ Defined Resource State ]

node node_ip res_name instance state

1 node1 20.0.0.10 dms_res 6001 OnLine
2 node2 20.0.0.20 dms_res 6002 OnLine
1 node1 20.0.0.10 dss 20001 OnLine
2 node2 20.0.0.20 dss 20002 OnLine

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state | node node_ip instance state

1 node1 20.0.0.10 6001 25400 /opt/huawei/install/data/dn P Primary Normal | 2 node2 20.0.0.20 6002 25400 /opt/huawei/install/data/dn S Standby Normal
登录主存储管控平台,与备存储建立远程同步复制

data protection(数据保护) -> Lun -> remote replication pairs(远程复制对) -> create ->选择主存储需要同步复制给备存储的lun -> next
选择同步 -> Automatic -> 备存储的存储池名称 -> next
最后会显示successful,表示成功
Tips: 选择主存储需要同步复制给备存储的lun,指第1步表格中的远程同步复制xlog对应的lun

在备存储上查询远程同步复制xlog对应的lun

rescan-scsi-bus.sh // 映射lun后在机器上重新扫描
lsscsi -is // 查看lun
ll /dev/disk/by-id // 查看lun对应的wwn来确定具体的盘符
lun和盘符对应关系:

lun 盘符
远程同步复制xlog /dev/sdf
停止主集群,配置容灾参数,重新拉起主集群

Tips: gs_guc为openGauss提供的修改配置文件工具,也可以通过直接打开/opt/huawei/install/data/dn($PGDATA)下的postgresql.conf与pg_hba.conf文件将上面双引号中的内容手动写入文件中。

cm_ctl stop
 主集群节点0的postgresql.conf文件

gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "xlog_file_path = '/dev/sdf'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "xlog_lock_file_path = '/home/huawei/install/shared_lock_primary'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo1='localhost=10.0.0.10 localport=25400 remotehost=20.0.0.10 remoteport=25400'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo2='localhost=10.0.0.10 localport=25400 remotehost=20.0.0.20 remoteport=25400'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cluster_run_mode = 'cluster_primary'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "ha_module_debug = off"
参数解释:

xlog_file_path 同步复制xlog盘
cross_cluster_replconninfo 主备集群建立连接信息,端口为数据库运行端口(xml里的dataPortBase,postgresql.conf的port)
cluster_run_mode 集群模式
 主集群节点0的pg_hba.conf文件

gs_guc set -N node1 -D /opt/huawei/install/data/dn -h "host all all 20.0.0.10/32 trust"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -h "host all all 20.0.0.20/32 trust"
 主集群节点1的postgresql.conf文件

gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "xlog_file_path = '/dev/sdf'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "xlog_lock_file_path = '/home/huawei/install/shared_lock_primary'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo1='localhost=10.0.0.20 localport=25400 remotehost=20.0.0.10 remoteport=25400'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo2='localhost=10.0.0.20 localport=25400 remotehost=20.0.0.20 remoteport=25400'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cluster_run_mode = 'cluster_primary'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "ha_module_debug = off"
 主集群节点1的pg_hba.conf文件

gs_guc set -N node2 -D /opt/huawei/install/data/dn -h "host all all 20.0.0.10/32 trust"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -h "host all all 20.0.0.20/32 trust"
cm_ctl start
停止备存储上的资源池化单集群(建立容灾关系之后就是备集群),配置容灾参数

cm_ctl stop
 备集群节点0的postgresql.conf文件

gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "xlog_file_path = '/dev/sdf'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "xlog_lock_file_path = '/home/huawei/install/shared_lock_standby'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo1='localhost=20.0.0.10 localport=25400 remotehost=10.0.0.10 remoteport=25400'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo2='localhost=20.0.0.10 localport=25400 remotehost=10.0.0.20 remoteport=25400'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "cluster_run_mode = 'cluster_standby'"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -c "ha_module_debug = off"
 备集群节点0的pg_hba.conf文件

gs_guc set -N node1 -D /opt/huawei/install/data/dn -h "host all all 10.0.0.10/32 trust"
gs_guc set -N node1 -D /opt/huawei/install/data/dn -h "host all all 10.0.0.20/32 trust"
 备集群节点1的postgresql.conf文件

gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "xlog_file_path = '/dev/sdf'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "xlog_lock_file_path = '/home/huawei/install/shared_lock_standby'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo1='localhost=20.0.0.20 localport=25400 remotehost=10.0.0.10 remoteport=25400'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cross_cluster_replconninfo2='localhost=20.0.0.20 localport=25400 remotehost=10.0.0.20 remoteport=25400'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "cluster_run_mode = 'cluster_standby'"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -c "ha_module_debug = off"
 备集群节点1的pg_hba.conf文件

gs_guc set -N node2 -D /opt/huawei/install/data/dn -h "host all all 10.0.0.10/32 trust"
gs_guc set -N node2 -D /opt/huawei/install/data/dn -h "host all all 10.0.0.20/32 trust"
拉起首备dssserver,执行build

export DSS_MAINTAIN=TRUE // 打开dss手动模式
dssserver -D /opt/huawei/install/dss_home & // 拉起dssserver,-D 指定$DSS_HOME
gs_ctl build -D /opt/huawei/install/data/dn -b cross_cluster_full -g 0 -q
ps ux | grep dssserver | grep -v grep | awk '{print $2}' | xargs kill -9 // 停止手动模式的dssserver
Tips: -g参数指即将成为首备的节点,必须选择单集群下role是primary的节点作为首备,build必须需要加-q,指build成功后不拉起数据库,build完成后需要手动kill掉dssserver。

配置备集群cm参数,重新拉起备集群

设置cm为备集群模式

cm_ctl set --param --server -k backup_open=1
cm_ctl set --param --agent -k agent_backup_open=1
cm_ctl start
查询集群状态 主集群使用cm_ctl query -Cvidp查询出来同第步一样 备集群查询结果如下,备集群节点0从没有建立容灾关系时的primary变成建立容灾关系之后的Main Standby

[huawei@node2 dn_6002]$ cm_ctl query -Cvidp
[ CMServer State ]

node node_ip instance state

1 node1 20.0.0.10 1 /opt/huawei/install/cm/cm_server Primary
2 node2 20.0.0.20 2 /opt/huawei/install/cm/cm_server Standby

[ Defined Resource State ]

node node_ip res_name instance state

1 node1 20.0.0.10 dms_res 6001 OnLine
2 node2 20.0.0.20 dms_res 6002 OnLine
1 node1 20.0.0.10 dss 20001 OnLine
2 node2 20.0.0.20 dss 20002 OnLine

[ Cluster State ]

cluster_state : Normal
redistributing : No
balanced : Yes
current_az : AZ_ALL

[ Datanode State ]

node node_ip instance state | node node_ip instance state

1 node1 20.0.0.10 6001 25400 /opt/huawei/install/data/dn P Main Standby Normal | 2 node2 20.0.0.20 6002 25400 /opt/huawei/install/data/dn S Standby Normal
在主集群主机和备集群首备执行查询,可观察到流复制信息

主集群主节点0
[omm@node1 dn]$ gs_ctl query -D /opt/huawei/install/data/dn
[2023-04-18 09:38:34.397][1498175][][gs_ctl]: gs_ctl query ,datadir is /opt/huawei/install/data/dn
HA state:
local_role : Primary
static_connections : 2
db_state : Normal
detail_information : Normal

Senders info:
sender_pid : 1456376
local_role : Primary
peer_role : StandbyCluster_Standby
peer_state : Normal
state : Streaming
sender_sent_location : 2/5C8
sender_write_location : 2/5C8
sender_flush_location : 2/5C8
sender_replay_location : 2/5C8
receiver_received_location : 2/5C8
receiver_write_location : 2/5C8
receiver_flush_location : 2/5C8
receiver_replay_location : 2/5C8
sync_percent : 100%
sync_state : Async
sync_priority : 0
sync_most_available : Off
channel : 10.0.0.10:25400-->20.0.0.10:43350

Receiver info:
No information

备集群首备节点0
[omm@nodename pg_log]$ gs_ctl query -D /opt/huawei/install/data/dn
[2023-04-18 11:33:09.288][2760315][][gs_ctl]: gs_ctl query ,datadir is /opt/huawei/install/data/dn
HA state:
local_role : Main Standby
static_connections : 2
db_state : Normal
detail_information : Normal

Senders info:
No information
Receiver info:
receiver_pid : 1901181
local_role : Standby
peer_role : Primary
peer_state : Normal
state : Normal
sender_sent_location : 2/5C8
sender_write_location : 2/5C8
sender_flush_location : 2/5C8
sender_replay_location : 2/5C8
receiver_received_location : 2/5C8
receiver_write_location : 2/5C8
receiver_flush_location : 2/5C8
receiver_replay_location : 2/5C8
sync_percent : 100%
channel : 20.0.0.10:43350<--10.0.0.10:25400
Notice:请严格按照步骤操作作者:Carl

标签:opt,dn,gs,huawei,池化,DORADO,install,日志,data
From: https://www.cnblogs.com/helloopenGauss/p/18128458

相关文章

  • 在Linux中,如何管理和优化日志文件?
    在Linux中,管理和优化日志文件是系统维护的重要组成部分。日志文件记录了系统和应用程序的活动,对于故障排查、安全审计和性能分析至关重要。以下是一些管理和优化日志文件的方法:1.配置日志级别许多应用程序和系统服务允许你设置不同的日志级别,如DEBUG、INFO、WARNING、ERROR和CR......
  • ELK收集主流应用日志
    1.收集nginx日志学习背景:access.log,error.log目前日志混杂在一个es索引下。 改进filebeat配置https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html加上日志输入文件的判断,采用不同的索引 1filebeat.inputs:2-type:log3......
  • EBLK日志收集方案
    ELK是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash和Kibana。该组合版本会统一发布。 ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文......
  • Log4J日志配置详解
    一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件......
  • 日志收集系统PLG(Promtail+Loki+Grafana)部署
    一、简介Loki是受Prometheus启发由GrafanaLabs团队开源的水平可扩展,高度可用的多租户日志聚合系统。开发语言:GoogleGo。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数......
  • hadoop篇——nameNode DataNode SecondaryNameNode的作用,以及如何查看操作日志
    集群下的hadoop(112主节点113,114从节点)如果112挂了,数据以及操作日志会丢失无法恢复,又称单点故障。再启动start-all.shhadoop后,主节点会产生name以及secondary两个文件 所在地址在  /root/training/hadoop-2.7.3/tmp/dfs其中name对应的是NameNode节点:接受客户端的请......
  • 分布式任务调度平台XXL-JOB:调度日志打印时区问题
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Q......
  • P8661 [蓝桥杯 2018 省 B] 日志统计 题解
    好久没写题解了,水一篇。这里主要想讲的是不同的处理方法,在阅读本篇题解前请确保读完题。详解一,排序这很好理解,题目要求将热帖从小到大输出,同时题目中还有相对的时间这一概念,因此将输入的\(id\)与\(ts\)按照优先\(id\)其次\(ts\)的排序方式从小到大,排序,这样输出时就没......
  • Windows 事件日志禁用教程:简单步骤
    事件日志是详细说明主要和次要更改甚至错误的报告。如果服务或启动应用在第一次尝试时无法运行,则会生成日志。但是,当日志数量变得很大时,用户可能希望禁用Windows事件日志。单个日志在磁盘上占用的空间很小,但如果每天生成数千个此类报告并将其存储在SSD上,那么您会看到性能下降......
  • 采用自定义注解 和 AOP 完成日志记录
    1、声明一个自定义注解@Retention注解包含一个RetentionPolicy类型的属性value,用于指定注解的保留策略,常用的保留策略包括:RetentionPolicy.SOURCE:表示注解仅在源代码中保留,编译器编译时会将其忽略,不会保存在编译后的字节码中。RetentionPolicy.CLASS:表示注解在编译后的......