Supporto delle applicazioni legacy tramite Virtual PC 2007

Introduzione

Virtual PC è una soluzione gratuita utilizzabile per servizi di supporto tecnico, controllo qualità, formazione e supporto di software legacy. La virtualizzazione di sistemi operativi client permette agli utenti di utilizzare temporaneamente applicazioni meno recenti non compatibili con un nuovi sistemi sistema operativi come Windows XP o Windows Vista. Mediante Virtual PC è infatti possibile eseguire contemporaneamente due o più sistemi operativi x86 su un singolo computer, invece di utilizzare più computer con sistemi operativi diversi o ricorrere a soluzioni ad avvio multiplo. In questo modo gli utenti possono utilizzare più sistemi operativi guest in macchine virtuali che funzionano come tutte le altre applicazioni presenti sul computer migliorando la produttività e risparmiando sui costi.

Il supporto di applicativi legacy mediante Virtual PC 2007 richiede comunque di affrontare alcune problematiche inerenti alla configurazione di Virtual PC, della macchina virtuale e del sistema operativo Guest. In questo articolo per quanto riguarda il sistema operativo Guest si prenderà in esame Windows 98 in quanto è molto frequente il caso di avere software legacy che debba essere eseguito su questa piattaforma, ma in ogni caso le considerazioni hanno validità generale.

Sommario

Installazione di Virtual PC

Al momento l'ultima release di Virtual PC è la Virtual PC 2007 SP1 (versione 6.0.192.0) che ha i seguenti requisiti hardware:

Per maggiori informazioni sui requisiti hardware si veda Physical Computer and Host Operating System Requirements, mentre per la RAM e lo spazio su disco necessari a seconda del Sistema Operativo installato sulla macchina virtuale si veda la sezione Product Specification del seguente Microsoft Virtual PC 2007 Overview.

Distribuzione di Virtual PC

Per automatizzare la distribuzione di Virtual PC è possibile utilizzare vari modi, il più semplice è quello di utilizzare le opzioni a riga di comando per avviare l'installazione con interfaccia utente ridotta:

Setup.exe /v "/i /qr"

Per ulteriori informazioni si veda Virtual PC 2007 SP1 Release Notes.

In alternativa se è disponibile Active Directory è possibile estrarre il file Virtual_PC_2007_Install.msi per distribuire Virtual PC tramite i Criteri di gruppo (GPO) utilizzando la seguente procedura:

  1. Estrarre il file Virtual_PC_2007_Install.msi nella subdirectory Extract tramite il comando: Setup.exe /c /t Extract
  2. Creare un pacchetto di distribuzione per ulteriori informazioni a riguardo si vedano:

Configurazione di Virtual PC

Di seguito verranno analizzate le varie impostazioni di Virtual PC che devono essere configurate sulla base del "modus operandi" dell'utente, dell'hardware e della modalità di esecuzione delle applicazioni legacy.

Oltre a configurare Virtual PC occorre anche configurare opportunamente l'antivirus per scongiurare eventuali problemi di performance e di falsi positivi evitando la scansione dei file vhd, vmc e vsv come indicato nel seguente Virtual PC / Virtual Server and Antivirus programs on the host computer.

Per modificare la posizione predefinita in cui creare le nuove macchine virtuali è possibile creare una varabile d'ambiente di sistema MYVIRTUALMACHINES in cui specificare un path di default personalizzato come indicato nel seguente Changing the default location the Virtual PC uses for virtual machines.

Le impostazioni globali di Virtual PC, tra cui le posizioni in cui visualizzare le dialog della console, sono memorizzate nel file %appdata%\Microsoft\Virtual PC\Options.xml, per ulteriori informazioni si veda il seguente post Poking around the Virtual PC Options.XML file.

Prestazioni

Accettare le impostazioni di default per garantire maggiori performance alla macchina virtuale nella finestra attiva. Nel caso in cui Virtual PC venga spesso eseguito in background e le prestazioni del sistema operativo Host sembrano risentirne potrebbe essere necessario selezionare l'opzione Attribuisci la priorità ai processi nel sistema operativo host.

Vitualizzazione Hardware

Nel caso il computer supporti la la Virtualizzazione hardware conviene provare ad attivare questa funzionalità per avere performance miglior,i a meno che non si verifichino problemi con l'esecuzione di alcune applicazioni. In ogni caso se necessario le opzioni relative alla Virtualizzazione Hardware possono essere gestite anche a livello di singola macchina virtuale.

Nei processori Intel l'estensione di virtualizzazione sviluppata per le architetture x86 a 32 bit(IA-32) e a 64 bit(EM64T) è denominata IVT (Intel Virtualization Technology) ed è a volte chiamata con il nome in codice "Vanderpool". IVT è disponibile su alcuni processori Pentium 4 6x1 and 6x2, Pentium D 9x0, Xeon 3xxx/5xxx/7xxx, Core Duo (esculsi T2300E e T2x50) and Core 2 Duo (esclusi T52x0, T5300, T54x0, T5500 con stepping "B2", E2xx0, E4x00 e E8190), su alcune implementazioni il supporto a Vanderpool può essere disabilitato da BIOS o nel Firmware (è possibile verificarlo controllando che il flag VMX sia abilitato tramite il Feature Control MSR).

Nei processori AMD l'estensione di virtualizzazione per le architetture x86 e a 64-bit (AMD64) è denominata AMD Virtualization, conosciuta anche con l'abbreviazione AMD-V o attraverso il nome in codice "Pacifica". AMD-V è disponibile nei processori AMD Athlon 64 famiglia "F" e "G" su socket AM2 non 939, Athlon 64 X2 famiglia "F" e "G", Turion 64 X2, Opteron seconda e terza generazione, Phenom e su tutti i nuovi processori.

Modalità a schermo intero

Per quanto riguarda la Modalità a schermo intero occorre valutare se la machina virtuale debba essere eseguita ad una risoluzione diversa da quella del sistema operativo Host in base ai requisiti di visualizzazione delle applicazioni legacy da eseguire.

Tastiera

Tramite le impostazioni Tastiera è posibile impostare il tasto più comodo per consentire al sistema Host di ripredere il controllo del mouse e della tastiera da una macchina virtuale, di solito CTRL Destro o Sinistro è un buon compromesso.

Protezione

Se necessario è possibile configurare le opzioni di Protezione per evitare che gli utenti senza diritti ammistrativi possano modificare opzioni, modificare impostazioni, creare macchine virtuali o creare dischi virtuali.

Configurazione della macchina virtuale

Una buona regola per la creazione di macchine virtuali che debbano essere impiegate per il supporto a software legacy e quindi utilizzate da utenti finali per diverse ore al giorno è quella di disabilitare le feature che non sono necessarie per aumentare le performance e ridurre al minimo eventuali problemi causati dall'esecuzione del sistema in ambiente virtuale.

Gestione della porta parallela LPT1 e delle stampanti

Nel caso la macchina virtuale debba poter stampare su stampanti connesse all'host conviene condividere tali stampanti e installarle come stampanti di rete nel sistema operativo guest, in questo modo è possibile utilizzare anche le stampanti USB inoltre si evitano possibili problemi con le stampanti LPT utilizzate anche nel sistema Host, nel caso in cui sul sistema Host non sia disponibile una scheda di rete sarà possibile utilizzare la scheda Microsoft Loopback.

Per quanto riguarda stampanti o dispositivi connessi sulla porta LPT1 a cui è necessario accedere da Guest se possibile sarebbe meglio non installarli sul sistema Host ed eventualmente disabilitare su quest'ultimo il servizio di spooler per evitare che venga bloccato l'accesso alla porta LPT1.

Gestione Suono

Se nelle macchine virtuali non è necessario il Suono disabilitare l'opzione relativa in questo modo non sarà necessario installare il driver della scheda  audio emulata (Sound Blaster 16).

Gestione del Mouse

La gestione del Mouse tramite le Virtual Additions consente l'integrazione del puntatore, si tenga presente che sebbene questa feature sia decisamente utile ci sono casi in cui casi in cui può creare problemi, in particolare se l'utente alterna spesso la sessione di lavoro nell'ambiente Guest con quella nell'ambiente Host, ad esempio per recuperare dati da applicazioni legacy che devono essere digitati in applicazioni di produttività individuale (Word, Excel). In questi casi se non è possibile fare in modo che l'utente lavori solo all'interno della sessione Guest (per esempio se le applicazioni installate nell'Host non sono supportate sul sistema Guest) conviene disabilitare questa funzionalità.

Per ulteriori informazioni su eventuali problematiche che possono insorgere lasciando abilitata questa funzionalità si veda il seguente What's the point of the 'Use mouse integration' setting under Virtual PC?. Per modificare questa opzione occorre che il sistema Guest sia avviato oltre ad avere le Virtual Additions.

Cartelle Condivise

Le Cartelle Condivise, disponibili se sul sistema Guest sono state installate le Virtual Additions, consentono di condividere una o più cartelle tra Host e Guest. Conviene utilizzare questa feature nel casi sia necessario scambiare dati tra Host e Gest in modo temporaneo, ad esempio per ragioni di manutenzione. Se invece è necessario un collegamento tra i due sistemi permanente conviene utilizzare al posto una share di rete avvalendosi se necessario della scheda Microsoft Loopback nel caso in cui il sistema Host non abbia una scheda di rete fisica per evitare possibili incompatibilità con applicazioni legacy.

Impostazioni schermo

Tramite le opzioni dello Schermo è possibile impostare opportunamente le risoluzioni eventualmente utilizzabili, la modalità avvio a schermo intero  e la visualizzazione di menu e barra di stato.

Avvio di una macchina virtuale da riga di comando

Per avviare una macchina virtuale senza aprire la console è possibile utilizzare il seguente comando che fa uso dell'opzione -singlepc:
"%ProgramFiles%\Microsoft Virtual PC\Virtual PC.exe" -pc NomeVM -singlepc –launch

Per ulteriori informazioni si vedano:

Configurazione del sistema operativo Guest

Il primo passo da seguire terminata l'installazione del sistema operativo e degli aggiornamenti necessari è quello di installare le ultime Virtual Additions (al momento la versione per Virtual PC 2007 SP1 è la 13.820) che permettono le seguenti funzionalità

Le Virtual Additions sono supportate su seguenti sistemi operativi:

Nel caso di sistemi operativi Linux è possibile utilizzare le Virtual Machine Additions for Linux supportate su:

Di seguito vengono illustrate una serie di configurazioni che conviene eseguire sul sistema operativo Guest al fine di aumentane le performance ed evitare possibili problemi di compatibilità con applicazioni legacy o dovuti all'esecuzione del sistema in un ambiente virtuale. Le impostazioni fanno riferimento a Windows 98 SE, ma in linea di massima sono valide anche per altri sistemi operativi.

Accelerazione hardware della scheda video ed effetti grafici

Per evitare problemi di visualizzazione è bene disabilitare l'accelerazione hardware e se possibile disabilitare anche gli effetti grafici per aumentare le performance.

 

Screen saver e impostazioni di risparmio energetico

Per evitare l'esecuzione di task in background che potrebbero causare problemi con applicazioni legacy è possibile disabilitare lo screensaver e configurare le opzioni di risparmio energetico per un profilo Sempre attivo.

 

Impostazioni di rete

Per quanto riguarda le impostazioni di rete conviene mantenere solo i componenti necessari, ad esempio in Windows 98 SE per default viene installato il Dispositivo di Accesso remoto che è possibile rimuovere se non è necessarie le funzionalità di Accesso Remoto, analogamente se non è necessario che il sistema operativo Guest condivida file o stampanti è possibile disabilitare tale funzionalità.

 

Nel caso in cui una macchina virtuale Windows 98 si modifichi il dominio di appartenenza potrebbero non venire eseguiti i comandi NET USE contenuti nello script di logon restituendo Errore 1, mentre avviando lo script dalla condivisione NETLOGON i comandi vengono eseguiti. Il problema si risolve mappando tramite Explorer le condivisioni e impostando l’esecuzione delle mappature al riavvio, in questo modo dopo al secondo riavvio i comandi NET USE non dovrebbero dare più problemi. Per ulteriori informazioni si veda il seguente 'net use' problem with Windows 98.

Suoni di sistema

Se non è necessario utilizzare i suoni di sistema disabilitare tale funzionalità impostando la combinazione nessun suono.

Esecuzione automatica

Per evitare l'esecuzione di task inutili all'avvio del sistema operativo Guest controllare che nell'Esecuzione automatica non venga avviato alcuna applicazione non necessaria.

Operazioni pianificate

Eliminare da Operazioni pianificate l'esecuzione di operazioni non necessarie (in Windows 98 viene creata all'installazione l'operazione Avvio ottimizzazione applicazione eseguita mensilmente che è possibile eliminare) e nel caso non sia necessario eseguire alcuna operazione pianificata disabilitare tale funzionalità.

Conclusioni

L'utilizzo di Virtual PC per il supporto alle applicazioni legacy permette di continuare utilizzare software eseguibile solo su sistemi operativi datati, consentendo migrazioni graduali. Inoltre va detto che in questo modo si ha la possibilità di utilizzare sistemi operativi non conformi ai requisiti del decreto legislativo n. 196 del 30 giugno 2003 in quanto vengono eseguiti nel contesto di un sistema operativo conforme come Windows XP o Windows Vista.

Ovviamente il supporto ad applicazioni utente legacy comporta una massiccia interazione con l'interfaccia grafica dell'ambiente virtuale e può essere necessario un "file-tuning" del sistema operativo Guest. Ciò comporta l'esigenza di avere la certezza che le macchine virtuali siano derivate da una base comune e in questo caso possono essere utilizzati i dischi delle differenze, a riguardo si vedano i seguenti:

Al seguente What Works and What Doesn't in Microsoft Virtual PC 2004 è possibile trovare un elenco di sistemi operativi che vengono eseguiti in Virtual PC anche se non supportati da Microsoft, mentre a titolo di curiosità il sistema operativo con supporto al TCP/IP più light dal punto di vista di Virtual PC stando a questo Best 'light wieght' OS for Virtual PC pare essere Windows Server 2003 o Windows NT.

(a cura di Ermanno Goletto - SysAdmin.it)