在初体验 vertica 单机版之后,自然要体验一下集群版的,毕竟这才是使用最广泛的安装方式!
更多关于 vertica 可以参考下方文章:
- 《初识 vertica ,看完白皮书,我都发现了啥》
- 《vertica 架构:eon 与企业模式》
- 《初体验:centos7.9 单节点安装 vertica 11 社区版(超详细教程)》
- 《vertica 玩转示例数据库:vmart》
- 《vertica 安装配置 mc(管理控制台)》
🏆 作者写的 《vertica 技术文章合集》,欢迎阅读 👏🏻!
关于 vertica 的安装过程和注意点,在上一篇单机版中已经详细介绍过了,重复的部分我就不再过多赘述。
由于社区版最多只支持 3 节点集群和 1tb 数据量,因此只能演示 3 节点集群安装啦!
废话不多说,直接开装!
1、环境信息
大家手动创建 3 台一模一样的 centos7.9 主机即可,注意主机名和网络配置区分。
节点 | 主机版本 | vertica 版本 | 主机名 | ip 地址 | 内存 | swap | 磁盘容量 |
---|---|---|---|---|---|---|---|
1节点 | centos7.9 | 11.0.1 | vertica1 | 192.168.56.150 | 4g | 2g | 50g |
2节点 | centos7.9 | 11.0.1 | vertica2 | 192.168.56.151 | 4g | 2g | 50g |
3节点 | centos7.9 | 11.0.1 | vertica3 | 192.168.56.152 | 4g | 2g | 50g |
📢 注意: vertica 集群部分主次节点,每一个都可以作为主节点!
2、脚本介绍
👻 我作为一个懒人,就直接使用 vagrant
一键安装 3 台主机了 罒ω罒,需要源码的可以这里直接下载:
🏅 后面我会出 vertica 单节点和3节点集群的 vagrant 一键安装脚本,到时候再公布完整脚本源码!
展示一下源码目录结构和 config/vagrant.yml
:
tree -n
cat config/vagrant.yml
再分享一下环境一键配置脚本 env.sh
:
#!/bin/bash
##configure linux environment for opengauss
echo vertica | passwd --stdin root
sed -i 's/passwordauthentication no/passwordauthentication yes/g' /etc/ssh/sshd_config
## 1.disable firewalld service
systemctl mask firewalld.service
systemctl disable firewalld.service
systemctl stop firewalld.service
echo "firewalld " `systemctl status firewalld|grep active`
echo "1.disable firewalld service completed."
echo -e "\n"
## 2.disable selinux
sed -i 's/selinux=enforcing/selinux=disabled/g' /etc/selinux/config
setenforce 0
getenforce
cat /etc/selinux/config|grep "selinux=disabled"
echo "2.disable selinux completed."
echo -e "\n"
## 3.检查 pts 是否挂载
df -th /dev/pts
echo "3.check pts completed."
echo -e "\n"
## 4.创建用户和组
groupadd -g 1001 verticadba
useradd -u 1001 -g verticadba dbadmin
echo "dbadmin" | passwd dbadmin --stdin
id dbadmin
echo "4.create group and user completed."
echo -e "\n"
## 5.配置 disk readahead
lsblk
/sbin/blockdev --setra 8192 /dev/sda
echo '/sbin/blockdev --setra 8192 /dev/sda' >> /etc/rc.local
chmod x /etc/rc.d/rc.local
echo "5.set disk readahead completed."
echo -e "\n"
## 6. configure yum and install packages
yum install -y gdb mcelog sysstat openssh which dialog chrony expect
rpm -q gdb mcelog sysstat openssh which dialog chrony expect
echo "6.configure yum and install packages completed."
echo -e "\n"
## 7.配置透明大页
## 默认为 always
cat /sys/kernel/mm/transparent_hugepage/enabled
## 如果不是 always,通过以下命令设置
echo always > /sys/kernel/mm/transparent_hugepage/enabled
## 设置开机自启动设置 always
cat<<eof>>/etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo always > /sys/kernel/mm/transparent_hugepage/enabled
fi
eof
## redhat7 或 centos7 需要设置可执行权限
chmod x /etc/rc.d/rc.local
echo "7.enable transparent_hugepage completed."
echo -e "\n"
## 8.配置 i/o scheduler
cat /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sda/queue/scheduler
## 加入开机自启
echo 'echo deadline > /sys/block/sda/queue/scheduler' >> /etc/rc.local
chmod x /etc/rc.d/rc.local
echo "8.set i/o scheduler completed."
echo -e "\n"
## 9.配置 tz(timezone)
yum update -y tzdata
timedatectl set-timezone asia/shanghai
echo "9.set tz completed."
echo -e "\n"
## 10.配置环境变量
cat<<eof>>/home/dbadmin/.bash_profile
export tz="asia/shanghai"
export lang=en_us.utf-8
eof
echo "10.set profile completed."
echo -e "\n"
## 11.关闭 tuned
systemctl stop tuned.service
systemctl disable tuned.service
systemctl status tuned.service
echo "11.disable tuned completed."
echo -e "\n"
## 12.配置 swapiness
cat /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/swappiness
echo vm.swappiness=0 >>/etc/sysctl.conf
sysctl -p
echo "12.disable swappiness completed."
echo -e "\n"
## 13.禁用 defrag(碎片整理)
cat /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat<<eof>>/etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
eof
chmod x /etc/rc.d/rc.local
echo "13.disable defrag completed."
echo -e "\n"
## 14.配置 limits.conf
cat<<eof>>/etc/security/limits.conf
dbadmin - nice 0
dbadmin - nofile 65536
dbadmin - as unlimited
dbadmin - fsize unlimited
dbadmin - nproc 30152
eof
echo "14.set limits completed."
echo -e "\n"
## 15.配置 pam.d
cat<<eof>>/etc/pam.d/su
session required pam_limits.so
eof
echo "15.set pam.d completed."
echo -e "\n"
## 16.配置 sysctl.conf
cat<<eof>>/etc/sysctl.conf
fs.file-max=65536
vm.min_free_kbytes=7980
kernel.pid_max=524288
vm.max_map_count=65536
eof
sysctl -p
echo "16.set sysctl completed."
echo -e "\n"
## 17. configure ssh service
sed -i '/banner/s/^/#/' /etc/ssh/sshd_config
sed -i '/permitrootlogin/s/^/#/' /etc/ssh/sshd_config
echo -e "\n" >> /etc/ssh/sshd_config
echo "banner none " >> /etc/ssh/sshd_config
echo "permitrootlogin yes" >> /etc/ssh/sshd_config
cat /etc/ssh/sshd_config |grep -v ^#|grep -e 'permitroot|banner'
echo "17.configure ssh service completed."
echo -e "\n"
## 18.开启 chrony
systemctl status chronyd
systemctl enable chronyd
chronyc tracking
echo "18.enable chrony completed."
echo -e "\n"
📢 注意: vagrant 安装包含 3 台主机和环境的配置,环境配置的脚本都写在 env.sh
中了,这里篇幅过长不过多展示!
3、环境安装配置
开始安装:
vagrant up
短暂等待几分钟之后,3 台主机就创建好了,并且环境配置都已经配置好了!
使用下面命令连接到 3 个节点检查一下环境配置情况:
vagrant ssh node1 vagrant ssh node2 vagrant ssh node3
3 台主机的 root
用户密码均为 vertica
,dbadmin
用户的密码为 dbadmin
。
环境检查脚本:
## 1.主机名
hostname
## 2.防火墙检查
systemctl status firewalld
## 3.selinux 检查
getenforce
## 4.rpm检查
rpm -q gdb mcelog sysstat openssh which dialog chrony
## 5.pts检查
df -th /dev/pts
## 6.用户和组检查
id dbadmin
## 7.disk readahead检查
/sbin/blockdev --getra /dev/sda
## 8.chrony检查
systemctl status chronyd
## 9.透明大页检查
cat /sys/kernel/mm/transparent_hugepage/enabled
## 10.i/o scheduler检查
cat /sys/block/sda/queue/scheduler
## 11.tz和lang检查
cat /home/dbadmin/.bash_profile
## 12.tuned检查
systemctl status tuned.service
## 13.检查swapiness
cat /proc/sys/vm/swappiness
## 14.defrag检查
cat /sys/kernel/mm/transparent_hugepage/defrag
## 15.limits.conf检查
cat /etc/security/limits.conf
## 16.pam.d检查
cat /etc/pam.d/su
## 17.sysctl检查
sysctl -p
检查每一项都没问题之后就可以继续下一步了!
4、配置互信
分享一个一键配置互信的脚本:《linux 多台主机配置 ssh 互信脚本》
上传互信脚本后,执行互信:
## 前提是先安装 expect
yum install -y expect
cd /soft
chmod x sshtrust.sh
## 填写需要互信的ip地址
cat<<eof>sshhostlist.cfg
192.168.56.150
192.168.56.151
192.168.56.152
eof
## 执行互信
sh sshtrust.sh root vertica /soft/sshhostlist.cfg
## 测试互信
互信配置完毕!
‼️ 正式开始安装前,强烈建议重启三台主机!💥
1、rpm 安装
安装介质已经上传到节点一的 /soft
目录下,在节点一执行 rpm
安装:
cd /soft
rpm -ivh vertica-11.0.1-2.x86_64.rhel6.rpm
📢 注意: 这里 rpm 只需要在节点一执行即可,执行脚本安装时会拷贝到其他节点!
2、脚本静默安装
使用 /opt/vertica/sbin/install_vertica
脚本来静默安装!
1、创建静默安装配置文件
/opt/vertica/sbin/install_vertica --record-config /tmp/vertica-inst.prp --hosts 192.168.56.150,192.168.56.151,192.168.56.152 --accept-eula --ssh-password vertica --dba-user-password dbadmin --rpm /soft/vertica-11.0.1-2.x86_64.rhel6.rpm
2、查看配置文件
cat /tmp/vertica-inst.prp
确认信息没有错误后,开始安装!
3、开始静默安装
/opt/vertica/sbin/install_vertica --config-file /tmp/vertica-inst.prp
如图,先给其他节点安装 rpm 包:
继续等待几分钟时间,安装完成:
软件安装完成后,下面就可以开始创建数据库!
3、mc 创建集群
当然也可以使用 mc 创建集群,参考如下步骤!
1、填写关键信息 集群名
,密码
:
2、获取私钥文件
需要私钥文件才能完成 mc 集群安装向导,由于已经互信过,直接获取私钥:
cd /root/.ssh
ls
将私钥 id_rsa
拷贝至打开 mc 的主机上!
3、选择私钥,继续创建
4、选择 vertca rpm 包
参考文章:《vertica 安装配置 mc(管理控制台)》 安装 mc 控制台!
1、导入集群
由于已经创建集群,这边可以直接导入集群,如果没有没有创建集群,也可以使用 mc 创建集群!
1、输入节点1的 ip 地址 192.168.56.150
2、获取节点1的 api key
cat /opt/vertica/config/apikeys.dat
3、填写 api key
4、确认导入
5、查看集群状态
至此,集群已经成功导入!
2、创建数据库
选择创建数据库:
选择企业模式:
数据库名 lucifer
,密码为空:
确认信息没问题,开始创建:
等待创建结束即可,可能会报一个 license 相关的错误。
点击导入数据库 lucifer
,然后查看:
总体来说,创建过程没有 admintools
创建来的顺滑,也算是一个尝鲜吧!
社区版 3 节点的集群,安装起来也不费劲,跟单机版其实差别不是很大,上手不难!至于关于如何管理集群和数据库,咱们后续文章再讲吧~