分布式文件存储(GlusterFS) 入门指南, 有一定难度!! ubuntu

 以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作

地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录

相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客

兑换码要是过期了,可以私信我获取最新兑换码!!!

之所以推荐给大家使用,是因为上面的云主机目前是免费使用的,不需要大家再去安装虚拟机,部署虚拟机,环境都搭配好了,非常适合新手入门,减少搭建的时间,把时间都用在实践上。

概述

GlusterFS 是一个开源的分布式文件系统,用于将多台服务器的存储空间聚合成一个统一的存储池。它支持动态扩展、高可用性和多种访问协议(如 FUSE、NFS、SMB),适合云存储、媒体存储和大数据场景。本文档指导你完成 GlusterFS 的安装、配置、创建分布式卷和分布式复制卷,并验证存储池。

实验环境

  • 节点:4 台服务器
    • node1: 192.168.1.101
    • node2: 192.168.1.102
    • node3: 192.168.1.103
    • node4: 192.168.1.104
  • 操作系统:Ubuntu 20.04 或 CentOS 8
  • 存储:每台服务器提供 500GB 磁盘,挂载点为 /data/brick1
  • 网络:千兆以太网,确保节点间可互相访问
  • 目标
    • 创建分布式卷 myvolume,容量 2TB(4 × 500GB)
    • 创建分布式复制卷 myvolume-replica,容量 1TB(4 × 500GB ÷ 2)

前置要求

  1. 确保每台节点安装了 Linux(推荐 Ubuntu 或 CentOS)。
  1. 节点间网络连通,检查:
ping 192.168.1.102  # 从 node1 测试
  1. 每台节点配置好磁盘分区,格式化为 XFS 或 EXT4,挂载到 /data/brick1
mkfs.xfs /dev/sdX
mkdir -p /data
mount /dev/sdX /data
mkdir /data/brick1
  1. 开放 GlusterFS 端口(24007 用于 glusterd,49152 起用于 brick):
# Ubuntu
ufw allow 24007
ufw allow 49152:49251/tcp

# CentOS
firewall-cmd --add-port=24007/tcp --permanent
firewall-cmd --add-port=49152-49251/tcp --permanent
firewall-cmd --reload

步骤 1:安装 GlusterFS

在所有 4 个节点(node1 到 node4)上安装 GlusterFS。

Ubuntu

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:gluster/glusterfs-10
sudo apt-get update
sudo apt-get install -y glusterfs-server

CentOS

sudo yum install -y centos-release-gluster
sudo yum install -y glusterfs-server

启动并启用 glusterd 服务:

sudo systemctl start glusterd
sudo systemctl enable glusterd
sudo systemctl status glusterd

步骤 2:构建 GlusterFS 集群

从 node1 将其他节点加入信任池,组成集群。

  1. 添加节点
gluster peer probe 192.168.1.102
gluster peer probe 192.168.1.103
gluster peer probe 192.168.1.104
  1. 检查集群状态
gluster peer status

输出示例:

Number of Peers: 3
Hostname: 192.168.1.102
State: Peer in Cluster (Connected)
Hostname: 192.168.1.103
State: Peer in Cluster (Connected)
Hostname: 192.168.1.104
State: Peer in Cluster (Connected)
    • 确保所有节点状态为 Connected

步骤 3:创建分布式卷

分布式卷将 4 个节点的存储空间相加,容量为 2TB。

  1. 创建卷
gluster volume create myvolume \
    192.168.1.101:/data/brick1 \
    192.168.1.102:/data/brick1 \
    192.168.1.103:/data/brick1 \
    192.168.1.104:/data/brick1
  1. 启动卷
gluster volume start myvolume
  1. 检查卷信息
gluster volume info myvolume

输出示例:

Volume Name: myvolume
Type: Distribute
Status: Started
Number of Bricks: 4
Bricks:
Brick1: 192.168.1.101:/data/brick1
Brick2: 192.168.1.102:/data/brick1
Brick3: 192.168.1.103:/data/brick1
Brick4: 192.168.1.104:/data/brick1

步骤 4:创建分布式复制卷(可选)

分布式复制卷(replica 2)提供冗余,容量为 1TB。brick 分为 2 个复制组:(node1node2) 和 (node3node4)。

  1. 创建卷
gluster volume create myvolume-replica replica 2 \
    192.168.1.101:/data/brick1 \
    192.168.1.102:/data/brick1 \
    192.168.1.103:/data/brick1 \
    192.168.1.104:/data/brick1
  1. 启动卷
gluster volume start myvolume-replica
  1. 检查卷信息
gluster volume info myvolume-replica

输出示例:

Volume Name: myvolume-replica
Type: Distributed-Replicate
Status: Started
Number of Bricks: 2 x 2 = 4
Bricks:
Brick1: 192.168.1.101:/data/brick1
Brick2: 192.168.1.102:/data/brick1
Brick3: 192.168.1.103:/data/brick1
Brick4: 192.168.1.104:/data/brick1

步骤 5:挂载和使用卷

在客户端(可以是集群节点或外部服务器)挂载卷,验证存储池。

  1. 安装客户端(如果需要)
# Ubuntu
sudo apt-get install -y glusterfs-client
# CentOS
sudo yum install -y glusterfs-client
  1. 挂载分布式卷
mkdir -p /mnt/gluster
mount -t glusterfs 192.168.1.101:/myvolume /mnt/gluster
    • 也可以挂载分布式复制卷:
mount -t glusterfs 192.168.1.101:/myvolume-replica /mnt/gluster-replica
    • 任意节点(node2node3node4)的 IP 都可以作为挂载入口,例如:
mount -t glusterfs 192.168.1.102:/myvolume /mnt/gluster
  1. 检查容量
df -h /mnt/gluster

输出示例(分布式卷):

Filesystem               Size  Used Avail Use% Mounted on
192.168.1.101:/myvolume   2.0T     0  2.0T   0% /mnt/gluster

分布式复制卷:

Filesystem                     Size  Used Avail Use% Mounted on
192.168.1.101:/myvolume-replica  1.0T     0  1.0T   0% /mnt/gluster-replica
  1. 写入测试数据
echo "Hello GlusterFS" > /mnt/gluster/testfile
    • 检查 brick(分布式卷,文件出现在某个 brick):
ls -l /data/brick1  # 在 node1 到 node4 上
    • 分布式复制卷,文件出现在复制组的两个 brick 上(例如 node1 和 node2)。

步骤 6:验证存储池

  1. 检查数据分布
    • 分布式卷:文件分布在 4 个 brick 上,检查:
ls -l /data/brick1  # 每个节点
    • 分布式复制卷:文件在复制组内有两份副本,例如:
cat /data/brick1/testfile  # 在 node1 和 node2 上
  1. 测试高可用性(仅分布式复制卷)
    • 停止 node1 的 glusterd
systemctl stop glusterd
    • 检查客户端:
cat /mnt/gluster-replica/testfile
      • 数据应从 node2 读取,证明副本生效。
  1. 检查集群状态
gluster peer status
gluster volume status myvolume

步骤 7:扩展卷(可选)

  1. 添加新节点
    • 新节点 node5 (192.168.1.105),安装 GlusterFS,加入集群:
gluster peer probe 192.168.1.105
  1. 分布式卷扩展
gluster volume add-brick myvolume 192.168.1.105:/data/brick1
gluster volume rebalance myvolume start
  1. 分布式复制卷扩展
    • 添加成对 brick(例如 node5 和 node6):
gluster volume add-brick myvolume-replica replica 2 \
    192.168.1.105:/data/brick1 192.168.1.106:/data/brick1
gluster volume rebalance myvolume-replica start

注意事项

  • 分布式卷
    • 无冗余,节点故障可能导致部分数据不可访问。
    • 适合大容量需求,但需定期备份。
  • 分布式复制卷
    • 提供冗余,容量减半。
    • 写操作同步到副本,可能增加延迟。
  • 性能优化
    • 使用 XFS 文件系统,挂载选项 noatime
mount -o noatime /dev/sdX /data
    • 配置缓存:
gluster volume set myvolume performance.cache-size 1GB
  • 高可用挂载
    • 配置备用节点:
mount -t glusterfs 192.168.1.101:/myvolume /mnt/gluster \
    -o backup-volfile-servers=192.168.1.102:192.168.1.103:192.168.1.104
  • 监控
    • 定期检查 gluster volume status 和 gluster peer status
    • 可使用 Prometheus 监控集群健康。

常见问题

  • 节点状态 Disconnected
    • 检查网络连通性和防火墙(端口 24007、49152+)。
    • 重启 glusterdsystemctl restart glusterd
  • 挂载失败
    • 确保客户端安装了 glusterfs-client
    • 检查卷是否启动:gluster volume info
  • 容量不符
    • 分布式卷:检查每个 brick 的实际容量(df -h /data/brick1)。
    • 分布式复制卷:确认复制因子(replica 2 减半容量)。

下一步

  • 探索 NFS/SMB 协议挂载:
mount -t nfs 192.168.1.101:/myvolume /mnt/gluster
  • 配置快照(需要 LVM 支持)。
  • 集成 OpenStack 或 Kubernetes 使用 GlusterFS 作为存储后端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力一点948

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值