EasyGBS作为一款轻量级GB/T28181视频监控平台,其SD卡存储功能在实际项目中应用广泛。但很多刚接触这套系统的工程师经常遇到两个典型问题:一是SD卡无法正常写入录像,二是录像计划配置后不生效。这两个问题看似简单,却直接影响监控数据的完整性。
我在多个安防项目中部署EasyGBS时,发现90%的SD卡存储问题都源于这两个环节的操作疏漏。本文将用实操案例演示如何通过正确的SD卡格式化方法和录像计划配置技巧,确保监控录像稳定存储。
不同于普通存储设备,监控专用SD卡需要满足:
一个完整的录像计划必须包含:
推荐使用工业级监控专用SD卡,具备:
注意:切勿使用二手SD卡,已有数据可能造成文件系统冲突
物理接入
通过读卡器将SD卡连接至EasyGBS服务器,建议使用USB3.0接口
识别设备
bash复制fdisk -l # 确认设备路径如/dev/sdb1
卸载已有挂载
bash复制umount /dev/sdb1
EXT4格式化
bash复制mkfs.ext4 -O ^has_journal /dev/sdb1 # 禁用日志减少写入损耗
优化挂载参数
在/etc/fstab中添加:
bash复制/dev/sdb1 /mnt/sdstorage ext4 defaults,noatime,nodiratime,data=writeback 0 0
bash复制# 测试写入速度
dd if=/dev/zero of=/mnt/sdstorage/testfile bs=1M count=1024 conv=fdatasync
# 查看实际挂载参数
mount | grep sdstorage
/mnt/sdstorage| 参数项 | 推荐值 | 作用说明 |
|---|---|---|
| 预录时长 | 10秒 | 触发事件前的缓冲录像 |
| 分段时长 | 5分钟 | 单个视频文件最大时长 |
| 写入缓存 | 8MB | 平衡性能与断电风险 |
| I/O调度策略 | Deadline | 优化视频流写入顺序 |
对于商场监控场景,建议分时段配置:
text复制工作日模板:
08:00-22:00 全时段录像(1080P@25fps)
22:00-08:00 移动侦测录像(720P@15fps)
节假日模板:
全天移动侦测录像(1080P@20fps)
现象:监控画面正常但无录像文件
排查步骤:
dmesg | grep sd是否有I/O错误echo "test" > /mnt/sdstorage/test.loggetenforce经验:多数情况是因EXT4的acl权限导致,执行
setfacl -R -m u:EasyGBS:rwx /mnt/sdstorage
典型场景:移动侦测未触发录像
解决方案:
curl -X POST http://localhost:10000/api/v1/record/manual修复方法:
bash复制# 使用ffmpeg修复MP4文件
ffmpeg -i corrupted.mp4 -c copy -f mp4 fixed.mp4
# 批量修复脚本
find /mnt/sdstorage -name "*.mp4" -exec ffmpeg -i {} -c copy {}.fixed \;
IO负载均衡
多卡环境下采用轮询写入策略:
python复制# 示例:轮询写入脚本
import os
cards = ['/mnt/sd1','/mnt/sd2']
current = 0
def get_write_path():
global current
path = cards[current]
current = (current + 1) % len(cards)
return path
智能清理机制
设置自动清理90天前录像:
bash复制crontab -e
# 每天3点执行清理
0 3 * * * find /mnt/sdstorage -type f -mtime +90 -exec rm {} \;
健康监测
部署SD卡SMART检测:
bash复制smartctl -a /dev/sdb | grep "Media_Wearout_Indicator"
# 阈值低于10%应更换新卡
在实际项目中,建议每季度对SD卡进行表面检测(badblocks检测)和性能测试,工业环境下的SD卡平均寿命通常在18-24个月。对于关键场所,应采用双卡热备方案,通过rsync实时同步数据到备用卡。