# openGauss
共享存储特性提供备机实时一致性读功能,主备之间页面交换可选择通过RDMA加速。此章节简要描述如何在共享存储中开启RDMA通信功能。
前置条件
开启RDMA功能依赖CX5网卡,并且依赖OCK RPC动态库。
操作步骤
获取OCK RPC包。
从指定openGauss接口人处获取。
部署OCK RPC包。
解压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 ./修改部署脚本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: 同openGauss配置的环境变量GAUSSHOME一致。
- OCK_RPC_LIB_PATH:ock rpc二进制所在路径,共享存储会通过动态加载方式使用,请务必配置正确。
执行部署脚本ock_rpc_opengauss.sh。
sh ock_rpc_opengauss.sh说明: 实现功能:
- 完成集群中OCK RPC二进制包的部署,解压和拷贝。
- 配置好相关的环境变量$OCK_RPC_LIB_PATH。
- 配置集群节点UCX环境变量。(UCX为基于RDMA开发的通信组件,OCK RPC是在UCX基础上开发的适配共享存储的通信组件。)
配置其他参数环境变量。
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
执行1~5完成gs_initdb建库。
修改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 消息通信过程日志记录)执行gs_ctl start命令拉取数据库进程。
gs_ctl start -D /data/ss_test/dn_primary
来源: openGauss社区文档资料
最后修改时间:2023-03-30 18:21:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




