Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IoT/ARM64 support: allow cloudstack-agent on Raspberry Pi 4 (armv8) to use kvm acceleration #3644

Merged
merged 2 commits into from
Nov 11, 2019

Commits on Oct 20, 2019

  1. kvm: add support for aarch64/arm64 platform such as Raspberry Pi 4

    KVM is supported on arm64 Linux (https://www.linux-kvm.org/page/Processor_support#ARM:).
    For a small (IoT) platform such as the new Raspberry Pi 4 that uses armv8 processor
    (cortex-a72) it's possible to run Linux host with `/dev/kvm`
    accleration. This adds support for IoT IaaS in CloudStack.
    
    This PR is from a fun weekend project where:
    - I set up a Raspberry Pi 4 - 4GB RAM model with 4 CPU cores @ 1.5Ghz, 128GB SD samsung evo plus card
    - Installed Ubuntu 19.10 raspi3 base image: http://cdimage.ubuntu.com/releases/19.10/release/ubuntu-19.10-preinstalled-server-arm64+raspi3.img.xz
    - Build a custom Linux 5.3 kernel with KVM enabled, deb here: http://dl.rohityadav.cloud/cloudstack-rpi/kernel-19.10/ and install the linux-image and linux-module
    - Then install/setup CloudStack on it (fix some issues around jna, by manually installing newer libjna-java to /usr/share/cloudstack-agent/lib)
    - Since the host processor is not x86_64, I had to build a new arm64 (or aarch64) systemvmtemplate: http://dl.rohityadav.cloud/cloudstack-rpi/systemvmtemplate/
    
    I could finally get a 4.13 CloudStack + Adv zone/networking to run on it
    and deployed a KVM based Ubuntu 19.10 environment and NFS storage.
    Deployed a test vm with isolated network, VR works as expected. Console
    proxy works as well, for this tested against arm64 openstack Debian 9/10
    templates.
    
    Limitation: on my aarch64 env, it did not support IDE, therefore all
    default bus type for volumes are SCSI by default. With VIRTIO it fails
    sometimes.
    
    Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
    rohityadavcloud committed Oct 20, 2019
    Configuration menu
    Copy the full SHA
    01b679e View commit details
    Browse the repository at this point in the history
  2. kvm: fix unit test failure

    Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
    rohityadavcloud committed Oct 20, 2019
    Configuration menu
    Copy the full SHA
    8f33a88 View commit details
    Browse the repository at this point in the history