Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM

Podobne dokumenty
Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

Q E M U.

Systemy Operacyjne Wirtualizacja

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

Linux -- u mnie działa!

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

WIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński

Prezentacja systemu RTLinux

Czym jest wirtualizacja

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Know your tools KVM. Dariusz Puchalak Dariusz_Puchalak < at > ProbosIT.pl

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Prezentacja emulatora QEMU Zajęcia SO

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

LPAR - logiczne partycjonowanie systemów

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Wirtualizacja: XEN. Marek Marczykowski 16 czerwca 2010

Tomasz Greszata - Koszalin

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Open vswitch lab. Radosław Kujawa 14 czerwca 2017 OSEC

Podstawowe zagadnienia

Monitor maszyn wirtualnych

Elastyczna sieć dla rozwiązań Cloud Open vswitch

System wspomagania zarządzania wirtualizacją

Wirtualizacja systemów

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

Wirtualizacja. Przegla d wybranych technik. Magda Michalska Krzysztof Kulewski Andrzej Pacuk. Systemy operacyjne 2006

Wirtualizacja. Metody, zastosowania, przykłady

Wirtualizacja. Paweł Mantur Artur Mączka Tomasz Niedabylski

Systemy operacyjne system przerwań

Struktury systemów operacyjnych

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Wirtualizacja. czyli trochę co innego niż rzeczy do tej pory omawiane

Virtual Grid Resource Management System with Virtualization Technology

RHEL 5 wpływ wirtualizacji na koszty

Wirtualizacja jako środek zmniejszenia kosztów działalności przedsiębiorstwa w czasach kryzysu

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

VMware. Prezentacja na Systemy Operacyjne

Oracle VM - Przegląd architektury i możliwości

Dni: 5. Opis: Adresaci szkolenia

Metody optymalizacji soft-procesorów NIOS

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Monitorowanie VMware Rafał Szypułka Service Management Solution Architect IBM Software Services for Tivoli

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Wybrane zagadnienia elektroniki współczesnej

Systemy operacyjne II

Krótka historia o debugowaniu laptopa, który nie budził się z uśpienia , Warsaw C++ Users' Group Michał Redford Kowalczyk

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Zastosowanie emulatorów w rozbudowie systemów wbudowanych

Jądro systemu operacyjnego

Linux Kernel. Wprowadzenie

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Wykład 7. Zarządzanie pamięcią

Administratorzy systemów, inżynierowie, konsultanci, którzy wdrażają i zarządzają rozwiązaniami opartymi o serwery HP ProLiant

DVD MAKER USB2.0 Instrukcja instalacji

Wirtualizacja w praktyce.

Działanie systemu operacyjnego

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Działanie systemu operacyjnego

CyberGuru Wirtualizacja na platformie Hyper-V w pigułce. Prezentuje: Kamil Frankowicz

Grzegorz Jaśkiewicz Dariusz Stefański

Badanie wydajności maszyn wirtualnych

NASI SPONSORZY I PARTNERZY

WZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

1. Tworzenie nowego projektu.

Dane bezpieczne w chmurze

Zarządzanie zasobami pamięci

EPTI: Efficient Defence against Meltdown Attack for Unpatched VMs

Capgemini IT Wirtualizacja fundamentem chmury technologie wirtualizacji jako podstawy funkcjonowania chmury

Programowanie Współbieżne

Tworzenie bezpiecznego środowiska kont shellowych

Zaawansowane Architektury Procesorów Część 1

ROBERT LIS. Wirtualizacja edukacyjnych zasobów IT. Virtualization of IT education

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Technologia informacyjna. Urządzenia techniki komputerowej

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Wykład 3: Implementacja programów wbudowanych

Architektura i administracja systemów operacyjnych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

pasja-informatyki.pl

Konwersja maszyny fizycznej na wirtualną.

Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD

Wirtualizacja Systemy operacyjne

ochrona w systemie operacyjnym

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wirtualizacja. Maciej Pawlisz, Konrad Tomala, Paweł Łukasz

VMware vsphere: Automation Fast Track

Budowa systemów komputerowych

Laboratorium Zarządzania. Janusz Granat, Wojciech Szymak

Tablice stron, bezpośredni dostęp do urządzeń z maszyny wirtualnej i IOMMU.

router wielu sieci pakietów

LEKCJA TEMAT: Zasada działania komputera.

Transkrypt:

Linux - wparcie dla wirtualizacji w kontekście serwerów ARM

Plan Terminologia i koncepcja wirtualizacji QEMU Czym jest? Architektura ARMv8 i wsparcie dla wirtualizacji poziomy uprzywilejowania dodatkowy tryb pracy CPU podwójna translacja MMU wirtualny kontroler przerwań i timer Emulacja I/O wirtualizacja parawirtualizacja VHOST

Terminologia Wirtualizacja - technika pozwalająca na jednoczesne uruchamianie wielu systemów operacyjnych na tej samej platformie sprzętowej Hipernadzorca (ang. hypervisor) - kawałek kodu realizujący powyższe założenia i zarządzający zasobami sprzętowymi Host OS - system operacyjny na którym działa hipernadzorca Guest OS - system operacyjny który działa na wirtualnej maszynie QEMU (ang. Quick Emulator) - szybki emulator różnych architektur oraz urządzeń I/O + interfejs użytkownika do uruchamiania i konfiguracji maszyny wirtualnej

Koncepcja hypervisor a i co ma do tego? Brak wirtualizacji - jeden OS Hypervisor - dodatkowy warstwa zarządzająca sprzętem QEMU + jako implementacja hypervisora App App App App App App QEMU App App QEMU App App OS kernel OS kernel OS kernel OS kernel App OS kernel Hypervisor Linux kernel Hardware Hardware Hardware

QEMU QEMU process == VM Guest OS ioctl() host kernel Hardware I/O emulation User space Kernel space wykorzystuje jako akcelerator (wirtualizacja natywnej architektury) może działać autonomicznie (bez ) odpowiedzialny za interakcję z vm_fd = open( /dev/kvm ); ioctl(vm_fd,...); mmap() pamięci RAM wirtualnej maszyny emulacja urządzeń I/O (wirtualizacja i parawirtualizacja) qemu -name <vm_name> -machine virt,accel=kvm -cpu <cpu_type> -m <RAM_size> -smp <cpu_nr>...

Czym jest (Kernel-based Virtual Machine)? QEMU Process Guest OS I/O emulation host kernel Hardware User space Kernel space kvm.ko moduł kernela, który wykorzystuje dostępne i stabilne podsystemy kernela MMU synchronizacja scheduling przerwania itd zarządza zasobami sprzętowymi wymaga sprzętowego wsparcia zmienia kontekst procesora host/guest tzw. world switch

Czym jest? c.d. zapewnia obsługę wyjątków wirtualnej maszyny (trap) tj.: przerwania dostęp do rejestrów I/O udostępnia urządzenie /dev/kvm, za pomocą którego możliwe jest poznanie dostępnych urządzeń/funkcjonalności i ich konfiguracja np.: typ kontrolera przerwań ilość procesorów (SMP) współpracuje z emulatorami np. QEMU, kvmtool emulacja pozostałych rzeczy np. dostęp do dysku virtio-blk

ARMv8 poziomy uprzywilejowania EL - Exception Level Powodem zmiany EL może być: przerwanie, page faults instrukcja SVC (przejście do EL1) instrukcja HVC (przejście do EL2) instrukcja SMC (przejście do EL3) ERET (przejście poziom niżej)

ARMv8 poziomy uprzywilejowania c.d.

i architektura ARMv8.0 Guest Userspace Guest Userspace Host Userspace Guest Userspace Guest Kernel Guest Kernel Linux host kernel Guest Kernel Hypervisor Switching code

i architektura ARMv8 c.d. Poziom EL2 ma tylko jeden bazowy rejestr tablicy translacji TTBR1_EL2 Wymagane ogromne zmiany żeby uruchomić kernel na EL2 EL2 zawiera mały kawałek kodu zmieniające kontekst host - guest tzw. world switch

i architektura ARMv8.1 (VHE) Host Userspace Linux host kernel Guest Userspace Guest Kernel Rozszerzenie dla wirtualizacji: wsparcie dla TTBR0_EL2 i TTBR1_EL2!!! host kernel może pracować na EL2 host kernel nie musi przechodzić z EL2 do EL1 zmiana kontekstu na tym samym poziomie EL2

Jak zwirtualizować CPU (tzw. vcpu)? emulacja? emulacja wybranych instrukcji? modyfikacja kernela VM? użycie nowego trybu CPU - guest procesor wchodzi w tryb guest i działa w trybie natywnym wychodzi do trybu host gdy potrzebuje pomocy każdy vcpu może być osobnym wątkiem Handle reason (user. mode) Handle reason (kern. mode) Start Enter Guest Exit to Hyp for some reason Guest execution ** Wymaga od procesora wsparcia dla wirtualizacji (Intel VT-x, ARM s Virt. extensions)!!!

Jak zwirtualizować CPU (tzw. vcpu)? c.d. pthread 0 vcpu QEMU process pthread 1 vcpu I/O emulation vcpu to wątek możemy użyć taskset, numactl, ps... exit enter exit enter exit enter User space Exception handling Kernel space host kernel I/O emulation

Jak zwirtualizować CPU (tzw. vcpu)? c.d. Return from QEMU with updated CPU state While no heavy exit - orno error Check pend interrupts, timers. Update & inject into guest Exit to QEMU 1. Heavy Exit - MMIO 2. Runtime error Host Userspace QEMU Guest Userspace Handle Exit could be - 2nd stage MMU fault - Hype call - System reg access - error can t decode Disable interrupts About to enter Guest ioctl(_run) Update vcpu/ with Guest HW state Check for pending signals Set exit reason interrupted Enable interrupts Linux host kernel Guest Kernel Enter guest, this is where you world switch - Enter/ and return on Exit here Enable Interrupts Host interrupts happen here enter/exit Switching code

Jak zwirtualizować CPU (tzw. vcpu)? c.d. Guest enter HYP Host QEMU Run vcpu Guest Mode Ultra-light Exit Light-weight Exit Guest exit HYP Host QEMU Exit Handle Heavy Exit Konkluzje: narzut na wirtualizację to czas kiedy CPU spędza w trybie host i obsługuje wyjątki im mniej wychodzimy do hypervisora tym lepiej wyjście do userspace u (tzw. heavy exit) jest najgorszym z możliwych scenariuszy jeżeli chodzi o wydajność

MMU - pojedyncza translacja

MMU - podwójna translacja

Kontroler przerwań (VGIC)

Kontroler przerwań (VGIC) c.d. exit pthread 0 vcpu host kernel QEMU process enter Exception handling VGIC I/O emulation exit Dist. regs reg 0 reg 1 reg 2 enter User space Kernel space przerwania nadal są obsługiwane przez kernel host dostęp do rejestrów i/f CPU nie powodują wyjątku dostęp do rejestrów dystrybutora nadal powoduje wyjątek (in-kernel emulation) host jest w stanie wygenerować przerwanie programując wirtualny i/f CPU przerwanie jest generowane s/w na żądanie emulowanego urządzenia I/O

VTimer operacje na rejestrach timera są krytyczne dla wydajności fizyczny timer dostępny tylko dla hosta wirtualny timer (vtimer) przeznaczony dla VM dostęp do rejestrów vtimera nie powoduje wyjątków : ) wciąż potrzebna emulacja vtimera w kernelu : ( przerwanie vtimera nadal powoduje wyjątek i world switch optymalizacja - sprawdza rejestry vtimera i wstrzykuje przerwanie do VM

VTimer c.d. pthread 0 QEMU process vcpu I/O emulation exit enter exit enter User space Exception handling IRQ injection Kernel space VGIC VTimer host kernel

Emulacja I/O - pełna wirtualizacja IRQ e1000 Guest kernel reg 0 reg 1 reg 2 reg 3 QEMU process MMIO IRQFD host kernel e1000 I/O emulation machine state MMIO RX/TX TAP dev User space Kernel space istniejący sterownik kompatybilność wstecz każdy zapis/odczyt rejestru to trap i wyjście do userspace-u skomplikowana maszyna stanu w QEMU IRQFD

Virtio - parawirtualizacja virtio-net Guest kernel virtio-defined registers QEMU process vring host kernel virtio-net I/O emulation virtio-defined protocol IRQ MMIO EVENTFD MMIO RX/TX TAP dev User space Kernel space typowy sterownik dla VM konieczne wsparcie dla VIRTIO w kernelu protokół zaprojektowany dla potrzeb wirtualizacji vring - współdzielona pamięć eventfd - komunikacja w dwie strony prostsza implementacja niż emulacja zachowania HW

VHOST virtio-net Guest kernel virtio-defined registers QEMU process VRING vhost-net I/O emulation control plane IRQ MMIO MMIO ioctl User space QEMU jako funkcja kontrolna QEMU przekierowuje data plane przepływ pakietów VM<->kernel pomijamy warstwę QEMU<- >TAP qemu -netdev type=tap,id=net0,vhost=on -device virtio-net-pci,netdev=net0 /dev/vhost-net vhost-net Kernel space EVENTFD host kernel TAP dev

Q/A Dziękuję za uwagę Pytania? Kontakt: Tomasz Nowicki tn@semihalf.com