Skip to content

第 6 章 环境规划与前置准备

6.1 硬件与网络规划

最小硬件要求

项目要求
节点数量3 台
CPU每节点 2 核及以上
内存每节点 4GB 及以上
系统盘20GB 及以上
数据盘每节点 1 块独立磁盘,容量根据需求
网络千兆以太网,节点互通

网络规划示例

节点管理/业务 IP数据网络(可选)
node110.0.0.11192.168.10.11
node210.0.0.12192.168.10.12
node310.0.0.13192.168.10.13
VIP10.0.0.100-

如果环境允许,建议将 GlusterFS 数据复制流量与业务流量分离到不同网卡,减少相互影响。

6.2 操作系统选择与初始化

推荐操作系统

  • Ubuntu 22.04 LTS
  • RHEL 9
  • Rocky Linux 9
  • AlmaLinux 9

本书以 Ubuntu 22.04Rocky Linux 9 为例,大部分命令两者都会给出。

系统初始化检查清单

bash
# 1. 更新系统
# Ubuntu
apt update && apt upgrade -y

# Rocky
dnf update -y

# 2. 安装常用工具
# Ubuntu
apt install -y vim wget curl net-tools chrony

# Rocky
dnf install -y vim wget curl net-tools chrony

6.3 主机名、DNS、Hosts 配置

设置主机名

bash
# node1
hostnamectl set-hostname node1

# node2
hostnamectl set-hostname node2

# node3
hostnamectl set-hostname node3

配置 /etc/hosts

在所有节点执行:

bash
cat <<EOF >> /etc/hosts
10.0.0.11 node1
10.0.0.12 node2
10.0.0.13 node3
EOF

验证:

bash
ping -c 3 node1
ping -c 3 node2
ping -c 3 node3

6.4 时间同步与 NTP/Chrony

时间同步对 GlusterFS 集群至关重要,日志分析、数据一致性都依赖准确的时间。

安装并启动 Chrony

bash
# Ubuntu
apt install -y chrony
systemctl enable --now chronyd

# Rocky
dnf install -y chrony
systemctl enable --now chronyd

验证时间同步

bash
chronyc tracking
chronyc sources

6.5 防火墙与 SELinux 配置

关闭防火墙(测试环境)

bash
# Ubuntu
ufw disable

# Rocky
systemctl stop firewalld
systemctl disable firewalld

放行必要端口(生产环境)

如果必须开启防火墙,请放行以下端口:

bash
# Rocky 防火墙放行示例
firewall-cmd --permanent --add-port=24007-24008/tcp
firewall-cmd --permanent --add-port=49152-49251/tcp
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=112/udp  # VRRP
firewall-cmd --reload

SELinux(Rocky/RHEL)

测试环境可临时关闭:

bash
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

生产环境建议保持启用,并配置相应的 SELinux 策略。

6.6 数据盘分区、格式化与挂载

查看磁盘

bash
lsblk
fdisk -l

假设数据盘为 /dev/sdb

格式化

bash
mkfs.xfs -f -i size=512 /dev/sdb

使用 XFS 文件系统,因为它在大文件和高并发场景下表现更好。

创建挂载点并挂载

bash
mkdir -p /data/brick1
mount /dev/sdb /data/brick1

持久化挂载

bash
echo '/dev/sdb /data/brick1 xfs defaults,noatime 0 0' >> /etc/fstab
mount -a

验证

bash
df -h /data/brick1

6.7 实验环境检查清单

在开始部署前,请确认:

  • [ ] 所有节点网络互通
  • [ ] 主机名已正确设置
  • [ ] /etc/hosts 已配置
  • [ ] 时间已同步
  • [ ] 防火墙已关闭或端口已放行
  • [ ] 数据盘已格式化并挂载到 /data/brick1
  • [ ] 系统已更新到最新补丁

6.8 本章小结

  • 3 节点是最小高可用配置
  • 网络规划和时间同步是部署成功的基础
  • 防火墙和 SELinux 可能引发问题,测试环境可先关闭
  • 数据盘建议使用 XFS 文件系统
  • 完成检查清单后再进入下一章

练习题

  1. 为什么 GlusterFS 集群建议使用奇数节点?
  2. 时间同步对分布式存储为什么重要?
  3. 为什么建议将 GlusterFS 数据流量与业务流量分离?
  4. XFS 相比 ext4 有哪些优势?