主题
第 6 章 环境规划与前置准备
6.1 硬件与网络规划
最小硬件要求
| 项目 | 要求 |
|---|---|
| 节点数量 | 3 台 |
| CPU | 每节点 2 核及以上 |
| 内存 | 每节点 4GB 及以上 |
| 系统盘 | 20GB 及以上 |
| 数据盘 | 每节点 1 块独立磁盘,容量根据需求 |
| 网络 | 千兆以太网,节点互通 |
网络规划示例
| 节点 | 管理/业务 IP | 数据网络(可选) |
|---|---|---|
| node1 | 10.0.0.11 | 192.168.10.11 |
| node2 | 10.0.0.12 | 192.168.10.12 |
| node3 | 10.0.0.13 | 192.168.10.13 |
| VIP | 10.0.0.100 | - |
如果环境允许,建议将 GlusterFS 数据复制流量与业务流量分离到不同网卡,减少相互影响。
6.2 操作系统选择与初始化
推荐操作系统
- Ubuntu 22.04 LTS
- RHEL 9
- Rocky Linux 9
- AlmaLinux 9
本书以 Ubuntu 22.04 和 Rocky 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 chrony6.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 node36.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 sources6.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 --reloadSELinux(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/brick16.7 实验环境检查清单
在开始部署前,请确认:
- [ ] 所有节点网络互通
- [ ] 主机名已正确设置
- [ ]
/etc/hosts已配置 - [ ] 时间已同步
- [ ] 防火墙已关闭或端口已放行
- [ ] 数据盘已格式化并挂载到
/data/brick1 - [ ] 系统已更新到最新补丁
6.8 本章小结
- 3 节点是最小高可用配置
- 网络规划和时间同步是部署成功的基础
- 防火墙和 SELinux 可能引发问题,测试环境可先关闭
- 数据盘建议使用 XFS 文件系统
- 完成检查清单后再进入下一章
练习题
- 为什么 GlusterFS 集群建议使用奇数节点?
- 时间同步对分布式存储为什么重要?
- 为什么建议将 GlusterFS 数据流量与业务流量分离?
- XFS 相比 ext4 有哪些优势?