Per virtualizzazione si intende la creazione di una versione virtuale di una risorsa normalmente fornita fisicamente. Qualunque risorsa hardware o software può essere virtualizzata: sistemi operativi, server, memoria, spazio disco, sottosistemi. Un tipico esempio di virtualizzazione è la divisione di un disco fisso in partizioni logiche.
Meccanismi più avanzati di virtualizzazione permettono la ridefinizione dinamica tanto delle caratteristiche della risorsa virtuale, tanto della sua mappatura su risorse reali.
La virtualizzazione permette l’ottimizzazione delle risorse e la capacità di far fronte a esigenze specifiche secondo il più classico paradigma dell’on demand
Il significato più comune oggi è quello di un programma che emula un calcolatore (di solito un calcolatore astratto, cioè a cui non corrisponde un calcolatore reale). I programmi applicativi vengono scritti in un linguaggio che viene compilato per questo calcolatore immaginario (cioè tradotti nelle sue istruzioni native) e, una volta compilati, vengono eseguiti sulla macchina virtuale software, che può agire o come interprete o come compilatore “al volo” (compilazione just in time). Dal momento che si possono scrivere diverse macchine virtuali per diverse piattaforme, il programma compilato può “girare” su qualsiasi piattaforma su cui “gira” la macchina virtuale. L’Hypervisor è il componente chiave per un sistema basato sulla virtualizzazione. Il Virtual Machine Monitor deve operare in maniera trasparente senza pesare con la propria attività sul funzionamento e sulle prestazioni dei sistemi operativi.
Un linguaggio moderno che fa uso della macchina virtuale è il Java: i programmi scritti in Java vengono infatti compilati (cioè tradotti) nel linguaggio bytecode, che gira sulla Java Virtual Machine.
Progenitori delle macchine virtuali odierne si possono considerare sia la “macchina p”, cioè il calcolatore astratto per cui venivano (e vengono tuttora) compilati i programmi in Pascal nelle prime fasi della compilazione (producendo il cosiddetto p-code), sia la “macchina S”, un altro calcolatore astratto (che però ebbe anche una realizzazione “concreta”, cioè hardware) per cui venivano compilati i programmi in Simula nelle prime fasi della compilazione (producendo il cosiddetto S-code). L’Hypervisor alloca le risorse dinamicamente quando e dove necessario, riduce in modo drastico il tempo necessario alla messa in opera di nuovi sistemi, isola l’architettura nel suo complesso da problemi a livello di sistema operativo ed applicativo, abilita ad una gestione più semplice di risorse eterogenee e facilita testing e debuggin di ambienti controllati.
La virtualizzazione è una tecnologia abilitante che consente alle aziende di:
- ottimizzare gli asset hardware
- semplificare la manutenzione dei server aziendali
- realizzare ambienti di test e pre-produzione controllati
- realizzare ambienti completi di disaster recovery
I prodotti di virtualizzazione disponibili su architetture Intel/AMD che proponiamo ai nostri clienti sono XEN e VMWARE.
XEN è il prodotto di virtualizzazione attualmente più maturo del mondo open source. Prodotti come Novell Suse Linux Enterprise Server e RedHat Enterpise Linux distribuiscono nativamente questo ambiente di virtualizzazione garantendo anche il supporto diretto. Esistono prodotti di terze parti che integrano l’infrastruttura XEN con applicativi proprietari per la gestione del datacenter facilitando notevolmente la manutenzione del parco macchine virtuali. In quest’ultima categoria si trovano Citrix Xen Server e VirtualIron.
VMWARE è il prodotto leader di mercato in ambito virtualizzazione. Esistono diverse versioni utilizzabili in ambiente server o in ambiente desktop alcune delle quali scaricabili ed utilizzabili gratuitamente. Le versioni a licenza sono integrate da prodotti per la gestione del datacenter virtuale e per la gestione automatica di siti di disaster recovery.
Supportiamo ed offriamo le nostre soluzioni di infrastruttura sia in ambienti XEN che VMWARE.
