Diapositiva 1
Transcript
Diapositiva 1
Università degli Studi di Bologna FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria delle Telecomunicazioni Sistemi di Telecomunicazioni LA STUDIO PER SOLUZIONI DI VIRTUALIZZAZIONE SU PIATTAFORMA MULTICORE PER APPARATI DI TELECOMUNICAZIONE Tesi di Laurea di: ANTONIO CECERE Relatore: Prof. Ing. ORESTE ANDRISANO Correlatori in Nokia Siemens Network: Dott. FABRIZIO ZIZZA Ing. STEFANO BASILE Caso di studio App App App App OS OS OS OS App App App App OS OS OS OS Multi-core • Sistema a blade single-core con OS indipendente 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere • Passaggio a tecnologia multi-core 2 Obiettivi Studio della piattaforma multi-core Possibili soluzioni per sfruttare il multi-core Nuova piattaforma di Call Processing Test di carico e performance 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 3 Perché multi-core • Aumentare la frequenza di clock richiede lavorazioni costose 26 Luglio 2007 1/2 • Aumentando la frequenza di clock aumenta la potenza Virtualizzazione su multi-core Antonio Cecere 4 Perché multi-core 2/2 • Trend inevitabile delle grandi aziende produttrici (Intel, AMD, IBM) Intel roadmap Pentium III 1999 Pentium 4 2000 Pentium M Dual-Core 2003 2006 Quad-Core/Multi-core 2007+ AMD roadmap Opteron 2005 Athlon 64 X2 / FX 2006 Turion 64 X2 2007+ • IBM (POWER4 (1st dual core, 2000), POWER5, PowerPC 970MP (Apple Power Mac G5)). • Microsoft's Xbox 360 (PowerPC 3 cores). • Sony PlayStation 3 (PowerPC 8 cores). • Sun Microsystems (UltraSPARC T1 8 cores) 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 5 Intel multi-core Intel Dual - Dual core Xeon Sossaman 2,0 GHz LV X6DLP-EG2 XD: "XD-bit" e indica l'implementazione della tecnologia di sicurezza che evita l'esecuzione di codice malevolo sul computer. HT: Hyper-Threading, consente al sistema operativo di vedere core logici. ST: SpeedStep Tecnology, per il risparmio energetico. VT: Vanderpool Tecnology, rende possibile l'esecuzione simultanea di più sistemi operativi differenti contemporaneamente. 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 6 Come sfruttare il multi-core Possibili soluzioni Virtualizzazione OS1 Programmazione parallela OS N OS2 Multi-threading Virtualizzatore C0 C1 C2 C3 C0 Intel Xeon - VT C2 C3 Intel Xeon - VT Più istanze di sistema operativo su un’unica piattaforma 26 Luglio 2007 C1 Più threads sovrapposti condividono un unico processore Virtualizzazione su multi-core Antonio Cecere 7 Programmazione parallela one process one thread multiple processes one thread per process PRO: one process multiple threads • Reale incremento delle prestazioni multiple processes multiple threads per process CONTRO: = instruction trace • Riscrivere il codice • Adattare codice già esistente e.g. Threads su Dual-core • Open Multi-Processing (OpenMP) • POSIX Threads (PThreads) •. .. 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 8 Virtualizzazione PRO: OS_1 OS_2 • Nessun impatto su codice • Scalabilità Virtualizzatore Cpu/Cores Ethernet HD CONTRO: • Possibile latenza aggiuntiva • Inserimento di ulteriore software La virtualizzazione è eseguita da un SW, Host, che controlla le risorse della macchina. Le VM che vengono create sono dette Guest. • Le macchine Guest create possono “parlare” tra di loro ed interloquire con I dispositivi di I/O tramite il layer di virtualizzazione. 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 9 Software di virtualizzazione Novità kernel 2.6.21-22 (Aprile-Maggio 2007) FreeVPS FreeVPS GUSS GUSS lguest lguest Bochs Bochs VMware VMware UML UML V-RT V-RT XEN XEN Qemu Qemu LinuxLinuxVServer VServer KVM KVM Parallels Parallels Workstation Workstation OpenVZ OpenVZ Paravirtualizzatori ... ... Emulatori 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 10 Tipologie di virtualizzazione Emulazione OS_1 Paravirtualizzazione OS_1 OS_2 Emulazione Sistema Operativo CPU Ethernet OS_2 Paravirtualizzazione CPU HD Ethernet HD Utilizzo degli stessi driver Utilizzo di driver ad hoc della macchina reale (modifica del OS Guest) Frequenti interazioni tra Minori interazioni tra dispositivi HW e macchine dispositivi HW e macchine Virtuali Æ Maggiore latenza Virtuali Æ Latenza minore 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 11 Gli emulatori all’opera Qemu VMware Server 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 12 I paravirtualizzatori all’opera Xen V-RT 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 13 In particolare Æ BSC Line Module HUB-B Packet Traffic Blade Line Module Application Blade Line Module Application Blade Maintenance Blade BSC AB (Application Blade): Responsabile dei processi di chiamata. Dimensionata in numero, in base al traffico da gestire. PTB ( Packet Traffic Blade): Gestione dei processi di traffico dati. MB (Maintenance Blade): Controlla e supervisiona il sistema. HUB-B ( HUB-Blade): Si occupa di interloquire con le varie blades. LM (Line Module): Si occupa dell’interfacciamento con l’ HUB-B e i canali esterni. 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 14 Virtualizzare il vero software delle AB MVCGL MVCGL MVCGL MVCGL •Il sistema operativo delle AB è Montavista Carrier Grade Linux 3.1 8 MVCGL MVCGL MVCGL MVCGL •Al posto di Montavista CGL abbiamo utilizzato Fedora Core 6 Virtualizzatore 9 SIM SIM SIM SIM FC6 FC6 FC6 FC6 Virtualizzatore 26 Luglio 2007 •All’interno di NSN esiste un software che simula i network elements e le singole istanze del BSC •Configurazione comunque molto vicina a quella reale Virtualizzazione su multi-core Antonio Cecere 15 Struttura del simulatore Packet Traffic Blade Line Module HUB-B Line Module Line Module Maintenance Blade Application Blade Application Blade Traffic generator 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere BTS TRAU MSC 16 Configurazione della nuova piattaforma di Call Processing • Piattaforma con OS delle AB Virtualizzatore Piattaforma con OS di LM, HUB-B, MB ed il generatore di traffico • 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 17 Risultati NSN LAB Traffic generator BTS TRAU MSC 55 BTSM Configurazione reale per prove di carico al System test • 1 AB : 400.000 chiamate/ h 70 % “carico del processore” BSC Occupazione del processore/chiamate all’ora • 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 18 Test – Come abbiamo mappato le AB TEST 1 OS / Hypervisor TEST 2 OS / Hypervisor AB 0 AB 0 OS Core 0 Core 1 OS / Hypervisor Core 0 Core 1 Core 2 Core 3 TEST 3 AB 0 OS / Hypervisor Core 2 Core 3 OS TEST 4 OS AB 2 Core 0 Core 2 OS Core 1 Core 3 AB 4 AB 2 AB 0 OS OS 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere Core 0 Core 1 Core 2 Core 3 OS OS AB 4 19 Risultati 200.000 chiamate/ora 60,0% 50,0% FC6_Nativa 40,0% Qemu 30,0% XEN 20,0% VMWare Utilizzo del processore (più basso è meglio) V_RT 10,0% 0,0% 1AB_1core_d 1AB_3core_c 3AB_3core_c 3AB_3core_d d=dedicato c=condiviso 180,0% 160,0% 140,0% FC6_Nativa 120,0% Incremento/decremento delle prestazioni (più basso è meglio) Qemu 100,0% XEN 80,0% VMWare 60,0% V_RT 40,0% 20,0% d=dedicato c=condiviso 0,0% 1AB_1core_d 26 Luglio 2007 1AB_3core_c Virtualizzazione su multi-core Antonio Cecere 3AB_3core_c 3AB_3core_d 20 Conclusioni e futuro La virtualizzazione è una buona strada Nessun impatto sul codice Scalabile Performance paragonabili a quelle reali Scenario in evoluzione Aumento del numero di core Software di virtualizzazione nuovi o migliorati Puntare sull’Open Source (e.g. KVM, Xen e lguest) 26 Luglio 2007 Virtualizzazione su multi-core Antonio Cecere 21