"我的服务器突然报磁盘空间不足,网站无法上传图片,数据库停止写入,紧急!"
"云平台控制台已经扩容了磁盘,但系统里还是显示原来的大小,怎么办?"
这是运维工程师最常见的问题之一。本文将提供两种文件系统(ext4和xfs)、两种分区方案(LVM和非LVM) 的完整扩展方案。
物理层:硬盘(/dev/sda、/dev/vda)→ 分区表(MBR/GPT)→ 分区(/dev/sda1、/dev/sda2) 逻辑层:物理卷(PV)→ 卷组(VG)→ 逻辑卷(LV)→ 文件系统(ext4/xfs) 挂载点:/(根分区)、/home、/data等
场景一:云服务器磁盘扩容(常见) 1. 控制台扩容云硬盘(如从40G扩展到100G) 2. 系统内部识别新容量 3. 扩展分区或新建分区 4. 扩展文件系统 场景二:添加新数据盘 1. 挂载新硬盘到服务器 2. 创建分区和文件系统 3. 挂载到指定目录 4. 配置自动挂载
# 1. 查看当前磁盘和分区信息 lsblk # 树状显示所有块设备 df -hT # 查看已挂载分区的使用情况 fdisk -l # 查看所有磁盘分区表 ls -l /dev/sd* /dev/vd* # 查看所有磁盘设备 # 2. 备份关键数据(必须!) # 系统配置文件 tar -czf /tmp/system-config-backup.tar.gz /etc/fstab /etc/default/grub # 重要数据(假设数据在/data目录) rsync -av /data/ /backup/data-$(date +%Y%m%d)/ # 3. 确认文件系统类型 blkid # 查看所有分区的文件系统类型 # 4. 检查是否有LVM pvs && vgs && lvs # 如果命令存在且输出信息,说明使用LVM # 5. 卸载需要操作的分区(如果可能) # 注意:根分区不能卸载,其他数据分区可以 umount /dev/sdb1 # 如果挂载为/data等
高风险操作(需格外小心): 1. 操作根分区(/)→ 必须准备系统救援模式或Live CD 2. 修改分区表(fdisk/parted)→ 错误可能损坏所有数据 3. 强制扩展文件系统 → 可能损坏文件系统 安全措施: 1. 生产环境先在测试环境演练 2. 确保有完整备份 3. 选择维护窗口进行操作 4. 准备好系统恢复盘
以阿里云为例: 1. 进入ECS控制台 2. 停止实例(必须!) 3. 在磁盘管理中选择"扩容" 4. 设置新容量(如40G→100G) 5. 启动实例