RK3588 存储部署与排障
1. 后端选择
| 后端 | 常见文件系统 |
|---|---|
| eMMC/SD | ext4、F2FS |
| NVMe/SATA | ext4、XFS、Btrfs |
| raw NAND | UBI + UBIFS |
| 只读固件 | EROFS、SquashFS |
| 容器 root | OverlayFS |
| 临时数据 | tmpfs |
| NAS/集群 | NFS、SMB、CephFS |
2. 编解码场景
多路视频写入特点:
- 大文件顺序写;
- 环形删除;
- fsync 策略;
- 突发码率;
- DMA/CMA 与 page cache 争内存;
- eMMC 写放大和寿命。
建议预分配文件、批量 metadata、控制保留空间,并实测掉电恢复。
3. 页缓存和内存
大量 buffered write 会占用 page cache。关注:
1 | grep -E 'MemAvailable|Cached|Dirty|Writeback|Slab' /proc/meminfo |
容器业务同时设置 memory.high/max 和合理 writeback,避免一个 workload 的脏页挤压全系统及 CMA。
4. 存储观测
1 | findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS |
设备名按实际平台替换。
5. 错误定位
只读 remount
检查 dmesg 中 filesystem error、I/O error、journal abort、控制器 timeout。不要直接 remount rw 后继续覆盖证据。
ENOSPC
同时检查:
- block;
- inode;
- reserved space;
- quota;
- Btrfs global reserve/chunk;
- F2FS overprovision/GC;
- deleted-but-open files。
“空间未释放”
1 | lsof +L1 |
unlink 只删除目录项,open/mmap 引用结束后数据才回收。
高延迟
区分:
- filesystem journal/checkpoint;
- dirty throttling;
- block queue;
- device GC/thermal;
- reclaim;
- sync storm;
- 网络 RTT。
6. Mount options
不要套用统一“性能参数”。评估:
noatime/lazytime;- commit/checkpoint 周期;
- discard 在线或定期 fstrim;
- compression;
- barrier/flush(通常不应关闭);
- errors policy;
- data mode;
- Overlay copy-up;
- NFS/SMB cache。
关闭 barrier 可能导致断电损坏,除非硬件提供并已验证等效持久保障。
7. 固件更新
推荐:
- A/B 只读 system image;
- dm-verity/fs-verity;
- 原子切换 boot slot;
- 数据分区独立;
- schema version;
- 断电注入测试;
- 可回滚;
- upper layer migration。
8. 性能测试
基准应覆盖:
- 冷/热缓存;
- 顺序/随机;
- 小文件 metadata;
- fsync p99;
- ENOSPC 接近满盘;
- 长时间 steady-state;
- 高温降速;
- 掉电后 replay/fsck 时间;
- 与真实编码业务并发。
9. 配置核对
源码目录存在某文件系统不等于镜像启用。使用:
1 | zcat /proc/config.gz | grep -E 'EXT4|F2FS|EROFS|OVERLAY|UBIFS|NFS|CIFS|CEPH' |
模块还需安装到 rootfs,并满足 crypto、NLS、network 等依赖。
正在加载留言…