软件定义型 VMS 架构分析 能力边界、依赖关系与高可用性部署
软件定义型 VMS 架构分析 能力边界、依赖关系与高可用性部署
简介:软件定义型 VMS 的架构分野
本报告旨在对以 Shinobi 为代表的软件定义型视频管理系统(Software-Defined Video Management System, VMS)的体系结构进行技术分析。本分析验证了一个核心论点:该模型在架构上优于传统的、基于硬件设备的网络视频录像机(NVR),但在实现其高级能力时,表现出对外部高可用性(HA)基础设施的明确依赖。
传统的 NVR 设备本质上是一个“黑盒”一体机。这种模式将硬件、操作系统与应用软件紧密耦合,提供固定的能力(例如 16 或 32 路通道)和有限的内部存储(例如 1 到 2 个硬盘位)1。这种模式与传统的 IT 基础设施范式一致,即硬件、操作系统和应用程序是一个不可分割的单元。
相比之下,软件定义型 VMS 是一种将应用层与其底层硬件解耦的模型 1。这种在现代数据中心中普遍采用的架构,将 VMS 软件(应用层)、数据库(状态层)和视频存储(数据层)分离开来 3。这种方法反映了虚拟化环境的灵活性 5,并使其具备了传统一体机无法实现的先进扩展能力、集成能力与存储治理能力。
后续章节将基于权威技术文档和学术研究,对此架构差异进行详尽的、基于证据的阐述。报告将详细分析软件定义模型所带来的具体能力、为实现高可用性而必须厘清的架构责任边界,并构建一个弹性的、生产级的参考架构。
I. 解耦型 VMS 架构的核心能力
本章节将通过分析软件定义型 VMS 与现代数据中心原则的一致性,来论证其“先进性”的具体体现。
A. 横向扩展与多节点工作负载分发
软件定义型 VMS 的一个根本优势在于其计算弹性。它采用的是横向扩展(“scale-out”)模型,即通过增加更多的资源实例(计算节点)来扩展能力,而不是像纵向扩展(“scale-up”)那样增加单一机器的容量 7。
这种架构通常通过“主节点 + 子节点”(或称“main + child”)的节点结构来实现。这种设计允许系统根据入站负载自动分配工作负载(如视频流的解码、转码和录制),甚至可以使用可调谐的触发器来按需调配或释放计算资源 9。
这种能力直接解决了 NVR 一体机的固定容量限制。通过简单地在集群中添加更多子节点,计算能力就可以(或接近)线性扩展,以满足不断增长的需求(例如增加更多摄像头)10。这还允许进行更精细的资源分配,例如将不同地理位置的特定摄像头组就近分配给相应的算力节点,以优化网络带宽 11。
这种架构选择从根本上重构了 VMS 的运维模型。一台 NVR 一体机的故障是灾难性的、需要物理更换的事件。而在软件定义模型中,一个“子节点”的故障通常是一个非事件;工作负载(在第 II.A 节所述机制的辅助下)会被自动重新调度到集群中其他可用的节点上。这使得 VMS 从一个脆弱的、以硬件为中心的模型,转变为一个弹性的、以软件为中心的模型。
B. 先进的存储治理与数据生命周期管理
软件定义型 VMS 将数据存储从计算节点解耦,将存储视为一个外部的、可编程的平面 4。这种设计实现了复杂且基于策略的数据治理能力,远超 NVR 设备的“固定内置硬盘”模型。
1. 多层存储架构 (Multi-Tier Storage)
该系统采用多层存储模型,利用具有不同每 TB 成本和性能特征的存储介质 12。这种模型是管理视频监控等大规模非结构化数据的标准实践 12。
2. “热缓存 + 异步上传”模式
这是实现高通量数据写入(Ingest)的关键机制。架构包含两个核心部分:
热缓存(前端磁盘): VMS 首先将视频数据写入“前端磁盘”12 或“本地缓存”13,通常是高性能的本地 NVMe 或 SSD。
冷存储(归档层): 数据的最终归宿是一个高延迟、低成本、高持久性的对象存储系统,例如 S3 兼容平台(如 MinIO、Ceph RGW)14。
连接这两个层级的是异步上传机制。IBM 的技术文档证实,这种模式是专门为“克服对象存储的高延迟写入”而设计的 13。高速本地磁盘充当写入缓冲区,允许 VMS 以极低的延迟接收数据流,同时在本地“形成完整的数据块”,然后再异步地写入对象存储。这种机制显著“提高了(对象存储的)写入性能”13。
3. 自动化的生命周期管理
“冷”存储层不是静态的。VMS 可以利用基于策略的自动化来管理数据的完整生命周期 14。
机制: 这通常通过“S3 生命周期策略”来实现 18。这些策略是一系列规则的集合,定义了两种类型的动作:
转换动作 (Transition actions): 例如,在 90 天后将数据从“热”的 S3 Standard 层迁移到“冷”的 S3 Glacier/Archive 层。
过期动作 (Expiration actions): 例如,在 365 天后永久删除数据 19。
收益: 这种设计将保留策略、归档和清理流程完全自动化,使得录像保有期从 NVR 时代的几天或几周(受限于 1-2 块硬盘)延长至数年,同时极大优化了存储成本 14。
这种架构证明了软件定义型 VMS 不再是一个单纯的“录像机”,而是一个“数据管理平台”。它将关注点从“这个盒子里能装几块盘?”转变为“我的数据在不同时间点的价值是什么?”。它将视频流作为一种需要被治理的数据资产来对待,而不仅仅是等待被覆盖的文件。
C. 扩展性、可观测性与访问控制
根据 IBM 的现代数据架构原则,软件定义系统是为互操作性(“以开放性构建”)和集成到更广泛的 IT 生态系统而设计的 20。
API 与 Webhook: 系统提供开放的应用编程接口(API)和 Webhook,以实现与第三方系统的自动化和数据交换 21。
API(请求驱动): 允许外部系统(如审计、计费平台)拉取数据或推送命令 21。
Webhook(事件驱动): 提供一种更高效的“推送”模型,当 VMS 内部发生特定事件(如“检测到移动”)时,由 VMS 主动通知外部系统 21。这是构建事件驱动型监控架构的基石 23。
可观测性 (Observability): 系统不再是“黑盒”。它被设计为可观测的,提供详细的日志、指标和事件追踪,使运维人员能够理解系统的内部状态 25。这对于在复杂分布式环境中进行审计 26 和故障排查 27 至关重要。
精细化的访问控制: 系统实现了基于角色的访问控制(Role-Based Access Control, RBAC)28。
机制: RBAC 基于用户的角色(例如“管理员”、“操作员”、“审计员”)而不是其个人身份来授予权限 28。
收益: 这极大简化了权限管理,并强制执行了“最小权限原则”29。它允许定义极其精细的权限,例如授予一个子账户仅能查看单一摄像头的权限,这对于多租户或高安全环境至关重要。
D. 系统可维护性与组件解耦
计算、存储和状态的解耦 3 带来了一个主要的运营优势:可维护性。
在一个NVR一体机中,任何单一组件的故障(例如主板、电源或磁盘)通常意味着整个单元停止工作,并且必须整体更换(即“黑盒”故障)。
在解耦型架构中,组件是相互独立的、可替换的。数据库服务器可以在不触及存储集群的情况下进行升级。一个发生故障的计算节点可以在不中断录像服务的情况下被替换。这种“可任意处置的基础设施”(Disposable Infrastructure)模型是现代系统弹性的基础 31。
II. 架构边界:区分软件能力与基础设施依赖
本章节将深入探讨一个核心观点:“集群”和“副本”能力并非 VMS 软件所固有的。它们是 VMS 作为应用程序从底层基础设施消费的服务。运维人员有责任构建并维护这些基础设施。
A. 计算平面:实现服务可用性
问题(单点故障): 虽然“主 + 子”节点架构 9 可以分散负载,但“主”节点(或 API 入口)本身成为了一个新的单点故障(Single Point of Failure, SPOF)。如果这个入口点宕机,整个 VMS 集群(即使其他节点均健康)也将变得无法访问。
解决方案(外部 HA): 这种服务层面的高可用性不是由 VMS 软件自身提供的,而是由外部的反向代理和负载均衡器(如 HAProxy)提供的 32。
HAProxy 的角色:
负载均衡: 将入站的 API 请求或视频流请求,分发到后端健康的 VMS 节点池(“backends”)中 33。
健康检查: 持续监控 VMS 节点的健康状态。如果一个节点未能通过健康检查,HAProxy 会自动将其从后端池中移除,防止流量被发送到故障实例 34。
故障切换: 这种健康检查机制为计算层提供了自动化的故障切换。
这证实了 VMS 软件的多节点能力主要用于负载分配(可扩展性),而 HAProxy 则提供了服务可用性(弹性)。这是两个不同层面的功能,VMS 软件只提供了前者,后者必须由网络基础设施来保障。
B. 数据平面:实现状态高可用性
问题(状态化 SPOF): VMS 是一个状态化应用。它依赖于关系型数据库(如 MariaDB)来存储所有关键配置、用户账户、摄像头设置和事件元数据。这个数据库是整个系统最关键的单点故障 35。一个单实例数据库的故障将导致整个 VMS 瘫痪。
常见的(不足的)方案: 异步的主从复制(Primary-Replica)37。虽然这提供了一个只读副本,但故障切换通常是手动的、缓慢的,并且极易导致数据丢失(例如最后几秒的配置变更)38。
正确的 HA 解决方案(外部集群): 真正的数据库高可用性需要一个同步的、多主的数据库集群 39。VMS 软件不提供此功能;它只是一个连接到该集群的客户端。运维人员必须自行构建这个外部数据库集群。
参考实现:MariaDB Galera Cluster
架构: Galera Cluster 是一个“同步多主”(Active-Active)解决方案 39。
机制: 当 VMS 节点向 Galera 集群中的任何一个节点写入状态数据时,该事务在被提交之前,会通过“虚拟同步”的方式复制到所有其他节点 41。
收益: 这种架构提供了“零数据丢失”43 和“无从库延迟”39。如果任何一个数据库节点发生故障,其他节点(它们也是活跃的主节点)可以无缝地继续处理读写请求,服务不会中断 40。
这是最重要的架构边界。通过将 VMS 的“大脑”(状态)外包给像 Galera 这样具备原生 HA 能力的系统,VMS 的计算节点(主节点和子节点)本身在功能上变成了无状态或易失状态的,使其可以被“任意处置”。这是一个意义深远的架构转变:VMS 计算节点的故障(由 HAProxy 解决)和 VMS 数据库节点的故障(由 Galera 解决)都可以在不中断核心服务的情况下被容忍。
C. 存储平面:实现数据持久性与副本
本节旨在验证一个核心论断:“录像副本保存在存储平面上”。VMS 软件是一个写入者;它将视频数据流写入一个存储目标。该数据的持久性、冗余性和副本策略,完全由该存储目标的架构来决定。
1. 本地磁盘冗余(单机容错)
目标: VMS 节点写入其本地挂载的磁盘。
机制: 为了防止单一磁盘故障(但不能防止整机故障),通常使用 ZFS 这样的软件定义文件系统。ZFS 通过端到端校验和来确保数据完整性,并通过“ditto blocks”(元数据复制)或软件 RAID(RAID-Z)来提供冗余 44。
边界: 这仅提供本地完整性。如果整个 VMS 节点(例如主板或电源)发生故障,数据仍然会丢失 44。这被称为“单机容错”。
2. 分布式块/文件存储(机架级容错)
目标: VMS 写入一个分布式存储系统,该系统被挂载为文件系统(如 CephFS)或块设备(如 Ceph RBD)46。
机制: 底层的 Ceph RADOS(可靠的、自动化的、分布式的对象存储)层,会自动将数据副本(或纠删码分片)分布到多个不同的物理服务器(OSD)上 49。
边界: VMS 软件只感知到它正在写入一个文件(例如 video.mp4)。Ceph 在后台透明地在不同的机器上创建了三个(或更多)副本。这提供了“机架级容错”——VMS 软件对此过程毫不知情,它只看到了一个高可用的文件系统 46。
3. 对象存储持久性(跨机房/地域持久性)
目标: VMS(通过其异步上传机制)将数据写入 S3 兼容的对象存储(如 MinIO、Ceph RGW)14。
机制: 这些系统通常使用**纠删码(Erasure Coding)**而非简单的复制来实现极高的持久性 51。数据被分解为“数据分片”,并创建额外的“校验分片”。系统可以丢失多个节点(例如,在 12+4 的配置中丢失 4 个节点)而数据仍然可以被完整重构 53。
边界: 这种方法以更低的存储开销提供了更高的持久性 51,是“地理分散”部署的首选机制 53。VMS 软件的角色仅仅是执行 S3 PUT 操作。视频数据的持久性完全由对象存储系统的架构来保障。
III. 对比分析:软件定义型 VMS vs. 一体机 NVR
本章节基于前述分析,提供了两种架构模型的直接对比。
A. 通道容量与处理弹性
一体机 NVR: 固定容量(例如 16/32 路),由购买时的硬件规格决定。扩展需要废弃旧设备并购买新设备。
软件定义型 VMS: 弹性容量。通过横向添加“子”计算节点,可以从 1 路扩展到数千路摄像头 7。
B. 存储架构与保留灵活性
一体机 NVR: 固定且内置。受限于 1-2 个内部驱动器托架。保留期受限于物理容量,通常数据在几天或几周内即被覆盖。
软件定义型 VMS: 解耦且分层 12。使用本地高速缓存(热)13 并异步归档至近乎无限容量的对象存储(冷)14,通过自动化的 S3 生命周期策略 18 实现以年为单位的保留期。
C. 容错与弹性模型
一体机 NVR: 单点故障。设备的电源、主板或(非 RAID)磁盘的任何故障,都将导致 100% 的录制和查看功能丢失。
软件定义型 VMS: 多层、分布式的弹性。根据现代弹性系统设计原则,在每个独立的层级构建弹性 31:
计算(服务): HA 由外部负载均衡器(如 HAProxy)提供 33。
状态(数据库): HA 由外部同步数据库集群(如 MariaDB Galera)提供 40。
存储(视频数据): 持久性由外部存储平面(如 Ceph 或 MinIO)提供 46。
D. 集成与运营管理
一体机 NVR: 封闭生态。依赖专有协议或功能有限的 Web UI。集成困难或几近不可能。它是一个运维“黑盒” 1。
软件定义型 VMS: 开放且可扩展。专为集成而设计,提供开放 API、Webhook 和事件流 21。它为企业级监控工具提供完全的可观测性(日志、指标)25。
表 1:一体机 NVR 与软件定义型 VMS 的架构与运营对比
IV. 弹性化部署的参考架构
本章节综合了前述所有分析,构建了一个生产级的“落地型”参考架构。该架构仿照了 Microsoft 等公司文档中标准的、高弹性的三层应用设计(Web/业务/数据)55。
A. TIER 1:入口层("Web Tier")
组件: 一个集群化(主备或双活)的 HAProxy 负载均衡器对 33。
功能:
为所有用户和 API 流量提供单一虚拟 IP(VIP)入口。
对“应用层”的 VMS 节点执行健康检查 34。
(可选)终结 SSL。
在一个 VMS“主”节点发生故障时,提供自动化的服务故障切换。
B. TIER 2:应用层("Business Tier")
组件: 两个或更多 VMS "Main" 节点(用于 API/控制)和 N 个 VMS "Child" 节点(用于录制/计算)9。
功能:
Main 节点: 运行核心应用逻辑,提供 UI/API,并通过连接到 Tier 3 来管理状态。它们部署在 HAProxy 集群之后。
Child 节点: 执行重负载任务(解码、分析、录制)。它们是可横向扩展的 7,并直接将视频数据写入“存储平面”。
C. TIER 3:数据与存储平面
该层分为两个截然不同的状态化系统:用于元数据的数据库和用于视频数据流的存储平面。
1. 数据库(状态化元数据)
组件: 一个三节点的 MariaDB Galera Cluster 40。
功能: 为所有 VMS 配置、用户账户和摄像头设置提供一个同步的、主动-主动的、多主存储 39。三节点是维持“法定人数”(Quorum)并容忍任何单个数据库节点故障而服务不中断的最小配置。
2. 存储平面(状态化视频数据)
组件: 由热存储、近线存储和归档存储组成的多层系统。
热缓存 (Tier 0): "Child" 节点上的本地 NVMe 磁盘。
功能: 充当初始的、低延迟的写入缓冲区。这是实现高性能写入和异步上传的“前端磁盘”12。
近线存储 (Tier 1 - 可选): 一个 Ceph 集群 (RBD/CephFS) 46。
功能: 用于需要高性能、即时访问的录像。提供机架级容错 49。VMS 将其视为一个简单的高可用网络共享或块设备。
归档存储 (Tier 2 - 冷): 一个 MinIO 或 Ceph RGW 集群 14。
功能: 为长期归档提供低成本、高持久性的 S3 兼容目标。数据持久性通过纠删码来确保 53。
策略: VMS 应用策略(例如,“24 小时后上传到 S3”)13,而对象存储自身则应用生命周期策略(例如,“5 年后删除”)18。
D. 可观测性框架
组件: 一个集中的日志记录、监控和审计系统。
功能: 从所有组件(HAProxy、VMS 节点、MariaDB、Ceph)收集日志和指标,以提供系统健康和安全的统一视图 25。这得益于 VMS 的开放和事件驱动架构 23。
结论:综合评估软件定义型 VMS 的架构角色
基于 IBM、Microsoft、Red Hat 的权威技术文档和相关学术研究的分析,验证了本报告的初始论点。
以 Shinobi 为代表的软件定义型 VMS,相较于单体式的“一体机 NVR”,代表了一次重大的架构演进。其解耦的、软件定义的特性,释放了与现代弹性数据中心设计 31 相一致的能力——包括弹性横向扩展 7、复杂的多层存储治理 12 以及开放的 API 驱动集成 21。
然而,本报告明确指出,VMS 软件本身主要扮演的是应用和编排层的角色。其先进的“集群”和“副本”能力并非自洽的,它们依赖于将 VMS 部署在一个正确构建的、高可用的基础设施之上。
真正的弹性和数据持久性不是 VMS 的功能,而是 VMS 所消费的服务。这些服务由三个独立的、外部的、必需的基础设施平面来交付:
计算平面: 由反向代理(如 HAProxy)提供服务级别的高可用性 33。
数据平面: 由同步多主数据库集群(如 MariaDB Galera)为状态化配置提供零数据丢失的保障 40。
存储平面: 由分布式(Ceph)和对象(MinIO)存储系统,为录制的视频提供真正的副本复制和纠删码持久性 46。
最终,VMS 软件的核心职责是可靠地将数据置于运维人员所设计的存储平面中;而该数据的高可用性与持久性承诺,则由那个存储平面的架构来兑现。
Works cited
Virtualization Defined - Eight Different Ways - White Paper - F5, accessed November 13, 2025,
Virtualization and Future Technologies - NERC, accessed November 13, 2025,
DeSC: Decoupled Supply-Compute Communication Management for Heterogeneous Architectures - MRM Research Group, accessed November 13, 2025,
The Role of Cloud Computing in Decoupling Storage and Processing: Enhancing Flexibility in Technological Choices - TIJER, accessed November 13, 2025,
WHITE PAPER Choosing the Right Hardware for Server Virtualization IDC OPINION - HP, accessed November 13, 2025,
VMS Design Guide - Whitepapers | Milestone Documentation 2025 R2, accessed November 13, 2025,
Autoscaling Guidance - Azure Architecture Center | Microsoft Learn, accessed November 13, 2025,
Architecture strategies for optimizing scaling and partitioning - Microsoft Azure Well-Architected Framework, accessed November 13, 2025,
Horizontal Scaling | Virtuozzo Dev Docs, accessed November 13, 2025,
Node Autoscaling | Kubernetes, accessed November 13, 2025,
VideoJam: Self-Balancing Architecture for Live Video Analytics - Francesco Bronzino, accessed November 13, 2025,
Multi-Tier Storage for Video Surveillance - XenData, accessed November 13, 2025,
Local caching for overcoming the different IO characteristics of ... - IBM, accessed November 13, 2025,
Data Lifecycle Management and Tiering - MinIO, accessed November 13, 2025,
MinIO: S3 Compatible, Exascale Object Store for AI, accessed November 13, 2025,
Object Gateway Guide | Red Hat Ceph Storage | 5, accessed November 13, 2025,
Exploring IBM Storage Ceph Block Storage - IBM Redbooks, accessed November 13, 2025,
Amazon S3 Documentation, accessed November 13, 2025,
Data lifecycle management - Best Practices for Building a Data Lake ..., accessed November 13, 2025,
Modern Data Architecture Principles | IBM, accessed November 13, 2025,
How integrations create value for your contingent workforce program ..., accessed November 13, 2025,
System Integration Whitepaper - SMKSoft, accessed November 13, 2025,
A Framework For An Event Driven Video Surveillance System - ResearchGate, accessed November 13, 2025,
An Event-Driven Approach to the Recognition Problem in Video Surveillance System Development - ResearchGate, accessed November 13, 2025,
Enhancing Observability in Distributed Systems-A Comprehensive Review - ResearchGate, accessed November 13, 2025,
Enhancing Observability in Distributed Systems-A Comprehensive Review - Scientific Research and Community, accessed November 13, 2025,
Listening to what the system tells us: Innovative auditing for distributed systems - Frontiers, accessed November 13, 2025,
What is Role-Based Access Control (RBAC)? A Guide to RBAC - SailPoint, accessed November 13, 2025,
What Is Role-Based Access Control (RBAC)? | IBM, accessed November 13, 2025,
Azure RBAC documentation - Microsoft Learn, accessed November 13, 2025,
Data Resiliency in Microsoft 365 - Microsoft Service Assurance, accessed November 13, 2025,
HAProxy version 3.3-dev11-17 - Starter Guide, accessed November 13, 2025,
An Introduction to HAProxy and Load Balancing Concepts - DigitalOcean, accessed November 13, 2025,
HAProxy Enterprise Documentation version 2.6r1 (1.0.0-301.1713 ..., accessed November 13, 2025,
High availability strategies - IBM, accessed November 13, 2025,
High availability strategies - IBM, accessed November 13, 2025,
MariaDB Galera Cluster Overview, accessed November 13, 2025,
MariaDB Server vs MariaDB Galera Cluster HA Replication - Stack Overflow, accessed November 13, 2025,
galera cluster for mysql and mariadb the true multi-master, accessed November 13, 2025,
High Availability with MariaDB Galera Cluster Guide - Mydbops, accessed November 13, 2025,
galera-documentation.., accessed November 13, 2025,
MariaDB Galera Cluster | Galera Cluster | MariaDB Documentation, accessed November 13, 2025,
High Availability | Galera Cluster | MariaDB Documentation, accessed November 13, 2025,
Differences between HW RAID and ZFS - Server Fault, accessed November 13, 2025,
(PDF) End-to-end Data Integrity for File Systems: A ZFS Case Study., accessed November 13, 2025,
Architecture — Ceph Documentation, accessed November 13, 2025,
Ceph File System - Ceph Documentation, accessed November 13, 2025,
Ceph.io — Technology, accessed November 13, 2025,
Ceph File System Guide - Red Hat Documentation, accessed November 13, 2025,
Architecture Guide | Red Hat Ceph Storage | 7, accessed November 13, 2025,
Understanding Data Durability: Replication to Erasure Coding - APTrust, accessed November 13, 2025,
Erasure Coding vs. Replication: A Quantitative Comparison, accessed November 13, 2025,
IBM Cloud Object Storage Concepts and ... - IBM Redbooks, accessed November 13, 2025,
Reliability design principles - Microsoft Azure Well-Architected Framework, accessed November 13, 2025,
Multi-tier web application built for HA/DR - Azure Architecture Center ..., accessed November 13, 2025,
Configure 3-tier deployment architecture using Application Request Routing, accessed November 13, 2025,
Deploy Highly Available NVAs - Azure Architecture Center | Microsoft Learn, accessed November 13, 2025,