Setting Up VMRs with KVM on CentOS

This tutorial will walk you through the steps required to get a Solace Virtual Message Router running in a CentOS environment and ready for messaging.

Assumptions

  • You have access to Linux Kernel-based Virtual Machine (KVM).
  • It will use the Virtual Machine Manager GUI for simplicity.

System Requirements

For Evaluation and Enterprise VMR editions, the system resources that you provision for the VM automatically determines the number of client connections to the VMR that can be made. If you provision:

  • 30 GB of disk space, 4 GB of RAM, and two vCPUs—a maximum of 1,000 client connections are possible. This is the minimum required system resources.
  • 30 GB of disk space, 12 GB of RAM, and four vCPUs or greater—a maximum of 10,000 client connections are possible.

For Community VMR editions, a maximum of 100 client connections is permitted. Increasing the system requirements will not increase the number of available client connections.

Note:  To deploy VMRs in high-availability (HA) redundancy groups, you must set up three separate VMR instances as discussed in this section, and then configure them appropriately as a group. For more information on how to configure existing VMRs as an HA group, see Managing VMR Redundancy.

Download the Solace VMR

The first requirement is to download an edition of the VMR. For KVM on Linux platforms, the VMR is distributed as a Compressed QCOW2.

  • Evaluation or Community edition of the VMR—Go to dev.solace.com/downloads/, then in the VMR Community Edition or VMR Evaluation Edition areas, select VM Images > Compressed QCOW2 Package > KVM on Linux. After you read and agree to the license agreement, a compressed QCOW2 file called soltr-<version>-vmr-<type>.qcow2.xz will be downloaded.
  • Enterprise version of the VMR— If you have purchased an Enterprise version of the VMR, Solace will provide information for how to download an enterprise version of the VMR QCOW2 file package from a secure Solace server. Contact Solace Support at support@solace.com if you require assistance.

Once you have the compressed QCOW2 package, you must extract the QCOW2 image.
Use the xz command to extract the image. For example:
image_1

Then you are left with a file called soltr-VERSION-vmr-evaluation.qcow2. This is the file you will use with Virtual Machine Manager.

Install KVM and Virtual Machine Manager

When running the Solace VMR on Linux, KVM is the supported virtual machine manager. You can use KVM directly through the CLI, but this tutorial will make use of the graphical Virtual Machine Manager application, which is most similar to other virtual machine programs.

Confirm your CPU will Support KVM

KVM only works if your CPU has hardware virtualization support – either Intel VT-x or AMD-V. To determine whether your CPU includes these features, enter the following command:

egrep -c '(svm|vmx)' /proc/cpuinfo

A 0 indicates that your CPU does not support hardware virtualization, while a 1 or more indicates that it does. You may still have to enable hardware virtualization support in your computer’s BIOS, even if this command returns a 1 or more.

Install KVM and Virtual Machine Manager

  1. Use the following command to install KVM and supporting packages.

    Virt-Manager is a graphical application for managing your virtual machines — you can use the kvm command directly, but libvirt and Virt-Manager simplify the process.

    yum install kvm libvirt virt-manager bridge-utils

  2. Start the libvirt service, and enable it by default for future use.

    chkconfig libvirtd on

    service libvirtd start

  3. Only the root user and users in the libvirtd group have permission to use KVM virtual machines. Run the following command to add your user account to the libvirtd group:

    usermod -a -G libvirtd NAME

  4. After running this command, log out and log back in.
  5. Run the following command after logging back in, and you should see an empty list of virtual machines. This indicates that everything is working correctly.

    virsh -c qemu:///system list

    image_2

Start the Default Virtual Network

To avoid issues during installation related to the virtual network default being inactive, enter the following command to ensure it is started prior to creating any virtual machines:

sudo virsh net-start default

sudo virsh net-autostart default

Import the QCOW2 File into the Virtual Machine Manager

Once KVM is installed, the easiest way to create virtual machines is through the Virtual Machine Manager application.

  1. Launch this application.

    $ virt-manager

  2. Import the QCOW2 file into Virtual Machine Manager, which will create a new VM image for the VMR.
    • Select the creation icon on the left of the menu. This will open up the New VM wizard. In Step 1, enter an appropriate name for your Solace VMR VM, and select Import Existing Disk Image. Then click Forward.
      image_4
    • In Step 2, select the QCOW2 file, leave the OS Type and Version as “Generic”, then click Forward.
      image_5
    • In Step 3, configure the Memory and CPUs for the VM, then click Forward.

      The amount of memory and CPUs configured can affect the number of client connections to the VMR that can be made. A minimum of 4 GB of RAM and two CPUs is required for all VMR editions. For Evaluation and Enterprise editions, this enables a maximum of 1,000 client connections; if you increase the resources to at least 12 GB of RAM and four CPUs, a maximum of 10,000 client connections can be made.

      For Community editions, a maximum of 100 client connections are permitted even if you provision more resources than the minimum system requirements.

      image_6

    • In Step 4, confirm two things: first, select “Customize configuration before install”; second, select Advanced Options and make sure the network interface is correct. This example uses “MacVTap bridge” which is a recommended option. See more below in Networking Options. Then click Finish.
    • The virtual machine manager will now launch the VM properties dialog.

    • The virtual machine manager will now launch the VM properties dialog.
    • The Solace VMR QCOW2 image uses a storage format of QCOW2. To confirm that the Disk is configured with a storage format of "QCOW2", select Disk 1, then under Advanced Options, set the Storage Format to "QCOW2." Click Apply and then click Begin Installation.

    • The Solace VMR will start up and display console output similar to the following:

  3. Login to the VMR.

    The VMR messaging application software resides in a container that is wrapped within a Linux OS to form a VMR virtual machine image. In its default state, this VMR Linux host environment has remote login disabled and contains no passwords.

    To log in to the VMR for the first time you must log in as sysadmin, which is the default user account for the Linux host environment. You will be prompted to create a password for that user.

    When you are logged in as sysadmin, you can then create passwords for the default users through the console. You must assign these default users passwords to allow remote login.

Configuring the Default Users

Before the VMR messaging application can be accessed; passwords must be configured for the following default users from the sysadmin host environment.

Default Users and Names

User Type

User Name

Description

CLI User

admin

Default CLI user—has access to all CLI commands.

Root user

root Superuser in the support shell.
Support user support Default user in the support shell.
  • To set the support or root user passwords enter one of the following commands in the Linux host shell, and then follow the prompts:

    docker exec -i -t solace passwd support

    docker exec -i -t solace passwd root

    Example:

    Note: Logging in as the support user name will place the user in the shell environment of the container. The VMR prevents root login at the console and through SSH. If you require root access, login as support (to the container shell) or as sysadmin(to the Linux host shell), and then switch user to root.

  • To set the password for the admin user and enable remote access, do the following:
    1. To enter the Solace CLI from the console in the Linux host environment, enter the solacectl cli command in the Linux host shell.

      [sysadmin@solace ~]$ solacectl cli

      A CLI banner and prompt appears:

      System Software. SolOS Version <version number>

      Copyright 2004-2017 Solace Corporation. All rights reserved.

      solace>

      At the > prompt, you are at the User EXEC level of the Solace CLI command structure.

    2. Within the Solace CLI, you can set the password for the admin user enter the following commands:

      solace> enable

      solace# configure

      solace(configure)# username admin

      solace(configure/username)# change-password <password>

    3. To determine the IP address assigned to the VMR, enter the following CLI command:

      solace> show ip vrf management

      The displayed output lists the IP address assigned to the VMR (listed for eth0:1), which can be used to remotely manage the VMR (that is, not from the VM console).

      show ip vrf management command

    4. To remotely access the Solace CLI for the VMR, you can now ssh to port 22 of the VMR's IP address and login in as the admin user.

Networking Options

A MacVTap bridged adapter configuration is recommended and provides the guest VM a network interface directly on the host computer’s network. It will appear as an independent device on that subnet and must have its network configuration set up using DHCP. This works well for static configurations where the VMR will be accessed from other machines on the network. One potential drawback of using DHCP on laptops is that they are often re-IP’d as they join different networks. This means the VMR will constantly change addresses as well. In these scenarios it is often simpler to use NAT or host-only adapter.

A host-only adapter will provide the VMR with a network interface that can only be reached from the host computer. When running in this mode, the VMR is not able to talk to any external networks and therefore will not be able to use a DHCP server on that network to retrieve IP configuration information. In this case it is necessary to either enable DHCP services within the VM Manager or to provide the VMR with a static IP address. Refer to Configuring Hypervisor Network Interfaces for more details.

Managing the VMR Configuration

Unlike a Solace messaging appliance, a VMR starts with a basic configuration that enables most common services. This basic configuration can be modified as required. For more information, refer to VMR Configuration Defaults.