GBase 8C集群部署
- 环境规划
- 1、环境要求
硬件环境要求 | ||
项目 | 物理机环境 | 虚拟机环境 |
CPU | 2*10(cores)及以上 | 2*10(cores)及以上 |
内存 | 128GB及以上 | 单个节点8GB及以上 备注:若一台虚拟机上部署N个节点,要求内存预留8N |
磁盘 | SSD 500GB及以上 | SSD/SAS/SATA 100GB及以上 |
网络 | 10GB及以上 | 1000MB或10GB |
软件环境要求 | ||
软件类型 | 架构 | 描述 |
Linux操作系统 | ARM | CentOS 7.6-7.9、麒麟V10、统信V20、Debian 10.3、Uniontech 20、Redhat、OpenEuler 20.3LTS |
X86 | CentOS 7.6-7.9、麒麟V10、统信V20、Debian 10.3、Uniontech 20、OpenEuler 20.3LTS | |
Linux文件系统 | 剩余 inode 个数 > 15 亿(推荐) | |
指令集 | rdtscp | 仅虚拟机环境需要 |
软件要求 | ||
软件名称 | 描述 | |
bison | 建议版本:2.7.4 | |
flex | 要求版本:2.5.31以上 | |
libaio-devel | 建议版本:0.3.109-13以上 | |
lsb_release | 建议版本:4.1 | |
patch | 建议版本:2.7.1-10 | |
ncurses-devel | 建议版本:5.9-13.20130511 | |
bzip2 | 建议版本:1.0.6 | |
- 2、环境规划
节点类型 | 节点名称 | IP | Port | Agent Port | 角色 | work_dir |
gha_server | gha_server1 | 192.168.1.71 | 20001 | —— | —— | —— |
dcs | —— | 192.168.1.71 | 2379 | —— | —— | —— |
—— | 192.168.1.72 | 2379 | —— | —— | —— | |
—— | 192.168.1.73 | 2379 | —— | —— | —— | |
gtm | gtm1 | 192.168.1.72 | 6666 | 8001 | 主 | /home/gbase/data/gtm/gtm1 |
gtm2 | 192.168.1.73 | 6666 | 8002 | 备 | /home/gbase/data/gtm/gtm2 | |
coordinator | cn1 | 192.168.1.72 | 5432 | 8003 | 主 | /home/gbase/data/coord/cn1 |
cn2 | 192.168.1.73 | 5432 | 8004 | 主 | /home/gbase/data/coord/cn2 | |
datanode | dn1_1 | 192.168.1.72 | 15432 | 8007 | 主 | /home/gbase/data/dn2/dn1_1 |
dn1_2 | 192.168.1.73 | 15432 | 8007 | 备 | /home/gbase/data/dn2/dn1_2 | |
dn1_3 | 192.168.1.71 | 15432 | 8007 | 备 | /home/gbase/data/dn2/dn1_3 | |
dn2_1 | 192.168.1.73 | 20010 | 8008 | 主 | /home/gbase/data/dn2/dn2_1 | |
dn2_2 | 192.168.1.71 | 20010 | 8008 | 备 | /home/gbase/data/dn2/dn2_2 | |
dn2_3 | 192.168.1.72 | 20010 | 8008 | 备 | /home/gbase/data/dn2/dn2_3 |
- 3、检查环境
2、初始化环境
2.1、统一主机名称
检查各主机名称:cat /etc/hostname
统一主机名称:
hostnamectl set-hostname Gbase8CNode1
hostnamectl set-hostname Gbase8CNode2
hostnamectl set-hostname Gbase8CNode3
2.2、安装插件(所有节点都需要安装)
rpm -qa bison flex patch bzip2 lsb_release libaio-devel
yum reinstall -y bison flex patch bzip2 lsb_release libaio-devel
cat /proc/cpuinfo |grep rdtscp
yum install -y libaio-devel
2.3、关闭防火墙(所有节点)
systemctl stop firewalld.service
systemctl disable firewalld.service
2.4、关闭SELINUX:将SELINUX改为disabled
sed -i.bak '/^SELINUX=/s#SELINUX=.*#SELINUX=disabled#' /etc/selinux/config
cat /etc/selinux/config
2.5、创建GBase 8C管理用户gbase
注:在在所有节点上创建DBA用户
groupadd gbase -g 300
useradd gbase -g 300 -u 300
echo "gbase"|passwd --stdin gbase
2.6、配置时间同步,开启ntp
主节点执行(172.168.1.71)
yum install ntp
sed -i '12arestrict 192.168.1.71 nomodify notrap nopeer noquery' /etc/ntp.conf
sed -i '22,25s/^/# /' /etc/ntp.conf
sed -i '25aserver 127.127.1.0' /etc/ntp.conf
sed -i '26aFudge 127.127.1.0 stratum 10' /etc/ntp.conf
service ntpd start
Redirecting to /bin/systemctl start ntpd.service
chkconfig ntpd on
systemctl enable ntpd.service
systemctl start ntpd.service
Node2节点(192.168.1.72)
sed -i '12arestrict 192.168.1.72 nomodify notrap nopeer noquery' /etc/ntp.conf
sed -i '22,25s/^/# /' /etc/ntp.conf
sed -i '25aserver 192.168.1.71' /etc/ntp.conf
sed -i '26aFudge 192.168.1.71 stratum 10' /etc/ntp.conf
service ntpd start
chkconfig ntpd on
systemctl enable ntpd.service
systemctl start ntpd.service
Node3节点(192.168.1.73)
cp /etc/ntp.conf /etc/ntp.conf.bak
sed -i '12arestrict 192.168.1.73 nomodify notrap nopeer noquery' /etc/ntp.conf
sed -i '22,25s/^/# /' /etc/ntp.conf
sed -i '25aserver 192.168.1.71' /etc/ntp.conf
sed -i '26aFudge 192.168.1.71 stratum 10' /etc/ntp.conf
service ntpd start
chkconfig ntpd on
systemctl enable ntpd.service
systemctl start ntpd.service
2.7、所有节点配置sudo,使用root账户
sed -i.bak '100agbase ALL=(ALL) NOPASSWD:ALL' /etc/sudoers
2.8、配置免密访问,所有节点用Gbase执行
[root@Gbase8CNode1 ~]# su - gbase
rm -rf /home/gbase/.ssh
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-copy-id gbase@192.168.1.71
ssh-copy-id gbase@192.168.1.72
ssh-copy-id gbase@192.168.1.73
免密测试
[gbase@Gbase8CNode1 ~]$ ssh 192.168.1.71 date
2024年 04月 10日 星期三 21:50:43 CST
[gbase@Gbase8CNode1 ~]$ ssh 192.168.1.72 date
2024年 04月 10日 星期三 21:50:48 CST
[gbase@Gbase8CNode1 ~]$ ssh 192.168.1.73 date
2024年 04月 10日 星期三 21:50:53 CST
2.9、优化内核参数
[root@Gbase8CNode1 ~]# sysctl -w kernel.sem="40960 2048000 40960 20480"
- GBase 8C部署
3.1、上传安装包至主机(192.168.1.71),并解压拷贝至安装补录
su gbase
sudo mkdir /install
sudo chown -R gbase:gbase /install
cd /install
unzip GBase8cV5_3.0.0_分布式_x86.zip
cd /install/GBase8cV5_S3.0.0B114/Server
mv GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz /home/gbase/
3.2、创建gbase_package,将安装包拷贝至gbase_package,并解压,拷贝配置文件
mkdir /home/gbase/gbase_package
cd /home/gbase/gbase_package
mv /home/gbase/GBase8cV5_S3.0.0B114/Server/GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz /home/gbase/
[gbase@Gbase8CNode1 ~]$ cd gbase_package/
[gbase@Gbase8CNode1 gbase_package]$ tar xf GBase8cV5_S3.0.0B114_centos7.8_x86_64.tar.gz
[gbase@Gbase8CNode1 gbase_package]$ tar xf GBase8cV5_S3.0.0B114_CentOS_x86_64_om.tar.gz
[gbase@Gbase8CNode1 gbase_package]$ cp gbase.yml /home/gbase/
[gbase@Gbase8CNode1 gbase_package]$
3.3、优化内核参数
gbase.yml中host和agent_host区别:
Host数据面(CN/DN)访问连接的ip地址
agent_host控制面访问连接的ip地址
当主机是双网卡时,建议控制面设置在千兆网卡,数据面设置在万兆网卡,以避免大流量数据影响高可用报文的实时性。
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#10.0.1.16#192.168.1.71#g' /home/gbase/gbase.yml
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#100.0.1.16#192.168.1.71#g' /home/gbase/gbase.yml
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#10.0.1.17#192.168.1.72#g' /home/gbase/gbase.yml
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#100.0.1.17#192.168.1.72#g' /home/gbase/gbase.yml
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#10.0.1.18#192.168.1.73#g' /home/gbase/gbase.yml
[gbase@Gbase8CNode1 gbase_package]$ sed -i 's#100.0.1.18#192.168.1.73#g' /home/gbase/gbase.yml
3.4、GBase 8C部署
集群安装,切换到gbase用户执行
[gbase@Gbase8CNode1 gbase_package]$ cd /home/gbase/gbase_package/script/
[gbase@Gbase8CNode1 script]$ ./gha_ctl install -c gbase
3.5、设置环境变量
export GPHOME=/home/gbase/gbase_db >> ~/.bashrc
export PATH=$GPHOME/script:$PATH >> ~/.bashrc
source ~/.bashrc
3.6、查看集群状态
查看集群状态 任一节点,切换到gbase用户执行
[gbase@Gbase8CNode1 script]$ gha_ctl monitor all -l http://192.168.1.71:2379 -HI
3.7、配置远程连接
gs_guc reload -Z datanode -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc reload -Z gtm -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc reload -Z datanode -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc reload -Z coordinator -N all -I all -c"listen_addresses='*'"
gs_guc reload -Z gtm -N all -I all -c"listen_addresses='*'"
gs_guc reload -Z datanode -N all -I all -c"listen_addresses='*'"
gs_guc set -Z coordinator -N all -I all -c "password_encryption_type=1"
gs_guc set -Z gtm -N all -I all -c "password_encryption_type=1"
gs_guc set -Z datanode -N all -I all -c "password_encryption_type=1"
gs_guc check -Z gtm -N all -I all -c "listen_addresses"
gs_guc check -Z coordinator -N all -I all -c "listen_addresses"
gs_guc check -Z datanode -N all -I all -c "listen_addresses"
gs_guc check -Z gtm -N all -I all -c "password_encryption_type"
gs_guc check -Z coordinator -N all -I all -c "password_encryption_type"
gs_guc check -Z datanode -N all -I all -c "password_encryption_type"
3.8、重启Gbase 8C
gha_ctl stop all -l http://192.168.1.71:2379
gha_ctl start all -l http://192.168.1.71:2379
4、登录测试
gsql -d postgres -p 5432 -r




