侧边栏壁纸
博主头像
龍騰博客 博主等级

行动起来,活在当下

  • 累计撰写 161 篇文章
  • 累计创建 31 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

群晖 NAS 监控录像 迁移至 USB SSD 完整教程

管理员
2026-06-27 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

适用机型:DS214play | 2026年6月

一、背景与问题说明

群晖 NAS 的监控套件(Surveillance Station)在持续录像过程中会对硬盘造成大量随机写入,长期运行会显著缩短机械硬盘寿命。本文档记录了一次完整的故障排查和解决过程。

 

1.1 原始方案及其缺陷

原方案使用 eSATA 接口外接一块闲置的西数红盘 3TB 用于存储监控录像,通过 bind mount 将外接盘挂载到 Surveillance Station 的存储路径:

mount -o bind /volumeSATA/satashare /volume1/camera_storage

 

⚠️  此方案存在致命缺陷:bind mount 会将外接盘的 I/O 状态与 NAS 主系统完全绑定。一旦外接盘出现任何故障,整个 NAS 系统将随之崩溃。

 

1.2 故障现象

 NAS 网页无法访问,SSH 无法连接

 WireGuard 内网其他设备正常,唯独 NAS 不可达

 电源灯亮着,机器未关机

 断开 eSATA 盘电源后,NAS 经过约 6 小时才缓慢恢复

 

1.3 根因分析

通过 dmesg 日志确认根本原因:

ata3: device unplugged sstatus 0x0

ata3: SError: { 10B8B }          ← 物理信号编码错误

ata3.00: error: { IDNF }          ← 扇区找不到(坏道特征)

ata3: hard resetting link          ← 内核反复重置,每次阻塞 2-7 秒

 

内核反复尝试重置 eSATA 链路,每次重置期间所有 I/O 请求全部阻塞。由于 bind mount 的强耦合特性,DSM 网络服务进程也被拖入等待队列,最终导致 NAS 完全无响应。

 

二、解决方案

2.1 方案选择

核心原则:使用固态硬盘替代机械硬盘,并加入保护机制防止外接盘故障扩散到主系统。

 

存储介质

三星 870 QVO 1TB SSD(SATA)

连接方式

USB 3.0(通过 USB 转 SATA 转接线)

文件系统

ext4(原 NTFS 改为 ext4,稳定性更好)

挂载方式

bind mount + 守护脚本保护

适用机型

群晖 DS214play(其他型号同理)

 

2.2 为什么选择 SSD

 SSD 无机械结构,天生适合持续写入,不会因为随机写入损坏

 三星 870 QVO 1TB TBW = 360TB,按三路摄像头每天写入约 30GB 计算,理论寿命超过 30 年

 USB 协议容错性比 eSATA 更强,掉线恢复更快

 USB 供电一体,不需要额外电源适配器

 

⚠️  不要使用 NTFS 格式,群晖通过 fuse 驱动挂载 NTFS,性能差且稳定性低。必须使用 ext4 格式。

 

三、操作步骤

3.1 准备工作

1. 购买 SATA SSD(推荐 1TB 或 2TB,三星 870 EVO/QVO 均可)

2. 购买 USB 转 SATA 转接线(某宝约 15-30 元)

3. 将 SSD 通过转接线连接到电脑,格式化为 ext4 格式

 

��  如果在 Windows 下格式化,需要使用 DiskGenius 等工具选择 ext4 格式。也可以直接插到群晖上,由群晖自动格式化。

 

3.2 连接 SSD 到群晖

4. 将 SSD 通过 USB 转 SATA 转接线连接到 DS214play 的 USB 口

5. 等待约 30 秒,群晖会自动识别并挂载

6. SSH 登录群晖验证挂载状态:

mount | grep USB

预期输出:

/dev/sdr1 on /volumeUSB1/usbshare type ext4 (rw,relatime,...)

 

⚠️  设备名(sdr1)可能因系统不同而变化,以实际输出为准。

 

3.3 停止 Surveillance Station

在 DSM 网页端操作:

7. 进入「套件中心」

8. 找到「Surveillance Station」

9. 点击「停止」,等待完全停止

 

3.4 手动测试 bind mount

SSH 登录群晖,手动执行一次挂载确认正常:

mount -o bind /volumeUSB1/usbshare /volume1/camera_storage

mount | grep camera_storage

预期输出:

/dev/sdr1 on /volume1/camera_storage type ext4 (rw,relatime,...)

 

3.5 部署启动守护脚本

这是最关键的步骤。守护脚本包含三层保护机制:

 第一层:等待 USB SSD 就绪后再挂载,防止开机时序问题

 第二层:执行 bind mount

 第三层:后台守护进程,每 60 秒检测 USB SSD 状态,掉线时自动卸载保护主系统,恢复后自动重新挂载

 

在 DSM 网页端操作:

10. 进入「控制面板」→「任务计划」

11. 找到原来的 bind mount 启动任务(或新建一个)

12. 编辑任务,确认设置:用户选择 root,事件选择「启动」

13. 将脚本内容替换为以下完整脚本:

 

#!/bin/bash

# 关闭 USB 省电,防止系统自动断开 USB 设备
echo -1 > /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms
echo on > /sys/bus/usb/devices/usb1/power/control

# 等待 Surveillance Station 完全启动
sleep 60

USB_SRC="/volumeUSB1/usbshare"
BIND_DST="/volume1/camera_storage"
LOG="/var/log/usb_mount.log"

echo "$(date): 启动 USB SSD bind mount 守护" >> $LOG

# === 第一层:等待 USB 卷就绪,最多等 60 秒 ===
for i in $(seq 1 12); do
    if mount | grep -q "/volumeUSB1/usbshare"; then
        echo "$(date): /volumeUSB1/usbshare 就绪" >> $LOG
        break
    fi
    echo "$(date): 等待 /volumeUSB1/usbshare... ($i/12)" >> $LOG
    sleep 5
done

if ! mount | grep -q "/volumeUSB1/usbshare"; then
    echo "$(date): /volumeUSB1/usbshare 未就绪,放弃挂载" >> $LOG
    exit 1
fi

# === 第二层:执行 bind mount ===
mount -o bind "$USB_SRC" "$BIND_DST"
echo "$(date): bind mount 完成" >> $LOG

# === 第三层:后台守护,USB 掉线自动保护系统 ===
(
while true; do
    sleep 60
    if ! mount | grep -q "/volumeUSB1/usbshare"; then
        echo "$(date): /volumeUSB1/usbshare 掉线,主动卸载保护系统" >> $LOG
        umount -l "$BIND_DST" 2>/dev/null
        echo "$(date): 已卸载,系统受保护" >> $LOG
        sleep 300
        if mount | grep -q "/volumeUSB1/usbshare"; then
            mount -o bind "$USB_SRC" "$BIND_DST"
            echo "$(date): 重新挂载成功" >> $LOG
        fi
    fi
done
) &

echo "$(date): 守护进程已启动 PID=$!" >> $LOG

14. 保存脚本

 

��  脚本注意事项:群晖精简系统没有 mountpoint 命令,必须使用 mount | grep -q 来检测挂载状态。

 

3.6 重启 NAS 验证

15. 在 DSM 网页端:「控制面板」→「重新启动」

16. 等待约 5-10 分钟,重启完成后 SSH 登录验证:

# 验证挂载状态

mount | grep -E "camera|USB"

 

# 查看启动日志

cat /var/log/usb_mount.log | tail -10

预期输出(mount):

/dev/sdr1 on /volumeUSB1/usbshare type ext4 (rw,...)

/dev/sdr1 on /volume1/camera_storage type ext4 (rw,...)

预期日志:

Sat Jun 27 xx:xx:xx CST 2026: 启动 USB SSD bind mount 守护

Sat Jun 27 xx:xx:xx CST 2026: /volumeUSB1/usbshare 就绪

Sat Jun 27 xx:xx:xx CST 2026: bind mount 完成

Sat Jun 27 xx:xx:xx CST 2026: 守护进程已启动 PID=xxxxx

 

3.7 启动 Surveillance Station 并配置存储

17. 套件中心 → Surveillance Station → 启动

18. 进入 Surveillance Station → 摄像机 → 编辑每个摄像头 → 录制

19. 设置存储参数:

 

文件保留时间

30 天(根据需求调整)

限制存档文件夹大小

每个摄像头 300GB(三路共 900GB,1TB 盘留余量)

录像分辨率

建议不超过 1080P(老机器 CPU 压力大)

帧率

15fps 即可,无需更高

图像品质

3(无需最高,节省空间和 CPU)

 

⚠️  DS214play 内存仅 683MB 且不可扩展,CPU 为 Marvell ARM 架构。2K 分辨率(2560×1440)会导致 CPU 长期高负载,强烈建议降至 1080P 或 720P。

 

四、日常维护与监控

4.1 检查挂载状态

# 确认两个挂载点都正常

mount | grep -E "camera|USB"

 

# 查看守护日志

tail -20 /var/log/usb_mount.log

 

# 查看 SSD 使用量

df -h /volumeUSB1

 

4.2 守护脚本日志说明

/volumeUSB1/usbshare 就绪

USB SSD 正常,挂载成功

/volumeUSB1/usbshare 未就绪,放弃挂载

开机时 SSD 未就绪,需手动执行一次脚本

/volumeUSB1/usbshare 掉线,主动卸载保护系统

SSD 掉线,已自动保护主系统

重新挂载成功

SSD 恢复,自动重新挂载完成

 

4.3 SSD 掉线的处理

如果日志显示 SSD 频繁掉线:

 检查 USB 线是否接触良好,必要时更换 USB 线

 将 SSD 固定放置,避免震动导致接触不良

 检查群晖 USB 口供电是否稳定

 

4.4 远程应急处理

如果 NAS 再次无法访问:

20. 通过 WireGuard 进入内网,SSH 登录路由器

21. 从路由器 ping NAS:ping 192.168.0.88

22. 如果 NAS 无响应且有智能插座控制 USB SSD 电源,可远程断电重启 SSD

23. 守护脚本会在 SSD 恢复后 5 分钟内自动重新挂载

 

��  强烈建议给 USB SSD 的电源(转接线的 USB 供电口)接一个米家智能插座,便于远程断电重启。

 

五、常见问题排查

5.1 重启后 camera_storage 没有挂载

症状:mount | grep camera_storage 无输出

原因:脚本执行时 Surveillance Station 尚未完全启动,导致 bind mount 被覆盖

解决:手动执行挂载命令,或确认脚本中 sleep 60 已生效

mount -o bind /volumeUSB1/usbshare /volume1/camera_storage

 

5.2 脚本提示「未就绪,放弃挂载」

原因:群晖没有 mountpoint 命令,旧版脚本使用了该命令

解决:确认脚本使用 mount | grep -q 而非 mountpoint -q 来检测挂载状态

 

5.3 系统负载(load average)长期偏高

DS214play 存在以下已知问题:

 Syno_HDDMon、DisplayVBI 等内核进程长期处于 D 状态,这是老平台固有问题

 683MB 内存对于多套件并行运行来说过于紧张

缓解措施:

 停用 Active Insight 套件(会消耗大量 CPU 和内存)

 停用 LogCenter、USBCopy 等非必要套件

 摄像头分辨率降至 720P,帧率设为 10-15fps

 

5.4 SSD 设备名变化

每次重启后 SSD 的设备名(sdr1、sds1 等)可能变化,但挂载路径 /volumeUSB1/usbshare 保持不变,脚本使用路径检测,不受设备名变化影响。

 

六、方案对比总结

对比项

原方案(eSATA 红盘)

新方案(USB SSD)

稳定性

差,磁头损耗易故障

好,无机械结构

故障传播

直接拖垮整个 NAS

守护脚本自动隔离保护

远程恢复

需等待数小时

5 分钟内自动恢复

使用寿命

3-5 年(持续写入)

理论 30+ 年

供电

需要外接电源

USB 供电一体

文件系统

NTFS(fuse 驱动,不稳定)

ext4(原生支持,稳定)

成本

废盘利用,零成本

约 200-400 元(二手或新盘)

 

 

文档版本:1.0  |  更新日期:2026年6月27日  |  DragonHome NAS 运维记录

0

评论区