oVirt Blog
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.
Monitoring in oVirt
In short, oVirt is an open-source management platform for virtual data centers. It allows centralized management of a distributed system of virtual machines, compute, storage, and networking resources.
In this post, the […]
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 […]
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[5566] 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 […]
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 […]
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.
Features will include:
Disables Power Management for Hosts
Manual Fence all Hosts in non_responsive state
Modifies Server Storage Connections (currently directly to Engine Database)
Activates […]
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.
The Problem
Prior to the change, the following annotations were used:
For VMs:
EditableField
EditableHostedEngineField
EditableOnVmStatusField
For VM Templates:
EditableField
EditableOnTemplate
For Hosts:
EditableField
EditableOnVdsStatus
This lead to fields with an overabundance of individual annotations. For example, take the memSizeMb field in the VmBase […]
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. […]
oVirt’s heart, 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, […]
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 […]
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.
[…]