YashanDB,共享集群模式 部署
为了测试YashanDB的RAC模式性能到底怎样,在测试环境进行了部署,简单记录一下。
0.环境说明
计算节点一
192.168.0.181(业务网)
192.168.10.181(心跳网)
计算节点二
192.168.0.182(业务网)
192.168.10.182(心跳网)
共享存储:
/dev/yas/c1p1, /dev/yas/c1p2 是2块10GB的盘,
/dev/yas/c1p4,/dev/yas/c1p5,/dev/yas/c1p6是3块1.5T的闪存盘
1.安装前准备
1.1 服务器准备
操作系统:CentOS 7.6以上,KylinOS V10,openEuler 22.03
CPU:X86_64,ARM64
文件系统: ext4或xfs
网络:千兆以上以太网,支持TCP和UDP;共享集群内部均要求10GE,不包含RDMA
共享存储:三块及以上:一块YCR盘(1G);一块投票盘(1G);其他为数据盘(50G及以上)
共享集群部署:共享集群部署配置2台服务器+1台共享存储,搭建集群内高可用的多实例数据库。
1.2 操作系统参数调整
# hostnamectl
# hostnamectl set-hostname instance1
# sysctl -a | grep swappiness
# sysctl -w vm.swappiness=0
# echo "vm.swappiness=0">> /etc/sysctl.conf
# cat /proc/sys/net/ipv4/ip_local_port_range
# sysctl -w net.ipv4.ip_local_port_range='32768 60999'
# echo "net.ipv4.ip_local_port_range=32768 60999" >> /etc/sysctl.conf
# sysctl -a|grep vm.max_map_count
# sysctl -w vm.max_map_count=2000000
# echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
# vi /etc/security/limits.conf 后添加
* soft nofile 1048576
* hard nofile 1048576
* soft nproc 1048576
* hard nproc 1048576
* soft rss unlimited
* hard rss unlimited
* soft stack 8192
* hard stack 8192
# grep -i huge /proc/meminfo
# vi /etc/sysctl.conf 后添加
vm.nr_hugepages=204800
vm.nr_overcommit_hugepages=0
## Red Hat Enterprise Linux 内核
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
## 其他内核
# cat /sys/kernel/mm/transparent_hugepage/enabled
vi /etc/default/grub,在GRUB_CMDLINE_LINUX中添加或修改参数transparent_hugepage=never
# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
## BIOS 引导
# grub2-mkconfig -o /boot/grub2/grub.cfg
## UEFI 引导
# grub2-mkconfig -o /boot/efi/EFI/<distro_name>/grub.cfg
# reboot
## 关闭防火墙
# systemctl stop firewalld
## 关闭开机自启
# systemctl disable firewalld
# systemctl status sshd.service
# systemctl start sshd.service
清理共享内存
# ipcrm -a
1.3 创建安装用户
# useradd -d /home/yashan -m yashan
# passwd yashan
## 对root用户赋权并打开/etc/sudoers文件
# cd /etc
# ll sudoers
# chmod +w sudoers
# vi /etc/sudoers ,在文件的最后添加如下内容后保存退出
yashan ALL=(ALL)NOPASSWD:ALL
# chmod -w sudoers
$ groupadd YASDBA
$ usermod -a -G YASDBA yashan
1.4 UDEV绑定LUN
# cd ~
# vi genDevRuleByUUID.sh 内容如下:
#!/bin/bash
curDir=$(cd "$(dirname "$0")";pwd)
rm -f $curDir/yashan-device-rule.rules
for i in storraid5 storraid10 storraid15;
do
str1="$i:`udevadm info --query=all --name=/dev/mapper/$i | grep DM_UUID`"
str2=${str1#*=}
echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${str2}\",SYMLINK+=\"yas/${i}\",OWNER=\"yashan\",GROUP=\"YASDBA\",MODE=\"0666\"" '' >> $curDir/yashan-device-rule.rules
done
# sh ./genDevRuleByUUID.sh
最终生成的文件,内容如下所示:
# cat yashan-device-rule.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-366c146e100955f46eaa458fc0000006b", SYMLINK+="yas/c1p1",OWNER="yashan",GROUP="YASDBA",MODE="0666"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-366c146e100955f46eaa49e8c0000006d",SYMLINK+="yas/c1p2",OWNER="yashan",GROUP="YASDBA",MODE="0666"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-366c146e100955f46eaa4c6040000006f", SYMLINK+="yas/c1p4",OWNER="yashan",GROUP="YASDBA",MODE="0666"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-366c146e100955f46eaa49e8c0000006c",SYMLINK+="yas/c1p5",OWNER="yashan",GROUP="YASDBA",MODE="0666"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-366c146e100955f46eaa4c6040000006h",SYMLINK+="yas/c1p6",OWNER="yashan",GROUP="YASDBA",MODE="0666"
# cp yashan-device-rule.rules /etc/udev/rules.d/yashan-device-rule.rules
# reboot
# ls -l /dev/yas/*
# ls -l /dev/nvme*
1.5 下载软件包
# su - yashan
$ cd
$ mkdir install
$ cd /home/yashan/install
$ tar zxf yashandb-23.2.3.100-linux-x86_64.tar.gz
1.6 创建软件安装目录
# mkdir -p /data/yashan/yasdb_home
# mkdir -p /data/yashan/yasdb_data
# chown -R yashan:yashan /data
2. 软件安装
2.1命令行方式安装
2.1.1 生成部署文件
$ cd /home/yashan/install
$ ./bin/yasboot package ce gen --cluster yashandb -u yashan -p htwelcome1! --ip 192.168.0.181,192.168.0.182 --port 22 --install-path /data/yashan/yasdb_home --data-path /data/yashan/yasdb_data --begin-port 1688 --node 2 --data /dev/yas/c1p4,/dev/yas/c1p5,/dev/yas/c1p6 --vote /dev/yas/c1p1 --ycr /dev/yas/c1p2
执行完毕后,当前目录下将生成yashandb.toml和hosts.toml两个配置文件。
根据实际需要调整yashandb.toml配置文件中的安装参数,可在group级别设置YashanDB的所有建库参数,可在node级别设置YashanDB的所有配置参数。
2.1.2 执行安装
$ cd /home/yashan/install
$ ./bin/yasboot package install -t hosts.toml -i yashandb-23.2.3.100-linux-x86_64.tar.gz
2.1.3 数据库部署
$ ./bin/yasboot cluster deploy -t yashandb.toml --yfs-force-create --child
2.1.4 配置环境变量
# 部署命令成功执行后将会在$YASDB_HOME目录下的conf文件夹中生成<<集群名称>>.bashrc环境变量文件
$ cd /data/yashan/yasdb_home/yashandb/23.2.3.100/conf
$ cat yashandb.bashrc >> ~/.bashrc
$ source ~/.bashrc
2.1.5 验证
$ yasboot cluster password set -n welcome1 -c yashandb
$ yasboot cluster status -c yashandb -d
$ yasql sys/"welcome1"@192.168.0.181:1688
SQL> SELECT database_name FROM v$database;
SQL> CREATE USER test IDENTIFIED BY welcome1;
SQL> GRANT dba TO test;
=============================================
卸载:
$ cd ~/install
$ ./bin/yasboot cluster clean --cluster yashandb --purge
$ ./bin/yasboot package uninstall --cluster yashandb
清除每个服务器上~/.bashrc中与YashanDB有关的环境变量
dd if=/dev/zero of=/dev/yas/c1p1 bs=1M count=1000
dd if=/dev/zero of=/dev/yas/c1p2 bs=1M count=1000
dd if=/dev/zero of=/dev/yas/c1p4 bs=1M count=1000
dd if=/dev/zero of=/dev/yas/c1p5 bs=1M count=1000
dd if=/dev/zero of=/dev/yas/c1p6 bs=1M count=1000