Skip to content

minimega 2.1 release notes

Introduction

The minimega development team is pleased to announce the release of minimega 2.1. This release includes several bugfixes and tweaks to the 2.0 release, as well as substantive internal changes to pave the way for future development. Several new usability features have been added which should make the programmability and visibility of minimega environments much better.

What's new

Major changes and milestones

New web interface

The minimega web interface has been updated again; it now features a live diagram of the network layout and a more modern look. The new web interface also fixes several performance issues with the previous interface. Most notably the web interface now only loads VM screenshots for VMs that are currently displayed on the screen instead of attempting to render all VM screenshots on every pageload.

vm launch kvm and internal changes

In preparation for Linux container support, we have changed the way the vm launch command works. It now expects the type of the VM to be launched; currently, only KVM is supported. Where you would have previously run vm launch 10 to launch 10 VMs, you should now use vm launch kvm 10 to accomplish the same task.

Tab completion

Tab completion now works for minimega commands, not just filenames. As in bash, striking the TAB key after typing a sufficiently unique prefix will complete the command; if there are multiple possible completions, striking the TAB key again will show the possibilities.

Runtime test framework

To help squash bugs earlier, minimega has a new runtime test framework that exercises some basic single-host functionality. There is a new tool, minitest, that runs tests from the tests/ directory against a running minimega instance and checks that the output (.got) matches the expected output (.want). This tool is still in its infancy -- there are only a handful of tests and the framework has limited ability to clean up after itself when things go wrong (requiring the user to manually cleanup VMs or restart minimega). However, it has proven useful to find bugs introduced during the changes to the internals. We hope to improve upon this initial work in future releases to provide more complete runtime testing for minimega developers.

Additional new features

vm config serial API

minimega now supports specifying the number of ISA serial and virtio serial ports. Previous versions of minimega hardcoded one of these ports (1.0 use ISA serial, 2.0 used virtio serial). The default is to have no serial ports whatsoever. The vm config serial command lets you specify how many ports to create.

See the vm config serial API for more information.

bridge tunnel API

The bridge API now supports VXLAN and GRE tunneling. This API must be instrumented from both ends of two minimega instances.

See the bridge API for more information.

vm launch/start/stop/kill/tag range support

All of vm launch, vm start, vm stop, vm kill, and vm tag now support range operations, such as:

vm launch kvm foo[1-20]

Which will create foo1, foo2, ..., foo20 VMs.

rfbplay ffmpeg transcoding

The rfbplay tool now supports invoking ffmpeg for VNC framebuffer recordings directly in addition to the built-in MJPEG webserver.

See the VNC record/replay article for more information.

bridge trunk multiple trunks

The bridge trunk API now supports adding more than one trunk port per bridge.

.record API

The .record API allows toggling if a command is recorded in the command history or not.

See the .record API for more information.

MAC address generation

Automatically generated MAC addresses are now valid according to standards.ieee.org/develop/regauth/oui/oui.txt. You may still override the automatically generated MAC address with any you like using the vm config net API.

Availability

minimega is available in several ways, both as pre-built distributions and source. See the installing guide for more information.

Debian package

minimega is available as an x86-64 debian package, available here. It is known to work in debian 7 (wheezy) and 8 (testing/jessie).

tarball

A pre-built, x86-64 distribution is available in a single distributable tarball here. It should be sufficient to simply unpack the tarball and run tools from the bin/ directory directly. Most default paths in minimega, vmbetter, and other tools are built to be used in this way (i.e. bin/minimega, which will then look for the web directory in misc/web).

Building from source

Source of the entire distribution is available on github. Follow the directions for cloning or forking minimega on github.com. In order to build minimega, you will need a Go 1.3+ compiler, libreadline, and libpcap headers.