Anlan

Disorganizzata cronologia di esperienze IT (e non …)
Options:

openSUSE 11.2 e Virtual Box : amore dal primo clic

Tempo addietro avevo scritto due brevi note su come installare correttamente Virtual Box Additions per openSUSE 11.1. Oggi mi sono trovato ad installare una nuova openSUSE 11.2 utilizzando il nuovo Virtual Box di Sun/Oracle.

Piacevole è stata la sorpresa di scoprire che, a differenza di quanto accadeva nelle versioni precedenti (di entrambi i software) questa volta … non serve fare assolutamente nulla.

Installando openSUSE 11.2 su Virtual Box 3.1.4 r57640, la distro Linux si “accorge” di essere all’interno del virtualizzatore e installa automaticamente i driver che normalmente si dovrebbe aggiungere ad installazione ultimata. E quindi già durante l’installazione potrete avere il capture/release automatico del puntatore del mouse, ed al primo boot operativo potrete subito ridimensionare lo schermo a piacimento, disporre dell’emulazione audio ecc.

Va da sè che non dovrete più quindi installare i pacchetti aggiuntivi di openSUSE specifici per il make delle Virtual Box Guest Additions.

Ganzo !

  • Commenti disabilitati su openSUSE 11.2 e Virtual Box : amore dal primo clic
 


Chrome OS

Ero molto incuriosito dai rumors che giravano intorno a Chrome OS, il nuovo sistema operativo di Google. Spinto dall’inesauribile entusiasmo che si accende attorno alle eccellenti campagne di marketing promosse da BigG … mi sono deciso a scaricarlo e a provarlo con l’ausilio di VirtualBox. Se volete provarci anche voi potete seguire le istruzioni descritte a questo link.

Purtroppo ne sono rimasto parzialmente deluso. E’ pur vero che la definizione di OS (Operating System – Sistema Operativo) va intesa con il significato di “strato software minimale che permette di avviare un computer affinchè gli applicativi installati possano operare” … però qui il minimale è davvero … minimo.
Più che di un sistema operativo si tratta di un “minimo sistema operativo per avviare Chrome”. In pratica con Chrome OS l’unica cosa che avrete sul pc è Chrome, il browser di Google, il quale farà da browser (appunto), da desktop, da file manager da gestore applicazioni ecc. sempre per il tramite (preferibilmente) delle applicazioni “live” offerte da Google.

Risultato ? Pronti a lavorare in 7 secondi (tempo promesso e mantenuto dall’accensione del pc ai primi input che potete dare) … ma … solo se siete connessi al web. Il che significa che se non disponete di una connessione Internet, quantomeno decente, praticamente con il pc non ci farete nulla. Tutto è prelevato e depositato sul Web: i tuoi documenti, i tuoi file, la tua posta (Gmail) ecc. ecc. Senza una connessione internet non potrete nemmeno fare il login iniziale.

Ma perchè deluso ? Perchè ho commesso un grave errore di valutazione. Ho pensato come Chrome OS potesse incontrare le MIE esigenze (che non sono certo un mostro ma nemmeno un utente basico) e non ho pensato invece, come ha fatto Google, a quelle che sono le esigenze del vasto pubblico.

Sicuramente c’è del buono in una impostazione del genere: assunto il fatto che la stragrande maggioranza del tempo passato da un utente medio domestico davanti al computer è trascorso su Internet, Chrome OS risolve tutte quelle “rotture” che l’utente mediamente non osserva per tenere in buono stato di efficienza il suo computer: aggiornamenti software, programmi di sicurezza, driver per dispositivi, filesystem corrotti o da deframmentare ecc. Il pc (con Chrome OS) non è più un apparato autonomo che all’occorrenza comunica via internet: la connessione internet diventa parte integrante del computer tanto quanto un hard disk o lo schermo stesso.

Bisogna dare atto a Google di essere coerente nel mantenimento costante di una linea di sviluppo: già con Wave ci hanno indicato la strada di una interconnessione tra media diversi e ora con Chrome OS il cerchio si chiude rendendo il web il vostro sistema operativo.  Incontrare amici su Facebook, fare microblogging, consultare la posta, ascoltare musica, guardare i video su youtube, navigare il web per fare ricerche, comporre documenti o fogli elettronici … tutto è la fuori … nel mondo virtuale di internet. Il computer è ormai diventato un’appendice passiva di questo modello … una sorta di thin-client per internet. I “veri” pc (ferro + tanto software a bordo + tanta pazienza per tenere tutto in ordine) potranno essere facilmente relegati alla nicchia degli utilizzatori che “sviluppano” o che necessitano di performance particolari dettate da esigenze particolari (es. editing video, progettazione CAD, programmazione database ecc.)

Ma vista l’offerta sempre più alta, anche nel mondo delle aziende, di applicazioni erogate secondo paradigmi web, ovvero che non richiedono l’installazione di pesanti fat-client, disporre di macchine che deleghino sempre il meno possibile all’utenza non specialistica potrà essere un notevole beneficio in termini di manutenzioni.

  • Commenti disabilitati su Chrome OS
 


La deframmentazione dei dischi e i pc virtuali

Gli utilizzatori di VirtualPc o VirtualBox incontrano spesso degradi di perfomance notevoli nell’esecuzione delle loro macchine virtuali dopo un prolungato utilizzo.

La causa principale di questa situazione è da ricercarsi nel modo in cui vengono istanziati i dischi virtuali associati alle macchine virtuali. Per impostazione predefinita, con l’ovvia e giustificata logica di voler risparmiare il massimo dello spazio possibile, i dischi vengono creati in modo dinamico. Ciò significa che il virtualizzatore (VirtualBox o VirtualPc) fa vedere al pc virtuale (guest) uno spazio massimo disco pari alla capacità assegnata in sede di configurazione iniziale ma nella macchina ospitante (il pc vero chiamato host) viene generato un file di dimensioni iniziali minime. A mano a mano che il sistema guest scrive dati sul disco virtuale, il sistema host “ingrandisce” il file che contiene l’immagine del disco secondo necessità.

In definitiva il disco virtuale è per la macchina host nè più nè meno che un normale file di dati: più dati di ci sono … più il file si ingradisce. Questa tecnica dinamica si chiama thin-provisioning: l’host occuperà sul disco fisico solo lo spazio necessario a contenere tutti i dati veri del disco virtuale guest escluso lo spazio vuoto. Ovvero: se la macchina guest ha a disposizione un disco di 10Gb ma occupa spazio complessivo per soli 4Gb, il file/disco virtuale nella macchina host sarà solo di 4Gb.

I vantaggi di una tale impostazione sono facilmente intuibili: posso creare diverse macchine virtuali assegnando ad ognuna 10Gb di disco ma in realtà il vero spazio occupato sul mio disco fisico sarà molto minore. Inoltre, dovendo passare un disco virtuale, da un host ad un altro dovrò copiare molti meno dati. I vantaggi, tuttavia, si esauriscono qui.

Gli svantaggi, per contro, sono facilmente identificabili e gli utilizzatori esperti di sistemi di virtualizzazione desktop (per sistemi professionali tipo VMWare i discorsi cambiano) ben sanno quali pesanti effetti abbiano sulle performance dei pc guest.

  1. L’estensione richiede tempo: un pc virtualizzato (guest) ogni volta che scrive un dato nuovo sul suo disco, di fatto, richiede all’interprete hardware (virtualizzato anche quello) di scrivere una determinata informazione. L’interprete hardware è il virtualizzatore stesso che riceve la richiesta dal pc guest e la gira al file-system del sistema host (il pc vero) il quale la scriverà nel file che assolve alla funzione di disco virtuale. Trattandosi di un nuovo dato il file-system host dovrà estendere la dimensione del file per inserirci la nuova informazione. E qui si apre il problema: c’è spazio alla fine del file per estenderlo di un incremento ? Se la risposta è si siamo fortunati ed i nuovi dati verranno inseriti in settori contigui ai precedenti, se la risposta è no allora il sistema operativo host dovrà andare a cercare su disco una posizione che abbia uno spazio libero sufficiente ad accogliere un incremento del file e, subito dopo, andare ad aggiornare la MFT per indicare che il file/disco virtuale è composto da un nuovo pezzo (frammento) aggiuntivo che si trova alla posizione tal-dei-tali. Questa operazione comporta tempo e, se il file/disco virtuale si trova su un disco fisico molto frammentato, riduce pesantissimamente le prestazioni della macchina guest.
  2. Le frammentazioni si sommano. La macchina guest (il pc virtuale) si comporta come un normale pc, non sa’ di essere virtuale. Per questo quando opera le sue scelte sul come e soprattutto sul dove scrivere i suoi dati all’interno del disco, si comporta come se si trattasse di un normale disco fisico, e come tale è soggetto al normale difetto frammentazione. Ma non basta: a questo si deve aggiungere la frammentazione del “vero disco fisico”, quello del pc vero, che contiene il file che funge da disco virtuale. Anche quello viene frammentato secondo la necessità, non del guest, ma dell’host. Si arriva quindi a situazioni paradossali in cui, giusto per fare un esempio, il pc guest crede di recuperare un file in una catena di 5 frammenti, mentre il sistema host, per assolvere a quella richiesta, deve andare a leggere 15 o 20 o più frammenti del file/disco virtuale. A lungo andare questa situazione fa crollare le prestazioni guest. E non serve nemmeno far girare un deframmentatore sul pc guest perchè il pc virtuale non sa di quanti frammenti è composto il suo disco nel sistema host.

La best practice per gestire il disco (o i dischi) di un pc virtuale all’interno del proprio pc vero è la seguente:

  1. Pianificare la dimensione da assegnare alle unità disco per il pc virtuale: una corretta pianificazione dovrebbe prevedere, per ogni pc virtuale, almeno due unità disco corrispondenti ad altrettanti file sull’host. Il primo da creare come unità a dimensione fissa sul quale installare il sistema operativo, le eventuali partizioni swap (se si tratta di os Linux) ed i programmi che si intende installare. Il secondo, che potrà essere ad allocazione dinamica, che utilizzeremo per memorizzare i dati.
  2. Assicurarsi che sull’unità fisica su cui andranno creati i file/disco disponga di sufficiente spazio per contenere il disco a dimensione fissa ed almeno il 30% della dimensione dell’unità ad allocazione dinamica.
  3. Eseguire, sull’unità fisica, una deframmentazione completa (con compattazione dello spazio libero)
  4. Istanziare il disco a grandezza fissa: il file verrà generato immediatamente pari alla dimensione massima associata all’unità virtuale e riempito con zeri (thik-provisioning). In questo modo saremo sicuri che il file/disco una volta generato, sarà verosimilmente in un blocco unico e non verrà esteso automaticamente (aumentando il numero dei frammenti). Tutte le operazioni di lettura/scrittura che il sistema guest invocherà, verranno eseguite dal sistema host all’interno del file già istanziato
  5. Istanziare il disco a grandezza dinamica
  6. Avviare la macchina virtuale e procedere all’installazione del sistema operativo.

In questo modo apprezzerete che le performance del vostro pc virtualizzato (a meno che non carichiate di altre incombenze il pc host) non degraderanno più così drasticamente.

  • Commenti disabilitati su La deframmentazione dei dischi e i pc virtuali
 



 
Loading


Categorie