在Ubuntu 18.04 LTS上使用GlusterFS实现高可用性存储

Glusterfs是一个可扩展的网络文件系统,具有扩展到几PB的能力并可处理数千个客户端。在本教程中,我将...

在Ubuntu 18.04 LTS上使用GlusterFS实现高可用性存储

Glusterfs是一个可扩展的网络文件系统,具有扩展到几PB的能力并可处理数千个客户端。 它是一个开源和分布式文件系统,可将多个服务器的磁盘存储资源设置为单个命名空间。 它适用于数据密集型任务,如云存储和数据媒体流。

在本教程中,我将展示如何在Ubuntu 18.04 LTS(Bionic Beaver)上使用GlusterFS设置高可用性存储服务器。 我们将使用3个ubuntu服务器,1个服务器作为客户端,另外2个作为存储。 每个存储服务器都是另一个存储服务器的镜像,文件将在两个存储服务器之间复制。

先决条件

  • 3台Ubuntu 18.04服务器
    • 10.0.15.10 - gfs01
    • 10.0.15.11 - gfs02
    • 10.0.15.12 - client01
  • 根权限

我们将要做什么?

  1. GlusterFS预安装
  2. 安装GlusterFS服务器
  3. 配置GlusterFS服务器
  4. 设置GlusterFS客户端
  5. 测试复制/镜像

第1步 - GlusterFS预安装

在所有服务器上安装glusterfs之前,我们需要做的第一步是配置主机的文件并将GlusterFS存储库添加到每个服务器。

配置主机文件

使用“sudo su”命令登录每个服务器并获取root访问权限,然后编辑“/ etc / hosts”文件。

vim /etc/hosts

粘贴主机配置如下。

10.0.15.10 gfs01
10.0.15.11 gfs02
10.0.15.12 client01

保存并退出。

现在使用主机名ping每个服务器,如下所示。

ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01

每个主机名将解析为每个服务器IP地址。

配置hosts文件

添加GlusterFS存储库

将software-properties-common软件包安装到系统中。

sudo apt install software-properties-common -y

通过运行以下命令添加glusterfs密钥和存储库。

wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.12/rsa.pub | apt-key add -
sudo add-apt-repository ppa:gluster/glusterfs-3.12

该命令将更新所有存储库。 我们已经将glusterfs存储库添加到所有系统中。

添加GlusterFS存储库

第2步 - 安装GlusterFS服务器

在此步骤中,我们将在'gfs01'和'gfs02'服务器上安装glusterfs服务器。

使用apt命令安装glusterfs-server。

sudo apt install glusterfs-server -y

现在启动glusterd服务并使其在系统引导时每次启动。

sudo systemctl start glusterd
sudo systemctl enable glusterd

Glusterfs服务器现在已在'gfs01'和'gfs02'服务器上运行。

检查服务和已安装的软件版本。

systemctl status glusterd
glusterfsd --version

安装GlusterFS服务器

第3步 - 配置GlusterFS服务器

Glusterd服务现已启动并运行,我们要做的下一步是通过创建可信存储池并创建分布式glusterfs卷来配置这些服务器。

创建可信存储池

从'gfs01'服务器,我们需要将'gfs02'服务器添加到glusterfs存储池。

运行以下命令。

gluster peer probe gfs02

现在我们将看到结果'peer probe:success',并且我们已将'gfs02'服务器添加到存储可信池中。

使用以下命令检查存储池状态和列表。

gluster peer status
gluster pool list

您将看到'gfs02'服务器已连接到对等集群,它位于池列表中。

创建可信存储池

设置分布式GlusterFS卷

创建可信存储池后,我们将创建一个新的分布式glusterfs卷。 我们将根据系统目录创建新的glusterfs卷。

注意:

  • 对于服务器生产,建议使用不同的分区创建glusterfs卷,而不是使用系统目录。

在每个bot'gfs01'和'gfs02'服务器上创建一个新目录'/ glusterfs / distributed'。

mkdir -p /glusterfs/distributed

然后从'gfs01'服务器创建名为'vol01'的分布式glusterfs卷,其中包含2个副本'gfs01'和'gfs02'。

gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
force

现在我们已经创建了分布式卷'vol01' - 启动'vol01'并检查卷信息。

gluster volume start vol01
gluster volume info vol01

以下是结果。

设置分布式GlusterFS卷

在这个阶段,我们使用'replicate'类型创建了'vol01'卷,在'gfs01'和'gfs02'服务器上创建了2个砖块。 所有数据将自动分发到每个副本服务器,我们已准备好安装卷。

低于'gfs02'服务器的'vol01'音量信息。

音量信息

第4步 - 设置GlusterFS客户端

在这一步中,我们将glusterfs卷'vol01'挂载到Ubuntu客户端,我们需要将glusterfs-client安装到客户端服务器。

使用apt命令将glusterfs-client安装到Ubuntu系统。

sudo apt install glusterfs-client -y

现在,在glusterfs-client安装完成后,创建一个新目录'/ mnt / glusterfs'。

mkdir -p /mnt/glusterfs

并将分布式glusterfs卷'vol01'挂载到'/ mnt / glusterfs'目录。

sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs

现在检查系统上的可用音量。

df -h /mnt/glusterfs

我们将glusterfs卷安装到'/ mnt / glusterfs'目录。

设置GlusterFS客户端

额外:

要将glusterfs永久挂载到Ubuntu客户端系统,我们可以将卷添加到'/ etc / fstab'。

编辑'/ etc / fstab'配置文件。

vim /etc/fstab

并在下面粘贴配置。

gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0

保存并退出。

现在重新启动服务器,当它在线时,我们将通过fstab自动安装glusterfs卷'vol01'。

第5步 - 测试复制/镜像

在此步骤中,我们将测试每个服务器节点上的数据镜像。

将glusterfs卷'vol01'安装到每个glusterfs服务器。

在'gfs01'服务器上。

mount -t glusterfs gfs01:/vol01 /mnt

在'gfs02'服务器上。

mount -t glusterfs gfs02:/vol01 /mnt

现在回到Ubuntu客户端并转到'/ mnt / glusterfs'目录。

cd /mnt/glusterfs

使用touch命令创建一些文件。

touch file01 file02 file03

测试复制

现在检查每个 - 'gfs01'和'gfs02' - 服务器,我们将获得我们从客户端机器创建的所有文件。

cd /mnt/
ls -lah

这是'gfs01'服务器的结果。

服务器1的结果

这是'gfs02'服务器的结果。

服务器2的结果

我们从客户端计算机创建的所有文件都将分发到所有glusterfs卷节点服务器。