飞牛NAS在线扩容(LVM+RAID架构)
本教程记录了在飞牛NAS(Windows系统上用VM虚拟机安装的飞牛NAS,底层采用 LVM + RAID 架构)上,将系统盘从 180G 在线扩容至 280G 的完整操作流程。该方案支持在线操作,无需停机,数据安全可靠(那也得先备份)。
1. 背景与前提:理解底层架构
飞牛NAS的存储架构通常包含三层,理解这一点对扩容至关重要:
- 物理分区层:如 /dev/sda3,这是最底层的物理空间。
- RAID 阵列层:如 /dev/md0,由物理分区组成,负责数据冗余。
- LVM 逻辑卷层:如 /dev/mapper/...,建立在 RAID 之上,是最终挂载到系统(如 /vol1)的文件系统。
⚠️ 核心原则:扩容必须自底向上逐层进行。直接对物理分区执行 resize2fs 会因找不到文件系统超级块而报错。
2. 操作步骤
第一步:修改物理分区表
使用 fdisk 工具调整物理分区大小,释放新空间。
fdisk /dev/sda
交互操作指引: 1. 输入 p 查看当前分区表。 2. 输入 d 删除原有数据分区(例如分区 3),注意:此操作仅删除分区表记录,不擦除数据。 3. 输入 n 新建分区,起始扇区保持默认(与原分区一致)。 4. 结束扇区选择默认(即使用全部剩余空间)。 5. 若提示 contains a linux_raid_member signature,选择 n (No) 保留签名。 6. 输入 w 保存并退出。
第二步:扩容 RAID 阵列
让底层 RAID 识别物理分区的新增空间。
mdadm --grow /dev/md0 --size=max
预期输出:mdadm: component size of /dev/md0 has been set to ...K
第三步:扩容 LVM 物理卷 (PV)
让 LVM 识别 RAID 阵列的新增空间。
pvresize /dev/md0
预期输出:1 physical volume(s) resized or updated
第四步:扩容 LVM 逻辑卷 (LV)
将逻辑卷扩展到最大可用空间。
# 请将路径替换为你实际的逻辑卷路径
lvextend -l +100%FREE /dev/mapper/trim_1b5a53dd_577b_4092_828a_0ea0f8db03eb-0
预期输出:Logical volume ... successfully resized.
第五步:刷新文件系统
这是最关键的一步,让文件系统真正“吃下”新空间。
如果是 EXT4 文件系统:
resize2fs /dev/mapper/trim_1b5a53dd_577b_4092_828a_0ea0f8db03eb-0
如果是 XFS 文件系统:
xfs_growfs /dev/mapper/trim_1b5a53dd_577b_4092_828a_0ea0f8db03eb-0
预期输出(EXT4):The filesystem on ... is now ... (4k) blocks long.
3. 验证方法
执行以下命令检查挂载点容量是否已更新:
df -h
检查重点: - 找到挂载在 /vol1 的文件系统。 - 确认 Size 列是否已变为扩容后的目标大小(如 278G/280G)。 - 确认 Avail 可用空间是否相应增加。
4. 关键注意事项
- 严禁直接操作底层:不要对 /dev/sda3 直接执行 resize2fs,必须对最外层的 /dev/mapper/... 逻辑卷操作。
- 保留 RAID 签名:在 fdisk 重建分区时,务必选择保留 linux_raid_member 签名,否则阵列可能无法识别。
- 在线扩容:飞牛NAS支持在线扩容,操作期间无需停止服务或重启系统。
- 路径确认:执行 lvextend 和 resize2fs 前,请务必通过 df -h 或 lvs 确认准确的逻辑卷路径。
- 数据安全:虽然是在线扩容,但涉及底层存储结构变更,建议操作前确保有重要数据的备份。