Sizing Reference Guide¶
Review the following prerequisites and make sure that your environment is ready to support the VNF Manager.
All-in-One¶
All-in-One (AIO) deployment is based on a single VNFM box (single VM/Container) running all the VNFM components, mainly the manager, the database and the messaging queue. An AIO deployment is recommended for non-mission critical use when High-availability is not required and the scale is not extreme. VNFM AIO is typically used for development and testing systems, but also common in production for smaller-scale areas.
Recommended Resources
Resource | Minimum | Recommended |
---|---|---|
vCPUs | 2 | 8 |
RAM | 4GB | 16GB |
Storage | 20GB | 64GB |
- The minimum requirements are enough for a manager running just a few compute instances, typically for developer use, POC, or a small edge site.
- The recommended spec was certified with 500K deployments and an average rate of over 1000 workflows per hour.
- Adding more resources has proven to be successful for higher loads.
VNF Manager server¶
For a highly available setup at lease two managers are required, 3 are recommended.
Recommended resources per manager server
Resource | Recommended |
---|---|
vCPUs | 4 |
RAM | 8GB |
Storage | 32GB |
- The recommended spec is for average use of 1000-2000 workflows per hour and was certified with 1M deployments.
- Scaling to higher volume can be achieved via
- Additional VNF Managers - an almost linear scaling was verified leveraging 3-6 managers.
- Higher hardware spec - a linear scaling was verified with stronger hardware
- The equivalent AWS instance is c5.xlarge
- Customized sizing and tunning may further improve the supported scale. Over 2M deployed nodes and over 5000 workflows per hour were tested in some scenarios.
Database (PostgreSQL) server¶
For a highly available setup, 3 database servers are required.
Recommended resources per database server
Resource | Recommended |
---|---|
vCPUs | 2 |
RAM | 16GB |
Storage | 64GB |
- The recommended spec is for average use of 1000-2000 workflows per hour and was certified with 1M deployments.
- Scaling to higher volume can be achieved via
- Higher hardware spec - a linear scaling was verified with stronger hardware
- The equivalent AWS instance is r5.large
Messaging queue (RabbitMQ) server¶
For a highly available setup, 3 messaging queue servers are required.
Recommended resources per messaging queue server
Resource | Recommended |
---|---|
vCPUs | 2 |
RAM | 4GB |
Storage | 32GB |
- The recommended spec is for average use of 1000-2000 workflows per hour and was certified with 1M deployments.
- Scaling to higher volume can be achieved via
- Higher hardware spec - a linear scaling was verified with stronger hardware
- The equivalent AWS instance is c5.large
Sizing guidelines¶
Use the following guidelines and insights to determine component sizing.
VNFM Component | Sizing guideline |
---|---|
Tenants | Define a maximum of 1000 tenants in a VNF Manager |
Users | Currently, no limit to the number of users you can define in the system; however, the maximum, concurrent users interacting with VNFM is 200. |
Blueprints | Allocate 50GB of storage to the VNF Manager. Currently, no limit to the number of blueprints, as the average blueprint storage requires less than 1M of disk space and database space. |
Plugins | Plugins are stored in the VNF Manager hard drive. Typically, plugins can consume approximately 5M to 20M of storage. |
Deployments | A single VNFM can maintain up to 500K of deployed nodes. Typical deployment size consumes 10K maximum of disk size and a few entries in the database. |
Workflows | A VNFM can operate up to 100 concurrent workflows; a default limit enforced by the system. However, you can modify this threshold. |
Secrets | No limit to the number of secrets. |
Agents | A maximum of 2000 agents deployed per a single VNFM. |
UI/CLI/API requests/second | Although the REST API performance varies depending on multiple factors, typically VNF Manager can support a maximum of 10 requests/second. |
Events | The system can process a maximum of 100 events/second. |
Logs, events, and metrics | Define enough storage to store the logs, events, and metrics sent from the hosts, configuring log rotation to minimize the amount of storage space required. |
Architecture and OS¶
VNF Manager is supported for installation on a 64-bit host with RHEL/CentOS 7.9.
VNFM Images for OpenStack¶
You can also create a VNF Manager with the OpenStack or Docker images available at downloads.
Network¶
Network Interfaces
The VNF Manager requires at least 2 network interfaces with configured IP addresses:
- Private - This interface is dedicated for communication with other VNFM components, including agents and cluster members.
- Public - This interface is dedicated for connections to the VNF Manager via the VNFM CLI and VNF Management Console.
- Connectivity requirements These are the minimal requirements for production systems. * Internal communication - between VNF management cluster entities - at least 1Gbps connection with a latency of 1msec or less. * VNFM Agent to manager communication - at least 100Mbps connection with a latency of 50ms or less.
Network Ports The VNF Manager listens on the following ports:
Port | Description |
---|---|
80 | REST API and UI. This port must be accessible when SSL is not enabled. |
443 | REST API and UI. This port must be accessible when SSL is enabled. |
22 | For remote access to the manager from the VNFM CLI. (Optional) |
5671 | RabbitMQ. This port must be accessible from agent VMs. |
8009 | Monitoring service port. |
53333 | Internal REST communications. This port must be accessible from agent VMs. |
Additionally, when VNFM is deployed in a cluster topology, the following ports should be allowed:
Database nodes access to each other:
Port | Description |
---|---|
2379 | Etcd client-server for patroni cluster state. |
2380 | Etcd server-server for patroni cluster state. |
5432 | PostgreSQL replication. |
8008 | Patroni API for retrieving cluster state. |
Manager access to database servers:
Port | Description |
---|---|
5432 | Database access. |
8008 | Patroni, for determining DB node state. |
8009 | Monitoring service port. |
Messaging queue (RabbitMQ) nodes access to each other:
Port | Description |
---|---|
369 | epmd for discovery operations. |
25671 | Server-server rabbit communication. |
Manager access to messaging queue servers:
Port | Description |
---|---|
4369 | epmd for discovery operations. |
5671 | Brokers access. |
15671 | Accessing the management plugin for user management. |
8009 | Monitoring service port. |
Manager to manager access:
Port | Description |
---|---|
22000 | Synchronizing for file replication. |
8009 | Monitoring service port. |
All ports are TCP unless noted otherwise.
Reverse DNS lookup
Reverse DNS lookup must be available for the RabbitMQ nodes.
Prerequisite Packages¶
Software requirements¶
These are specific packages that are commonly included in RHEL/CentOS. You must have these packages installed before you install the VNF Manager:
PACKAGE | DESCRIPTION | VNF MANAGER | POSTGRESQL DATABASE | RABBITMQ SERVER |
---|---|---|---|---|
sudo | Passwordless sudo is required to run commands with root privileges (this is a requirement even when running with root user) | X | X | |
systemd | Create VNFM Services | X | X | X |
yum | Install VNFM-required packages | X | X | X |
openssl-1.0.2k | Generate internal/external certificates | X | ||
openssh-server | Creating SSH keys during the sanity check | X | ||
logrotate | Rotating VNFM log files | X | X | X |
initscripts | Required by RabbitMQ | X | ||
sed | Required by the CLI | X | ||
tar | Untar packages | X | ||
python-setuptools | Required by Python | X | X | X |
python-backports | Required by Python | X | X | X |
python-backports-ssl_match_hostname | Required by Python | X | X | X |
policycoreutils-python | Required if SELinux is enforcing | X | X | X |
Interoperability¶
The VNF Manager is a complete application. As such, it contains installed dependencies such as PostgreSQL, NGINX, RabbitMQ, and others. It is required that you install VNF Manager on a standalone VM or container and do not co-locate any other applications on that machine or container (beyond possible monitoring or logging software). You must install the VNF Manager as described in the installation instructions in this guide.