Recently I've been working on improving the scalability of monitoring in oVirt. That is, how to make oVirt-engine, the central management unit in the oVirt management system, able to process and report changes in a growing number of virtual machines that are running in a data center. In this post, I will elaborate on what we did and share some measurements.
Open your virtual datacenterStart using oVirt now »
Manage your virtualized networks
oVirt manages virtual machines, storage and virtualized networks.
Easy to use web interface
oVirt is a virtualization platform with an easy-to-use web interface.
KVM based virtualization management
oVirt is powered by the Open Source you know - KVM on Linux.
Hosted engine has seen a lot of progress and evolution, and today it is is the de facto recommended way to to deploy your oVirt Engine. But since that special Hosted Engine High Availability (HA) cluster itself needs management, we worked on making that be managed by the hosted engine itself, too.
Recent oVirt versions made it lot more easier to deploy hosted-engine, first by introducing the appliance and cloud-init customization phase, next with VM configuration being stored on the shared storage and making the VM itself manageable from the UI itself. A few more under-the-hood changes resulted in storing event the cluster configuration on the shared storage itself, opening the door to making the expanding of the HA-cluster even easier, as all answers and configuration were now already available.
This blog post relates to oVirt Engine release 4.0 installation on Fedora 24 and probably is relevant for earlier oVirt releases. Having Fedora 24 (Twenty Four) installed on my new laptop (while it was still in beta phase, but this is still relevant for GA), I ran an oVirt installation and encountered the following error message:
ovirt-engine ERROR run:532 Error: Unable to change process owner ([Errno 1] Operation not permitted)
This is an outcome of permission problems with python-daemon 2.1.0, which is the default package in the Fedora 24 release.
To overcome this issue, I had to downgrade the python-daemon version to 2.0.6 (e.g.,
sudo pip install python-daemon==2.0.6,
a reference to similar general issue can be found here: https://groups.google.com/forum/#!topic/pywws/I0c_RW4DRzg)
Any further issues related to oVirt installation and Fedora 24 will be added to this blog post.View article »
Before I start discussing the feature itself I have to explain a bit about the use cases that we were trying to solve.
Let us imagine you have a special piece of software with a node-licensing model that only cares about physical machines when counting the number of licenses needed. This specifically allows you to run that software in virtual machines, but you need to control the physical host on which the VMs are running.
The other case is basically related to hardware capabilities. Some NICs might be faster than others and you want to place all high traffic VMs on hosts that have them. Or a special custom device is needed and VMs that need it won’t run on a host that does not have it.
The oVirt Project is pleased to announce a new sub-project within the oVirt community: oVirt Engine DR, which uses the oVirt API and perform tasks that would normally require manual intervention, in case of the need for Disaster Recovery.
Specifically, the oVirt Engine DR is a web application that uses Java, the oVirt API, PostgreSQL, and MariaDB to perform the tasks needed in a Disaster Recovery scenario.
Robust functionality with minimum verbosity and complexity is a goal for which developers often strive.
To that end, we have refactored the annotations used to indicate which fields are editable for hosts and virtual machines.
Recently I encountered a small issue in a static helper class that was full of static helper methods. After I finished dealing with the issue at hand and as part of following the Boy Scout rule (always leave the campground cleaner than you found it) I decided to refactor the class and the code using it.
More specifically to remove all the static modifiers and to inject this class whenever it was needed. The refactoring was easy enough but things got a bit more interesting once I got to a class that was using one of the static helper methods.
The class had a wrapper method that called the static method and did nothing more.
ovirt-engine, is a monolith with more
than one million lines of codes based on Wildfly. One of the problems faced
when working on such big projects is that sometimes writing tests is extremely
complex. You spend a tremendous amount of time mocking database access and
irrelevant services for the unit under test.
One way to deal with that complexity is to treat the database as part of the application. While we will see the advantages of this for writing tests it does also make a lot of sense for other reasons.
In the past the database was not part of the application, it was the opposite. The database was the integration point of different applications and services. A database was full of different views for BI, Finance, Shops, and many more. This has changed over time. Nowadays the integration mostly happens through REST or similar APIs, giving applications the freedom to choose the one (or even more than one) database technology suiting their domain.
On behalf of the oVirt community, I am pleased to announce a major new release today, oVirt 4.0. This latest community release, now ready for download, has several new features, including a brand-new dashboard management and monitoring system; enhanced container support; faster live migration speeds; and a new direct-for-disk image uploader.
As the upstream development project for Red Hat Enterprise Virtualization, oVirt’s integrated virtualization enables cost savings for enterprises without the need to re-develop applications to conform to cloud platforms' APIs. oVirt also shares services with Red Hat’s cloud solutions including RDO, Red Hat's community OpenStack distribution, as well as stronger container support that integrates tools from Project Atomic, Red Hat's robust container management tool set.
oVirt is using a bridge based setup to configure networks on the managed hosts. The setup process is done by generating and maintaining network interface configuration files (ifcfg file), which define the network devices used by oVirt. Should any changes be done to these files by an outside party, oVirt will try to restore them to the desired state, to keep the network configuration intact. There are however situations in which the user want to intentionally introduce permanent changes into some of these files, and prohibit oVirt from overwritting them. In order to do so, VDSM hook script can be used.
Lets look at an example, where the user want to add the following entries to the 'ens11' network interface:
USERCTL=yes ETHTOOL_OPTS="autoneg on speed 1000 duplex full"
I have a environment where hard coded password are avoided. We prefer to use Kerberos. We also provided a SSO for Web UI using CAS. We use ActiveDirectory for users backend.
So I wanted a oVirt installation that will use kerberos for API authentication. For the web UI, Kerberos is not always the best solution, so I wanted to integrated it in our CAS.
In November, version 3.6 of oVirt, the open source virtualization management system, hit FTP mirrors featuring a whole slate of fixes and enhancements, including support for storing oVirt's self hosted management engine on a Gluster volume.
This expanded Gluster support, along with the new "arbiter volume" feature added in Gluster 3.7, has allowed me to simplify (somewhat) the converged oVirt+Gluster installation that's powered my test lab for the past few years.
Read on to learn about my favored way of running oVirt, using a trio of servers to provide for the system's virtualization and storage needs, in a configuration that allows you to take one of the three hosts down at a time without disrupting your running VMs.
On the first weekend of February I had the pleasure of attending DevConf.CZ 2016, which took place in the wonderful city of Brno, Czech Republic.
It's a relaxed, young, and vibrant conference and it was fun and rewarding from my perspective.
Here's a disorganized personal summary…
As part of our efforts to upgrade the ovirt.org website and improve the community experience, we migrated the oVirt website from a MediaWiki site to a static site, authored in Markdown and published with Middleman. This was a major project that took more than 6 months and involved many contributors from all aspects of the project.
I'd like to take this opportunity to thank all the people who were involved with this migration, from content reviewers to UX designers and Website admins who gave their time and brain power to make this happen.
The old MediaWiki site is still available in read-only, and will be taken offline once we fix some pending issues, including handling PDF files and such.
Universidad de Sevilla
When one of the largest universities in Spain needed a virtualization solution to host their virtual desktop interface program, UDS Enterprise helped the institution find a virtualization solution that delivered superior flexibility at a much lower cost than proprietary solutions.
That solution would be oVirt. Today, more than 3,000 students use this virtual desktop infrastructure, with the prospect of the rest of the student body participating as the program grows.
Read the full Universidad de Sevilla case study
Packed with Features
- Choice of stand-alone Hypervisor or install-on-top of your existing Linux installation
- High availability
- Live migration
- Load balancing
- Web-based management interface
- Self-hosted engine
- iSCSI, FC, NFS, and local storage
- Enhanced security: SELinux and Mandatory Access Control for VMs and hypervisor
- Scalability: up to 64 vCPU and 2TB vRAM per guest
- Memory overcommit support (Kernel Samepage Merging)
- Developer SDK for ovirt-engine, written in Python
Community is Key
Everyone is encouraged to join the oVirt community, and help us bring our open source software to virtual datacenters worldwide.
Community can be found in many places in the global community. Keep track of the latest happenings in the oVirt community, including new release announcements, and send your thoughts and links to virtualization-related topics on these social media channels: