Traverse Ten64

by Traverse Technologies

An eight-core ARM64 networking platform with mainline Linux support

View all updates Nov 17, 2020

Simple Virtualization with μVirt (Bonus: Self-contained Kubernetes Clusters)

by Mathew M

As you may have read in Thomas’ field report and in our campaign pitch, we built a small virtualization host called μVirt (pronounced microvirt and written as muvirt in pure ASCII) that can host virtual machines on top of OpenWrt. This allows you to use OpenWrt for your connectivity needs (routing, firewall, DNS/DHCP) while using guest VMs to run more advanced functions like storage, container hosts, media servers, and IoT.

Ten64’s hardware features - such as eight cores, the ability to use fast SSD storage, and support for up to 32 GB of RAM - make it an ideal but small VM host.

μVirt is not a replacement for full featured hypervisors such as ESXi, oVirt, or Proxmox as it does not have many of their bells and whistles. However, its small size makes it an ideal testbed for some of the innovative features of Ten64 and its NXP LS1088 SoC.

μVirt at a Glance

Based on OpenWrt

The host system can provide networking services to the guest VMs and local network. This is ideal for when you want a single appliance to route your local network and serve complex applications, such as NAS, container stacks, and private cloud. Since μVirt leverages OpenWrt’s network stack, it’s ideal for customer-edge applications with cellular/4G/5G and Wi-Fi.

Mature Web Interface

μVirt uses LuCI, OpenWrt’s web interface module, for VM provisioning and management.

Robust Catalog of VMs

Use μVirt’s Appliance Store interface to select and deploy VMs from major distributions.

cloud-init Support

Use the industry-standard cloud-init for easily setting the user password and SSH keys for VMs.

Device Passthrough

USB devices, PCIe devices, and DPAA2 containers all work with passthrough to VMs. Devices known to work under passthrough include LimeSDR, ZigBee adapters, AI accelerators/TPUs, and Wi-Fi cards.

Hardware Acceleration Offload (Preview!)

We’re making good progress on hardware acceleration and offload features (e.g., NXP DPAA2). See DPDMUX for details.

VM Images Compatible with μVirt

μVirt is designed to run ARM64 "cloud" images released by most distributions. These typically use an EFI+GRUB bootloader setup.

Distributions with compatible images include:

  • Debian
  • Ubuntu
  • Fedora
  • CentOS
  • openSUSE
  • FreeBSD

Additional support for conventional ISO/DVD installers is in progress. A recent refactor of the provisioning system also allows the VM setup process to be customized for certain applications such as K3OS (see below).

As part of the experimental DPAA2 hardware acceleration support, μVirt can also run Ten64’s OpenWrt image.

Virtualization Alternatives

μVirt is not the only way to run virtual machines on Ten64, you can also use KVM-based virtualization from your favorite distribution.

If you want to use a traditional libvirt stack, openSUSE Leap 15.2 runs on Ten64 today and supports KVM virtualization and Linux Containers (LXC) — see the openSUSE Virtualization Guide for more information.

You can also launch a VM using qemu directly, in much the same way μVirt does:

qemu-system-aarch64 -nographic \
    -cpu host -machine type=virt,gic-version=host -m $VM_MEM -enable-kvm \
    -bios QEMU_EFI.fd  \
    -serial tcp::$GUEST_CONSOLE_TELNET_PORT,server,telnet \
    -smp $VM_CORES \
    -device virtio-rng-pci \
    -hda "${ROOTFS_IMG}" \
    -netdev user,id=defaultnet -device virtio-net,netdev=defaultnet

Bonus: Kubernetes cluster with μVirt and K3OS

Thanks to μVirt’s simplicity, it is a good test ground for developing custom integrations. A setup wizard was recently added to μVirt that can create a self-contained Kubernetes cluster based on the K3S/K3OS distribution.

With just a simple command, k3os-cluster-wizard, you can set up a Kubernetes controller node with multiple worker nodes without having to manually connect worker nodes to the cluster.

The setup wizard handles the process of creating virtual machines for both controller and worker nodes and creating the configuration file needed for the k3os automated setup process. Thanks to μVirt’s OpenWrt roots, it can also add DHCP reservations for each node.The result is a nice, tidy cluster you can use right away for your Kubernetes experimentation:

A more practical use case would be to deploy a Ten64 as part of an "edge computing" architecture, managed by a server in the cloud. Ten64’s support for VPN acceleration, wired and wireless/cellular connectivity, and scalable resources (with large SSDs and RAM) make it well suited to such tasks.

The good news is that k3os-cluster-wizard can be used to create worker nodes that connect to any k3s cluster - these can be both locally (on your LAN), and remote - connecting to a k3s controller in the cloud.

You can view the installation guide and manifest files shown in the video above in our kubeblueprint repository.

About the Author

Mathew M

mcbridematt  ·   Melbourne, Australia


$118,491 raised

of $60,000 goal

197% Funded! Order Below

Product Choices

$650

Ten64 Complete Kit

You get a a fully assembled and tested Ten64 mainboard installed in a custom metal enclosure with a fan, 60 W power supply with regional power cord, a USB-C console cable, a recovery microSD card, a SIM eject tool, and a hex key, as you'd expect with any good piece of hardware. RAM with ECC not included.


$56

NVMe SSD

This SanDisk solid-state drive (SSD) fits inside the standard Ten64 enclosure and interfaces to the mainboard via NVMe. The 128 GB drive (P/N SDAPMUW-128G-1022) is compatible with both the M.2 Key M and M.2 Key B slots on Ten64's mainboard, whereas the 256 GB drive (P/N SDBPNPZ-256G) and 512 GB drive (P/N SDBPNPZ-512G) are only compatible with the M.2 Key M slot. These drives are only available when purchased with a Ten64. User installation required.


$70

NAS-grade SATA 2.5" SSD

These NAS-grade solid state drives (SSDs) are rated to last much longer than consumer models, so are perfect for NAS bulk storage. Choose from 256 GB (AP256GPPSS25-R), 512 GB (AP512GPPSS25-R), and 1 TB (AP1TPPSS25-R) capacities. These drives are only available when purchased with a Ten64. User installation required.


$4

Flexible SATA Cable

One flexible cable (3M part number 5602-44-0142A-300) for connecting a SATA drive to a SATA controller board. You will need one cable per drive. Free shipping only available when shipped with another Ten64 product.

Credits

Traverse Technologies

Traverse is a design house focusing on broadband and machine-to-machine applications. Our key areas of expertise are in wireline (xDSL), wireless (LTE), and embedded Linux with an aim to leverage open source technologies such as Linux and OpenWrt as much as possible.


Guy Ellis

SI and DFM Engineer

Mathew McBride

Product Architect

Brett Hahnel

PCB Layout and CAD

Sean Yang

SW Developer

Dennis Monks

SW Dev Leader

Vaughn Coetzee

Firmware Developer


SRXGlobal

Recommended

Contract Manufacturer

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: