VM and cloud management with openQRM
Everything Under Control
Heterogeneous IT infrastructure in the data center has been on the rise for years. But, as the combinations of various technologies and platforms increase, ensuring the assured service levels for the deployed services is becoming increasingly difficult. Cloud management systems provide sophisticated tools to handle these tasks and are available as both free and enterprise variants.
In addition to classic IT infrastructure based on networks, servers, storage, virtualization, and clients, many enterprises today also rely on cloud services. In the simplest case, this just means that the web server with the enterprise website has been outsourced to a hosting service provider, or that external IT services such as spam and anti-virus have been rented as managed services. However, the pressure is increasing to provide increasing numbers of services to users with a high level of availability.
This means that internal services such as email, SharePoint, or file services are being run in external data centers, or even in Amazon, Google, Microsoft, and other clouds. It is practically inevitable that different technologies like virtualization, are then used. For example, many companies use vSphere or Hyper-V internally, whereas virtualization at Amazon is based on Xen. In other words, the more services that are outsourced, the faster administrative staff need to familiarize themselves with new technologies and the corresponding management tools.
It is precisely at this point that cloud management systems such as openQRM enter the game. OpenQRM provides a web-based, open source data center management and cloud platform with the help of which various internal and external technologies can be abstracted and grouped within a common management tool. This management system also takes care of provisioning, high availability, and monitoring of services that are offered. OpenQRM sees itself as a framework and implements an open plugin architecture. For example, an existing hypervisor such as KVM or Xen can be easily integrated as one of many possible resource providers.
Instead of providing individual tools for individual tasks, such as configuration management and system monitoring, openQRM integrates proven open source management tools such as Nagios, Zabbix, and collectd as plugins. Thanks to this plugin architecture, the system remains open to future technologies and can even be customized by users if the need arises. The openQRM Enterprise includes some 50 plugins (Figure 1). In this article, I will be looking at the basic installation, configuration, and functionality of the openQRM Enterprise Edition.
The openQRM system architecture comprises three components: the Data Center Management and Cloud Platform, the Plugin API, and the Hybrid Cloud Connector. The Data Center Management and Cloud Platform provides the basic functionality of openQRM and uses the Plugin API to communicate with the data center resources that are also installed on the local network (hypervisor, storage, and network). Fortunately, openQRM comes with support for five virtualization environments: VMware ESX, Citrix XenServer, KVM, LXC, and OpenVZ. The developers say that a plugin for VirtualBox already exists, but it is currently being modified to match the latest openQRM version.
In terms of storage, openQRM can handle LVM, iSCSI, NFS, ATA over Ethernet, SAN Boot, and Tmpfs storage. For the network configuration, openQRM integrates critical network services such as DNS, DHCP, TFTP, and Wake-on-Lan. The Network Manager included with the package helps administrators configure the network bridges required for these services.
The Hybrid Cloud Connector takes care of connecting with external data center resources, such as Amazon Web Services, Eucalyptus, or OpenStack cloud. To do so, it relies on APIs by individual manufacturers, which dock with openQRM via the plugin architecture. The openQRM cloud portal provides a web interface that internal or external users can use to compile IT resources as needed. Figure 2 shows an overview of the openQRM system architecture.
Installation and Deployment
OpenQRM's open architecture supports a variety of installation scenarios. In the simplest of all cases, openQRM only manages the local resources – that is, it takes care of managing a private cloud run on your own hardware. Thanks to the cloud connector, management can be easily extended to external resources if the need arises, thus offering management functions for public or hybrid clouds.
Via the cloud portal, openQRM can also provide these resources to end users within the context of a granular authorization system. Users can turn to the web interface to configure virtual machines and storage themselves, as needed. For billing of these resources, the cloud portal includes a simple accounting system with its own virtual cloud currency, CCU (Cloud Computing Unit). Using your connection to store systems by Magento and VirtueMart, this virtual currency can also be converted into hard cash as needed.
The system requirements depend greatly on intended use. If you only want to take a quick look at the system, you can easily install it on a virtual machine. Initial evaluations on the practical conditions are easily possible on a well-equipped PC with a quad-core CPU, 1GB of RAM, a network interface card, and 20GB of free hard disk storage. As a minimal configuration for a small production environment without high availability, openQRM says you need three physical systems: the openQRM server, a storage host, and a virtualization host.
The recommendation for a production environment with high availability would then include six (+n ) physical servers (two openQRM servers, two storage hosts, and two virtualization hosts). Linux is used as the operating system for the openQRM server itself; admins can choose between Debian and Ubuntu. Both distributions come with all the required features out of the box. Alternatively, openQRM also offers official support for the enterprise versions of Red Hat, SUSE, and CentOS.
In our lab setup, I used a physical server with Debian Wheezy. While you are installing Debian, make sure to assign a static IP address and choose the following layout in manual partitioning:
- Root partition
- Swap partition
- Dedicated partition to provide storage space with virtual machines
Mark the dedicated partition in the Debian installer as "do not use"; it will be integrated into the openQRM server later on. In the software selection of the installer, only select the SSH server. Then, upgrade all packages after completing the installation and proceed to install Apache with PHP 5:
apt-get update && apt-get upgrade apt-get install apache2 libapache2-mod-php
When you are done, check whether the PHP functions for the Apache server were disabled below disable_functions
in the /etc/php5/apache2/php.ini
file. If so, delete them; then, restart Apache.
You can pick up an evaluation license or the full version of openQRM Enterprise [1]. Unpack the tarball on your server's root directory. After changing to the new openQRM-5.2.3-Enterprise-Edition-Eval
directory created by this step, become root and initiate the installation of openQRM by typing:
./install-openqrm.sh
The installer downloads all the required components in the background and sets up a basic configuration. During the installation, you will be prompted to enter a root password for the MySQL server and the Nagios administrator. So that openQRM can send notifications by email later, you also need a working Postfix configuration, but you can install this retroactively.
Additional setup steps then occur in the openQRM GUI in your browser. You can access the Web GUI on http://IP_address/openqrm . Log in with a username and password of openqrm and confirm the network interface card that you want openQRM to use (this is typically eth0). Then, openQRM creates the required MySQL database; the root password you defined for MySQL is needed during the install.
Finally, you need to upload a valid license, which consists of two parts: the public key and the actual license file. Upload the two files to your server using the corresponding buttons in the Info | Upload License Files configuration dialog. This completes the installation, and you are automatically taken to the openQRM dashboard (Figure 3).
Overview and Initial Steps
The navigation menu on the left side is used for all tasks in openQRM. The functions are divided into three main areas: Datacenter, Activities, and Plugins.
The Datacenter area is used to manage resources such as the Server , Images , and Storage . The term "server" doesn't mean a server in the traditional sense; instead, it refers to a master object or a service in the meta layer, for example, "Web Server on Linux virtualized on KVM on Host 1 with network configuration xy." Components such as Images , Kernels , Resources , and Storage are now assigned to the master object. The reason for these idiosyncratic abstractions is that subcomponents of a server on openQRM need to be replaceable at any time.
High Availability
OpenQRM defines high availability in three ways:
- High availability for the openQRM server: Because openQRM works with standard technologies (filesystem, Apache with PHP, MySQL/PostgreSQL), the high-availability system can also be set up with built-in Linux tools such as Linux-HA, Pacemaker, or Corosync.
- High availability for server objects on the openQRM server: OpenQRM provides its own plugin that lets you easily make server objects highly available at the press of a button. OpenQRM takes care of distributing the existing resources itself.
- High availability for applications: OpenQRM also supports Linux-HA, Pacemaker, and other high-availability tools at the application level. For simple configuration of highly available applications, openQRM comes with a plugin for LCMC (Linux Cluster Management Console).
Below Activities, you will find information about the operating status (Events and Commands ) and activities that the openQRM server is currently running. The plugin manager (Plugins) is used to install and manage extensions for openQRM. To improve the overview, openQRM sorts the installed plugins by categories such as Cloud , Monitoring , Virtualization , and so on.
If you did not configure the SMTP server during installation, this is a good time to do so. A correctly installed SMTP server is needed for the Event Mailer plugin to send warnings, error messages, and other events to the administrator. The end-user cloud portal also relies on the local SMTP server.
Users who generate an account via the self-service portal are sent a security token by email that lets them complete the registration of their accounts. If you already have a mail groupware server on your network, simply select Internet with Smarthost
in the Postfix configuration dialog (dpkg-reconfigure postfix
) and enter the IP address of your internal mail server as the SMTP Relay Server.
Because openQRM defines itself as a central management instance on the network, it also provides space services such as DNS and DHCP. Of course, these services typically already exist on a network (e.g., via Active Directory). You just need to be careful when you commission an openQRM server. To avoid the risk of having active DHCP servers on your network that independently assign IP addresses on the same subnet, you might want to assign the openQRM server its own VLAN or subnet.
Once you meet these preconditions, fire up your editor and modify the domain name OPENQRM_SERVER_DOMAIN="oqnet.org"
in the file /usr/share/openqrm/plugins/dns/etc/openqrm-plugin-dns.conf
and install or launch the DHCP daemon, DNS, and Tftpd plugins. By default, the openQRM DHCP server assigns a complete IP range of the local subnet. You can easily change this by modifying the range in the /usr/share/openqrm/plugins/dhcpd/etc/dhcpd.conf
file. In combination with the DHCP server, openQRM also provides a PXE/TFTP environment for booting over the network. For this reason, it also makes sense to install the Tftpd plugin via the plugin manager
Buy this article as PDF
(incl. VAT)