greenplum 基于docker跨主机搭建 mirror只有在同宿主机的才初始化成功

greenplum 基于docker跨主机搭建 mirror只有在同宿主机的才初始化成功

现有两台宿主机 ,每台宿主机下docker 生成容器

n1

gp-master

gp-sdw1

gp-sdw2

n2

gp-sdw3

gp-sdw4

各个容器间网络 ssh免密登录都是OK的。

但是初始化完成后 ,mirror只有在同宿主机的才初始化成功, 不同宿主机的都失败了。 在这种是我为何

我的网络配置是用的route add配置的。

cat /home/gpadmin/config/gpinitsystem_config 这是我的初始化文件

ARRAY_NAME="Greenplum"
MACHINE_LIST_FILE=/home/gpadmin/config/seg_hosts

Segment 的名称前缀

SEG_PREFIX=gpseg

Primary Segment 起始的端口号

PORT_BASE=33000

指定 Primary Segment 的数据目录

declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2 /home/gpadmin/gpdata/gpdatap3)

Master 所在机器的 Hostname

MASTER_HOSTNAME=gp-mdw

指定 Master 的数据目录

MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster

Master 的端口

MASTER_PORT=8201

指定Bash的版本

TRUSTED_SHELL=/usr/bin/ssh

Mirror Segment起始的端口号

MIRROR_PORT_BASE=43000

Primary Segment 主备同步的起始端口号

REPLICATION_PORT_BASE=34000

Mirror Segment 主备同步的起始端口号

MIRROR_REPLICATION_PORT_BASE=44000

Mirror Segment 的数据目录

declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2 /home/gpadmin/gpdata/gpdatam3)

在 Greenplum 基于 Docker 跨主机搭建 mirror 时,如果只有同宿主机的容器才能初始化成功,可能是因为网络配置问题导致的。

可以尝试以下解决方案:

检查宿主机之间的网络连通性,确保容器之间可以相互通信。
检查网络配置文件,确保容器之间的通信端口已经被正确配置,尤其是各个容器间的网络ssh免密登录都是OK的
如果使用的是route add配置的网络,请检查这些路由是否已经被正确添加到了每个容器中
也可以尝试在初始化之前先启动所有容器,确保容器之间能够通信
检查Greenplum配置文件,确保所有配置信息正确,尤其是在你的配置文件中指定了所有的mirror容器的IP地址、主机名称、端口号等信息