he3pg/doc/he3db/deploy.md
shenzheng 6ee97def79 modify postgres.conf and delete old initdata
Code Source From: Self Code
Description:  【Optional】
Jira:  #【Optional】
市场项目编号(名称):【Optional】
2022-09-07 16:10:31 +08:00

4.0 KiB
Raw Permalink Blame History

He3DB部署指南

1、前提

  • 部署PostgreSQL数据库作为he3fs的元数据库。

  • 部署redis服务用来储存数据页与wal的链表关系目前访问redis的url需要指定为“redis://:VlJi7uBV@127.0.0.1:6379/0”。

2、部署存储服务He3FS

2.1 安装客户端

  • 克隆源码
git clone https://gitee.com/he3db/he3fs.git
  • 进入源代码目录
cd he3fs
  • 在master分支下执行编译
make

编译好的he3fs二进制程序位于当前目录然后把该文件放到/usr/local/bin目录下。

2.2 以单机模式运行

  • 创建文件系统

创建文件系统使用客户端提供的format命令格式为

he3fs format --trash-days 0 [command options] META-URL NAME

目前he3fs的META-URL仅支持PostgreSQL其他参数请参考juicefs单机模式快速上手指南

  • 挂载文件系统

挂载文件系统使用客户端提供的mount命令格式为

he3fs mount --redis-meta=redis://:VlJi7uBV@127.0.0.1:6379/0 --enable-clean --he3data=dirname [command options] MEAT-URL MOUNTPOINT

he3fs在juicefs参数的基础上mount的时候增加了三个参数选项

--redis-meta表示存储数据页与wal链表关系的redis库连接串。
--enable-clean表示允许该he3fs的客户端清理redis中的链表关系。
--he3data: 表示推进节点的数据目录的相对路径默认值是data。

其余参数,请参考juicefs单机模式快速上手指南

3、部署计算服务He3PG

目前仅支持he3pg的主节点与推进节点部署在同一台机器并且部署he3pg时需要以非root用户部署。

3.1 安装

  • Requirements

    he3pg与PostgreSQL的编译要求是相同的请参考Requirements

  • 克隆源码

useradd postgres
su - postgres
git clone https://gitee.com/he3db/he3pg.git
  • 进入源代码目录
cd he3pg
  • 在master分支下执行编译
./configure
make
make install

其中configure选项参考CONFIGURE-OPTIONS

3.2 配置主机环境变量

在执行configure命令时设置--prefix参数为/home/postgres/psql14则设置以下参数

export LD_LIBRARY_PATH=/home/postgres/psql14/lib
export PGHOME=/home/postgres/psql14
export PATH=$PGHOME/bin:/home/postgres:$PATH

3.3 初始化数据

在第二步部署存储服务时,以挂载文件系统时指定的挂载点为/data/jfspg为例

mkdir ~/he3data
rm -rf ~/he3data/*
initdb -D  /data/jfspg/pg    //子目录pg为he3fs mount中--he3data配置的目录
cd /data/jfspg/
rsync -av --exclude pg/base --exclude pg/global --exclude pg/pg_wal --exclude pg/pg_tblspc pg ~/he3data                               //拷贝非共享数据给主目录
cd initdata		
cp -r pushconf/* /data/jfspg/pg/     //拷贝推进配置到共享存储目录,用于启动推进节点			
cp -r masterconf/* ~/he3data/pg/          //拷贝主配置数据到本地主库数据目录,用于启动主节点
ln -sf /data/jfspg/pg/base ~/he3data/pg/base
ln -sf /data/jfspg/pg/global ~/he3data/pg/global
ln -sf /data/jfspg/pg/pg_wal ~/he3data/pg/pg_wal
ln -sf /data/jfspg/pg/pg_tblspc ~/he3data/pg/pg_tblspc			//主节点与推进节点共享base、global、pg_wal、pg_tblspc这四个目录

3.4 启动主节点

pg_ctl start -D ~/he3data/pg  
psql -p15432 //在主节点操作
create role repl with replication login password '123456'; //创建流复制用户,如果不创建推进无法启动

3.5 启动推进节点

pg_ctl start -D  /data/jfspg/pg/
psql -p15431  //登录推进可以查看主操作的数据