Guides
Log In
Guides

Storage Roles

External Storage Role Overview

The External Storage Role enables selected IDACs (referred to as "voters") to serve as centralized storage nodes for the system. These IDACs handle file replication and storage continuity across the platform.

Important
Before executing changes, you must ensure:

  • At least one active IDAC with the Storage Role remains operational
  • Synchronization of stored files is fully completed before decommissioning or replacing an IDAC.

To confirm successful synchronization, verify the following:

  • Physical file presence
  • File list consistency
  • File sizes
  • Checksums (cksum

Centralized Storage

Cyolo supports centralized storage, allowing administrators to assign specific IDACs to store recordings. This simplifies storage management and reduces disk space requirements across the cluster.

📘

Notes

  • Icons are excluded: Each IDAC retains a local copy of icons.
  • During storage migration, voter IDACs temporarily act as storage nodes to ensure continuity. Admins can adjust the configuration post-migration as needed.

Icons

The replication of icons occurs only once, during the initial loading of a new icon into the system. If the IDAC cannot locate the icon locally, it will redirect the user to another IDAC, assuming the icon exists there, and will begin retrieving the missing icon from that IDAC.

There is no built-in synchronization mechanism for icons, as the system relies on IDACs being able to fetch missing icons from one another.

If an icon is missing, there are two possible solutions:

  • Re-upload the icon, ensuring all IDACs remain in sync.
  • Use an external utility (e.g., cp or rsync) to manually synchronize the /blobs/ folders across IDACs.

Managing IDAC Storage Roles via Tinker

To manage dynamic roles (like storage) on an IDAC, use the following Tinker commands inside the IDAC container.

Access the container

Execute the following command from the Linux host machine:

docker exec -it $(docker ps | grep -i idac | awk '{print $NF}') bash

Command usage overview

./idac tinker dynamic-roles [command]

Available Commands

assign [role-name] — Assign a role to the current IDAC

unassign [role-name] — Remove a role from the current IDAC

list — List all available dynamic roles

list-members [role-name] — List IDACs currently assigned a specific role

Examples

List available roles

./idac tinker dynamic-roles list

List current storage memebrs

./idac tinker dynamic-roles list-members storage

Assign the storage role

./idac tinker dynamic-roles assign storage

Unassign the storage role

./idac tinker dynamic-roles unassign storage

Important: Configure the Recordings Bucket Size

ITo set the maximum size for the recordings bucket/directory, use the Swagger UI command under the Storage section:

GET https://console.<YourTenantDomain>/v1/storage/list_buckets
PUT https://console.<YourTenantDomain>/v1/storage/recordings with body: {"capacity_gb": 100}

Note: The default value is 50 GB.