GBase 8a MPP Cluster V9安装部署
安装环境准备
节点 | 角色 | 操作系统 | 地址 | 配置 | GBASE版本 |
---|---|---|---|---|---|
gbase01.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.142 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
gbase02.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.143 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
gbase03.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.144 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
VMware下载:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro
VirtualBox下载:https://www.virtualbox.org/wiki/Downloads
OS 建议下载 CentOS 7.9 安装包。推荐网址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.5cb3f5adC5fVSC
GBase 8a MPP Cluster V9 9.5.3.28.12下载地址:https://www.gbase.cn/download/gbase-8a?category=INSTALL_PACKAGE
gbase01.gbase.cn 为安装和管理主节点
安装系统时建议在“软件选择”中勾选“带GUI的服务器”中的“开发工具”选项。
各节点IP是同一网段,并互相能连通;开启 SSH 服务;关闭防火墙、关闭seLinux服务、开启时钟同步。
查看版本
# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
设置静态IP
我的CentOS 7 容易自动变换IP,所以需要设置成为静态IP。
修改网卡:/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b1620999-32cd-4749-b7ab-a15bc2380161
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.20.142
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
DNS1=101.226.4.6
上面是我以gbase01为例做的修改,其他IPADDR=X.X.X.X按需修改,这些内容为需要修改的,主要就是该静态模式、IP、验码、网关、DNS。
BOOTPROTO=static
IPADDR=192.168.20.142
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
DNS1=101.226.4.6
需要注意网关和DNS要写对。网关获取:ip route | grep default | awk ‘{print $3}’
DNS这里使用的是运营商的。
修改完成后,重启网卡
systemctl restart network
设置主机名
使用root用户设置,或者有sudo权限的用户设置,我这里为了方便使用root设置。
在每一个节点分别设置。注意,是分别设置。
hostnamectl set-hostname gbase01.gbase.cn # gbase01
hostnamectl set-hostname gbase02.gbase.cn # gbase02
hostnamectl set-hostname gbase03.gbase.cn # gbase03
修改hosts
在每一个节点执行修改文件/etc/hosts为下面内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# gbase 8a mpp cluster
192.168.20.142 gbase01.gbase.cn gbase01
192.168.20.143 gbase02.gbase.cn gbase02
192.168.20.144 gbase03.gbase.cn gbase03
配置 yum 源
在每一个节点执行
1、若可以联通互联网,可以使用远程源,方便直接下载使用
因为CentOS 7 的服务器已过,官方的yum不可用,所以需要配置第三方源,这里配置的是阿里云源
mkdir /etc/yum.repos.d/yum_bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/yum_bak
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
2、若是内网环境可直接挂载ISO镜像文件下载
mkdir /mnt/iso
mount -o loop /dev/sr0 /mnt/iso
# 若是没有自动挂载ISO介质,则需要上传ISO文件再挂载。
mount -o loop /root/CentOS-7.9-x86_64-Everything-2009.iso /mnt/iso
制作repo文件
mkdir /etc/yum.repos.d/yum_bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/yum_bak
# 创建 local-iso.repo
cat << EOF >> /etc/yum.repos.d/local-iso.repo
[local-iso]
name=Local ISO Repository
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
EOF
重新制作yum源缓存
yum clean all
yum makecache
配置免密
使用脚本配置互相免密,在安装节点运行脚本就可以了。
ssh-keygen -t rsa -b 2048
ssh-copy-id gbase01
ssh-copy-id base02
ssh-copy-id gbase03
安装集群管理软件
在安装节点上安装 clustershell
yum --enablerepo=extras install epel-release
yum install clustershell
验证,-w 输入需要控制的主机,看能不能正常返回:
[root@gbase01 ~]# clush -w gbase0[1-3] hostname
gbase01: gbase01.gbase.cn
gbase02: gbase02.gbase.cn
gbase03: gbase03.gbase.cn
前提是配置了集群免密。
检查依赖软件
在每一个节点执行检查,最好是使用集群命令统一检查,具体需要哪些依赖,可以在 GBase 8a 安装包内的 dependRpms 文件内查看
yum update -y
rpm -qa | grep psmisc
rpm -qa | grep libcgroup
rpm -qa | grep python2
# ...
yum install -y libcgroup libcgroup-tools psmisc ncurses-libs libdb glibc keyutils-libs libidn libgpg-error libgomp libstdc++ libgcc python-libs libgcrypt nss-softokn-freebl
# 若python不为python2,设置默认版本为python2
# alternatives --set python /usr/bin/python2
python --version # 验证默认版本
磁盘分区为默认分区,分区格式为默认的xfs,swap为默认不改动。
CPU建议关闭超线程、关闭 CPU 自动降频,我这里是测试虚拟机,所以没有操作。
网络要求三个节点可以互通
防火墙设置
测试环境,防火墙关闭,如果是不能关闭则开放所有需要使用的端口,每一个节点都需要检查
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
检查端口
GBase 8a MPP Cluster 各服务使用的默认端口如下
组件名称 | 默认端口号 | 端口协议类型 | 端口含义 |
---|---|---|---|
Gcluster | 5258 | TCP | GCluster 集群节点对外提供服务的端口 |
Gnode | 5050 | TCP | Data 集群节点对外提供服务的端口 |
Gcware | 5918 | TCP/UDP | gcware 节点间通讯端口 |
gcware | 5919 | TCP | 外部连接 gcware 节点端口 |
syncServer | 5288 | TCP | syncServer 服务端 |
GcrecoverMonit | 6268 | TCP | Gcrecover 服务端口 |
数据远程导出端口 | 16066~16166 | TCP | 数据远程导出端口 |
lsof -i:5258 -i:5050 -i:5918 -i:5919 -i:5288 -i:6268
检查sshd服务
在每一个节点执行
systemctl status sshd.service
systemctl enable sshd.service
关闭SELinux
在每一个节点执行
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 查看是否修改成功
grep "^SELINUX=" /etc/selinux/config
setenforce 0 # 临时关闭
# 输入 getenforce 返回 Permissive 则是临时关闭状态,
# 重启后是 Disabled ,完全关闭状态。
getenforce
sestatus
设置虚拟内存为unlimited
在每一个节点执行
cat << EOF >> /etc/security/limits.conf
* soft as unlimited
* hard as unlimited
EOF
设置时钟同步服务chrony
在每一个节点执行
systemctl status chronyd.service
systemctl start chronyd.service
systemctl enable chronyd.service
这里为了方便,是直接启动,若是内网环境,或者大集群,最好是把集群内两台同步远程时钟节点,其他节点,同步这两台的时钟,这样会时钟偏差比较小。
安装 GBase 8a
创建DBA账户
在每一个节点执行创建
useradd gbase
echo "gbase:Gbase@2024" | chpasswd
所有节点DBA账户的用户名、密码、uid、gid要一致,否则安装失败
[root@gbase01 opt]# clush -w gbase0[1-3] id gbase
gbase02: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
gbase03: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
gbase01: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
解压 GBase 8a 安装包
上传软件包gbase01:/opt,gbase01为主节点,并解压。
cd /opt
tar xjf GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2
chown -R gbase:gbase /opt/gcinstall
创建 GBase 8a 目录
在每一个节点执行操作
mkdir -p /opt/gbase
chown -R gbase:gbase /opt/gbase
设置系统环境 SetSysEnv.py
官方提供了一个 python 脚本 SetSysEnv.py 用来一键配置系统参数文件
配置系统参数 /etc/systcl.conf 文件
配置 /etc/security/limits.conf 文件
配置 /etc/pam.d/su 文件
配置 /etc/security/limits.d/*-nproc.conf 文件
配置 /etc/cgconfig.conf 文件
使用 clustershell 工具同步文件到每一个节点的 opt下,并执行
clush -w gbase0[1-3] --copy /opt/gcinstall/SetSysEnv.py --dest /opt/
clush -w gbase0[1-3