如何在 Debian 12 上安装三节点 GlusterFS 集群
GlusterFS或Gluster文件系统,是RedHat开发的免费开源分布式文件系统。 GlusterFS 是一种可扩展的文件系统,由多个服务器组成一个实体文件系统,允许用户连接和挂载 GlusterFS 卷。
GlusterFS 是一种可以处理 PB 级数据的现代文件系统。此外,它易于安装和维护,也易于扩展文件系统。
在下面的指南中,我将引导您完成在 Debian 12 服务器上安装 GlusterFS。我们将使用多个 Debian 服务器通过 GlusterFS 创建一个高可用性和复制的存储系统。您还将了解如何将 GlusterFS 安装到 Debian 客户端计算机,并通过 /etc/fstab 文件设置 GlusterFS 卷的自动安装。
先决条件
在继续阅读本指南之前,请确认您具备以下条件:
- 多个 Debian 12 服务器 - 此示例使用 3 台 Debian 服务器来创建 GlusterFS 集群。
- 具有管理员权限的非 root 用户。
- Debian 客户端计算机。
使用 Parted 对磁盘进行分区
在开始之前,您将在每台服务器上创建一个用于 GlusterFS 的新分区。在此示例中,您将使用 Parted 分区管理器从磁盘 /dev/sdb 创建一个分区。
使用以下 apt 命令将 parted 安装到您的 Debian 服务器。
sudo apt install parted -y
执行以下parted命令开始对/dev/sdb磁盘进行分区。
sudo parted /dev/sdb
执行parted命令后,您应该处于parted环境中。
运行以下命令为磁盘 /dev/sdb 到 msdos 创建新的分区表。
mklabel msdos
现在运行以下命令创建一个新的主分区 /dev/sdb1,格式为 ext4,大小为 5 GB。
mkpart primary ext4 1MB 5369MB
创建分区后,输入 quit 退出 Parted。
接下来,运行以下命令将 /dev/sdb1 分区格式化为 ext4。
sudo mkfs -t ext4 /dev/sdb1
格式化/dev/sdb1后,将显示以下输出:
现在运行以下命令来创建新的目标挂载目录/gluster。然后,将/dev/sdb1分区挂载到/gluster目录。
mkdir -p /gluster
sudo mount /dev/sdb1 /gluster
最后,创建一个新目录 /gluster/brick0 ,它将用作每个 GlusterFS 服务器的数据目录。
sudo mkdir -p /gluster/brick0
安装 GlusterFS 服务器
在每台服务器上对磁盘进行分区后,您将添加 GlusterFS 存储库并将 glusterfs-server 软件包安装到每台服务器。
执行以下命令添加 GlusterFS 存储库的 GPG 密钥。
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
然后,运行以下命令将 GlusterFS 存储库添加到您的 Debian 服务器。
DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list
添加 GlusterFS 存储库和 GPG 密钥后,执行以下 apt 命令来更新和刷新 Debian 软件包索引。
sudo apt update
然后执行下面的 apt install 命令来安装 glusterfs-server 包。
sudo apt install glusterfs-server
输入 y 继续安装。
安装 glusterfs-server 后,运行下面的 systemctl 命令来启动并启用 glusterd 服务。
sudo systemctl start glusterd
sudo systemctl enable glusterd
最后,验证 glusterd 服务以确保该服务正在运行并启用。
sudo systemctl status glusterd
以下输出显示 glusterd 服务正在运行并已启用。
初始化 GlusterFS 集群
安装 glusterfs-server 软件包后,下一步是初始化 GlusterFS 集群。在此示例中,您将从 server1 初始化 GLusterFS 集群,然后将 server2 和 server3 添加到集群。
从 server1 终端执行以下 gluster 命令,以使用 IP 地址 192.168.10.21 上的 server2 成员和使用 IP 地址 server3 的成员初始化 GlusterFS 集群地址192.168.10.22。
sudo gluster peer probe 192.168.10.21
sudo gluster peer probe 192.168.10.22
如果初始化成功,将显示输出消息“peerprobe: success”。
现在移动到server2或server3并运行下面的gluster命令来验证GlusterFS集群状态。
sudo gluster peer status
如果一切顺利,您的 GlusterFS 集群上将有两个对等点可用。
在server2上 - 您应该看到server1和server3。
在server3 上,您应该看到server1 和server2。
最后,您还可以使用下面的 gluster 命令验证 GlusterFS 集群上的可用对等点列表。
sudo gluster pool list
以下输出显示 GlusterFS 集群具有三个不同的服务器。
创建 GlusterFS 卷
此时,您已经初始化了 GlusterFS 集群。要使 GLusterFS 可供客户端使用,您必须在 GlusterFS 集群上创建卷。
执行以下命令创建一个新卷 volume1,其中包含 3 个副本、server1、server2 和 服务器3。
sudo gluster volume create volume1 replica 3 192.168.10.20:/gluster/brick0 192.168.10.21:/gluster/brick0 192.168.10.22:/gluster/brick0
创建卷 volume1 后,使用下面的 gluster 命令启动它。
sudo gluster volume start volume1
输出“volume start:volume1: success”表示volume1已启动。
现在运行以下命令来检查 GlusterFS 集群上的可用卷列表。
sudo gluster volume info
以下输出显示 volume1 是使用 Replicate 类型和 3 个服务器创建的,例如 server1、server2 和服务器3。
挂载 GlusterFS 卷
在下一节中,您将把您创建的 GlusterFS 卷 volume1 挂载到 Debian 客户端计算机。为此,您必须添加 GlusterFS 存储库并将 glusterfs-client 软件包安装到 Debian 客户端计算机。
将 GLusterFS 存储库的 GPG 密钥下载到您的 Debian 客户端计算机。
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
通过在客户端上执行以下命令来添加 GLusterFS 存储库。
DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list
现在刷新您的 Debian 客户端存储库并通过以下 apt 命令安装 glusterfs-client 软件包。
sudo apt update
sudo apt install glusterfs-client
输入 y 继续安装。安装 glusterfs-client 后,您现在可以将 GlusterFS 卷安装到 Debian 客户端计算机。
接下来,执行以下命令创建新的目标挂载目录/mnt/data。
mkdir -p /mnt/data
然后,运行以下命令将volume1挂载到/mnt/data目录。您可以使用 server1、server2 或 server3 更改 GlusterFS 服务器 IP 地址。
sudo mount.glusterfs 192.168.10.20:/volume1 /mnt/data
安装 Volume1 后,使用以下命令对其进行验证。
sudo df -h
如果一切顺利,您应该看到volume1已安装到/mnt/data目录。
现在 GlusterFS 卷已挂载,您将验证目标挂载目录的写入访问权限,并验证从客户端计算机到 GlusterFS 集群上的服务器的数据复制。
接下来,移动到 /mnt/data 目录并使用以下命令创建新文件。这将在该目录中创建多个文件并确保该卷可写。
cd /mnt/data
touch file{1..15}.md
使用下面的 ls 命令检查可用文件的列表。
ls -ah
现在转到 GlusterFS 服务器,server1、server2 或 server3,并运行下面的 ls 命令来检查可用文件的列表。
ls /gluster/brick0
当复制工作时,您应该会在所有从 Debian 客户端计算机创建的 GlusterFS 服务器上看到文件。
以下数据被复制到server1。
以下数据复制到server2
以下数据复制到server3。
设置自动安装 GlusterFS 卷
在下一节中,您将了解如何通过 /etc/fstab 文件设置 GlusterFS 卷的自动挂载。这允许您在启动时自动挂载 GlusterFS 卷。
使用以下 nano 编辑器命令打开 /etc/fstab 文件。
sudo nano /etc/fstab
插入以下配置将volume1挂载到目标目录/mnt/data。
192.168.10.20:/volume1 /mnt/data glusterfs defaults,_netdev 0 0
完成后保存并退出文件。
现在运行以下命令来重新加载 systemd 管理器并验证 /etc/fstab 配置。如果没有输出消息,则确认您的 /etc/fstab 配置正确。
sudo systemctl daemon-reload
sudo mount -a
结论
做得好!您已在 Debian 12 服务器上成功安装了 GlusterFS,并创建了包含 3 台服务器的 GlusterFS 集群。您还创建了一个 GlusterFS 卷并将其安装到 Debian 客户端计算机。此外,您还使用 /etc/fstab 文件配置了 GlusterFS 卷的自动挂载。