Enabling KVM virtualization for Raspberry Pi 2

As I wrote on my previous post, Enabling HYP mode on the Raspberry Pi 2, the newest machine from the Raspberry Pi Foundation features a Cortex-A7 with Virtualization Extensions, but it isn’t possible to make use of such feature out of the box.

In that article I showed that it was possible to start the kernel in HYP mode. Now, I’ll cover the rest of steps needed for enabling KVM virtualization and running your first guest OS.

(more…)

Enabling HYP mode on the Raspberry Pi 2

The newest iteration of the wonderful machine designed by Raspberry Pi Foundation, the Raspberry Pi 2, sports a Broadcom BCM2836 SoC, with four Cortex-A7 cores. The Cortex-A7, being the little brother Cortex-A15, features the ARM Virtualization Extensions, so both Xen and KVM based virtualization should work on it.

At this point, you probably are wondering why would someone want to use virtualization on a RPi2. In addition to the usual “because you can!” answer, there’s a pretty good reason for it. Imagine you want to use the RPi2 as a media center and, at the same time, you want to run some personal services (like ownCloud or Pydio) on it. Instead of polluting the media center image, you can run an isolate, secure, virtual machine for such purpose. And, using my VEXPRESS_KVM port, you can even provide those services running NetBSD! 😉

The first step towards being able to use virtualization on the Raspberry Pi 2, is finding a way to boot the kernel in HYP mode. Let’s see how can we do that.

(more…)

Running Alan Cox’s Fuzix OS on a Z80 emulator

This past Halloween, Alan Cox announced Fuzix OS, a project for building a UNIX-like operating system for 8 bit computers, based on UZI sources. This OS targets a number of physical machines, both old and homebrew computers, and some emulators too.

The easiest and more approachable way for trying Fuzix OS is running it on cpmsim, which comes bundled inside the Z80pack package. If want to give it a try the easy way, just continue reading.

(more…)

flexVM 2.1: Un año de trabajo y 158 tickets de SCRUM

Hace un año, cuando lanzamos la versión 2.0 de flexVM, vivimos un momento muy especial para nosotros. Eran tiempos de cambio, en los que habíamos decidido adoptar un nuevo enfoque, pasando de ser un componente hecho a medida para ISPs, a un producto con entidad propia orientado al público general. Este cambio de estrategia definía nuevos horizontes para el proyecto, pero también nos adentraba en un mundo nuevo y desconocido para nosotros.

La versión 2.1 es la confirmación de que el camino que emprendimos hace un año era el correcto. El producto ha madurado (y nosotros, el equipo de desarrollo, con él) y ha ganado nuevas características, alcanzando un nivel de calidad y funcionalidad que le permite competir sin complejos contra las soluciones de virtualización de servidores y escritorios más populares.

Soporte para múltiples pooles, balanceo automático y manual de recursos, integración de OpenVirtualSwitch y la publicación de nuevos clientes para dispositivos móviles (iOS y Android) son sólo algunas de las características más destacadas que se han implementado a través de los 158 tickets de SCRUM resueltos para esta versión.

Y, por supuesto, esto no se acaba aquí. Ya estamos trabajando en la versión 2.2, que traerá mejoras especialmente en las extensiones VDI, y que esperamos liberar en Febrero de 2015, inaugurando un nuevo modelo de lanzamiento de versiones, basado en ciclos de desarrollo más cortos.

Estamos convencidos que 2015 será un año muy interesante para nosotros, así como para nuestros clientes y partners. Muchas gracias a todos los que lo habéis hecho posible.

My answers to Interstellar questions

As he already did in movies like Inception or Memento, Christopher Nolan has introduced some big open questions in his latest movie, Interstellar, leaving to the spectator the task of filling the blanks with his own interpretation.

I’ve decided to give it a shot, writing here my answers to such questions. As it’s obvious, from this point, there will be HUGE spoilers, so stop reading if you haven’t watched the movie yet (and go to your nearest theater right now! ;-).
(more…)

Porting socz80 (a retro microcomputer) to DE0-nano

UPDATE: Mikolas has added support for the DE2-70 board. Check his repo here: https://github.com/mikolas/socz80-de0_nano

Due to my intrinsic, chronic curiosity, for a long time I wanted to get a in touch with FPGA and related technologies (Verilog, VHDL, etc…), and experience the feeling of total control, having both hardware and software subdued to my control (well, not so much, due to the mysterious and semi-secret process of synthetization and fitting done by the tools involved in the process, but you get the idea).

So finally, some months ago, I bought a DE0-nano. This is a small but nicely built device, easily programmable with an integrated USB Blaster, and with a relatively low price (~70 €), which makes it perfect for learning and practicing a little.

IMG_20140911_235844

After a few project of blinking LEDs and playing with clocks and PLLs, I’ve decided to take a step further and seek for a challenge. Then I came across the socz80 project, an amazingly cool project for building a Z80 compatible computer in FPGA-synthetizable VHDL. The code was targeted for the Papilo Pro board, which is a Xilinx based device (the FPGA world is divided between two major makers, Xilinx and Altera), so I decided to give a try and port it to the DE0-nano.

After a few hours dealing with timing problems, I managed to get it running. This is how I’ve done it.

(more…)

Enabling KVM virtualization on ARM (Allwinner A20)

Some time ago, ARM Holdings presented the new virtualization extensions for its processor architecture, which are now present on some models of the Cortex family, like the Cortex-A7 and Cortex-A15. Though it’s a quite recent technology, both KVM and Xen hypervisors already support such extensions, allowing to run virtualized Guests in the same way you can already do on x86.

It’s true that current SoCs (System-on-Chip) and development boards doesn’t provide a number of cores and RAM memory that invite to run a significant number of Guests on them, but these are the first steps towards stabilization of ARM virtualization, paving the way for the future server-oriented ARM processors. On the other hand, this is also an interesting option for running alternative operating systems (like the *BSD family) on ARM hardware, without dealing with the extremely heterogeneous nature of it.

In this guide, where going to see how you can enable KVM virtualization on the Olinuxino-A20-MICRO development board.

(more…)

Cómo habilitar virtualización KVM sobre ARM (Allwinner A20)

Hace algún tiempo, ARM Holdings presentó las extensiones de virtualización para su arquitectura de procesadores, las cuales están presentes en algunos modelos de la familia Cortex, como el Cortex-A7 y Cortex-A15. Aunque se trata de una tecnología reciente, los hipervisores KVM y Xen cuentan ya con soporte para dichas extensiones, y permiten levantar SS.OO. invitados de forma similar a como lo hacen en x86.

Si bien es cierto que los SoCs (System-on-Chip) y las placas de desarrollo no invitan a desplegar un número importante de máquinas virtuales, dado el escaso número de cores y RAM que proveen, este supone un primer paso de cara a la estabilización de estas tecnologías, lo que permitirá que ya esté madura para cuando se popularicen los encapsulados de ARM destinados a servidores. Adicionalmente, es una estrategia interesante para poder correr otros SS.OO. (como la familia *BSD) en hardware ARM, sin tener que lidiar con la naturaleza extremadamente heterogénea del mismo.

En esta guía vamos a ver cómo habilitar la virtualización KVM sobre la placa de desarrollo Olinuxino-A20-Micro.

(more…)

Optimizar el rendimiento de disco en una máquina virtual

Es posible que en algún momento te hayas planteado la posibilidad de migrar tu base de datos  (u otro servicio crítico)  a una máquina virtual, y te haya asaltado la duda de si obtendrías el rendimiento de disco apropiado para mantener un buen grado de calidad del servicio.

Ciertamente, al virtualizar siempre aparece cierto grado de overhead en los accesos de E/S, al introducirse una capa intermedia y un posible arbitrador para el acceso, pero dicho overhead depende en gran medida de cómo configuremos el backend de disco de nuestra máquina virtual. Si lo hacemos bien, podremos conseguir que no afecte significativamente a las aplicaciones, y a cambio mantendremos todas las ventajas de tener nuestro servicio virtualizado.

 

(more…)

flexVM lanza la versión 2.0 de su producto de virtualización

flexVM-300x90flexVM lanza la versión 2.0 de su producto de virtualización, que incluye funcionalidades avanzadas como migración en caliente de máquinas virtuales, Direct Storage y manejo de ciclos de vida.

Con esta versión, flexVM da el salto de los entornos especializados para abrirse al mercado generalista, creando un producto atractivo, potente y fácil de manejar, con la clara intención de hacer accesible la virtualización y la nube privada a empresas de cualquier tamaño.

El producto se distribuye en tres ediciones distintas: Single-Node, pensada para pequeños entornos y disponible de forma totalmente gratuita, Enterprise, para entornos productivos que requieren alta disponibilidad, y VDI, que incluye todos los elementos necesarios para el manejo de escritorios virtuales.

 

(more…)