找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 4|回覆: 0

    用 NAS 當 NVR:儲存規劃、硬碟選擇與保留策略

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    錄影是持續寫入的工作負載,
    跟一般 NAS 的使用模式完全不同。

    這篇講怎麼規劃才不會把硬碟操壞。



    先算你需要多少空間

    粗略的估算(H.264):


    • 1080p @ 15fps —— 約 1.5-2 GB / 天 / 台(連續錄影)
    • 1080p @ 30fps —— 約 3-4 GB / 天 / 台
    • 2K @ 15fps —— 約 3-5 GB / 天 / 台
    • 4K @ 15fps —— 約 8-12 GB / 天 / 台


    實際會差很多,因為:


    • 畫面變化越多,檔案越大(樹在晃 vs 靜止的牆)
    • 夜間紅外線畫面通常比較小
    • H.265 大約是 H.264 的一半


    算式
    1. 需要空間 = 每天大小 × 攝影機數量 × 保留天數 × 1.2(餘裕)
    複製代碼

    例子:三台 1080p@15fps、保留 14 天
    1. 2 GB × 3 台 × 14 天 × 1.2 = 約 100 GB
    複製代碼

    用 motion 模式(只錄有動靜的)可以省 60-80%

    錄影模式的取捨

    Frigate 的三種模式:


    • all —— 連續錄,什麼都不漏,但最吃空間
    • motion —— 只錄有動靜的片段(我推薦這個
    • active_objects —— 只錄有追蹤物件的,最省但可能漏掉

    1. record:
    2.   enabled: true
    3.   retain:
    4.     days: 7
    5.     mode: motion          # 一般片段只留有動靜的
    6.   alerts:
    7.     retain:
    8.       days: 30            # 警報事件留久一點
    9.   detections:
    10.     retain:
    11.       days: 14
    複製代碼

    分層保留是關鍵


    • 一般片段留 7 天(佔空間但價值低)
    • 有偵測到物件的留 14 天
    • 警報(進入重要區域)留 30 天




    硬碟怎麼選

    一、用 HDD 不要用 SSD

    這跟直覺相反,但錄影是持續順序寫入


    • HDD 的順序寫入速度足夠(100-200 MB/s)
    • SSD 有寫入壽命,連續寫入會加速耗損
    • HDD 便宜很多(同容量可能差三倍)


    SSD 只適合放系統和資料庫,不適合放錄影。

    二、選「監控專用」的硬碟

    常見的監控碟系列有 WD Purple、Seagate SkyHawk 這類。

    它們跟一般硬碟的差別


    • 為 24/7 持續寫入設計
    • 韌體針對多串流寫入最佳化
    • 通常標示可支援的攝影機數量
    • 比較能容忍錯誤(錄影掉一格 frame 比整個重試好)


    NAS 碟(WD Red、Seagate IronWolf)也可以
    但它們是為隨機讀寫和 RAID 最佳化的。

    桌機碟(WD Blue、Barracuda)不建議 ——
    不是為 24/7 設計的。

    三、SMR 和 CMR 的差別(很重要)


    • CMR(傳統磁記錄) —— 寫入穩定
    • SMR(疊瓦式磁記錄) —— 容量大但持續寫入時效能會暴跌


    錄影絕對不要用 SMR 硬碟。

    症狀是:一開始正常,寫滿一定量之後速度掉到十分之一
    然後錄影開始掉格或中斷。

    怎麼查:搜尋「型號 + CMR or SMR」,
    或者看廠商公布的對照表。

    四、RAID 要不要做

    錄影資料我建議不要做 RAID。

    理由:


    • 錄影資料不是不可取代的(壞了就是少幾天的影片)
    • RAID 會放大寫入量(RAID 5/6 的寫入懲罰)
    • 浪費容量


    比較好的做法


    • 系統和設定 → 做 RAID 1(重要,要可用性)
    • 錄影資料 → 單顆硬碟,滿了就覆蓋
    • 重要片段 → 手動或自動備份到別的地方




    實際的磁碟配置建議
    1. 群暉 / NAS:
    2.   Volume 1(SSD 或 RAID 1 HDD)
    3.     ├── Docker 設定
    4.     ├── 資料庫(InfluxDB)
    5.     └── 備份
    6.   Volume 2(單顆監控碟,無 RAID)
    7.     └── Frigate 錄影
    8.         ├── recordings/     ← 持續寫入
    9.         ├── clips/          ← 事件片段
    10.         └── exports/        ← 手動匯出的(這個要備份)
    複製代碼

    為什麼分開


    • 錄影碟的寫入量是其他資料的幾十倍
    • 分開的話,錄影碟壞掉不影響其他服務
    • 可以針對錄影碟設不同的電源管理(不要讓它休眠)


    硬碟休眠的問題

    NAS 預設會讓硬碟休眠省電。錄影碟絕對不能休眠。

    理由:


    • 每次喚醒都是一次啟停循環,比持續運轉更傷
    • 喚醒需要幾秒,這段時間的錄影可能丟失


    群暉的設定:控制台 → 硬體和電源 → 硬碟休眠 →
    把錄影碟所在的 Volume 排除。

    健康監控

    把硬碟狀態接進 HA
    1. command_line:
    2.   - sensor:
    3.       name: 錄影碟溫度
    4.       unique_id: nvr_disk_temp
    5.       command: >
    6.         ssh -i /config/ssh/id_rsa admin@192.168.1.20
    7.         "sudo smartctl -A /dev/sata2 | awk '/Temperature_Celsius/ {print \$10}'"
    8.       unit_of_measurement: "°C"
    9.       device_class: temperature
    10.       scan_interval: 600
    11.   - sensor:
    12.       name: 錄影碟重新配置扇區
    13.       unique_id: nvr_disk_realloc
    14.       command: >
    15.         ssh -i /config/ssh/id_rsa admin@192.168.1.20
    16.         "sudo smartctl -A /dev/sata2 | awk '/Reallocated_Sector_Ct/ {print \$10}'"
    17.       scan_interval: 3600
    複製代碼

    三個最值得看的 SMART 數值


    • Reallocated_Sector_Ct(重新配置扇區)—— 從 0 變成非 0 就是警訊
    • Current_Pending_Sector(待處理扇區)—— 同上
    • Temperature_Celsius —— 持續超過 50 度要注意散熱

    1. alias: 硬碟健康警報
    2. triggers:
    3.   - trigger: numeric_state
    4.     entity_id: sensor.錄影碟重新配置扇區
    5.     above: 0
    6. actions:
    7.   - action: notify.mobile_app_charles
    8.     data:
    9.       title: 硬碟出現壞軌
    10.       message: >
    11.         錄影碟的重新配置扇區數變成
    12.         {{ states('sensor.錄影碟重新配置扇區') }},
    13.         建議儘快備份並準備更換
    14.       data:
    15.         push:
    16.           interruption-level: time-sensitive
    17. mode: single
    複製代碼

    RAID 不是備份(再強調一次)

    前面有一篇專門講。重點是:

    RAID 防硬碟故障,不防誤刪、勒索軟體、火災、人為錯誤。

    自動清理

    Frigate 會自動依 retain 設定清理,但還是要監控剩餘空間
    1. command_line:
    2.   - sensor:
    3.       name: 錄影碟可用空間
    4.       unique_id: nvr_free_space
    5.       command: >
    6.         ssh -i /config/ssh/id_rsa admin@192.168.1.20
    7.         "df -h /volume2 | tail -1 | awk '{print \$5}' | tr -d '%'"
    8.       unit_of_measurement: "%"
    9.       value_template: "{{ 100 - (value | int) }}"
    10.       scan_interval: 1800
    複製代碼

    低於 15% 就警報,因為:


    • Frigate 的清理有延遲
    • 滿了的話新的錄影會失敗(而且可能不會明顯報錯)


    網路頻寬的考量

    這個很多人忽略

    三台 2K 攝影機同時串流給 NAS:


    • 每台約 4-8 Mbps
    • 三台 = 12-24 Mbps
    • 再加上 Frigate 的偵測子串流


    Wi-Fi 的話會很吃力,而且會影響其他裝置。

    強烈建議攝影機用 PoE 有線

    而且攝影機和 NAS 最好在同一台交換器上
    不要讓錄影流量穿過路由器。

    ---

    我自己的配置:


    • 四台 PoE 攝影機 → PoE 交換器 → NAS(同一台交換器)
    • 錄影碟:單顆 4TB 監控碟,不做 RAID
    • 保留策略:一般 7 天、偵測 14 天、警報 30 天
    • 實際用量大概 600 GB
    • SMART 監控接進 HA


    跑了一年多,硬碟溫度穩定在 38-42 度,SMART 全綠。

    最重要的一件事還是:不要用 SMR 硬碟
    我朋友用了一顆,三個月後錄影開始掉格,查了很久才發現原因。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:31 , Processed in 0.074594 second(s), 24 queries .

    快速回覆 返回頂部 返回列表