Archive

Category Archives for "Virtualization"

How to Setup HA for RHV-M 4 pt1

Hi folks! After plowing through my home lab, I’m ready to walk you through setting up RHV-M in a “self-hosted engine” (HA) configuration. I’ve talked about this in some previous articles if you need to familiarize yourself with what the significance is or why someone might want to go with this approach over a standard deployment.

Let’s get to it.

Pre-Setup

Sounds funny, right? “Pre-setup”.. like you’re going to setup before you setup? But really, that’s what you need to do. In this case, everything needs to be right before you just dive right into the deep end of the lake, or you’re going to hit rocks. What I mean is that your underlying environment needs to be right, or things will not go smoothly at all.

Specifically, you’re going to need to pay attention to the requirements of the hosts and RHV-M software.. the specs are well published. For example, you need to have fully qualified domain names for all of your hosts and RHV-M, and they need to resolve (forward and reverse!) in some form of DNS. Just using “/etc/hosts” isn’t going to cut it here.. Don’t have running DNS in your lab, don’t sweat it, look Continue reading

Testing ovirt-engine changes without a real cluster

The ovirt-engine component of oVirt is the brain of oVirt and is responsible for managing attached systems; providing the webadmin UI and REST interfaces; and other core tasks. The process of setting up a real cluster on which to deploy the project is a time-consuming task that greatly increases patch turnaround time and can provide a significant barrier of entry to those wanting to contribute to the project.

Development Environment

There are couple of preparation steps you must take to create your development environment. I am using CentOS 7 as my development machine so I will use that system to describe everything, but it should be pretty straightforward to adapt the article to Fedora.

We first need the source code for the ovirt-engine itself. You can get it from the project's code review tool: gerrit.ovirt.org. Just execute the following command and wait for it to finish:

# git clone git://gerrit.ovirt.org/ovirt-engine.git

You will also need a directory for the development deployments, so create a directory somewhere. Mine is in ~/Applications/ovirt-engine-prefix. I have set the$OVIRT_PREFIX environment variable to point to that path, so when you see it used throughout this article, substitute the path for your own Continue reading

An Introduction to the VirtualBox CLI

This post provides a basic introduction to the VirtualBox CLI (command-line interface) tool, vboxmanage. This post does not attempt to replace the comprehensive documentation; rather, its purpose is to help users who are new to vboxmanage (such as myself, having recently adopted VirtualBox for my Vagrant environments) get somewhat up to speed as quickly and as painlessly as possible.

Basic Commands

Let’s start with some basic operations. Here are a few to get you started:

  • To list all the registered VMs, simply run vboxmanage list vms. Note that if you are using Vagrant with VirtualBox, this command will also show VirtualBox VMs that have been instantiated by Vagrant. Similarly, if you are using Docker Machine with VirtualBox, this command will show you VMs created by Docker Machine.

  • To list all the running VMs, use vboxmanage list runningvms.

  • To start a VM, run vboxmanage startvm <name or UUID>. You can optionally specify a --type parameter to control how the VM is started. Using --type gui will show it via the host GUI; using --type headless means you’ll need to interact over the network (typically via SSH). To emulate Vagrant/Docker Machine-like behavior, you’d use --type headless.

  • Once a VM is Continue reading

RHV and DNS

Hi folks, here’s another “pre” post. What I mean by that is that in the process of creating a demo and the surrounding article, I found I needed to create a sidebar article in order to show how configure an important component. In this case, the requirement to fulfill forward and reverse name server resolution in RHV has lead me to create a basic DNS server. In this case, “dnsmasq” is a perfect solution…

Let me be clear here: I am NOT recommending dnsmasq for production DNS. For production I would recommend deploying BIND, Red Hat IdM, or something else. I’m using dnsmasq because I need something for my home lab and I think you might benefit from the configuration I’m using in your home or test lab. I don’t have that many systems, and a lightweight service like dnsmasq will work nicely.

Background

The RHV 4 documentation is very clear about the requirement for FQDN and fully functional DNS. Simply relying on “/etc/hosts” isn’t going to cut it anymore. Dnsmasq will provide a great and simple solution for small labs. For the uninitiated, dnsmasq provides DHCP, TFTP, DNS, and DNS forwarding. We’ll really only be concerned with the DNS Continue reading

Running a standalone OpenStack Neutron server

One of the great advantage for an OpenStack developer is the ease with which a dev environment can be created. I cannot say enough good things about devstack. Devstack is a tool that provides a very flexible way of creating development environment for OpenStack. Devstack is very flexible and can be configured using simple config … Continue reading Running a standalone OpenStack Neutron server

oVirt Software Defined Networking, The OVN Network Provider

oVirt offers not only its own internal networking, but also an API for external network providers. This API enables using external network management software inside environments managed by oVirt and takes advantage of their extended capabilities. One of such solutions is OVN: Open Virtual Network. OVN is an OVS (Open vSwitch) extension that brings Software Defined Networking to OVS.

OVN enables support for virtual networks abstraction by adding native OVS support for virtual L2 and L3 overlays. This allows the user to create as many VM networks as required, without troubling the adminstrator with vlan requests or infrastructure changes.

The oVirt provider for OVN consists of two parts: * The oVirt OVN driver * The oVirt OVN provider

oVirt OVN Driver

The oVirt OVN driver is the Virtual Interface Driver placed on oVirt hosts that handle the wiring of VM NICs to OVN networking.

The driver allows Vdsm, libvirt, and OVN to interact whenever a NIC is plugged in such a way that the VM NIC is added to an appropriate OVN Logical Switch and the appropriate OVN overlays on all the hosts in the oVirt environment.

The oVirt OVN driver rpm is now available for testing. The latest version Continue reading

NFS & Firewalls in RHEL 7

Here is a quick post for you guys. I’m in the midst of creating a follow up to one of my other articles and it dawns on me that I need to do this particular post first.. A post within a post, or before a post, or something. In either case, I need to provide an update to configuring NFS to poke through a firewall in RHEL 7 for the purpose of RHV in a home lab.. or other use cases. Read on, if you will…

Background

In some older posts, I show you how to configure NFSv3 to use predictable ports in RHEL so that it is more IPtables friendly. You don’t want to shut your firewall down and leave your security wide open. And if your firewall is also doing other work for you like port forwarding, then your ~really~ can’t shut it down…

So here’s the skinny: I’m in the process of setting up new systems for “RHV w/ Hosted Engine”, and I’m using an NFS server for the storage. It’s a home lab, so I’m not exactly worried about performance. I really don’t recommend using a Linux server for production NFS in virtualization, but again, this Continue reading

Setting Community Values

The oVirt community is made up of a diverse mix of individuals using and contributing to all aspects of the project from all over the world, and we want to make sure that the community is a safe and friendly place for everyone.

This code of conduct applies equally to founders, mentors, and those seeking help and guidance. It applies to all spaces managed by the oVirt project, including IRC, mailing lists, GitHub, Gerrit, oVirt events, and any other forums created by the project team which the community uses for communication.

While we have contribution guidelines for specific tools, we expect all members of our community to follow these general guidelines and be accountable to the community. This isn’t an exhaustive list of things that you can’t do. Rather, take it in the spirit in which it’s intended—a guide to make it easier to enrich all of us and the technical communities in which we participate.

To that end, some members of the oVirt community have put together a new Community Code of Conduct to help guide everyone through what it means to be respectful and tolerant in a global community like the oVirt Project.

We're not looking for a Continue reading

High Availability for RHV-M

Hi folks, so time ago (years?) I wrote about how to put together High Availability for RHV-M. At the time the actual configuration that I proposed was solid, if a little unorthodox. Still, it certainly left room for improvement. In this week’s post, I’m updating the configuration with something that Red Hat fully supports. They refer to the configuration as Self-Hosted Engine.

Why Hosted Engine?

The primary benefits to using the Self-Hosted Engine, or “HE”, is that it provides a fully supported HA configuration for RHV-M as well as a smaller overall footprint as compared to a traditional deployment of RHV. Also, RHV-M is delivered as an appliance for the HE configuration, so the entire process is streamlined. Who doesn’t like that?

he_good

Let’s go back to the smaller footprint statement a few times though.. First off, in a traditional deployment of RHV, you have RHV-M, plus hosts. That deployment of RHV may be on a bare-metal host or it may be on a VM in a different virtualization environment. Regardless, you’re already using up resources and software subscriptions that you may not want to use. Not to mention the fact that it may cause you to cross-deploy resource across Continue reading

Fast Linux Packet Forwarding with Thomas Graf on Software Gone Wild

We did several podcasts describing how one could get stellar packet forwarding performance on x86 servers reimplementing the whole forwarding stack outside of kernel (Snabb Switch) or bypassing the Linux kernel and moving the packet processing into userspace (PF_Ring).

Now let’s see if it’s possible to improve the Linux kernel forwarding performance. Thomas Graf, one of the authors of Cilium claims it can be done and explained the intricate details in Episode 64 of Software Gone Wild.

Read more ...

Technology Short Take #72

Welcome to Technology Short Take #72. Normally, I try to publish these on Fridays, but some personal travel prevented that this time around so I’m publishing on a Monday instead. Enough of that, though…bring on the content! As usual, here’s my random collection of links, articles, and thoughts about various data center technologies.

Networking

A Unikernel eBook from O’Reilly

eBook Cover

I am pleased to announce that my FREE unikernel eBook is now available from O’Reilly.

I have been giving talks about unikernels for the past 2 years at conferences throughout North America. This eBook is my attempt to present most of the information from these talks in a written form. It is not a technical HowTo book, but rather an introduction to the basic concept of unikernels and an explanation of their value.

I hope this eBook will be a useful tool for introducing people to the whys and wherefores of unikernels.

You can download your copy here: http://www.oreilly.com/webops-perf/free/unikernels.csp

A Triple-Provider Vagrant Environment

In this post, I’d like to share with you some techniques I used to build a triple-provider Vagrant environment—that is, a Vagrant environment that will work unmodified with multiple backend providers. In this case, it will work (mostly) unmodified with AWS, VirtualBox, and the VMware provider (tested with Fusion, but should work with Workstation as well). I know this may not seem like a big deal, but it marks something of a milestone for me.

Since I first started using Vagrant a couple of years ago, I’ve—as expected—gotten better and better at leveraging this tool in a flexible way. You can see this in the evolution of the Vagrant environments found in my GitHub “learning-tools” repository, where I went from hard-coded data values to pulling data from external YAML files.

One thing I’d been shooting for was a Vagrantfile that would work with multiple backend providers without any modifications, and tonight I managed to build an environment that works with AWS, VirtualBox, and VMware Fusion. There are still a couple of hard-coded values, but the vast majority of information is pulled from an external YAML file.

Let’s take a look at the Vagrantfile that I created. Here’s Continue reading

Temporary Time Out

Hi folks, the Captain is taking a few weeks off as he has a brand new instance being spun up this week, if you catch my drift… ? You know, the kind of instance that takes 9 months to boot… I expect to be back at the keyboard by the end of October, but don’t be alarmed if you don’t see much in the way of posts, demos, or tweets. It’s all good.

The post Temporary Time Out appeared first on Captain KVM.

Why I’m Now Using VirtualBox with Vagrant

One of the things I often tell people is, “Use the right tool for the job.” As technologists, we shouldn’t get so locked onto any one technology or product that we can’t see when other technologies or products might solve a particular problem more effectively. It’s for this reason that I recently made VirtualBox—not VMware Fusion—my primary virtualization provider for Vagrant environments.

I know it seems odd for a VMware employee to use/prefer a non-VMware product over a competing VMware product. I’ve been a long-time Fusion user (since 2006 when I was part of the original “friends and family” early release). Since I started working with Vagrant about two years ago, I really tried to stick it out with VMware Fusion as my primary virtualization provider. I had a ton of experience with Fusion, and—honestly—it seemed like the right thing to do. After a couple of years, though, I’ve decided to switch to using VirtualBox as my primary provider for Vagrant.

Why? There’s a few different reasons:

  1. Greater manageability: VirtualBox comes with a really powerful CLI tool, vboxmanage, that lets me do just about anything from the command line. In fact, the VirtualBox documentation refers to Continue reading

Test-driving arbitrary data publishing over BGP

BGP is a routing protocol known for its strength in scaling and resilience. It is also flexible and extensible.  With its Multi-Protocol extension BGP can support distribution of various data types. Still to extend BGP for every new route data type  requires introduction of new address family(AFI/SAFI) and making BGP aware of the new data … Continue reading Test-driving arbitrary data publishing over BGP