Difference between revisions of "Recommended hardware"

From Kolmisoft Wiki
Jump to navigationJump to search
Tag: Manual revert
 
(107 intermediate revisions by 8 users not shown)
Line 1: Line 1:
Main principle - as powerful as possible.
== Specifications ==
 
Main principle - as powerful as possible.  
 
It is required to have a clean server without any additional packets installed.
 
Default Centos kernel is required for all functionality to work correctly.
 
For single server solution we recommend:


For 1 server solution:
{| border="1" cellpadding="5" cellspacing="0"  
{| border="1" cellpadding="5" cellspacing="0"  
| '''Component''' || '''Minimum requirement''' || '''Recommended''' || [[File:check.png]] ''' We provide as [[Hosted MOR | Hosted Solution]]''' || '''Comment'''
| '''Component''' || '''Minimum requirement (for testing)''' || '''Recommended (for production)''' || '''Comment'''
|-
| CPU || 4c/8t (four core, eight thread) Xeon || any higher CPU, at least 8 cores  ||  
|-
|-
| CPU || Quad Xeon/Intel Core i5+ || any higher CPU || [[File:check.png]] Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz ||  
| RAM || 16 GB || 32 GB || 32/64 GB ||
|-
|-
| RAM || 4 Gb || 16 GB or more || [[File:check.png]] 32 GB ||
| HDD || 100 Gb SSD (Solid State Drives) all space must be assigned to / partition; 500+ GB for M4 || 500+ Gb, SSD (Solid State Drives)/NVM Express (NVMe), [http://en.wikipedia.org/wiki/RAID#RAID_1 RAID Type 1] all space must be assigned to / partition; || separated /boot partition is fine since it is small; do not create separated partitions for /home, /var and similar ||
|-
|-
| HDD || 50 Gb || 100 Gb or more, SDD (Solid State Drives), [http://en.wikipedia.org/wiki/RAID#RAID_1 RAID Type 1] || [[File:check.png]] 2 x 120 GB SSD RAID 1 || all space must be assigned to / partition
| OS || Rocky 9 minimal || Rocky 9 minimal || OS timezone must be set to UTC or at least to Timezone which does not have daylight saving; language/locale should be default one (en_US)
|-
|-
| OS || [[Centos_installation | Centos 6]] || x86_64 || [[File:check.png]] Centos 6.2 ||
| NIC|| Any || '''M4''': Intel I210, I350, X550T (if you need over 700 concurrent calls) || Realtek RTL8111/8168/8411, Intel 82574L are weak NICs, not recommended
|-
|-
| Brand|| Any || Intel, DELL, HP, Fujitsu || [[File:check.png]] Intel ||
| Brand|| Any || Intel, DELL, HP, Fujitsu ||
|}
|}


* [[Centos installation | Centos installation instructions]]
<br><br>
 
== Requirements for specific elements in a multi-server deployment ==
 
'''Asterisk/Core server:''' same requirements as above, except SSD would not increase performance so it is not needed and 4 GB of RAM is sufficient. CPU is most important component here. If Proxy solution is in use, Asterisks cannot be under NAT, it must have Public IP for SIP and RTP traffic. Must be located as close as possible to Database server to avoid problems caused by latency.
 
'''Database server:''' same requirements as above and SSD is highly recommended here. SSD is must if system has more than one Asterisk server. There should be 100GB or more space as database grows fast on high traffic. It is recommended to start with at least 400GB on M2 systems. Fast data storage device and CPU are most important here. If more than one Database server is in use, UPS (Uninterruptible Power Supply) devices must be used for these servers, otherwise power outage would cause broken replication. 8Gb RAM minimum. Must be located as close as possible to Asterisk server to avoid problems caused by latency.
 
'''GUI server:''' same requirements as above, except SSD would not increase performance a lot. HDD with more space is recommended here.
 
'''Proxy server:''' same requirements as above, except 4 GB of RAM and 40 GB on HDD will be enough here. SSD would not increase performance. Proxy server cannot be under NAT, it must have Public IP for SIP traffic.
<br><br>
== Requirements for redundant deployment ==
Requirements for network to which servers are connected:
* Both servers should be within same subnet.
* Both servers should be able to ''broadcast'' packets to UDP 694 port.
* Both servers should be able to receive packets broadcasted by other server.
* There should be Virtual IP reserved in Subnet.
* Both servers should be able to work with that Virtual IP (only one server at same time).
 
If any of requirements above are not met, in some cases it is possible to adapt different network configurations or services (like "IP Failover").
 
In this case, you need to develop and manage special scripts or third-party software to achieve this (Kolmisoft does not provide this service).
 
<br><br>
 
== Virtualization ==
 
MOR system was tested and working on the following Virtualization technologies:
* VMware
* VirtualBox
* XEN
* AWS
* Azure
 
In general, we do not recommend using Virtual machines for multi-server solutions when those Virtual machines are running on the same host.


Such server should handle up to 500 calls while calls are not reencoded (also known as transcoding) and GUI is not in use.
Best multi-server system performance is achieved when running on Dedicated servers or on Virtual machines running on dedicated servers.  


We also recommend to have clean server without any additional packets installed.
<br><br>
<br><br>
For many servers solution:


'''Asterisk server:''' same requirements as above, except SSD would not increase performance so it is not needed and 4 GB of RAM is sufficient. CPU is most important component here. If Proxy solution is in use, Asterisks cannot be under NAT, it must have Public IP for SIP and RTP traffic.
== FAQ ==
 
* '''Do you have the provision of STUN and TURN servers on your end?'''


'''Database server:''' same requirements as above and SSD is highly recommended here. Fast data storage device and CPU are most important here.
No, we do not provide STUN servers. MOR should receive Public IPs on SIP headers. NAT traversal should be done on the customer's side.


'''GUI server:''' same requirements as above, except SSD would not increase performance a lot. HDD with more space is recommended here.
* '''Can I have redundancy between two data centers?'''
 
There's always a risk that the data center in which you keep your servers can be down for various reasons.
 
To reduce such risk, you can consider redundancy between two data centers located in different countries or continents.
 
Such implementation can work only if both data centers meet the requirements described [[Recommended_hardware#Requirements_for_redundant_deployment | here]].
 
However, we do not recommend this because of the following reasons:
 
1. Different data centers cannot ensure the same subnet for servers, so you must use VPN which is difficult to manage or DNS.


'''Proxy server:''' same requirements as above, except 4 GB of RAM and 40 GB on HDD will be enough here. SSD would not increase performance. Proxy server cannot be under NAT, it must have Public IP for SIP traffic.
2. MySQL replication requires a stable connection. If replication fails, you will have a "split-brain" scenario and it will not be possible to fix this without losing calls and billing information.


<br><br>
<br><br>
= See also =
= See also =


* [[How fast MOR can perform]]
* [[How fast MOR can perform]]
* [[Stress Test 2012-03-05]]
* [[Check server compatibility]]

Latest revision as of 07:18, 22 May 2024

Specifications

Main principle - as powerful as possible.

It is required to have a clean server without any additional packets installed.

Default Centos kernel is required for all functionality to work correctly.

For single server solution we recommend:

Component Minimum requirement (for testing) Recommended (for production) Comment
CPU 4c/8t (four core, eight thread) Xeon any higher CPU, at least 8 cores
RAM 16 GB 32 GB 32/64 GB
HDD 100 Gb SSD (Solid State Drives) all space must be assigned to / partition; 500+ GB for M4 500+ Gb, SSD (Solid State Drives)/NVM Express (NVMe), RAID Type 1 all space must be assigned to / partition; separated /boot partition is fine since it is small; do not create separated partitions for /home, /var and similar
OS Rocky 9 minimal Rocky 9 minimal OS timezone must be set to UTC or at least to Timezone which does not have daylight saving; language/locale should be default one (en_US)
NIC Any M4: Intel I210, I350, X550T (if you need over 700 concurrent calls) Realtek RTL8111/8168/8411, Intel 82574L are weak NICs, not recommended
Brand Any Intel, DELL, HP, Fujitsu



Requirements for specific elements in a multi-server deployment

Asterisk/Core server: same requirements as above, except SSD would not increase performance so it is not needed and 4 GB of RAM is sufficient. CPU is most important component here. If Proxy solution is in use, Asterisks cannot be under NAT, it must have Public IP for SIP and RTP traffic. Must be located as close as possible to Database server to avoid problems caused by latency.

Database server: same requirements as above and SSD is highly recommended here. SSD is must if system has more than one Asterisk server. There should be 100GB or more space as database grows fast on high traffic. It is recommended to start with at least 400GB on M2 systems. Fast data storage device and CPU are most important here. If more than one Database server is in use, UPS (Uninterruptible Power Supply) devices must be used for these servers, otherwise power outage would cause broken replication. 8Gb RAM minimum. Must be located as close as possible to Asterisk server to avoid problems caused by latency.

GUI server: same requirements as above, except SSD would not increase performance a lot. HDD with more space is recommended here.

Proxy server: same requirements as above, except 4 GB of RAM and 40 GB on HDD will be enough here. SSD would not increase performance. Proxy server cannot be under NAT, it must have Public IP for SIP traffic.

Requirements for redundant deployment

Requirements for network to which servers are connected:

  • Both servers should be within same subnet.
  • Both servers should be able to broadcast packets to UDP 694 port.
  • Both servers should be able to receive packets broadcasted by other server.
  • There should be Virtual IP reserved in Subnet.
  • Both servers should be able to work with that Virtual IP (only one server at same time).

If any of requirements above are not met, in some cases it is possible to adapt different network configurations or services (like "IP Failover").

In this case, you need to develop and manage special scripts or third-party software to achieve this (Kolmisoft does not provide this service).



Virtualization

MOR system was tested and working on the following Virtualization technologies:

  • VMware
  • VirtualBox
  • XEN
  • AWS
  • Azure

In general, we do not recommend using Virtual machines for multi-server solutions when those Virtual machines are running on the same host.

Best multi-server system performance is achieved when running on Dedicated servers or on Virtual machines running on dedicated servers.



FAQ

  • Do you have the provision of STUN and TURN servers on your end?

No, we do not provide STUN servers. MOR should receive Public IPs on SIP headers. NAT traversal should be done on the customer's side.

  • Can I have redundancy between two data centers?

There's always a risk that the data center in which you keep your servers can be down for various reasons.

To reduce such risk, you can consider redundancy between two data centers located in different countries or continents.

Such implementation can work only if both data centers meet the requirements described here.

However, we do not recommend this because of the following reasons:

1. Different data centers cannot ensure the same subnet for servers, so you must use VPN which is difficult to manage or DNS.

2. MySQL replication requires a stable connection. If replication fails, you will have a "split-brain" scenario and it will not be possible to fix this without losing calls and billing information.



See also