GBase 8a
安装配置
文章

多实例安装部署

发表于2024-12-30 17:50:4253次浏览4个评论

1、检查服务器环境

修改主机名,设置完断开终端重新连接

hostnamectl set-hostname gbase1

查看磁盘分区和格式,如果磁盘没有挂载需要挂载

df -Th

检查防火墙

systemctl status firewalld.service

没有安全要求,关闭防火墙

systemctl stop firewalld.service

没有安全要求,关闭开机自启动防火墙

systemctl disable firewalld.service

如果有安全要求,开放防火墙端口

firewall-cmd --permanent --add-port=21/tcp;

firewall-cmd --permanent --add-port=22/tcp;

firewall-cmd --permanent --add-port=5050/tcp;

firewall-cmd --permanent --add-port=5258/tcp;

firewall-cmd --permanent --add-port=5288/tcp;

firewall-cmd --permanent --add-port=5493/udp;

firewall-cmd --permanent --add-port=5678/tcp;

firewall-cmd --permanent --add-port=5918/tcp;

firewall-cmd --permanent --add-port=5918/udp;

firewall-cmd --permanent --add-port=5919/tcp;

firewall-cmd --permanent --add-port=5919/udp;

firewall-cmd --permanent --add-port=6066-6166/tcp;

firewall-cmd --permanent --add-port=6268/tcp;

firewall-cmd --permanent --add-port=6957/tcp;

firewall-cmd --permanent --add-port=8088/tcp;

关闭selinux

vim /etc/sysconfig/selinux

enforcing改为disabled

查看cpu核数

lscpu

查看内存

free -h

查看muna个数(多少列)

numactl -H

内存大于256G,CPU 逻辑核数大于32一般可以考虑多实例部署,服务器一般部署两个或四个实例,每个实例可使用的内存不低于32GB。

256G内存,40核部署两实例;512G内存,56核部署四实例。

在4个NUMA节点的服务器上,每个NUMA对应一个实例;在8个或更多NUMA节点的服务器上,2个或多个NUMA节点对应一个实例。

查看当前CPU的全部主频信息,看频率范围和当前频率以及是否支持性能模式

cpupower -c all frequency-info

设置当前CPU为性能模式

cpupower -c all frequency-set -g performance

设置当前CPU为节能模式

cpupower -c all frequency-set -g powersave

查看当前CPU模式,一般调为性能模式(performance)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

2、安装多实例

查看当前ip所在的网卡名字,一般为ens33,bond0等

ifconfig

增加虚拟ip,根据已有的IP进行修改,网关在什么网段,广播范围选什么,第一行是添加虚拟IP,第二行是把这个过程添加到启动项,更方便一点。

#增加物理IP也行,添加配置文件然后service network restart

ifconfig bond0:0 10.10.3.123 netmask 255.255.0.0 broadcast 10.10.255.255 up

echo 'ifconfig bond0:0 10.10.3.123 netmask 255.255.0.0 broadcast 10.10.255.255 up' >> /etc/rc.d/rc.local

关闭IP

ifconfig bond0:0 down

3、安装集群

所有节点,添加linux安装用户

useradd gbase

passwd gbase

所有节点,添加安装目录位置,放在增加的盘上

mkdir /opt/gbase

所有节点,给添加位置赋权

chown -R gbase: /opt/gbase

主节点,拷贝集群安装包到安装目录位置,解压,解压之后出现gcinstall目录

tar xjf GBase8a_MPP_Cluster-License-9.5.3.xxx-redhatxx-x86_64.tar.bz2

主节点,进入gcinstall目录后修改demo.options文件,installPrefix为安装位置,coordinateHost为管理节点IP,dataHost为数据节点IP,gcwareHost与coordinateHost保持一致

installPrefix= /opt/gbase

coordinateHost = 172.16.3.230,172.16.3.231,172.16.3.232

coordinateHostNodeID = 230,231,232

dataHost = 172.16.3.230,172.16.3.231,172.16.3.232

#existCoordinateHost =

#existDataHost =

#existGcwareHost=

gcwareHost = 172.16.3.230,172.16.3.231,172.16.3.232

gcwareHostNodeID = 230,231,232

dbaUser = gbase

dbaGroup = gbase

dbaPwd = 'gbasepoc123'

rootPwd = ''

#dbRootPwd = ''

#rootPwdFile = rootPwd.json

#characterSet = utf8

#sshPort = 22

使用 root 用户将主节点 gcinstall 目录下的 SetSysEnv.py 文件拷贝到集群所有节点服务器上。所有节点执行该文件。--cgroup为使用资源管理,--installPrefix为安装位置

scp /opt/gbase/gcinstall/SetSysEnv.py root@192.168.159.132:/opt/gbase

python SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup

主节点使用root用户在/root目录下,一路enter过去

ssh-keygen

主节点用gbase用户回到gcinstall下,获取ESN码,拷贝ESN码申请邮件,获取license

./getesn.py --silent=demo.options

主节点在gcinstall下用gbase用户安装

./gcinstall.py --silent=demo.options --license_file=gbase.lic

主节点在gcinstall下用gbase用户分片

gcadmin distribution gcChangeInfo.xml p 1 d 1

初始化

gccli

initnodedatamap;

4、numa绑定

#先一个节点进行操作,后续会进行拷贝同步

查看具体是哪个gcluster起到作用

which gcluster_services

拷贝刚才查的gcluster_services,留个备份

cp /opt/gbaseup/10.10.3.235/gnode/server/bin/gcluster_services /opt/gbaseup/10.10.3.235/gnode/server/bin/gcluster_services_bak

修改该文件

vim /opt/gbaseup/10.10.3.235/gnode/server/bin/gcluster_services

1个numa节点对应一个实例样例如下:

找到: $2 > /dev/null 2>&1 & # waiting for start completely 注释掉第一行后添加代码: #$2 > /dev/null 2>&1 & if [ $1 = 'gbase' ];then count_numa=$(($(($3))%2)) echo "--cpunodebind=+$count_numa --membind=+$count_numa" numactl --cpunodebind=+"${count_numa}" --membind=+"${count_numa}" $2 > /dev/null 2>&1 & sleep 10 else $2 > /dev/null 2>&1 & fi # waiting for start completely 找到: # start data service if [ $node_type == 2 -o $node_type == 3 ]; then for ((count=0; count<${#DataServerName[@]}; count++)) do for inst in `echo $GBASE_INSTANCES|sed 's/:/\n/g'|sort|uniq` do if [ $inst != "" ];then #echo $inst . $inst declare -a DataServerBin DataServerBin[0]=$GBASE_HOME/bin/gbased DataServerBin[1]=$GBASE_HOME/bin/gc_sync_server #echo ${DataServerBin[count]} __start ${DataServerName[count]} ${DataServerBin[count]} if [ "$?" != "$RET_SUCCESS" ]; then ret_start=$RET_START_ALL_ERROR fi fi done done fi 修改为:(需要添加或修改带*的行) # start data service if [ $node_type == 2 -o $node_type == 3 ]; then for ((count=0; count<${#DataServerName[@]}; count++)) do * instance_no=0 for inst in `echo $GBASE_INSTANCES|sed 's/:/\n/g'|sort|uniq` do if [ $inst != "" ];then #echo $inst . $inst declare -a DataServerBin DataServerBin[0]=$GBASE_HOME/bin/gbased DataServerBin[1]=$GBASE_HOME/bin/gc_sync_server #echo ${DataServerBin[count]} * __start ${DataServerName[count]} ${DataServerBin[count]} ${instance_no} if [ "$?" != "$RET_SUCCESS" ]; then ret_start=$RET_START_ALL_ERROR fi * ((instance_no++)) fi done done fi 2个numa节点对应一个实例样例 找到: $2 > /dev/null 2>&1 & # waiting for start completely 修改为: #$2 > /dev/null 2>&1 & if [ $1 = 'gbase' ];then count_numa=$(($(($3))%2)) echo "--cpunodebind=+$count_numa,$((${count_numa}+4)) --membind=+$count_numa,$(($count_numa+4))" numactl --cpunodebind=+"${count_numa},$((${count_numa}+4))" --membind=+"${count_numa},$((${count_numa}+4))" $2 > /dev/null 2>&1 & sleep 10 else $2 > /dev/null 2>&1 & fi # waiting for start completely 找到: # start data service if [ $node_type == 2 -o $node_type == 3 ]; then for ((count=0; count<${#DataServerName[@]}; count++)) do for inst in `echo $GBASE_INSTANCES|sed 's/:/\n/g'|sort|uniq` do if [ $inst != "" ];then #echo $inst . $inst declare -a DataServerBin DataServerBin[0]=$GBASE_HOME/bin/gbased DataServerBin[1]=$GBASE_HOME/bin/gc_sync_server #echo ${DataServerBin[count]} __start ${DataServerName[count]} ${DataServerBin[count]} if [ "$?" != "$RET_SUCCESS" ]; then ret_start=$RET_START_ALL_ERROR fi fi done done fi 修改为: # start data service if [ $node_type == 2 -o $node_type == 3 ]; then for ((count=0; count<${#DataServerName[@]}; count++)) do * instance_no=0 for inst in `echo $GBASE_INSTANCES|sed 's/:/\n/g'|sort|uniq` do if [ $inst != "" ];then #echo $inst . $inst declare -a DataServerBin DataServerBin[0]=$GBASE_HOME/bin/gbased DataServerBin[1]=$GBASE_HOME/bin/gc_sync_server #echo ${DataServerBin[count]} * __start ${DataServerName[count]} ${DataServerBin[count]} ${instance_no} if [ "$?" != "$RET_SUCCESS" ]; then ret_start=$RET_START_ALL_ERROR fi * ((instance_no++)) fi done done fi 重启各节点 cexec 'killall -9 gbased gclusterd gcrecover gcmonit gcmmonit ; gcluster_services all stop ; gcware_services all stop' cexec 'gcluster_services all start ; gcware_services all start' 清缓存 cexec 'sync' cexec 'echo 3 > /proc/sys/vm/drop_caches' 启动服务时,可以看到,代表启动成功 [gbase@gbase233 gcinstall]$ gcluster_services all restart Stopping gcrecover : [ OK ] Stopping gcluster : [ OK ] Stopping gbase : [ OK ] Stopping gbase : [ OK ] Stopping syncserver : [ OK ] Stopping syncserver : [ OK ] Starting gbase : --cpunodebind=+0 --membind=+0 [ OK ] Starting gbase : --cpunodebind=+1 --membind=+1 [ OK ] Starting syncserver : [ OK ] Starting syncserver : [ OK ] Starting gcluster : [ OK ] Starting gcrecover : [ OK ] 查看numa绑定状态: numastat `pidof gbased` 重启后发现gcluster未启动成功 查system.log发现报错: file check failed 修改gc层gbase_8a_gcluster.cnf 在[gbased]下添加skip_file_check=1

 

评论

登录后才可以发表评论
用户头像
levvel发表于 8个月前
海纳百川有容乃大,壁立千仞无欲则刚
崔哥发表于 5个月前
梅花不肯傍春光,自向深冬著艳阳。龙笛远吹胡地月,燕钗初试汉宫妆。风虽强暴翻添思,雪欲侵凌更助香。应笑暂时桃李树,盗天和气作年芳。
新疆油腻大叔发表于 2个月前
三人行必有我师
shepherd发表于 2个月前
来了