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 App App App App Multi-core Sistema a blade single-core con indipendente Passaggio a tecnologia multi-core Antonio Cecere 2
Obiettivi Studio della piattaforma multi-core Possibili soluzioni per sfruttare il multi-core Nuova piattaforma di Call Processing Test di carico e performance Antonio Cecere 3
Perché multi-core 1/2 Aumentare la frequenza di clock richiede lavorazioni costose Aumentando la frequenza di clock aumenta la potenza Antonio Cecere 4
Perché multi-core 2/2 Trend inevitabile delle grandi aziende produttrici (Intel, AMD, IBM) Intel roadmap Pentium III Pentium 4 Pentium M Dual- Quad-/Multi-core 1999 2000 2003 2006 2007+ AMD roadmap Opteron Athlon 64 X2 / FX Turion 64 X2 2005 2006 2007+ IBM Microsoft's Xbox 360 Sony PlayStation 3 Sun Microsystems (POWER4 (1st dual core, 2000), POWER5, PowerPC 970MP (Apple Power Mac G5)). (PowerPC 3 cores). (PowerPC 8 cores). (UltraSPARC T1 8 cores) 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. Antonio Cecere 6
Come sfruttare il multi-core Possibili soluzioni Virtualizzazione Programmazione parallela 1 2 Virtualizzatore N Multi-threading C0 C1 C2 C3 Intel Xeon - VT Più istanze di sistema operativo su un unica piattaforma C0 C1 C2 C3 Intel Xeon - VT Più threads sovrapposti condividono un unico processore Antonio Cecere 7
Programmazione parallela one process one thread multiple processes one thread per process = instruction trace e.g. Threads su Dual-core one process multiple threads multiple processes multiple threads per process PRO: Reale incremento delle prestazioni CONTRO: Riscrivere il codice Adattare codice già esistente Open Multi-Processing (OpenMP) PIX Threads (PThreads)... Antonio Cecere 8
Virtualizzazione _1 _2 PRO: Nessun impatto su codice Scalabilità Virtualizzatore CONTRO: Cpu/s Ethernet HD 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. Antonio Cecere 9
Software di virtualizzazione Emulatori Bochs VMware FreeVPS UML Qemu lguest Linux- VServer GUSS XEN OpenVZ...... V-RT KVM Novità kernel 2.6.21-22 (Aprile-Maggio 2007) Parallels Workstation Paravirtualizzatori Antonio Cecere 10
Tipologie di virtualizzazione Emulazione Paravirtualizzazione _1 _2 _1 _2 Emulazione Sistema Operativo Paravirtualizzazione CPU Ethernet HD CPU Ethernet HD Utilizzo degli stessi driver della macchina reale Utilizzo di driver ad hoc (modifica del Guest) Frequenti interazioni tra dispositivi HW e macchine Virtuali Maggiore latenza Minori interazioni tra dispositivi HW e macchine Virtuali Latenza minore Antonio Cecere 11
Gli emulatori all opera Qemu VMware Server Antonio Cecere 12
I paravirtualizzatori all opera Xen V-RT Antonio Cecere 13
In particolare BSC Line Module Line Module HUB-B Packet Traffic Blade Application Blade BSC Line Module Maintenance Blade Application Blade 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. Antonio Cecere 14
Virtualizzare il vero software delle AB MVCGL MVCGL MVCGL MVCGL Il sistema operativo delle AB è Montavista Carrier Grade Linux 3.1 MVCGL MVCGL MVCGL MVCGL Virtualizzatore Al posto di Montavista CGL abbiamo utilizzato Fedora 6 SIM SIM SIM SIM All interno di NSN esiste un software che simula i network elements e le singole istanze del BSC FC6 FC6 FC6 FC6 Virtualizzatore Configurazione comunque molto vicina a quella reale Antonio Cecere 15
Struttura del simulatore Line Module Line Module HUB-B Packet Traffic Blade Application Blade Line Module Maintenance Blade Application Blade Traffic generator BTS TRAU MSC Antonio Cecere 16
Configurazione della nuova piattaforma di Call Processing Piattaforma con delle AB Virtualizzatore Piattaforma con di LM, HUB-B, MB ed il generatore di traffico Antonio Cecere 17
Risultati NSN LAB Traffic generator BTS 55 BTSM TRAU MSC Configurazione reale per prove di carico al System test BSC 1 AB : 400.000 chiamate/ h 70 % carico del processore Occupazione del processore/chiamate all ora Antonio Cecere 18
Test Come abbiamo mappato le AB / Hypervisor TEST 1 / Hypervisor TEST 2 AB 0 0 1 2 3 0 1 2 3 AB 0 / Hypervisor TEST 3 AB 0 / Hypervisor TEST 4 0 1 2 3 AB 2 AB 4 AB 0 0 1 2 3 AB 2 AB 4 Antonio Cecere 19
Risultati 200.000 chiamate/ora 60,0% 50,0% 40,0% 30,0% 20,0% 10,0% FC6_Nativa Qemu XEN VMWare V_RT Utilizzo del processore (più basso è meglio) 0,0% 1AB_1core_d 1AB_3core_c 3AB_3core_c 3AB_3core_d d=dedicato c=condiviso 180,0% 160,0% Incremento/decremento delle prestazioni (più basso è meglio) 140,0% 120,0% 100,0% 80,0% 60,0% 40,0% 20,0% 0,0% 1AB_1core_d 1AB_3core_c 3AB_3core_c 3AB_3core_d FC6_Nativa Qemu XEN VMWare V_RT d=dedicato c=condiviso Antonio Cecere 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) Antonio Cecere 21