OpenQRM

Quoting the words from the official OpenQRM site “OpenQRM is the next generation, open-source Data-center management platform. It’s fully pluggable architecture focuses on automatic, rapid- and appliance-based deployment, monitoring, high-availability, cloud computing and especially on supporting and conforming multiple virtualization technologies.

OpenQRM is a single-management console for the complete IT-infra structure and provides a well defined API which can be used to integrate third-party tools as additional plugins.” The OpenQRM platform provides an easy way of building private cloud network inside your office/organization network.

System Requirements for installing openqQRM

The OpenQRM cloud software can be installed only on a Linux/Unix server, anyhow it supports major other Os's as its clients .

  • Requirement for this software are;
  • A Linux machine/server
  • Minimum 1 GB RAM
  • A database (Mysql/Postgres/Oracle/Db2)
  • Intel VT/ AMD (SVM/HVM) enabled hosts

As you can see the requirements for this software are very simple and will not need any additional purchase of hardware to meet the requirements

Now, coming to the capabilities of this cloud, with OpenQRM you will be able to

  • Use your existing physical servers and Storage Devices
    You will not be required to purchase any additional hardware to meet OpenQRM’s requirements; you can still use your existing resources with OpenQRM. The main advantage about this is, your “not fully utilized resources” can be utilized to their full performance and gain maximum output from your existing resources.
  • Can easily add new cloud resources automatically
    In cases when you need to add additional physical/virtual servers/devices to the cloud ... you don't need to manually do this task, it all will be done automatically by the OpenQRM by using the custom PXE boot mechanism provided with OpenQRM.
  • Easy fail-over setup with special “N+1” failover setup
    Setting up failover and automatically launching new instances in case of a server has never been so easy. With OpenQRM all these tasks can be done automatically, you just need to configure the failover and high availability from the cloud portal and that’s it; OpenQRM will handle all the remaining tasks for you. It even supports use of an N+1 failover and thus you don't need to spend more money on the idle fail-over resources
  • Supports windows/Unix/Linux clients
    If you suspect since it is “open source “, you will not be able to run the Windows server instances on your cloud. You are wrong then; you can even run windows servers as well with native Linux server instances on the cloud using OpenQRM.
  • Running machine as a cloud resource
    Suppose you have a running Windows/Linux server on your office/organization and a lot of free disk space is available on the server. If you wonder how will you use this space as a cloud resource without rebooting/PXE booting the server, you just need to execute a script/exe provided by the OpenQRM and your current server gets added to the OpenQRM as its resource and then you can use the free storage for the cloud
  • All control from a cloud management portal
    As mentioned above, the OpenQRM comes with a web based, fully fledged cloud management portal similar (or even better) to the ones you get with the public cloud services. You can do almost all the tasks related to your cloud from this panel
  • API support
    OpenQRM comes with a set of API's and command line tools which can be utilized by your development team in cases where you need to control the OpenQRM from external apps.
  • Supports High availability
    OpenQRM comes with a custom High availability plug-in which allows you to launch new servers when a current server goes down. This is very helpful in cases where your application is important and HA is very critical for your project. And DRBD as you all know, is an important HA mechanism used today , OpenQRM is coming with a web portal for managing the DRBD on its clients There are plenty of such exciting features and facts about OpenQRM ,going through all such plug-ins and features will not be possible with this single post , anyhow we will try to provide you with a better understanding about the OpenQRM infrastructure that will help you in setting up a private cloud inside your office/Organization. You can read more on OpenQRM from the official website itself “www.openqrm.com” We will start with the basic OpenQRM cloud architecture and then move on to each of its components

OpenQRM Architecture

As you can see from the sample architecture, the OpenQRM software binds different resources and technologies and constitutes it in to a cloud network within your infrastructure. This Plug – in feature of OpenQRM makes it so special from the other remaining cloud softwares

Components

Components are the main building units of the private cloud, the different instances of components are joined together when launching a server instance within the cloud. The main components that make the cloud are

Resources

The Resources given in the architecture refers to the actual physical/virtual servers, storage devices in your current infrastructure. You will be using these devices as your cloud resources. Adding new resources to the cloud can be done automatically via a custom PXE boot mechanism provided with OpenQRM. Also, as mentioned above, running resources too can be added to the cloud using a script/exe file provided in OpenQRM.

Virtualization Technology

This is the virtualization technology that you will be using for your cloud. The OpenQRM supports all the major open-source virtualization technologies like KVM, Xen, and VirtualBox etc. When it comes to serious virtualization the main two open source technologies used today are kvm and Xen and your cloud supports both.

And say if you know nothing about these technologies, you don't need to worry about that either. All related tasks can be done from the web portal.

The OpenQRM does this act of virtualization by the help of available plugins shipped along with OpenQRM. You don't need to compile the kernel, install and configure the Virtualization software and all the other tiresome work; you just enable a plugin and mark a resource with that plugin that’s all. In cases you might need to install some packages to meet the softwares requirement but that too can be done from the package manager

Storage Server

This is the storage server mechanism which is used within your cloud. For most of the clouds, for reliability we should not be using the ordinary Hard disk based storage. When using the ordinary hard disk based storage, you are actually compromising the HA on your cloud. Since Hard disks will be the first thing going to get a failure on a server, storing your cloud instances inside that will not be suitable.

We highly recommend you to use modern storage mechanisms like SAN for utilizing the cloud to its best performance. You can even build software San's using your existing Disks, using a RAIDED fashion for better availability and reliability. Anyhow for testing purposes you can use a physical Linux/Unix/Windows server as a storage server, but we highly recommend the use of a SAN

Now coming to the storage mechanisms supported by the OpenQRM , the OpenQRM supports ISCSI/AOE(coraid) based san's , native LVM and ZFS storage mechanisms , NFS storage solutions etc. DRBD, even though cannot be called as a storage mechanism, involves mirroring and OpenQRM supports it as well. Now with the latest release of OpenQRM it is said to be supporting gluster storage mechanisms.

Once you enable a storage plugin, say LVM, you now need to create the storage server component which can be done using an idle resource on the cloud. After you mark an idle resource with the storage plugin, the idle resource becomes the new storage server and you can manage the logical volumes on the storage server from the cloud portal.

Now you can save the server boot image (you can either create it yourself or can be downloaded from OpenQRM’s image-store) and save it to an unused logical volume. And these boot images are used within the appliance configurations for launching cloud server instances.

Suppose you have already saved a particular set of boot image files to a logical volume. You can even clone this logical volume to a new logical volume and thus you don't need to go through all the tasks of downloading, extracting and saving boot images to storage server.

IMAGES

From the above mentioned storage server we will now create the appliance images. We create the image configuration by using the cloud management portal, then give a unique name for the image configuration, select the correct logical volume from the Storage server, and save this configuration. These images are similar to the Amazon’s AMI's and using these images you can launch new server instances

Kernel

These are the Linux kernels utilized by the server instances on the cloud. These kernels are saved to the OpenQRM server, when the appliance starts booting it fetches the correct kernel as per the appliance configurations. These are the normal Linux kernels, and OpenQRM is shipped with a default kernel and you can manually add additional kernels as per necessity.

These were the main components which can be called as the building blocks for the OpenQRM cloud. The above mentioned instances components are plugged-in to an appliance configuration to create a cloud server instance, and that part is detailed below.

Appliances

The appliances are the cloud server instances running inside the cloud; these could be physical/virtual server instance. You will be creating an appliance configuration from the portal using the component instances (image, kernel, resource). Once the appliance configuration is completed with a boot image, kernel, resource on which the appliance should run, you can start the appliance and a server instance with the given configurations is launched on the resource you have mentioned in your configuration.

This way the OpenQRM’s pluggable fashion makes it easy for you to create, launch and delete instances through the portal.

Still confused about the plug-in model? Let us try again to make it simpler for you.

You are going to create component instances first then will launch appliances form this;

You have added few resources to your public cloud either automatically or manually.

  • Your cloud comes with a default kernel which the appliances will be using; you can add additional kernels if you want to get more updated kernels than the default one.
  • You will now enable a storage plugin, say LVM. Create a new storage server component using the enabled plugin (LVM) , on a resource in the resource pool. This server is used for storing the boot images of your cloud server instances. You can enable the image-shelf plugin in OpenQRM to download the boot images from an OpenQRM managed image pool.
  • You now need to create images which are similar to Amazon AMI's. While creating the image, you mention which storage server should be used, which logical volume in the server should be used etc. And thus this image contains configurations used by the appliances to use a particular server instance from the storage server
  • You now enable a virtualization plugin say KVM, you assign an idle resource as your kvm host, select the necessary image, Kernel and start the kvm host appliance. The physical server (resource marked as kvm host) will get restarted as a new KVM host on your cloud
  • Now you have a kvm host resource on your cloud, a storage server resource on your cloud. You have everything needed to launch your final cloud server instance. You will now create the server appliance configuration by selecting a kernel, image and then launch it on the new kvm host resource.

That’s all … now you have a running kvm VM on your kvm host.

As you can see, the complete process of launching a server instance inside your cloud is very simple using the portal provided by OpenQRM.

Cloud Management Portal

This is the web based cloud management portal included with OpenQRM, and you can see all the tasks related to the cloud can be done form this portal. You can see sections for events (logs), appliances, components (kernel, image, storage, resource etc), plug-in manager etc.

With this post we have covered the basic details about OpenQRM, details like different components, appliances, adding/removing resources etc.

By a planned configuration of the cloud, you can save more on the resources and get more outputs from the existing resources. And the installation, configuration, tweaking of OpenQRM is very simple and all can be controlled using a web portal, thereby setting up a cloud using OpenQRM inside your office/organization a very easy task.