Hardware requirements

Overview

MiaRec solution has flexible architecture supporting various deployment scenarios depending on number of users and requirements to high availability and redundancy.

"All-in-one" configuration is recommended for up to 2,000 users.

The distributed configuration is recommended for more than 2,000 users (more details here).

All-in-one server

This article provides hardware recommendations for "all-in-one" setup, where all software components (recorder, database, web portal and storage) are deployed in a single server.

All-in-one architecture

"All-in-one" configuration is recommended for deployments up to 2,000 users. For larger deployments we recommend to use decoupled architecture (multiple servers).

Recommended hardware configuration for recording 50-500 users

Physical or virtual server with the following minimum hardware specification:

CPU Intel CPU quad-core or better. Frequency at least 2.0GHz.
Memory 16 GB or more
Storage

  • Two high speed disks (at least 10,000 rpms HDD or preferably SSD) in RAID 1 configuration for storing operating system, program files and database data. Disk space requirements - at least 300GB.

  • High capacity disk array (local or NAS/SAN) in RAID 5/6 configuration for storing audio mp3 files and, optionally, log files. Disk space requirements - 0.24 MB/minute of recording

    For example, in average a business user makes 10 calls per day with a duration 5 minutes. This will end up to 1,000 minutes per user per month (assuming 20 working days). One month of storage for 500 users will require 120 GB of disk space.

OS Windows Server 2012, 2016 (64-bit) or Linux RedHat/Centos 7.x

Recommended hardware configuration for recording 500-1,000 users

Physical or virtual server with the following minimum hardware specification:

CPU Intel CPU six-core or better. Frequency at least 2.3GHz.
Memory 32 GB or more
Storage

  • Two high speed disks (at least 10,000 rpms HDD or preferably SSD) in RAID 1 configuration for storing operating system, program files and database data. Disk space requirements - at least 600GB.

  • High capacity disk array (local or NAS/SAN) in RAID 5/6 configuration for storing audio mp3 files and, optionally, log files. Disk space requirements - 0.24 MB/minute of recording

    For example, in average a business user makes 10 calls per day with a duration 5 minutes. This will end up to 1,000 minutes per user per month (assuming 20 working days). One month of storage for 1,000 users will require 240 GB of disk space.

OS Windows Server 2012, 2016 (64-bit) or Linux RedHat/Centos 7.x

Recommended hardware configuration for recording 1,000-2,000 users

Physical or virtual server with the following minimum hardware specification:

CPU Intel CPU hex-core or better. Frequency at least 2.3GHz.
Memory 64 GB or more
Storage

  • Two high speed disks (at least 10,000 rpms HDD or preferably SSD) in RAID 1 configuration for storing operating system, program files and database data. Disk space requirements - at least 1,000 GB.

  • High capacity disk array (local or NAS/SAN) in RAID 5/6 configuration for storing audio mp3 files and, optionally, log files. Disk space requirements - 0.24 MB/minute of recording.

    For example, in average a business user makes 10 calls per day with a duration 5 minutes. This will end up to 1,000 minutes per user per month (assuming 20 working days). One month of storage for 2,000 users will require 480 GB of disk space.

OS Linux RedHat/Centos 7.x

More than 2,000 users

For larger deployments we recommend to use decoupled architecture (multiple servers).

High availability and redundancy

MiaRec supports High Availability setup using advanced multi-master asynchronous replication between multiple "all-in-one" servers. More details about data replication

All-in-one architecture with replication

Decoupled architecture

Within MiaRec's decoupled architecture, each software component (recorder engine, database, web portal, storage) is deployed on a dedicated server. As an option, the components may be duplicated to achieve full redundancy and/or scalability.

Decoupled architecture is recommended for recording 2000 or more users.

The following diagram shows the extreme case when at least two copies of each component are deployed on their own dedicated server (master/slave or multi-master) to achieve full redundancy.

Besides such extreme cases, MiaRec supports other configurations with a partial share of hardware resources with some other components. For example, for a small-scale deployment in a hosted environment we recommend you isolate a recording server as the minimum requirement. The rest of the components may share hardware resources on the second server. This two-server setup provides a good balance between security (isolation of a critical recording server) and cost (sharing of hardware resources by other components).

Nowadays a virtualization is a preferred deployment method for new software. In a virtual environment it is significantly cheap to spin up additional VMs and isolate components from each other to achieve reliability, security and scalability.

Decoupled architecture

Such architecture allows you to achieve the following goals:

  • Redundancy: All components are duplicates to eliminate single-point-of-failure issues. Some of these components support master/master, others support master/slave configuration with a floating ip-address mechanism.

  • Performance: The software components do not ontend for the same server resources (CPU, Memory, I/O, etc.)

  • Scalability: Multiple recording and web servers can be deployed for load balancing purposes. Additional server could be easily added to the solution to cover customer growth. MiaRec software architecture provides an almost linear scalability of individual components. For example, if the bottle-neck is a web portal, then you just need to spin up an additional VM with web application.

  • Reliability: The components are isolated from each other. In a hosted environment, it is important to isolate recording servers from web servers in order to prevent potential disruption of service due to occasional spikes in web traffic. With such architecture, the issues with some of components are not propagated to other components. In the worse case, you may have slowdown of the web portal, but the recording process will not suffer from such issues, and you will not lose any recordings due to CPU/disk/network overload.

  • Security: In a hosted environment, it is important to keep recording and database servers in a private network isolated from end-user facing web servers. A potential breach of the web server will not spread to other servers.

Hardware specification recommendations

Different components have different requirements to hardware. For example, MiaRec recording server benefits the most from multiple CPU cores and does not benefit at all from additional memory (for example, recording of 500 concurrent sessions consumes less than 1GB of memory, but requires 16-core CPU). The database server benefits the most from SSD disks with a high speed random access. The web portal doesn't benefit from SSD disks, but it benefits from additional memory.

Below you will find recommendations on the hardware specification of each individual component.

Recording server hardware requirements

We recommend one recording server (or virtual machine) for each 500 concurrently recorded session (equivalent to approximately 5,000 users in a Hosted PBX environment). MiaRec recording engine has exceptional performance, and can record 1,000 and more concurrent session on a single server; we recommend you keep an average load of 500 concurrent sessions per server in order to have enough room for potential spikes in load.

When using audio file encryption, the recommendations are one server per 250-300 concurrently recorded session.

Small server configuration (about 1,000 users per recorder server):

CPU 4 cores or more. Frequency of at least 2.26GHz.
Memory 16 GB or more
Storage

  • 2 hard disks using RAID 1 for storing OS, binary files and log files. Minimum free disk space is 300GB (for log files).
  • 2 high speed hard disks (10K or 15K RPM) using RAID 1 for temporary storage of audio files for in-progress calls. Minimum free disk space is 300GB. (*)

Large server configuration (about 10,000 users per recorder server):

CPU 12 cores or more. Frequency of at least 2.26GHz.
Memory 32 GB or more
Storage

  • 2 hard disks using RAID 1 for storing OS, binary files and log files. Minimum free disk space is 300GB (for log files).
  • 2 high speed hard disks (10K or 15K RPM) using RAID 1 for temporary storage of audio files for in-progress calls. Minimum free disk space is 300GB. (*)

(*) - For performance reasons it is recommended that you store audio files for in-progress calls locally on the server. The audio file will be moved to the network attached storage at the end of each call.

In addition to performance reasons, this solution provides another layer of protection to prevent network failures. In case there are network connection issues due to the NAS, the recorder process may continue to record calls, and store audio files locally till the connection to the NAS server is recovered.

Database server requirements

One or two database servers (PostgreSQL) in master/slave configuration using floating ip failover mechanism.

CPU 2 cores or more. Frequency of at least 2.26GHz.
Memory 32 GB or more
Storage Solid state drives (SSDs) using RAID 1 or RAID 10 with free space 3GB for each 1M records stored in database

Web application server requirements

One or more web application servers are required for load balancing and redundancy purposes.

Each of the servers host web portals as well as worker processes for task manager. The task manager is used to execute various maintenance tasks like export, backup, replication, retention, etc. The workers on multiple web application servers form the pool of workers, i.e. the tasks are automatically distributed over multiple application servers for redundancy and load balancing purposes.

The recommended number of web servers depends on anticipated pages/s web requests load.

For a hosted PBX environment a rough estimate is one web server per 5,000 users.

CPU 4 cores or more. Frequency of at least 2.26GHz.
Memory 16 GB or more
Storage

2 hard disks using RAID 1 for storing OS, binary files and log files. Minimum free disk space is 150GB (for log files).

Web load balancer requirements

The web load balancer (HAProxy) is required when two or more web servers are deployed.

The load balancer server itself may be duplicated to eliminate a single point of failure situation. Switchover between load balancing servers is implemented using floating ip mechanism.

CPU 2 cores. Frequency of at least 3.00GHz.
Memory 4 GB
Storage Storage is not critical because HAProxy is mostly CPU consuming process (single thread). 64GB of disk storage for OS, application binary files and logs should be enough.

Message Broker server requirements

One or two servers in master/slave configuration for message queue system. The message queue system is used for internal communication between various components of MiaRec solution.

CPU 2 cores or more. Frequency of at least 2.26GHz.
Memory 16 GB or more
Storage

  • 2 hard disks using RAID 1 for storing OS and binary files (64GB)
  • 2 high speed hard disks (10K or 15K RPM) using RAID 1 for persistent storage of messages with free space at least 64GB.

Network attached storage (NAS) for audio files

MiaRec stores audio files in compressed MP3 format. Default compression settings are 0.24MB/minute of recording.

Decoupled with GEO-redundancy

MiaRec supports advanced multi-master asynchronous application-level replication between datacenters. It is quite unique on the market because other vendors mostly support either master/slave or master/master synchronous or SAN-based replication (expensive and not suitable for GEO-redundancy).

More details about benefits of MiaRec replication.

Decoupled architecture

Disk space requirements

MiaRec supports following formats for audio files:

Format Size per minute Hours per TB
MP3 (stereo 32kbps) - default 0.24 MB/minute 72,818 hours/TB
MP3 (mono 16kbps) 0.12 MB/minute 146,636 hours/TB
WAV (stereo) 1.92 MB/minute 9,102 hours/TB
WAV (mono) 0.96 MB/minute 18,204 hours/TB

Format of audio file and MP3 bitrate settings are configurable.

Example of disk space requirements calculations

Assumptions:

  • In average, a business user makes 10 calls per day with a duration 5 minutes. This results into 1,000 minutes per user per month (assuming 20 working days).
  • File format is MP3 stereo 32kbps, i.e. 0.24MB/minute

Approximate disk space requirements (see assumptions):

Total users 30 days storage 1 year storage 3 year storage 7 year storage
50 12 GB 144 GB 432 GB 1,000 GB
100 24 GB 288 GB 864 GB 2,000 GB
200 48 GB 576 GB 1,728 GB 4,000 GB
500 120 GB 1,440 GB 4,320 GB 10,000 GB
1,000 240 GB 2,880 GB 8,640 GB 20,000 GB
2,000 480 GB 5,760 GB 17,280 GB 40,000 GB

Screen recording storage requirements

Screen recording compression is configurable under Administration -> Screen Recording -> Screen Recording Settings.

A default bitrate is 256kbps, which is the best balance between video quality and file size.

Bitrate Size per minute Hours per TB
256kbps 1.92 MB/minute 9,102 hours/TB