System requirements

This section provides basic information about the murano environment system requirements. Additionally, it contains a description of the performance test scenario, which you may use to check if your hardware fits the requirements. To do this, run the test and compare the results with the baseline data provided.

Software prerequisites

Before you install murano, verify your system meets the following prerequisites.

Supported operating systems:

  • Ubuntu Server 14.04 LTS

  • RHEL/CentOS

  • Debian

System packages for Ubuntu:

  • gcc

  • python-pip

  • python-dev

  • libxml2-dev

  • libxslt-dev

  • libffi-dev

  • libpq-dev

  • python-openssl

  • mysql-client

System packages for CentOS:

  • gcc

  • python-pip

  • python-devel

  • libxml2-devel

  • libxslt-devel

  • libffi-devel

  • postgresql-devel

  • pyOpenSSL

  • mysql

Hardware requirements

We recommend that your system meets the following hardware requirements:

Criteria

Minimal

Recommended

CPU

4 core @ 2.4 GHz

24 core @ 2.67 GHz

RAM

8 GB

24 GB or more

HDD

2 x 500 GB (7200 rpm)

4 x 500 GB (7200 rpm)

RAID

Software RAID-1 (use mdadm as it improves the read performance almost twice)

Hardware RAID-10

Other possible storage configurations:

  • 1x SSD 500+ GB

  • 1x HDD (7200 rpm) 500+ GB and 1x SSD 250+ GB (install the system onto the HDD and mount the SSD drive to the directory where the virtual machines images are stored)

  • 1x HDD (15000 rpm) 500+ GB

Testing the performance

We have measured the time required to boot 1 to 5 instances of the Windows operating system simultaneously. You can use this data as the baseline to check if your system is fast enough.

Note

Use sysprepped images for this test to simulate an instance first boot.

To reproduce the performance test, proceed with the following steps:

  1. Prepare a Windows 2012 Standard (with GUI) image in the QCOW2 format. This example uses the ws-2012-std.qcow2 image.

  2. Verify that there are no KVM processes running on the host:

    ps aux | grep kvm
    
  3. Make 5 copies of the Windows image file:

    for i in $(seq 5); do \
    cp ws-2012-std.qcow2 ws-2012-std-$i.qcow2; done
    
  4. Create the start-vm.sh script in the directory with the .qcow2 files:

    #!/bin/bash
    [ -z $1 ] || echo "VM count not provided!"; exit 1
    for i in $(seq $1); do
    echo "Starting VM $i ..."
    kvm -m 1024 -drive file=ws-2012-std-$i.qcow2,if=virtio -net user -net nic,model=virtio -nographic -usbdevice tablet -vnc :$i & done
    
  5. Start ONE instance using the command below (as root) and measure time between the instance launch and the moment when the Server Manager window displays.

    sudo ./start-vm.sh 1
    

    To view the instance desktop, connect with VNC viewer to your host to VNC screen :1 (port 5901).

  6. Turn off the instance. You may simply kill all KVM processes by running:

    sudo killall kvm
    
  7. Start FIVE instances with the command below (as root) and measure time interval between ALL instances launch and the moment when the LAST Server Manager window displays.

    sudo ./start-vm.sh 5
    

    To view VM’s desktops, connect with VNC viewer to your host to VNC screens :1 thru :5 (ports 5901-5905).

  8. Turn off the instances. You may simply kill all KVM processes by running:

    sudo killall kvm
    

Baseline data

The table below provides the baseline data that was received in our test murano environment.

Boot ONE instance

Boot FIVE instances

Avg. Time

3m:40s

8m

Max. Time

5m

20m

Avg. Time

Refers to the environment with the recommended hardware configuration

Max. Time

Refers to the minimal hardware configuration

Host optimizations

You can improve your default KVM installation performance with the following optimizations up to 30%:

  • Change the default scheduler from CFQ to Deadline

  • Use ksm

  • Use vhost-net