文章目录
背景是 rueNAS 后端创建 ZVOL,以 iSCSI 方式共享给飞牛 fnOS 挂载使用。
后端 TrueNAS 已经成功把 ZVOL 容量从 2TB 扩容至 3TB。
飞牛重启后,网页后台硬盘容量已经正确识别为 3TB 但是存储空间容量依旧锁定在旧 2TB。
这个的原因是 fnOS 内置一套固定多层嵌套存储栈,每一层都需要手动逐层扩容:
iSCSI 磁盘 → GPT 分区 → 单成员 RAID1 (md0) → LVM 逻辑卷 → 文件系统挂载 /vol1
⚠️重要提醒:操作前务必备份全部重要数据;全程 SSH 登录执行,不要中途断电、强制重启。
本文场景:单盘单成员 RAID‑1(不是 ZFS 存储池,不是双盘镜像 RAID1),飞牛新建存储空间默认就是这套架构。
一、先理清磁盘层级(执行 lsblk 查看)
$: lsblk
输出结构示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 3T 0 disk
└─sdb1 8:17 0 3T 0 part
└─md0 9:0 0 2T 0 raid1
└─trim_xxxx‑0 253:0 0 2T lvm /vol1
层级拆解:
- /dev/sdb:iSCSI 远程磁盘,后端扩容后已经识别为 3T
- /dev/sdb1:磁盘 GPT 分区(初始 2T,需要先扩满整块磁盘)
- /dev/md0:fnOS 强制创建单盘占位 RAID1 阵列(预留后续添加第二块盘做镜像)
- LVM 逻辑卷:trim_xxx‑0
- /vol1:最终挂载目录(btrfs /ext4 /xfs 三种文件系统可选)
二、确认 iSCSI 客户端刷新磁盘容量(必须先做)
如果 sdb 体积不是底层扩容完的体积需要先刷新,直接重启飞牛,如果重启完还不生效检查 iSCSI 服务端设置。
三、扩容磁盘 GPT 分区 sdb1
parted /dev/sdb resizepart 1 100%
执行后弹出 GPT 表头位置警告:
Warning: Not all of the space available to /dev/sdb appears to be used
Fix/Ignore?
输入 Fix,之后输入分区序号 1 回车,完成分区扩容。
校验分区容量:
parted /dev/sdb print
确认 sdb1 容量等于整块磁盘大小。
四、RAID 扩容
常规扩容命令:
mdadm --grow /dev/md0 --size=max
这一步有可能报错:
mdadm: Cannot set device size for /dev/md0: Operation not supported
报错原因是开启了 Intent Bitmap(内部写入位图),此时先关闭 RAID 内部位图,再扩容,扩容完最后再把 bitmap 打开
关闭内部位图再扩容
mdadm --grow /dev/md0 --bitmap=none
mdadm --grow /dev/md0 --size=max
成功输出示例:
mdadm: component size of /dev/md0 has been set to 3221092335K
校验 RAID 容量:
mdadm -D /dev/md0
扩容完成之后,可以按需重新打开位图
mdadm --grow /dev/md0 --bitmap=internal
五、扩容 LVM 层
- 扩容物理卷 PV(读取 md0 新增空闲空间)
pvresize /dev/md0 - 把全部空闲空间分配给逻辑卷
注意:设备名称从 lsblk 输出复制,每台机器 trim 后面字符串不一样
lvextend -l +100%FREE /dev/mapper/trim_37eefadc_39eb_47f8_b3f7_6ca633ae2fe9‑0
六、扩容文件系统,需要区分不同文件系统
先查询本机文件系统类型
df -hT /vol1
根据 Type 字段选择对应命令:
- btrfs
btrfs filesystem resize max /dev/mapper/trim_xxxx‑0
- ext4 文件系统
resize2fs /dev/mapper/trim_xxxx‑0
- XFS 文件系统
xfs_growfs /vol1
验证扩容结果
df -h /vol1
命令行输出容量 3TB 即扩容完成。
发表回复