目录
一、介绍
二、环境信息
三、下载地址
四、安装步骤
0、创建操作系统用户
1、安装路径创建
2、移动文件
3、foundationdb.conf配置
4、fdb.cluster配置
5、修改权限
6、systemd服务配置
7、system重载配置文件
8、启动服务并开机自启
9、多节点情况
10、连接客户端
11、数据库创建
12、设置coordinator
13、拷贝fdb.cluster 到其他节点
14、所有节点重启服务
15、冗余模式修改
16、查看集群状态
一、介绍
FoundationDB 分布式数据库:
-
多模型数据存储。FoundationDB 是多模型的,这意味着可以在单个数据库中存储多种类型的数据。所有数据都安全地存储、分发和复制在键值存储组件中。
-
易于扩展和容错。FoundationDB 易于安装、扩展和管理。它具有一个分布式架构,可以优雅地横向扩展,并处理故障,同时像单个 ACID 数据库一样运行。
-
行业领先的性能。FoundationDB 在商用硬件上提供了惊人的性能,允许您以低成本支持非常重的负载。
-
准备投入生产。FoundationDB 已经在生产环境中运行多年,并吸取了经验教训。支持 FoundationDB 是一个基于确定性仿真引擎的无与伦比的测试系统。
二、环境信息
名称 | 值 |
CPU | Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz |
操作系统 | CentOS Linux release 7.9.2009 (Core) |
内存 | 4G |
逻辑核数 | 4 |
FoundationDB版本 | 7.3.47 |
集群节点1IP | 192.168.142.10 |
集群节点2IP | 192.168.142.12 |
三、下载地址
《Github-Foundationdb》
四、安装步骤
0、创建操作系统用户
如果是多节点集群,每个节点上都需要执行如下操作。
[root@czg0 package]# groupadd foundationdb -g 2002[root@czg0 package]# useradd foundationdb -g 2002 -u 2002
1、安装路径创建
如果是多节点集群,每个节点上都需要执行如下操作。
[root@czg2 /]# su - foundationdb[foundationdb@czg0 ~]$ mkdir -p /opt/GCDW/FoundationdDb[foundationdb@czg0 ~]$ cd /opt/GCDW/FoundationdDb/[foundationdb@czg0 FoundationdDb]$ mkdir Log[foundationdb@czg0 FoundationdDb]$ mkdir Data[foundationdb@czg0 FoundationdDb]$ mkdir Config[foundationdb@czg0 FoundationdDb]$ mkdir Bin[foundationdb@czg0 FoundationdDb]$ mkdir Libs[foundationdb@czg0 FoundationdDb]$ mkdir Tmp[foundationdb@czg0 FoundationdDb]$ ll
总用量 0
drwxr-xr-x 2 foundationdb foundationdb 89 6月 28 09:47 Bin
drwxr-xr-x 2 foundationdb foundationdb 50 6月 28 10:03 Config
drwxr-xr-x 2 foundationdb foundationdb 6 6月 27 18:06 Data
drwxr-xr-x 2 foundationdb foundationdb 25 6月 28 09:49 Libs
drwxr-xr-x 2 foundationdb foundationdb 6 6月 27 18:05 Log
drwxrwxr-x 2 foundationdb foundationdb 6 6月 28 10:07 Tmp[foundationdb@czg0 FoundationdDb]$ pwd
/opt/GCDW/FoundationdDb
2、移动文件
如果是多节点集群,每个节点上都需要执行如下操作。
[root@czg0 Release]# ll
总用量 305312
-rw-r--r-- 1 root root 27080912 6月 27 09:48 fdbbackup.x86_64
-rw-r--r-- 1 root root 26458592 6月 27 09:49 fdbcli.x86_64
-rw-r--r-- 1 root root 25831368 6月 27 09:50 fdbdecode.x86_64
-rw-r--r-- 1 root root 808968 6月 27 09:48 fdbmonitor.x86_64
-rw-r--r-- 1 root root 96429344 6月 27 09:57 fdbserver.x86_64
-rw-r--r-- 1 root root 75027997 6月 27 09:59 foundationdb-clients-7.3.47-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 37322008 6月 27 09:59 foundationdb-server-7.3.47-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 23663056 6月 27 09:59 libfdb_c.x86_64.so[root@czg0 Release]# mv fdbbackup.x86_64 /opt/GCDW/FoundationdDb/Bin/fdbbackup[root@czg0 Release]# mv fdbcli.x86_64 /opt/GCDW/FoundationdDb/Bin/fdbcli[root@czg0 Release]# mv fdbdecode.x86_64 /opt/GCDW/FoundationdDb/Bin/fdbdecode[root@czg0 Release]# mv fdbmonitor.x86_64 /opt/GCDW/FoundationdDb/Bin/fdbmonitor[root@czg0 Release]# mv fdbserver.x86_64 /opt/GCDW/FoundationdDb/Bin/fdbserver[root@czg0 Release]# mv libfdb_c.x86_64.so /opt/GCDW/FoundationdDb/Libs/libfdb_c.so
3、foundationdb.conf配置
如果是多节点集群,每个节点上都需要执行如下操作。
[foundationdb@czg0 Config]$ pwd
/opt/GCDW/FoundationdDb/Config[foundationdb@czg0 Config]$ cat foundationdb.conf
[fdbmonitor]
user = foundationdb[general]
cluster-file = /opt/GCDW/FoundationdDb/Config/fdb.cluster
restart-delay = 60[fdbserver]
command = /opt/GCDW/FoundationdDb/Bin/fdbserver
datadir = /opt/GCDW/FoundationdDb/Data/$ID
logdir = /opt/GCDW/FoundationdDb/Log/
public-address = auto:$ID
listen-address = public[fdbserver.4500]
class=stateless
[fdbserver.4501]
class=transaction
[fdbserver.4502]
class=storage
[fdbserver.4503]
class=stateless
4、fdb.cluster配置
如果是多节点集群,每个节点上都需要执行如下操作。
格式:
Description:Id@Ip:Port,Ip:Port,...
名称 | 描述 |
Description | 描述信息,包含数字和字母以及下划线。 |
Id | 集群ID,包含字母数字字符(A-Z、a-z、0-9)的任意值。 |
Ip | 地址。 |
Port | 端口。 |
配置:
[foundationdb@czg0 Config]$ pwd
/opt/GCDW/FoundationdDb/Config[foundationdb@czg0 Config]$ cat fdb.cluster
MyFdb:Sun@192.168.142.10:4500
5、修改权限
如果是多节点集群,每个节点上都需要执行如下操作。
[root@czg0 FoundationdDb]# chown -R foundationdb:foundationdb /opt/GCDW/FoundationdDb[root@czg0 FoundationdDb]# chmod -R 755 /opt/GCDW/FoundationdDb
6、systemd服务配置
如果是多节点集群,每个节点上都需要执行如下操作。
[root@czg0 Release]# cat /etc/systemd/system/Foundationdb.service
[Unit]
Description=FoundationDB (KV storage for cnch metastore)[Service]
User=foundationdb
Group=foundationdb
Restart=always
RestartSec=30
TimeoutStopSec=600
ExecStart=/opt/GCDW/FoundationdDb/Bin/fdbmonitor --conffile /opt/GCDW/FoundationdDb/Config/foundationdb.conf --lockfile /opt/GCDW/FoundationdDb/Tmp/fdbmonitor.pid[Install]
WantedBy=multi-user.target
7、system重载配置文件
[root@czg0 Release]# systemctl daemon-reload
8、启动服务并开机自启
[root@czg0 Release]# systemctl enable Foundationdb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/Foundationdb.service to /etc/systemd/system/Foundationdb.service.[root@czg0 Release]# systemctl start Foundationdb.service
9、多节点情况
如果是多节点集群,新节点重复上面的步骤0-8。
10、连接客户端
在两台虚机上安装完成之后,我们需要连接它们组建成一个集群。现在回到第一台节点,使用 fdbcli 连接到 FDB。
因为集群是不可用的,所以连接时会有一段时间等待,大家不要退出。
[foundationdb@czg0 Bin]$ ./fdbcli -C ../Config/fdb.cluster
Using cluster file `../Config/fdb.cluster'.The database is unavailable; type `status' for more information.Welcome to the fdbcli. For help, type `help'.
fdb>
11、数据库创建
fdb> configure new single ssd
Database created
12、设置coordinator
fdb> coordinators 192.168.142.10:4500 192.168.142.12:4500
Coordination state changed
13、拷贝fdb.cluster 到其他节点
[foundationdb@czg2 Bin]$ cat ../Config/fdb.cluster
# DO NOT EDIT!
# This file is auto-generated, it is not to be edited by hand
MyFdb:kbOXtlLQlLwlrUJ2iqc07eS79uF95Te5@192.168.142.10:4500,192.168.142.12:4500[foundationdb@czg0 FoundationdDb]$ scp -r Config/fdb.cluster foundationdb@czg2:/opt/GCDW/FoundationdDb/Config/
foundationdb@czg2's password:
fdb.cluster 100% 156 117.2KB/s 00:00
14、所有节点重启服务
systemctl restart Foundationdb.service
15、冗余模式修改
fdb> configure double
Configuration changed
16、查看集群状态
fdb> configure double
Configuration changed
fdb> status detailsUsing cluster file `../Config/fdb.cluster'.Configuration:Redundancy mode - doubleStorage engine - ssd-2Log engine - ssd-2Encryption at-rest - disabledCoordinators - 2Desired Commit Proxies - 3Desired GRV Proxies - 1Desired Resolvers - 1Desired Logs - 3Usable Regions - 1Cluster:FoundationDB processes - 8Zones - 2Machines - 2Memory availability - 0.5 GB per process on machine with least available>>>>> (WARNING: 4.0 GB recommended) <<<<<Fault Tolerance - 0 machinesServer time - 06/28/24 14:44:48Data:Replication health - (Re)initializing automatic data distributionMoving data - unknown (initializing)Sum of key-value sizes - unknownDisk space used - 420 MBOperating space:Storage server - 22.5 GB free on most full serverLog server - 22.5 GB free on most full serverWorkload:Read rate - 11 HzWrite rate - 0 HzTransactions started - 0 HzTransactions committed - 0 HzConflict rate - 0 HzBackup and DR:Running backups - 0Running DRs - 0Process performance details:192.168.142.10:4500 ( 1% cpu; 1% machine; 0.000 Gbps; 0% disk IO; 0.0 GB / 0.5 GB RAM )192.168.142.10:4501 ( 3% cpu; 1% machine; 0.000 Gbps; 2% disk IO; 0.0 GB / 0.5 GB RAM )192.168.142.10:4502 ( 1% cpu; 1% machine; 0.000 Gbps; 0% disk IO; 0.0 GB / 0.5 GB RAM )192.168.142.10:4503 ( 3% cpu; 1% machine; 0.000 Gbps; 0% disk IO; 0.0 GB / 0.5 GB RAM )192.168.142.12:4500 ( 3% cpu; 2% machine; 0.001 Gbps; 2% disk IO; 0.1 GB / 0.6 GB RAM )192.168.142.12:4501 ( 6% cpu; 2% machine; 0.001 Gbps; 2% disk IO; 0.1 GB / 0.6 GB RAM )192.168.142.12:4502 ( 2% cpu; 2% machine; 0.001 Gbps; 2% disk IO; 0.1 GB / 0.6 GB RAM )192.168.142.12:4503 ( 4% cpu; 2% machine; 0.001 Gbps; 2% disk IO; 0.1 GB / 0.6 GB RAM )Coordination servers:192.168.142.10:4500 (reachable)192.168.142.12:4500 (reachable)Client time: 06/28/24 14:44:48