1. 生产环境LVM自动化扩容实战指南
作为运维工程师,最让人头疼的莫过于半夜被磁盘空间告警吵醒。在虚拟化环境中,虽然调整磁盘容量只需在管理界面点几下鼠标,但要让操作系统真正用上这些空间,传统方式需要执行十多条命令,稍有不慎就可能酿成灾难。今天分享的这套自动化方案,已经在我们的生产环境稳定运行三年,处理过上千次磁盘扩容操作。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 方案设计核心思路
2.1 技术选型解析
选择LVM作为基础架构主要基于三个考量:
- 灵活性:物理磁盘、卷组、逻辑卷的三层抽象,允许空间跨磁盘分配
- 热扩展:支持在线扩容,无需卸载文件系统
- 快照支持:关键操作前可创建快照回滚点
重要提示:虽然LVM很强大,但直接操作物理磁盘仍有风险。建议首次实施前在测试环境验证,并确保有完整备份。
2.2 自动化流程设计
整个方案的工作流分为四个阶段:
- 变更检测:通过
lsblk和pvresize识别新磁盘或扩容磁盘 - 空间整合:将新空间加入现有卷组
- 智能分配:按预设比例扩展逻辑卷
- 文件系统扩展:适配ext4/xfs不同操作
3. 核心脚本实现详解
3.1 基础环境配置
bash复制#!/bin/bash
# 必须使用root权限执行
if [[ $EUID -ne 0 ]]; then
echo "此脚本必须使用root权限运行" >&2
exit 1
fi
# 依赖工具检查
REQUIRED_CMDS=(lsblk pvcreate vgextend lvextend resize2fs xfs_growfs blkid tee vgs pvs pvresize)
for cmd in "${REQUIRED_CMDS[@]}"; do
if ! command -v "$cmd" &> /dev/null; then
echo "缺少必要命令: $cmd" >&2
exit 1
fi
done
3.2 关键参数配置
bash复制# 日志配置
LOG_DIR="/var/log/lvm_autoscale"
mkdir -p "$LOG_DIR"
L
