1. 实验名称:电商大促——TB 级图片素材库的横向扩展实战

2. 实验情景

你是“某宝”电商平台的运维专家。


3. 实验拓扑与资源准备 (VMware)

虚拟机名称 角色 存储盘 (VMware 新增) 挂载目标
Img-Store-01 存储节点 A 10GB (/dev/sdb) /bricks/img_disk
Img-Store-02 存储节点 B 10GB (/dev/sdb) /bricks/img_disk
Img-Store-03 存储节点 C 10GB (/dev/sdb) /bricks/img_disk
Nginx-Web 图片处理前端 /var/www/images

4. 详细操作步骤

第一阶段:物理层准备(三台存储节点同时操作)

  1. 新增磁盘:在 VMware 设置里给每台机器加一块 10GB 硬盘。
  2. 分区与格式化
    sudo mkfs.xfs /dev/sdb
    sudo mkdir -p /bricks/img_disk
    sudo mount /dev/sdb /bricks/img_disk
    # 写入 fstab 确保开机挂载
    echo '/dev/sdb /bricks/img_disk xfs defaults 0 0' | sudo tee -a /etc/fstab
  3. 安装 GlusterFS
    sudo apt update && sudo apt install glusterfs-server -y
    sudo systemctl enable --now glusterd

第二阶段:构建逻辑存储池(在 Store-01 操作)

  1. 添加节点
    sudo gluster peer probe 192.168.10.12
    sudo gluster peer probe 192.168.10.13
  2. 创建分布式卷
    注意: 默认不写 replica 关键字就是分布式卷。它不消耗额外空间做备份,只追求空间最大化。
    sudo gluster volume create img-vol \
    192.168.10.11:/bricks/img_disk/brick \
    192.168.10.12:/bricks/img_disk/brick \
    192.168.10.13:/bricks/img_disk/brick force
    
    sudo gluster volume start img-vol

第三阶段:前端业务接入(Nginx-Web 节点)

  1. 挂载存储
    sudo apt install glusterfs-fuse -y
    sudo mkdir -p /var/www/images
    sudo mount -t glusterfs 192.168.10.11:/img-vol /var/www/images
  2. 验证容量
    执行 df -h。你会惊喜地发现 /var/www/images 的容量是 30GB
    解释:这就是分布式卷的魅力,$10GB + 10GB + 10GB = 30GB$。

5. 实验验证与深度解释(理解核心技术)

验证 A:文件分布规律

验证 B:风险模拟(生产事故)