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

posted @ 2024-09-05 18:59  石云华  阅读(13)  评论(0编辑  收藏  举报