VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

OCK-RDMA使用示例

资源池化特性提供备机实时一致性读功能,主备之间页面交换可选择通过RDMA加速。本章节介绍了如何在资源池化中开启RDMA通信功能。

前置条件

开启RDMA功能依赖CX5网卡,并且依赖OCK RPC动态库。

操作步骤

步骤1: 获取OCK RPC包。

从指定Vastbase接口人处获取。

步骤2: 部署OCK RPC包。

1、解压OCK RPC包。

tar -zxf OCK_platform_rpc_22.0.0_EulerOS-aarch64.tar.gz
cd OCK_platform_rpc_22.0.0_EulerOS-aarch64_release
tar -zxf OCK_platform_rpc_EulerOS_aarch64.tar.gz
tar -zxf OCK_platform_rpc_sbin.tar.gz
cp rpc_sbin/ock_rpc_opengauss.sh ./

2、修改部署脚本ock_rpc_opengauss.sh参数。

# Deployment user, which is the same as the opengauss user. 
# It is a non-root user. Ensure that this user exists on all servers.
USER_NAME="${USER}"

# Deployment server, which can contain native
HOST_IP=(30.30.xx.7 30.30.xx.8)

# Deployment package. The package name starts with OCK_platform_rpc.
PACKAGES="OCK_platform_rpc_aarch64_EulerOS.tar.gz"

# Specifies the path from the SCP package to the server. 
# If the path does not exist, the path is automatically created.
PATH_TO_SCP="/home/ock/test"

# Opengauss environment variable
GAUSSHOME="/home/ock/mppdb_temp_install"

# OCK_RPC environment variable. Do not change
OCK_RPC_LIB_PATH="${GAUSSHOME}/lib"

脚本中涉及参数如下:

  • USER_NAME:DN所在机器用户名。
  • HOST_IP:集群机器ip,包括本机机器。
  • PACKAGES:获取到的ock rpc二进制包名(与机器操作系统架构匹配)。
  • PATH_TO_SCP: 拷贝路径。
  • GAUSSHOME:同Vastbase配置的环境变量GAUSSHOME一致。
  • OCK_RPC_LIB_PATH:ock rpc二进制所在路径,资源池化会通过动态加载方式使用,请务必配置正确。

3、执行部署脚本ock_rpc_opengauss.sh。

sh ock_rpc_opengauss.sh

实现功能:

  • 完成集群中OCK RPC二进制包的部署,解压和拷贝。
  • 配置好相关的环境变量$OCK_RPC_LIB_PATH。
  • 配置集群节点UCX环境变量。(UCX为基于RDMA开发的通信组件,OCK RPC是在UCX基础上开发的适配资源池化的通信组件。)

4、配置其他参数环境变量。

export UCX_ZCOPY_THRESH="32768"
export UCX_USE_MT_MUTEX=n
export UCX_NET_DEVICES=mlx5_1:1

参数说明:

  • UCX_ZCOPY_THRESH:优化参数,RDMA传输过程中减少内存申请。

    单位:byte。

    默认值:32768。(可选参数,建议默认值)。

  • UCX_USE_MT_MUTEX:优化参数,RDMA发送过程中保证数据一致性锁的类型。

    n:原子锁;y:互斥锁。(可选参数。建议使用原子锁,性能较好)。

  • UCX_NET_DEVICES:UCX配置参数,用于指定网卡端口,可安装mlnx_ofed驱动,使用ibdev2netdev命令查看当前RDMA活动端口。(建议指定活动端口)。

环境变量配置完成之后,执行source ~/.bashrc

步骤3: 执行手动安装示例中的1~5完成vb_initdb建库。

步骤4: 修改postgresql.conf配置文件。

配置ss_interconnect_type=RDMA,添加配置项ss_rdma_work_config与ss_ock_log_path。参数说明及配置请参见资源池化参数

示例:

ss_interconnect_type=RDMA
ss_rdma_work_config ='6 10'     (OCK RDMA使用用户态poll方式,并绑定cpu [6 10],空格分开)
ss_ock_log_path=“/home/ock_test/log”(OCK RDMA 消息通信过程日志记录)

步骤5: 执行vb_ctl start命令拉取数据库进程。

vb_ctl start -D /data/ss_test/dn_primary