在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
- 根权限
我们将要做什么?
- GlusterFS预安装
- 安装GlusterFS服务器
- 配置GlusterFS服务器
- 设置GlusterFS客户端
- 测试复制/镜像
第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地址。
添加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存储库添加到所有系统中。
第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
第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
以下是结果。
在这个阶段,我们使用'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永久挂载到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'服务器的结果。
这是'gfs02'服务器的结果。
我们从客户端计算机创建的所有文件都将分发到所有glusterfs卷节点服务器。