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.
Updated about 8 hours ago