常见问题

飞牛NAS磁盘空间不足:快速清理与扩容

飞牛NAS用久了,最头疼的问题莫过于“存储空间不足”的红色警告。无论是系统盘还是存储池,一旦空间告急,不仅下载任务会中断,Docker容器也可能频繁报错,甚至导致系统服务无响应。这篇文章会从快速清理无损扩容两个维度,帮你彻底解决磁盘空间焦虑。

第一步:定位空间占用大户

在动手清理前,先搞清楚空间被谁吃掉了。飞牛NAS自带“存储管理”界面,但更推荐用命令行精准定位。

1. 查看文件系统整体占用

df -h

重点看挂载点为 //vol1 的行。如果使用率超过80%,就需要立即处理。

2. 找出目录级占用排行

sudo du -h --max-depth=2 /vol1 2>/dev/null | sort -rh | head -20

这条命令会列出 /vol1 下占用最大的前20个目录。注意:--max-depth=2 可以防止输出过深,避免卡死。

3. 针对Docker目录单独排查

如果安装了Docker,镜像和容器日志是隐藏的“空间杀手”:

sudo du -sh /var/lib/docker/*

通常 /var/lib/docker/overlay2/var/lib/docker/containers 会占大头。

第二步:安全清理的5个实用技巧

技巧1:清理Docker悬空镜像与无用卷

# 删除所有悬空镜像(没有标签的中间层)
docker image prune -f

# 删除所有未被容器使用的卷(谨慎操作,先查看列表)
docker volume ls -qf "dangling=true" | xargs -r docker volume rm

技巧2:清理容器日志文件

容器日志默认无限增长,需要限制大小。修改 /etc/docker/daemon.json

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

保存后重启Docker服务:sudo systemctl restart docker。对于已有的超大日志文件,直接清空:

sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log

技巧3:清理飞牛自带的回收站

飞牛文件管理器的回收站默认开启,删除的大文件不会立刻释放空间。进入 桌面 → 回收站,选择“清空回收站”。命令行方式:

sudo rm -rf /vol1/@recycle/*

技巧4:清理系统更新缓存与临时文件

sudo apt clean
sudo rm -rf /tmp/*
sudo journalctl --vacuum-size=100M

journalctl 会压缩系统日志到100MB以内,不影响系统运行。

技巧5:查找并清理大文件

使用 find 命令找出大于1GB的文件:

sudo find /vol1 -type f -size +1G -exec ls -lh {} \;

对于视频缓存、临时下载文件,确认无用后直接删除。

第三步:无损扩容方案

如果清理后空间仍然紧张,说明物理容量确实不够了。飞牛NAS支持多种扩容方式,最推荐的是通过“存储池”扩展

方案A:更换更大容量硬盘(单盘/RAID1)

  1. 飞牛OS → 存储管理 → 存储池 中,选中当前存储池。
  2. 点击“编辑” → “添加硬盘”。
  3. 插入新硬盘(容量需大于等于旧盘),选择“作为替换盘”。
  4. 系统会提示“重建存储池”,等待同步完成。
  5. 同步完成后,旧盘可以拔出,新盘容量自动生效。

注意:此方案只适用于RAID1或Basic模式。如果是单盘Basic,需要先备份数据再换盘。

方案B:新增硬盘并扩展共享文件夹

如果主板还有空闲SATA口,直接加一块新盘:

  1. 物理安装新硬盘,在飞牛OS中格式化为Btrfs或Ext4。
  2. 进入 存储管理 → 存储空间,选择“新建存储空间”。
  3. 将新空间挂载到现有共享文件夹的下一级目录,例如 /vol1/新盘数据
  4. 手动迁移部分数据到新目录,或使用 rsync 同步:
sudo rsync -av --progress /vol1/旧目录/ /vol2/新目录/

方案C:LVM逻辑卷扩容(进阶)

如果当初创建存储池时使用了LVM,可以无缝扩容:

# 查看卷组剩余空间
sudo vgdisplay

# 扩展逻辑卷(例如增加100GB)
sudo lvextend -L +100G /dev/vg_fnos/vol1

# 扩展文件系统
sudo resize2fs /dev/vg_fnos/vol1  # Ext4
# 或 sudo btrfs filesystem resize max /vol1  # Btrfs

执行后无需重启,空间立即生效。

第四步:设置自动清理策略

为了避免下次再爆盘,建议设置定时任务。

创建每日清理脚本

新建 /usr/local/bin/cleanup.sh

#!/bin/bash
# Docker清理
docker image prune -f
docker volume prune -f

# 清理回收站
rm -rf /vol1/@recycle/*

# 清理系统日志
journalctl --vacuum-size=50M

# 删除超过30天的临时文件
find /vol1/tmp -type f -mtime +30 -delete

赋予执行权限并加入crontab:

sudo chmod +x /usr/local/bin/cleanup.sh
sudo crontab -e

添加一行:

0 3 * * * /usr/local/bin/cleanup.sh

每天凌晨3点自动执行。

总结

磁盘空间管理不是一次性的工作,需要“清理+监控+扩容”三管齐下。日常使用中,建议开启飞牛的“存储空间使用率告警”,设置80%为预警线。当清理无法解决问题时,优先考虑RAID1替换大容量硬盘或LVM在线扩容,这两种方案都无需停机。最后,养成定期检查Docker镜像和回收站的习惯,能避免90%的容量危机。你的飞牛NAS会因此保持长期稳定流畅。

💬 评论区
发表评论

暂无评论,来说两句吧