Skip to content

Multi-Server Deployment

Meridian VMS is designed to scale horizontally by distributing cameras across multiple recording servers. Each server operates independently while the management server acts as the central control plane.

┌──────────────────────┐
│ Management Server │
│ (central control) │
└──┬─────┬─────┬───────┘
│ │ │
│ │ │
┌────────┘ │ └────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Recorder 1 │ │ Recorder 2 │ │ Recorder 3 │
│ 60 cameras │ │ 60 cameras │ │ 40 cameras │
└─────────────┘ └─────────────┘ └─────────────┘

Cameras are assigned to recording servers through the management web interface. Each camera belongs to exactly one recording server at a time.

Assignment approaches:

  • Manual assignment — Administrators explicitly assign cameras to servers when creating or editing camera records. This gives full control over which cameras run on which hardware.
  • Auto-assignment — When no server is specified during camera creation, the system automatically assigns the camera to the server with the fewest cameras, providing basic load balancing.

Each recording server operates independently:

  • No inter-server communication — Recording servers do not talk to each other. All coordination goes through the management server.
  • Isolated failure domains — If one server goes offline, the others continue recording and serving their cameras without any impact.
  • Independent streaming — Each server runs its own stream relay. Camera connections are local to each server.
  • Independent storage — Each server writes recordings to its own local disk. There is no shared storage requirement.

When camera configuration changes on the management server, those changes are pushed to the affected recording server immediately. There is no need to restart services or wait for a polling cycle.

Supported real-time changes include:

ChangeEffect
Camera added or reassigned to a serverServer begins ingesting and recording the new camera
Camera removed or reassigned awayServer stops recording and releases the camera stream
Camera settings changedServer applies new settings (stream URL, recording parameters, etc.)
Detection zones modifiedAI detection engine updates its zone configuration

Each recording server sends periodic status updates to the management server, including:

  • Per-camera recording status (recording, error, or offline)
  • Disk usage and capacity

The management server uses this data to classify each server’s overall health:

StatusMeaning
OnlineServer is operational and reporting regularly
DegradedServer is running but some cameras are experiencing issues
OfflineServer has stopped reporting — potentially down or unreachable

This health data is displayed in the web interface dashboard and is used by the failover service for automatic camera rebalancing.

The practical camera limit per recording server depends on several factors:

FactorConsideration
Network bandwidthA 10 Gbps link supports approximately 150 cameras at 6 Mbps average bitrate
CPUStream-copy recording is lightweight; modern hardware handles 200+ cameras
Disk throughputSequential write speed must exceed total ingest bitrate
GPU (if detection is enabled)Inference throughput limits the number of cameras that can be analysed
RAMEach camera uses a moderate amount of memory for buffering and processing

A well-provisioned server with 10 Gbps networking and adequate storage can typically handle 100—150 cameras.

To add a new recording server:

  1. Install the recording software on the new server (see Installation).
  2. Configure it with the management server’s address and authentication credentials.
  3. Start the service — it will register itself with the management server automatically.
  4. Assign cameras to the new server via the web interface.

The new server begins recording immediately upon camera assignment.

To decommission a recording server:

  1. Reassign all cameras to other servers via the web interface.
  2. Wait for the new servers to begin recording the reassigned cameras.
  3. Stop and disable the recording service on the decommissioned server.
  4. Optionally, archive or export any needed recordings from the server’s disk.