OpenStack on ARMv8 - s.itho.me · Outline Intro ARMv8 Pros and Cons Possible Use Case OpenStack on...

Preview:

Citation preview

OpenStack on ARMv8Date Huang, NCUGene Kuo, NCTU

About Us黃宇強 Date Huang

● NCU 轉職 NCTU 中

● 不務正業的資訊安全準研究生

● バカ baka

郭靖 Gene Kuo

● NCTU

● 不務正業的電子工程系學生

● OpenStack App Hackathon Mentor (X

Outline

Intro

ARMv8 Pros and Cons

Possible Use Case

OpenStack on ARM Issue

Future Plans

Intro

● Why DozenCloud

○ Native ARM VPS

○ Natvie ARMv8 vs QEMU Emulator

● Why ARMv8

○ Pros

○ Cons

Native vs Emulate

● Lightweight

● Massive Speed Improvement

○ Cache

○ Pipeline

○ Out-of-Order Execution

● QEMU has lots of bugs

○ JIT compiler has some problems

●潮到出水

x86 不支援哭哭喔x86 is not supported QQ

ARMv8

Pros

● Native ARM Development Environment

○ Compare with QEMU

● Better Concurrency Performance

○ 96 cores

● Lower Power Consumption

Cons

● Single Core Performance Worse than Other Architecure

● Software isn’t Ready

○ Compiling from source or patch it.

● Need More Optimization

○ KVM on ARM is worse than Xen on ARM

○ KVM on x86 is better than Xen on x86 (about 3x)

BKK16-504: Running Linux in EL2

BKK16-504: Running Linux in EL2

Possible Use Case

● ARM Virtual Private Server

○ OpenStack

● Native ARM CI server

○ Gitlab-CI

● Storage Server

○ Ceph

● CDN

● Android VM

Native CI

Issue

● Kernel Panic

○ Software Isn’t Ready

● OpenStack QEMU & Libvirt Driver

○ 32 on 64 KVM Problem

● Mitaka Experimental UEFI Support Bug

32 on 64 KVM

ARMv7 vs ARMv8

● ARMv7

○ 32 bits

○ ISA: ARM, Thumb

○ CPU Mode: SVC, USR, FIQ, ……

● ARMv8

○ 32 and 64 bits

○ ISA: AArch64, AArch32

■ Only ARMv8-A has AArch64 ISA support

○ CPU Mode: EL0-3

■ Diff with x86, larger number for more privileged

AArch32 vs AArch64

● AArch32

○ Partially compatible with ARMv7

○ Only Reserve co-processor CP10, CP10, CP11, CP14, and CP15 etc.

○ Including A32, T32, which correspond to ARM ISA and Thumb ISA respectively

● AArch64

○ No more co-processor

○ Remove conditional execution

● AArch64 is NOT compatible with AArch32

○ Need exception to switch between two ISA (diff with x86)

Non-UEFI

Non-UEFI VMs

Need to assign kernel image and initramfs

Kernel patches will be problematic

Security issue

UEFI

Patch

Future Plans

● Closed Beta at August

○ ARMv8 Development Course

○ Computer Security CTF Contest

● Open Beta

○ No idea

○ Financial Problem

● Native Android

特別感謝

技嘉科技

鈺登科技

國立中央大學資工系先進防禦實驗室

國立交通大學

國立交通大學資工系軟體品質實驗室

Demo

● GIGABYTE R150-T60 ARMv8 Server

○ Cavium ThunderX ARMv8 processors

○ DDR4 128GB RAM

● Ubuntu 16.04

● OpenStack Mitaka

Summary

ARMv8 software ecosystem isn’t compelete yet

Use with CAUTION!!!

OpenStack on ARMv8 is usable but not complete

VNC, UEFI issue, and etc…..

x86_64 still better for general purpose usage

Refhttp://wiki.csie.ncku.edu.tw/embedded/ARMv8

https://en.wikipedia.org/wiki/ARM_architecture

https://support.pokemongo.nianticlabs.com/hc/en-us/articles/221958248-Supported-devices

https://i.ytimg.com/vi/2sj2iQyBTQs/maxresdefault.jpg

https://review.openstack.org/#/c/335512/

http://www.slideshare.net/linaroorg/bkk16504-running-linux-in-el2-virtualization

Recommended