跳到主要内容
版本:0.2.x

安装 FoundationDB

在本指南中,我将在 3 台物理机上设置 Foundation DB 集群。它们都使用 debian 操作系统。我参考了两个官方指南:在 Linux 上入门构建一个集群

首先,我们需要在这里下载二进制文件进行安装。我们需要下载 servermonitorcli 二进制文件,以及对应的 sha256 校验和文件。我会选择版本为 7.1.25,因为它是当时最新的版本。\ 在您的目录中,让我们创建一个名为 foundationdb 的文件夹。\ 然后,在 foundationdb 中创建一个名为 bin 的子文件夹。\ 在这个 foundationdb/bin 文件夹中,使用以下命令进行下载:

curl -L -o fdbserver.x86_64 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbserver.x86_64
curl -L -o fdbserver.x86_64.sha256 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbserver.x86_64.sha256

curl -L -o fdbmonitor.x86_64 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbmonitor.x86_64
curl -L -o fdbmonitor.x86_64.sha256 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbmonitor.x86_64.sha256

curl -L -o fdbcli.x86_64 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbcli.x86_64
curl -L -o fdbcli.x86_64.sha256 https://github.com/apple/foundationdb/releases/download/7.1.25/fdbcli.x86_64.sha256

下载完成后,让我们对可执行文件进行校验以查看下载是否成功。这两个校验和应该相等。例如:

$ sha256sum --binary fdbserver.x86_64
73b70a75464e64fd0a01a7536e110e31c3e6ce793d425aecfc40f0be9f0652b7 *fdbserver.x86_64

$ cat fdbserver.x86_64.sha256
73b70a75464e64fd0a01a7536e110e31c3e6ce793d425aecfc40f0be9f0652b7 fdbserver.x86_64

接下来,我们将删除这些 sha256 校验和文件,因为我们不再需要它们,我们还将重命名可执行文件以删除结尾的 x86_64 并给它们可执行权限。

rm *.sha256
mv fdbcli.x86_64 fdbcli
mv fdbmonitor.x86_64 fdbmonitor
mv fdbserver.x86_64 fdbserver
chmod ug+x fdbcli fdbmonitor fdbserver

接下来我们将创建一些文件夹来存储配置、数据和日志:

mkdir -p /<your_directory>/fdb_runtime/config
mkdir -p /<your_directory>/fdb_runtime/data
mkdir -p /<your_directory>/fdb_runtime/logs

然后在/<your_directory>/fdb_runtime/config/文件夹下创建foundationdb.conf配置文件,内容如下:

$ cat /<your_directory>/fdb_runtime/config/foundationdb.conf
[fdbmonitor]
user = root

[general]
cluster-file = /<your_directory>/fdb_runtime/config/fdb.cluster
restart-delay = 60

[fdbserver]

command = /<your_directory>/foundationdb/bin/fdbserver
datadir = /<your_directory>/fdb_runtime/data/$ID
logdir = /<your_directory>/fdb_runtime/logs/
public-address = auto:$ID
listen-address = public


[fdbserver.4500]
class=stateless
[fdbserver.4501]
class=transaction
[fdbserver.4502]
class=storage
[fdbserver.4503]
class=stateless

然后在相同的文件夹中创建一个名为fdb.cluster的文件,内容如下,将<your_ip_address>替换为你的机器 IP 地址:

$ cat /<your_directory>/fdb_runtime/config/fdb.cluster
clusterdsc:test@<your_ip_address>:4500

我们将 FDB 安装为systemd服务。因此,在同一文件夹中,我们将创建名为fdb.service的文件,内容如下:

$ cat /<your_directory>/fdb_runtime/config/fdb.service
[Unit]
Description=FoundationDB (KV storage for cnch metastore)

[Service]
Restart=always
RestartSec=30
TimeoutStopSec=600
ExecStart=/<your_directory>/foundationdb/bin/fdbmonitor --conffile /<your_directory>/fdb_runtime/config/foundationdb.conf --lockfile /<your_directory>/fdb_runtime/fdbmonitor.pid

[Install]
WantedBy=multi-user.target

我们已经完成了配置文件的准备工作。现在让我们将 FDB 安装到systemd中。

将服务文件复制到/etc/systemd/system/目录下:

cp fdb.service /etc/systemd/system/

重新加载服务文件以包括新服务:

systemctl daemon-reload

启用并启动服务:

systemctl enable fdb.service
systemctl start fdb.service

检查服务并查看它是否处于活动状态:

$ systemctl status fdb.service
● fdb.service - FoundationDB (KV storage for cnch metastore)
Loaded: loaded (/etc/systemd/system/fdb.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2023-01-17 18:35:42 CST; 20s ago

现在我已经在一台机器上安装了 FDB 服务,我将重复相同的步骤在另外两台机器上安装。

在所有三台机器上安装完成之后,我们需要连接它们以形成一个集群。现在回到第一台节点,使用 fdbcli 连接到 FDB。

$ ./foundationdb/bin/fdbcli -C fdb_runtime/config/fdb.cluster
Using cluster file `fdb_runtime/config/fdb.cluster'.

The database is unavailable; type `status' for more information.

Welcome to the fdbcli. For help, type `help'.
fdb>

执行以下命令来初始化数据库:

configure new single ssd

接下来,将三个机器都设置为 coordinator,并将地址替换为你的机器地址:

coordinators <node_1_ip_address>:4500 <node_2_ip_address>:4500 <node_3_ip_address>:4500

然后退出 fdbcli,你会发现fdb.cluster文件现在有了新内容:

$ cat fdb_runtime/config/fdb.cluster
# DO NOT EDIT!
# This file is auto-generated, it is not to be edited by hand
clusterdsc:wwxVEcyLvSiO3BGKxjIw7Sg5d1UTX5ad@example1.host.com:4500,example2.host.com:4500,example3.host.com:4500

将此文件复制到另外两台机器并替换旧文件,然后重新启动 fdb 服务:

systemctl restart fdb.service

然后返回第一台机器,再次使用 fdbcli 连接到 FDB,并执行以下命令将冗余模式更改为triple

configure triple

然后在 fdbcli 中执行status命令以查看结果,你应该看到类似以下的内容:

fdb> status

Using cluster file `fdb_runtime/config/fdb.cluster'.

Configuration:
Redundancy mode - triple
Storage engine - ssd-2
Coordinators - 3
Usable Regions - 1

这就完成了 FoundationDB 服务器的安装。现在你拥有了fdb.cluster文件。我们将在 Byconity 的配置中使用它。