How-to implement virtual machines in Arista EOS
Virtualization was first developed in the 1960s and used to partition mainframe hardware to improve utilization. Today, virtualization has many meanings and widely implemented on a variety of platforms. Arista EOS leveraging it’s unmodified Linux kernel and embracing open source standards based technology has brought the concept of operating system virtualization to Ethernet switching. The approach that Arista has taken is to utilize Kernel-based Vitual Machines (KVM). Turning the Linux kernel into a hypervisor by loading a kernel module which provides the core virtualization infrastructure, a processor specific module (Intel or AMD) which provides the CPU specific implementation and a modified QEMU which provides the generic machine emulator and virtualizer KVM then simply turns the Linux kernel into a hypervisor since the standard Linux kernel is the hypervisor, it benefits from the changes to the standard kernel (memory support, scheduler, etc…). Optimizations to these Linux components (such as the new scheduler in the 2.6 kernel) benefit both the hypervisor (the host operating system) and the Linux guest operating systems. With the kernel acting as a hypervisor, you can then start other operating systems, such as another Linux kernel or Windows. All of the components required are already installed with your Arista EOS software image, all you have to do is download an image and perform a few simple configuration steps to get a virtual machine operational.
Note: We have built a generic Fedora and Debian based qcow2 image for your use, feel free to use ours or build your own. Both of the images we built have a username of “root” and password of “password”.
How-to set up a virtual machine with Arista EOS
- Download the desired image to /mnt/flash
- Configure EOS:
- Name the virtual machine:
Arista7124(config)# virtual-machine fedora1
- Provide a pointer to the image:
Arista7124(config-vm-fedora1)# disk-image file:/mnt/flash/fedora.img image-format qcow2
- Define the amount of memory allocated:
Arista7124(config-vm-fedora1)# memory-size 512
- Bind the virtual NIC to an SVI (or management interface)
Arista7124(config-vm-fedora1)# virtual-nic 1 Vlan 5
- Create the VNC server’s tcp port (display)>
Arista7124(config-vm-fedora1)# vnc-port 5900
- Enable the virtual machine
- Name the virtual machine:
You can attach to the virtual machine, via VNC client pointed to the switch’s IP address.
Caveat: Kernel ‘hair-pinning’ is currently not enabled so you can not communicate directly with the local switch, all traffic must have a destination on another networked device (router, switch, server, etc…)
For specifics about KVM please visit http://www.linux-kvm.org/.
Note: A minor issue has been identified with the default setup of Real VNC Viewer as of 13 Aug 2015. In the VNC Viewer ‘Options’, ‘Expert’, ‘ColorLevel’ the default value is ‘pal8’ and the session fails to establish. The workaround is to set this value to ‘full’ and reconnect.