2.3. Planning Node Hardware Configurations

Virtuozzo Infrastructure Platform works on top of commodity hardware, so you can create a cluster from regular servers, disks, and network cards. Still, to achieve the optimal performance, a number of requirements must be met and a number of recommendations should be followed.

2.3.1. Hardware Limits

The following table lists the current hardware limits for Virtuozzo Infrastructure Platform servers:

Table 2.3.1.1 Server hardware limits
Hardware Theoretical Certified
RAM 64 TB 1 TB
CPU 5120 logical CPUs 384 logical CPUs

A logical CPU is a core (thread) in a multicore (multithreading) processor.

2.3.2. Hardware Requirements

Deployed Virtuozzo Infrastructure Platform consists of a single management node and a number of storage and compute nodes. The following subsections list requirements to node hardware depending on usage scenario.

2.3.2.1. Requirements for Management Node with Storage and Compute

The following table lists the minimal and recommended hardware requirements for a management node that also runs the storage and compute services.

If you plan to enable high availability for the management node (recommended), all the servers that you will add to the HA cluster must meet the requirements listed in this table.

Table 2.3.2.1.1 Hardware for management node with storage and compute
Type Minimal Recommended
CPU

64-bit x86 Intel processors with “unrestricted guest” and VT-x with Extended Page Tables (EPT) enabled in BIOS

16 logical CPUs in total*

64-bit x86 Intel processors with “unrestricted guest” and VT-x with Extended Page Tables (EPT) enabled in BIOS

32+ logical CPUs in total*

RAM 32 GB** 64+ GB**
Storage

1 disk: system + metadata, 100+ GB SATA HDD

1 disk: storage, SATA HDD, size as required

2+ disks: system + metadata + cache, 100+ GB recommended enterprise-grade SSDs in a RAID1 volume, with power loss protection and 75 MB/s sequential write performance per serviced HDD (e.g., 750+ MB/s total for a 10-disk node)

4+ disks: HDD or SSD, 1 DWPD endurance minimum, 10 DWPD recommended

Network

1 GbE for storage traffic

1 GbE (VLAN tagged) for other traffic

2 x 10 GbE (bonded) for storage traffic

2 x 1 GbE or 2 x 10 GbE (bonded, VLAN tagged) for other traffic

* A logical CPU is a core (thread) in a multicore (multithreading) processor.

** Each chunk server (CS), e.g., storage disk, requires 1 GB of RAM (0.5 GB anonymous memory + 0.5 GB page cache). The total page cache limit is 12 GB. In addition, each metadata server (MDS) requires 0.2 GB of RAM + 0.1 GB per 100TB of physical storage space.

2.3.2.2. Requirements for Storage and Compute

The following table lists the minimal and recommended hardware requirements for a node that runs the storage and compute services.

Table 2.3.2.2.1 Hardware for storage and compute
Type Minimal Recommended
CPU

64-bit x86 processor(s) with Intel VT hardware virtualization extensions enabled

8 logical CPUs*

64-bit x86 processor(s) with Intel VT hardware virtualization extensions enabled

32+ logical CPUs*

RAM 8 GB** 64+ GB**
Storage

1 disk: system, 100 GB SATA HDD

1 disk: metadata, 100 GB SATA HDD (only on the first three nodes in the cluster)

1 disk: storage, SATA HDD, size as required

2+ disks: system, 100+ GB SATA HDDs in a RAID1 volume

1+ disk: metadata + cache, 100+ GB enterprise-grade SSD with power loss protection and 75 MB/s sequential write performance per serviced HDD (e.g., 750+ MB/s total for a 10-disk node)

4+ disks: HDD or SSD, 1 DWPD endurance minimum, 10 DWPD recommended

Network

1 GbE for storage traffic

1 GbE (VLAN tagged) for other traffic

2 x 10 GbE (bonded) for storage traffic

2 x 1 GbE or 2 x 10 GbE (bonded) for other traffic

* A logical CPU is a core (thread) in a multicore (multithreading) processor.

** Each chunk server (CS), e.g., storage disk, requires 1 GB of RAM (0.5 GB anonymous memory + 0.5 GB page cache). The total page cache limit is 12 GB. In addition, each metadata server (MDS) requires 0.2 GB of RAM + 0.1 GB per 100TB of physical storage space.

2.3.3. Hardware Recommendations

In general, Virtuozzo Infrastructure Platform works on the same hardware that is recommended for Red Hat Enterprise Linux 7: servers, components.

The following recommendations further explain the benefits added by specific hardware in the hardware requirements table. Use them to configure your cluster in an optimal way.

2.3.3.1. Storage Cluster Composition Recommendations

Designing an efficient storage cluster means finding a compromise between performance and cost that suits your purposes. When planning, keep in mind that a cluster with many nodes and few disks per node offers higher performance while a cluster with the minimal number of nodes (3) and a lot of disks per node is cheaper. See the following table for more details.

Table 2.3.3.1.1 Cluster composition recommendations
Design considerations Minimum nodes (3), many disks per node Many nodes, few disks per node
Optimization Lower cost. Higher performance.
Free disk space to reserve More space to reserve for cluster rebuilding as fewer healthy nodes will have to store the data from a failed node. Less space to reserve for cluster rebuilding as more healthy nodes will have to store the data from a failed node.
Redundancy Fewer erasure coding choices. More erasure coding choices.
Cluster balance and rebuilding performance Worse balance and slower rebuilding. Better balance and faster rebuilding.
Network capacity More network bandwidth required to maintain cluster performance during rebuilding. Less network bandwidth required to maintain cluster performance during rebuilding.
Favorable data type Cold data (e.g., backups). Hot data (e.g., virtual environments).
Sample server configuration Supermicro SSG-6047R-E1R36L (Intel Xeon E5-2620 v1/v2 CPU, 32GB RAM, 36 x 12TB HDDs, a 500GB system disk). Supermicro SYS-2028TP-HC0R-SIOM (4 x Intel E5-2620 v4 CPUs, 4 x 16GB RAM, 24 x 1.9TB Samsung PM1643 SSDs).

Take note of the following:

  1. These considerations only apply if failure domain is host.
  2. The speed of rebuilding in the replication mode does not depend on the number of nodes in the cluster.
  3. Virtuozzo Infrastructure Platform supports hundreds of disks per node. If you plan to use more than 36 disks per node, contact sales engineers who will help you design a more efficient cluster.

2.3.3.2. General Hardware Recommendations

  • At least five nodes are required for a production environment. This is to ensure that the cluster can survive failure of two nodes without data loss.
  • One of the strongest features of Virtuozzo Infrastructure Platform is scalability. The bigger the cluster, the better Virtuozzo Infrastructure Platform performs. It is recommended to create production clusters from at least ten nodes for improved resilience, performance, and fault tolerance in production scenarios.
  • Even though a cluster can be created on top of varied hardware, using nodes with similar hardware in each node will yield better cluster performance, capacity, and overall balance.
  • Any cluster infrastructure must be tested extensively before it is deployed to production. Such common points of failure as SSD drives and network adapter bonds must always be thoroughly verified.
  • It is not recommended for production to run Virtuozzo Infrastructure Platform on top of SAN/NAS hardware that has its own redundancy mechanisms. Doing so may negatively affect performance and data availability.
  • To achieve best performance, keep at least 20% of cluster capacity free.
  • During disaster recovery, Virtuozzo Infrastructure Platform may need additional disk space for replication. Make sure to reserve at least as much space as any single storage node has.
  • It is recommended to have the same CPU models on each node to avoid VM live migration issues. For more details, see the Administrator’s Command Line Guide.
  • If you plan to use Backup Gateway to store backups in the cloud, make sure the local storage cluster has plenty of logical space for staging (keeping backups locally before sending them to the cloud). For example, if you perform backups daily, provide enough space for at least 1.5 days’ worth of backups. For more details, see the Administrator’s Guide.

2.3.3.3. Storage Hardware Recommendations

  • It is possible to use disks of different size in the same cluster. However, keep in mind that, given the same IOPS, smaller disks will offer higher performance per terabyte of data compared to bigger disks. It is recommended to group disks with the same IOPS per terabyte in the same tier.
  • Using the recommended SSD models may help you avoid loss of data. Not all SSD drives can withstand enterprise workloads and may break down in the first months of operation, resulting in TCO spikes.
    • SSD memory cells can withstand a limited number of rewrites. An SSD drive should be viewed as a consumable that you will need to replace after a certain time. Consumer-grade SSD drives can withstand a very low number of rewrites (so low, in fact, that these numbers are not shown in their technical specifications). SSD drives intended for storage clusters must offer at least 1 DWPD endurance (10 DWPD is recommended). The higher the endurance, the less often SSDs will need to be replaced, improving TCO.
    • Many consumer-grade SSD drives can ignore disk flushes and falsely report to operating systems that data was written while it, in fact, was not. Examples of such drives include OCZ Vertex 3, Intel 520, Intel X25-E, and Intel X-25-M G2. These drives are known to be unsafe in terms of data commits, they should not be used with databases, and they may easily corrupt the file system in case of a power failure. For these reasons, use enterprise-grade SSD drives that obey the flush rules (for more information, see http://www.postgresql.org/docs/current/static/wal-reliability.html). Enterprise-grade SSD drives that operate correctly usually have the power loss protection property in their technical specification. Some of the market names for this technology are Enhanced Power Loss Data Protection (Intel), Cache Power Protection (Samsung), Power-Failure Support (Kingston), Complete Power Fail Protection (OCZ).
    • It is highly recommended to check the data flushing capabilities of your disks as explained in Checking Disk Data Flushing Capabilities.
    • Consumer-grade SSD drives usually have unstable performance and are not suited to withstand sustainable enterprise workloads. For this reason, pay attention to sustainable load tests when choosing SSDs. We recommend the following enterprise-grade SSD drives which are the best in terms of performance, endurance, and investments: Intel S3710, Intel P3700, Huawei ES3000 V2, Samsung SM1635, and Sandisk Lightning.
  • Using SSDs for write caching improves random I/O performance and is highly recommended for all workloads with heavy random access (e.g., iSCSI volumes).
  • Using shingled magnetic recording (SMR) HDDs is strongly not recommended, even for backup scenarios. Such disks have unpredictable latency that may lead to unexpected temporary service outages and sudden performance degradations.
  • Running metadata services on SSDs improves cluster performance. To also minimize CAPEX, the same SSDs can be used for write caching.
  • If capacity is the main goal and you need to store non-frequently accessed data, choose SATA disks over SAS ones. If performance is the main goal, choose SAS disks over SATA ones.
  • The more disks per node the lower the CAPEX. As an example, a cluster created from ten nodes with two disks in each will be less expensive than a cluster created from twenty nodes with one disk in each.
  • Using SATA HDDs with one SSD for caching is more cost effective than using only SAS HDDs without such an SSD.
  • Create hardware or software RAID1 volumes for system disks using RAID or HBA controllers, respectively, to ensure its high performance and availability.
  • Use HBA controllers as they are less expensive and easier to manage than RAID controllers.
  • Disable all RAID controller caches for SSD drives. Modern SSDs have good performance that can be reduced by a RAID controller’s write and read cache. It is recommend to disable caching for SSD drives and leave it enabled only for HDD drives.
  • If you use RAID controllers, do not create RAID volumes from HDDs intended for storage. Each storage HDD needs to be recognized by Virtuozzo Infrastructure Platform as a separate device.
  • If you use RAID controllers with caching, equip them with backup battery units (BBUs) to protect against cache loss during power outages.
  • Disk block size (e.g., 512b or 4K) is not important and has no effect on performance.

2.3.3.4. Network Hardware Recommendations

  • Use separate networks (and, ideally albeit optionally, separate network adapters) for internal and public traffic. Doing so will prevent public traffic from affecting cluster I/O performance and also prevent possible denial-of-service attacks from the outside.
  • Network latency dramatically reduces cluster performance. Use quality network equipment with low latency links. Do not use consumer-grade network switches.
  • Do not use desktop network adapters like Intel EXPI9301CTBLK or Realtek 8129 as they are not designed for heavy load and may not support full-duplex links. Also use non-blocking Ethernet switches.
  • To avoid intrusions, Virtuozzo Infrastructure Platform should be on a dedicated internal network inaccessible from outside.
  • Use one 1 Gbit/s link per each two HDDs on the node (rounded up). For one or two HDDs on a node, two bonded network interfaces are still recommended for high network availability. The reason for this recommendation is that 1 Gbit/s Ethernet networks can deliver 110-120 MB/s of throughput, which is close to sequential I/O performance of a single disk. Since several disks on a server can deliver higher throughput than a single 1 Gbit/s Ethernet link, networking may become a bottleneck.
  • For maximum sequential I/O performance, use one 1Gbit/s link per each hard drive, or one 10Gbit/s link per node. Even though I/O operations are most often random in real-life scenarios, sequential I/O is important in backup scenarios.
  • For maximum overall performance, use one 10 Gbit/s link per node (or two bonded for high network availability).
  • It is not recommended to configure 1 Gbit/s network adapters to use non-default MTUs (e.g., 9000-byte jumbo frames). Such settings require additional configuration of switches and often lead to human error. 10+ Gbit/s network adapters, on the other hand, need to be configured to use jumbo frames to achieve full performance.
  • The currently supported Fibre Channel host bus adapters (HBAs) are QLogic QLE2562-CK and QLogic ISP2532.
  • It is recommended to use Mellanox ConnectX-4 and ConnectX-5 InfiniBand adapters. Mellanox ConnectX-2 and ConnectX-3 cards are not supported.

2.3.4. Hardware and Software Limitations

Hardware limitations:

  • Each management node must have at least two disks (one system+metadata, one storage).
  • Each compute or storage node must have at least three disks (one system, one metadata, one storage).
  • Three servers are required to test all the features of the product.
  • Each server must have at least 4GB of RAM and two logical cores.
  • The system disk must have at least 100 GBs of space.
  • Admin panel requires a Full HD monitor to be displayed correctly.
  • The maximum supported physical partition size is 254 TiB.

Software limitations:

  • The maintenance mode is not supported. Use SSH to shut down or reboot a node.
  • One node can be a part of only one cluster.
  • Only one S3 cluster can be created on top of a storage cluster.
  • Only predefined redundancy modes are available in the admin panel.
  • Thin provisioning is always enabled for all data and cannot be configured otherwise.
  • Admin panel has been tested to work at resolutions 1280x720 and higher in the following web browsers: latest Firefox, Chrome, Safari.

For network limitations, see Network Limitations.

2.3.5. Minimum Storage Configuration

The minimum configuration described in the table will let you evaluate the features of the storage cluster. It is not meant for production.

Table 2.3.5.1 Minimum cluster configuration
Node # 1st disk role 2nd disk role 3rd+ disk roles Access points
1 System Metadata Storage iSCSI, S3 private, S3 public, NFS, ABGW
2 System Metadata Storage iSCSI, S3 private, S3 public, NFS, ABGW
3 System Metadata Storage iSCSI, S3 private, S3 public, NFS, ABGW
3 nodes in total   3 MDSs in total 3+ CSs in total Access point services run on three nodes in total.

Note

SSD disks can be assigned System, Metadata, and Cache roles at the same time, freeing up more disks for the storage role.

Even though three nodes are recommended even for the minimal configuration, you can start evaluating Virtuozzo Infrastructure Platform with just one node and add more nodes later. At the very least, a storage cluster must have one metadata service and one chunk service running. A single-node installation will let you evaluate services such as iSCSI, ABGW, etc. However, such a configuration will have two key limitations:

  1. Just one MDS will be a single point of failure. If it fails, the entire cluster will stop working.
  2. Just one CS will be able to store just one chunk replica. If it fails, the data will be lost.

Important

If you deploy Virtuozzo Infrastructure Platform on a single node, you must take care of making its storage persistent and redundant to avoid data loss. If the node is physical, it must have multiple disks so you can replicate the data among them. If the node is a virtual machine, make sure that this VM is made highly available by the solution it runs on.

Note

Backup Gateway works with the local object storage in the staging mode. It means that the data to be replicated, migrated, or uploaded to a public cloud is first stored locally and only then sent to the destination. It is vital that the local object storage is persistent and redundant so the local data does not get lost. There are multiple ways to ensure the persistence and redundancy of the local storage. You can deploy your Backup Gateway on multiple nodes and select a good redundancy mode. If your gateway is deployed on a single node in Virtuozzo Infrastructure Platform, you can make its storage redundant by replicating it among multiple local disks. If your entire Virtuozzo Infrastructure Platform installation is deployed in a single virtual machine with the sole purpose of creating a gateway, make sure this VM is made highly available by the solution it runs on.

2.3.7. Raw Disk Space Considerations

When planning the infrastructure, keep in mind the following to avoid confusion:

  • The capacity of HDD and SSD is measured and specified with decimal, not binary prefixes, so “TB” in disk specifications usually means “terabyte”. The operating system, however, displays drive capacity using binary prefixes meaning that “TB” is “tebibyte” which is a noticeably larger number. As a result, disks may show capacity smaller than the one marketed by the vendor. For example, a disk with 6TB in specifications may be shown to have 5.45 TB of actual disk space in Virtuozzo Infrastructure Platform.
  • 5% of disk space is reserved for emergency needs.

Therefore, if you add a 6TB disk to a cluster, the available physical space should increase by about 5.2 TB.

2.3.8. Checking Disk Data Flushing Capabilities

It is highly recommended to make sure that all storage devices you plan to include in your cluster can flush data from cache to disk if power goes out unexpectedly. Thus you will find devices that may lose data in a power failure.

Virtuozzo Infrastructure Platform ships with the vstorage-hwflush-check tool that checks how a storage device flushes data to disk in emergencies. The tool is implemented as a client/server utility:

  • The client continuously writes blocks of data to the storage device. When a data block is written, the client increases a special counter and sends it to the server that keeps it.
  • The server keeps track of counters incoming from the client and always knows the next counter number. If the server receives a counter smaller than the one it has (e.g., because the power has failed and the storage device has not flushed the cached data to disk), the server reports an error.

To check that a storage device can successfully flush data to disk when power fails, follow the procedure below:

  1. Install the tool from the vstorage-ctl package available in the official repository. For example:

    # wget http://repo.virtuozzo.com/hci/releases/3.0/x86_64/os/Packages/v/\
    vstorage-ctl-7.9.198-1.vl7.x86_64.rpm
    # yum install vstorage-ctl-7.9.198-1.vl7.x86_64.rpm
    

    Do this on all the nodes involved in tests.

  2. On one node, run the server:

    # vstorage-hwflush-check -l
    
  3. On a different node that hosts the storage device you want to test, run the client, for example:

    # vstorage-hwflush-check -s vstorage1.example.com -d /vstorage/stor1-ssd/test -t 50
    

    where

    • vstorage1.example.com is the host name of the server.
    • /vstorage/stor1-ssd/test is the directory to use for data flushing tests. During execution, the client creates a file in this directory and writes data blocks to it.
    • 50 is the number of threads for the client to write data to disk. Each thread has its own file and counter. You can increase the number of threads (max. 200) to test your system in more stressful conditions. You can also specify other options when running the client. For more information on available options, see the vstorage-hwflush-check man page.
  4. Wait for at least 10-15 seconds, cut power from the client node (either press the Power button or pull the power cord out) and then power it on again.

  5. Restart the client:

    # vstorage-hwflush-check -s vstorage1.example.com -d /vstorlage/stor1-ssd/test -t 50
    

Once launched, the client will read all previously written data, determine the version of data on the disk, and restart the test from the last valid counter. It then will send this valid counter to the server and the server will compare it to the latest counter it has. You may see output like:

id<N>:<counter_on_disk> -> <counter_on_server>

which means one of the following:

  • If the counter on the disk is lower than the counter on the server, the storage device has failed to flush the data to the disk. Avoid using this storage device in production, especially for CS or journals, as you risk losing data.
  • If the counter on the disk is higher than the counter on the server, the storage device has flushed the data to the disk but the client has failed to report it to the server. The network may be too slow or the storage device may be too fast for the set number of load threads so consider increasing it. This storage device can be used in production.
  • If both counters are equal, the storage device has flushed the data to the disk and the client has reported it to the server. This storage device can be used in production.

To be on the safe side, repeat the procedure several times. Once you have checked your first storage device, continue with all the remaining devices you plan to use in the cluster. You need to test all devices you plan to use in the cluster: SSD disks used for CS journaling, disks used for MDS journals and chunk servers.