快速搭建一套PolarDB共享存储集群

环境说明

名称说明
操作系统RockyLinux9.3
CPU核心数4
内存4GB
存储本地20GB+共享盘20GB
主机数量3台

1. 安装PolarDB数据库软件

PolarDB官方文档

这里使用中启乘数的一键安装命令,三台机器上都来一下:

wget -qO /tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash /tmp/clup.sh db install

选择安装的数据库,输入5然后回车

请选择要安装的数据库:
1) PostgreSQL 11
2) PostgreSQL 12
3) PostgreSQL 13
4) PostgreSQL 14
5) PolarDB
按 'q' 退出
请输入选择: 5

安装的目录

/usr/polardb

我这里的环境发现还缺一个依赖libxerces-c-3.2.so,需要安装一下

dnf install -y epel-release

dnf install -y xerces-c-devel

检查环境是否缺少依赖的命令

ldd /usr/polardb/bin/postgres 

如果发现有not found的则说明缺少相关依赖,先安装一下。

2. 创建共享盘并挂载

这里我使用的是中启乘数的虚拟机管理软件CSYun来创建共享磁盘的。关于部署CSYun的文档:

这里记录下在CSYun上的创建过程,其他的虚拟机管理软件可以自己查一下怎么创建共享盘并挂载。

  1. 我使用的lv卷组管理,这里修改数据盘池的路径为vg的名称

在这里插入图片描述

  1. 创建共享盘,有一点需要注意,PolarDB共享存储用到了pfs磁盘管理工具,其会对磁盘进行切分,以10GB为单位,所以这里共享盘的大小必须是10GB的整数倍。

在这里插入图片描述

在这里插入图片描述

  1. 新建的磁盘默认是独享的,需要先卸载一下,然后再通过共享来挂载

在这里插入图片描述
在这里插入图片描述

  1. 在剩余的两台机器上挂载磁盘

在这里插入图片描述

3. 配置磁盘的udev规则

下面的这些操作需要在三台机器上都执行一遍。

先配置磁盘的udev规则,一是避免重启机器后磁盘名发生变化,二是Pfs需要设置特定的磁盘名称。

查看磁盘的ID_PATH,找到并记录下共享盘的ID_PATH

lsblk
ls -l /dev/disk/by-path
[root@PG01 polardb]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   20G  0 disk 
sr0     11:0    1 1024M  0 rom  
sr1     11:1    1 1024M  0 rom  
sr2     11:2    1 1024M  0 rom  
sr3     11:3    1 1024M  0 rom  
vda    253:0    0   20G  0 disk 
├─vda1 253:1    0    2M  0 part 
└─vda2 253:2    0   20G  0 part /
[root@PG01 polardb]# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 pci-0000:01:00.0-scsi-0:0:0:0 -> ../../sr0
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 pci-0000:01:00.0-scsi-0:0:0:1 -> ../../sr3
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 pci-0000:01:00.0-scsi-0:0:0:2 -> ../../sr2
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 pci-0000:01:00.0-scsi-0:0:0:3 -> ../../sr1
lrwxrwxrwx. 1 root root  9 Sep  2 23:09 pci-0000:01:00.0-scsi-0:0:4:0 -> ../../sda
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 pci-0000:04:00.0 -> ../../vda
lrwxrwxrwx. 1 root root 10 Sep  2 22:18 pci-0000:04:00.0-part1 -> ../../vda1
lrwxrwxrwx. 1 root root 10 Sep  2 22:18 pci-0000:04:00.0-part2 -> ../../vda2
lrwxrwxrwx. 1 root root  9 Sep  2 22:18 virtio-pci-0000:04:00.0 -> ../../vda
lrwxrwxrwx. 1 root root 10 Sep  2 22:18 virtio-pci-0000:04:00.0-part1 -> ../../vda1
lrwxrwxrwx. 1 root root 10 Sep  2 22:18 virtio-pci-0000:04:00.0-part2 -> ../../vda2

从上面的输出结果看,我的共享盘是sda

然后创建udev规则,创建并编辑文件/etc/udev/rules.d/nvme1n1.rules

ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_PATH}=="pci-0000:01:00.0-scsi-0:0:4:0", SYMLINK+="nvme1n1"

注意:这里SYMLINK是为磁盘取的别名,Pfs需要以nvme开头来命名。

使udev生效

/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --type=devices --action=change

查看是否生效

[root@PG01 polardb]# ll /dev/nvme1n1
lrwxrwxrwx. 1 root root 3 Sep  3 11:37 /dev/nvme1n1 -> sda

4. 创建PolarDB共享存储集群

共享存储集群,防脑裂需要配置ipmi命令在节点故障时强制重启,但是这个命令需要配置在物理机上,这里用的是虚拟机,所以只配置了一个/bin/true,不起作用,做故障测试时,需要注意不能简单地制造节点故障,否则自动切换时会导致脑裂。可以尝试重启机器或者将这里改为/bin/false,且忽略reset执行结果设置为否,这样发生节点异常时,集群不会发生自动切换,我们可以确认环境后手工去切。

创建集群所使用的数据库管理软件叫CLup,软件部署的相关文档:

登录到CLup点击集群定义->创建集群->创建PolarDB共享存储集群,这里填写相关信息,默认的数据库系统用户为polardb,这里填写的数据目录是本地存储的路径:

在这里插入图片描述

继续填写一些集群数据库的信息

在这里插入图片描述

然后填写上面创建的共享盘名称

在这里插入图片描述

点击检测,如果没有问题就会弹出下面两个参数,可以修改下polar_datadir,这个是共享存储中的数据目录,使用默认值也行。然后点击格式化

在这里插入图片描述

格式化完成后点击下一步,后面是集群探测信息和一些数据库参数的配置,我这里使用的是默认值,后面直接点击提交

在这里插入图片描述

看到Success说明集群搭建好了,我们进入集群详情页查看一下

在这里插入图片描述

查看下共享磁盘的数据目录

[polardb@PG01 ~]$ pfs -C disk ls /nvme1n1/shared_data/
   Dir  1     512               Tue Sep  3 13:42:23 2024  base
   Dir  1     7424              Tue Sep  3 13:42:23 2024  global
   Dir  1     0                 Tue Sep  3 13:42:24 2024  pg_tblspc
   Dir  1     512               Tue Sep  3 13:42:30 2024  pg_wal
   Dir  1     384               Tue Sep  3 13:42:26 2024  pg_logindex
   Dir  1     0                 Tue Sep  3 13:42:24 2024  pg_twophase
   Dir  1     128               Tue Sep  3 13:42:24 2024  pg_xact
   Dir  1     0                 Tue Sep  3 13:42:24 2024  pg_commit_ts
   Dir  1     256               Tue Sep  3 13:42:24 2024  pg_multixact
   Dir  1     512               Tue Sep  3 13:42:24 2024  pg_csnlog
   Dir  1     256               Tue Sep  3 13:42:25 2024  polar_dma
   Dir  1     512               Tue Sep  3 13:42:33 2024  polar_fullpage
  File  1     32                Tue Sep  3 13:42:25 2024  RWID
   Dir  1     256               Tue Sep  3 13:42:37 2024  pg_replslot
total 8192 

5. 登录数据库

可以使用CLup带的Psql登录功能

在这里插入图片描述

点击后直接进入到数据库里面

在这里插入图片描述

或者使用自己的ssh工具登录

su - polardb

[polardb@PG01 ~]$ psql -dpostgres
psql (11.9)
Type "help" for help.

postgres=# \l
                                 List of databases
     Name      |  Owner  | Encoding |  Collate   |   Ctype    |  Access privileges  
---------------+---------+----------+------------+------------+---------------------
 polardb_admin | polardb | UTF8     | en_US.UTF8 | en_US.UTF8 | =T/polardb         +
               |         |          |            |            | polardb=CTc/polardb
 postgres      | polardb | UTF8     | en_US.UTF8 | en_US.UTF8 | 
 template0     | polardb | UTF8     | en_US.UTF8 | en_US.UTF8 | =c/polardb         +
               |         |          |            |            | polardb=CTc/polardb
 template1     | polardb | UTF8     | en_US.UTF8 | en_US.UTF8 | =c/polardb         +
               |         |          |            |            | polardb=CTc/polardb
(4 rows)

后面就可以愉快的搞PolarDB的测试了。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值