飞牛NAS磁盘空间不足:快速清理与扩容
飞牛NAS(fnOS)用久了,最让人头疼的问题之一就是磁盘空间告急。无论是系统盘被Docker日志塞满,还是数据盘被影视库和相册备份占满,都会导致服务运行缓慢、应用无法写入,甚至系统崩溃。今天这篇文章,我们就从清理和扩容两个维度,手把手教你解决磁盘空间不足的困境,全程可操作,不绕弯子。
一、先搞清楚空间去哪了
在动手清理之前,建议先登录fnOS的Web管理界面,进入「存储管理」-「磁盘管理」,查看每个磁盘和分区的使用率。同时,通过SSH登录NAS(默认端口22,使用root或管理员账户),运行以下命令快速定位大文件目录:
# 查看根目录及各个挂载点的空间占用
df -h
# 找出当前目录下最大的前20个文件或文件夹
du -ah --max-depth=1 /vol1 2>/dev/null | sort -rh | head -20
注意,fnOS的数据卷通常挂载在/vol1、/vol2等路径下,系统盘则挂在/。如果发现某个目录异常庞大(比如/tmp、/var/log或Docker数据目录),那就是清理的重点。
二、快速清理的五个实用手段
1. 清理Docker日志与悬空镜像
Docker是空间杀手,尤其是长期运行的容器日志文件会无限增长。进入「应用中心」-「Docker」,或者用SSH执行以下命令:
# 查看各容器日志大小(以nginx容器为例)
docker logs --tail 50 nginx > /dev/null 2>&1
find /var/lib/docker/containers -name "*-json.log" -size +100M -exec ls -lh {} \;
# 一键收缩所有容器日志(注意:会清空日志,建议先导出重要日志)
cat /dev/null > $(docker inspect --format='{{.LogPath}}' $(docker ps -q))
同时清理悬空镜像和构建缓存:
# 删除所有未被容器使用的悬空镜像
docker image prune -a -f
# 清理build cache
docker builder prune -f
2. 清理系统更新缓存与临时文件
fnOS的系统更新包和软件缓存也会占用不少空间。SSH执行:
# 清理apt缓存(适用于Debian底层的fnOS)
apt-get clean
rm -rf /var/lib/apt/lists/*
# 清理系统临时文件(重启后会自动重建,放心删)
rm -rf /tmp/*
rm -rf /var/tmp/*
3. 清理媒体库转码缓存与缩略图
如果你用飞牛自带的「影视」或「相册」功能,转码缓存和缩略图会存放在/vol1/@appdata或/vol1/@cache目录下。进入「设置」-「媒体服务」,将转码缓存目录改为空间充足的存储卷,并手动清空原缓存:
# 停止相关服务后,删除转码缓存(路径以实际为准)
systemctl stop fnos-media
rm -rf /vol1/@cache/transcode/*
systemctl start fnos-media
4. 回收快照与回收站空间
如果你开启了Btrfs快照或文件回收站,它们会悄悄吞噬大量空间。进入「存储管理」-「快照」,删除不再需要的旧快照。同时,检查「共享文件夹」的回收站设置,清空或调整保留周期。
5. 使用内置「空间分析」工具
fnOS的「存储管理」-「空间分析」功能能直观显示每个目录的占用比例。按大小排序,找出那些隐藏的重复文件、大文件(比如ISO镜像、备份包),手动删除或迁移到外部存储。
三、扩容方案:从软扩容到硬升级
如果清理后空间依然紧张,那就需要扩容了。根据你的硬件情况,有三种思路。
方案A:扩展原有存储池(使用未分配空间)
如果你在创建存储池时预留了未分配空间,可以在「存储管理」-「存储池」中,点击「编辑」-「扩容」,将未分配空间加入现有卷。这是最快捷的方式,不会影响数据。
方案B:新增硬盘并合并卷(适合多盘位)
fnOS支持跨盘合并卷(类似RAID0或JBOD)。新插入一块硬盘后,在「存储管理」-「存储空间」中,选择现有卷,点击「编辑」-「添加设备」,将新盘加入。注意:此操作会改变数据分布,建议先备份重要数据。
方案C:迁移系统盘或数据盘至更大容量
如果你的NAS支持硬盘热插拔,可以停用NAS,将旧盘替换为更大容量的硬盘,然后通过fnOS的「存储管理」-「磁盘迁移」功能,将数据克隆到新盘。具体步骤:
- 关机,更换一块新盘(容量大于旧盘)。
- 开机进入「存储管理」-「磁盘迁移」,选择源盘(旧盘)和目标盘(新盘)。
- 按照向导完成迁移,迁移完成后,旧盘可重新挂载为普通存储。
注意:迁移期间不要断电,整个过程可能需要数小时,取决于数据量。
另外,如果你用的是LVM逻辑卷,还可以通过SSH手动扩容:
# 查看卷组和逻辑卷名称
pvs && vgs && lvs
# 将新分区加入卷组(假设新盘为/dev/sdb1)
pvcreate /dev/sdb1
vgextend vg_data /dev/sdb1
# 扩展逻辑卷(例如/vol1对应的LV)
lvextend -l +100%FREE /dev/vg_data/lv_vol1
resize2fs /dev/vg_data/lv_vol1 # 或 xfs_growfs /vol1
四、预防复发:设置自动清理与告警
清理和扩容只是治标,养成好习惯才能长治久安。建议:
- 在「系统监控」-「告警设置」中,开启磁盘使用率超过80%时的通知。
- 为Docker容器设置
--log-opt max-size=50m --log-opt max-file=3,限制日志体积。 - 定期(比如每季度)执行一次
du -ah --max-depth=1,手动清理大文件。 - 将不常用的冷数据(老照片、旧视频)迁移到云盘或外接USB硬盘,释放NAS空间。
总结
磁盘空间不足并不可怕,只要按顺序操作:先用df和du定位,再清理Docker日志、系统缓存、媒体转码缓存和快照,最后根据情况选择扩展存储池、新增硬盘或迁移系统盘。同时,配置自动告警和日志限额,就能让飞牛NAS长期保持清爽顺畅。记住,定期维护比临时补救更重要,赶紧打开你的NAS,花十分钟实践一下吧。
暂无评论,来说两句吧