实验名称:基于 GlusterFS 的“永不丢失”企业共享云盘存储系统


1. 实验情景(带入角色)

你是某公司的运维工程师。公司开发部反映:目前教案和代码都存在一台普通的 Ubuntu 服务器上。


2. 实验环境准备 (VMware 操作)

你需要准备 3 台 Ubuntu 22.04 虚拟机(内存 2G 即可)。

  1. 节点 1 (Node1): IP 192.168.10.101
  2. 节点 2 (Node2): IP 192.168.10.102
  3. 客户端 (Client): IP 192.168.10.103

关键步骤(模拟增加物理硬盘):
在 VMware 中,分别编辑 Node1 和 Node2 的虚拟机设置:


3. 具体操作步骤

第一阶段:磁盘初始化(Node1 和 Node2 都要做)

我们需要把那块 10GB 的新硬盘格式化并挂载。

# 1. 找到新硬盘(通常是 /dev/sdb)
lsblk

# 2. 格式化为 XFS 文件系统(GlusterFS 推荐)
sudo mkfs.xfs /dev/sdb

# 3. 创建挂载点并挂载
sudo mkdir -p /data/glusterfs
sudo mount /dev/sdb /data/glusterfs

# 4. 配置开机自动挂载(防止重启后失效)
echo '/dev/sdb /data/glusterfs xfs defaults 0 0' | sudo tee -a /etc/fstab

第二阶段:安装并启动 GlusterFS(Node1 和 Node2)

sudo apt update
sudo apt install glusterfs-server -y

# 启动服务并设为开机自启
sudo systemctl start glusterd
sudo systemctl enable glusterd

第三阶段:组建集群(仅在 Node1 操作)

我们要让 Node1 和 Node2 互相“认识”。

# 1. 把 Node2 加入集群
sudo gluster peer probe 192.168.10.102

# 2. 查看集群状态(应显示 Peer Connected)
sudo gluster peer status

第四阶段:创建“复制卷”(仅在 Node1 操作)

这是实验的核心:创建一个跨机器的镜像卷。

# 在两台机器上先创建具体的存储文件夹
# Node1 & Node2 执行:
sudo mkdir -p /data/glusterfs/mybrick

# 在 Node1 执行创建命令:
# replica 2 表示数据保存 2 份(镜像)
sudo gluster volume create share-drive replica 2 \
192.168.10.101:/data/glusterfs/mybrick \
192.168.10.102:/data/glusterfs/mybrick force

# 启动这个逻辑卷
sudo gluster volume start share-drive

第五阶段:客户端挂载使用(Client 节点)

模拟员工的电脑连接网盘。

# 1. 安装客户端工具
sudo apt install glusterfs-fuse -y

# 2. 创建挂载点
sudo mkdir /mnt/cloud-drive

# 3. 挂载(连接集群中任意一台即可)
sudo mount -t glusterfs 192.168.10.101:/share-drive /mnt/cloud-drive

4. 实验验证与现象解释(理解技术)

验证 1:数据实时同步

验证 2:模拟服务器宕机(高可用测试)

验证 3:数据自愈(Healing)