venerdì 22 giugno 2012

Physical to Virtual a costo 0 ... o quasi!

Problema: Il vecchio programma di contabilità di una società, un software client/server è installato su un Pentium IV con Windows 2000 Professional per la parte client e un Server Compaq Proliant ML350 G3 con Windows 2000 Server per il corrispettivo back office. Entrambe le macchine devono essere dismesse in quanto non più affidabili, ma va mantenuta la possibilità di accesso al vecchio software ed a tutti i dati contabili.

Premesso che il “quasi” del titolo si riferisce esclusivamente al fatto che il Sistema Operativo ospite che ho utilizzato è Windows 2008R2, che non è gratis, ma probabilmente se avessi usato VMware o qualche altro software di virtualizzazione “free”, l’operazione sarebbe effettivamente a costo zero; in questo periodo non ho il tempo per provare l’alternativa, me riprometto di farlo ed annotare i risultati.
Come dicevo, il sistema operativo ospite è Windows 2008R2 Server, debitamente installato, con fra i ruoli naturalmente Hyper-V che ospita le machcine virtuali. Tutto il resto delle operazioni è stato fatto con le versioni trialware di Symantec Backup Exec e VMWare Workstation, più qualche altro tool gratuito disponibile in rete.

Per prima cosa va installato Symantec Backup Exec sia sul Server che sul Client da virtualizzare. Nel mio caso specifico su Windows 2000 Server per il Proliant e Windows 2000 Pro per il Pentium IV. Quest’operazione è stata più complessa per le mie coronarie che per la difficoltà in sé stessa, ad ogni riavvio temevo che il server non ripartisse!
Da qui faccio riferimento ad una sola macchina, ma il procedimento è identico per tutte le macchine da virtualizzare. E’ ovvio che in teoria possiamo virtualizzare un’intera LAN.
Il primo passaggio consiste nel creare un’immagine di backup totale della macchina, ovviamente evitando di salvare i dati che non ci serviranno, nel mio caso il server aveva un RAID 5 di 70 Gb, ma alla fine me ne sono fatti bastare 15 Gb. Quest’operazione ci restituisce in una directory i files per il ripristino della nostra macchina ed in particolare, oltre al backup dei dischi fisici, anche un “bellissimo” file con estensione “.sv2i”: Symantec LiveState Recovery Image, il nome è tutto un programma. Spese per il software = 0,00 €, stiamo usando la versione trial; tempi lunghi dovuti sia alla vetustà delle macchine sia alla quantità di dati da scrivere su un’unità esterna che poi sposteremo nella macchina che farà la conversione definitiva. N.B. i software di virtualizzazione concorrenti NON si installano su Windows Server 2008R2.

Ora bisogna convertire i backup in macchine virtuali, per fare questo si utilizza “VMware vCenter Converter Standalone”. Si tratta di un software gratuito distribuito da VMware, bisogna registrarsi per averlo, ma è molto utile.

Per fare ciò basta premere sull’apposito pulsante “Convert machine”, selezionare nel source type “Backup image or third-party virtual machine”, puntare al file con estensione “.sv2i” ed avere molta pazienza, il processo sarà lungo.
A questo punto abbiamo la nostra bellissima macchina virtuale VMWare con estensione “.vmx” e dischi virtuali “.vmdk” che possiamo aprire con VMware Workstation; anche in questo caso stiamo usando una versione trial a costo 0,00 €.
Installiamo nella macchina virtuale i VMtools, che ci permettono di ottimizzare la memoria, la scheda grafica virtuale, l’integrazione con la macchina che stiamo usando per la trasformazione.
Procediamo con l’ottimizzazione della macchina appena creata iniziando con l’attualizzazione dello HAL (Hardware Abstraction Layer). La nostra vecchia macchina fisica aveva il suo chipset, i suoi drivers e molto software che serviva per l’interazione tra ferro e software; i driver della scheda video vecchia, della stampante, dello scanner, eccetera non servono più, occupano spazio fisico e se attivati “virtualmente” consumano risorse fisiche vere. Facciamo una bella pulizia di tutto quello che non serve più!
Una volta che il computer virtuale è pulito e siamo certi che le funzionalità che servono sono operative, bisogna spegnere la Virtual Machine, e dalla console di VMware Workstation aggiungere un nuovo disco IDE. Per default le macchine VMware sono basate su dischi SCSI (è una raccomandazione VMware), ma Hyper-V non supporta questo tipo di boot e la macchina virtuale risultante sarebbe inutile, partirebbe con uno sfavillante Blue Screen Of Death (BSOD): errore “Inaccessible Boot Device”. E’ bene accertarsi che il disco IDE appena aggiunto sia “Adapter: IDE 0 Device: 0” sotto “Virtual Device Node”, questa è solitamente la posizione del CD virtuale, ma spostare una periferica che non sarà usata non crea nessun problema.
Tanto per stare tranquilli e non perdere tempo inutilmente, avrete capito che il vero costo in quest’operazione è il tempo, suggerisco di riavviare la macchina virtuale ancora una volta e verificare in “Gestione Computer – Gestione Disco” che il disco IDE appena aggiunto sia presente, anche se non inizializzato.
Spenta la macchina procediamo a convertire il disco VMDK della VMWare Machine in un disco virtuale di tipo VHD il formato proprietario di Microsoft, per fare questo utilizziamo l’ennesimo software gratuito “Vmdk2Vhd” che si trova in rete, attualmente al seguente link http://vmtoolkit.com.
Portiamo il disco virtuale appena creato “.vhd” sul nostro server Windows 2008R2 e con Hyper-V creiamo una nuova macchina virtuale facendo attenzione durante la configurazione di impostare “Usare un disco virtuale esistente” e selezionare il nostro “.vhd”.
Abbiamo quasi finito.
Avviamo la nuova macchina virtuale, installiamo i servizi di integrazione, che sono l’equivalente Microsoft dei VMtools, e facciamo ancora pulizia; possiamo togliere i VMtools per esempio!
Impostiamo la rete virtuale di Hyper-V, verifichiamo che tutti i servizi siano funzionanti e che le applicazioni che ci servono siano operative come nell’ambiente reale.
Se tutto funziona, e dovrebbe (!), abbiamo virtualizzato le nostre macchine da dismettere, con il vantaggio che possiamo sempre ricavare degli snapshot del loro stato.
Fine!!!

P.S.

E’ ovvio che per virtualizzare n macchine serve un’infrastruttura hardware adeguata.

domenica 27 maggio 2012

Intro...duzione - Blog 2: La Vendetta

E' con triste rammarico che scopro che i miei vecchi "blog", per così dire, sono morti, sia quello tecnico, firmato come CadGeek, sia quello ludico, firmato da Salagadula.
Provvederò a riportare online alcuni degli articoli, con la data originale, rivedendo, ove possibile il contenuto, e colmando, nel minor tempo possibile il gap temporale fra i post vecchi e quelli presenti.

giovedì 10 novembre 2011

Virus... Primi rimedi dopo la cura! "SFC.exe"

Uno fra gli interventi che mi capita di fare più spesso consiste nella rimozione di uno o più virus dal computer. Senza addentrarmi nel come identificare un virus e sul come rimuoverlo, il primo programma da acquistare insieme al computer è un buon antivirus. Non trovo affidabili le soluzioni gratuite, e sono un fervente sostenitore di Kaspersky, che uso con soddisfazione dagli anni novanta, anche se spesso presso amici e clienti gli affinaco la soluzione gratuita di Microsoft.
Nella malaugurata ipotesi di essere vittime di un virus, sarebbe buona norma accertarsi che il sistema operativo, oltre che pulito sia anche integro; a questo scopo utilizziamo uno strumento di Windows poco conosciuto ai più: SFC, acronimo di System File Checker. Questo tool da ceseguire dal "Prompt dei comandi" verifica l'integrità dei file del sistema operativo ed è in grado di ripristinare le versioni originali. La prima volta che ricordo di averlo utilizzato è stato con Windows 2000, negli anni sono cambiati i parametri, ma lo scopo rimane lo stesso. Maggiori informazioni si trovano nel supporto tecnico di Microsoft, ma vediamo come utilizzarlo in Windows 7:
prima di tutto bisogna aprire un Prompt dei Comandi con privilegi amministrativi (Start / Accessori / tasto destro del mouse su Prompt dei Comandi / Esegui come amministratore); come in tutti comandi di Windows, basta digitare il nome del comando seguito dal parametro /? per avere un minimo didescrizione, l'elenco dei parametri con il loro scopo ed un esempio di utilizzo. In questo articolo mi limiterò a due soli paramteri, mentre per gli altri rimando ad una ricerca sul sito del supporto tecnico di Microsoft, meglio se specificando la versione di Windows in uso (2000, XP, Vista o 7), come dicevo i parametri opzionali sono cambiati da una versione all'altra ed il loro effetto può essere diverso a seconda del sistema. Un ultima nota prima di proseguire, non sono certo della fonte, forse l'ho letto in qualche forum, forse sulla mia bibbia dei comandi di windows oppure me lo ha fatto notare qualche collega, a volte una sola esecuzione di sfc.exe non è sufficiente, e bisogna eseguire il comando 3 - 4 o più volte consecutivamente per ottenere risultati soddisfacenti.
Per riparare i file di sistema, al prompt dei comandi digitare sfc /scannow e premere invio:
a questo punto inizia la scansione, che a secondo delle caratteristiche della macchina (processore, memoria e disco rigido), può impiegare un tempo variabile da pochi minuti a circa un'ora; non ho esperienza di scasioni più lunghe, ma non escludo che in macchine particolarmente lente e con dischi molto frammentati il processo possa essere più lungo. Se siamo fortunati ed il sistema è integro dovremmo trovarci con una schermata siile a questa:
Nell'ipotesi che non tutto sia a posto, repetita iuvant, provare ad eseguire il comando più volte; se anche dopo qualche esecuzione il sistema non è integro, il mio consiglio è di ripristinare il sistema operativo dal dvd originale con un'installazione di aggiornamento o con un System Restore, in entrambi i casi verranno modificati solo i file di sistema e non i dati degli utenti, come avviene con un'installazione ex-novo.
Il System File Checker scrive il risultato della scansione in un fil di log, che contiene i dettagli di cosa è stato riparato e di cosa non è stato possibile ripare, questo ci permette di agire maualmente sui singoli file. Per leggere il log della scansione bisogna aprire il file "sfcdetails.txt" bisogna utilizzare il seguente comando, sempre dal Prompt dei Comandi:

          findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >%userprofile%\Desktop\sfcdetails.txt

A prescindere dal uso diciamo "curativo" di questo strumento, è buona norma (così come la deframmentazione, la scansione antivirus totale, eccetera) utilizzare questo comando periodicamente con l'opzione /verifyonly, che non corregge gli errori del sistema ma si limita a segnalarli nel predetto file di log.

domenica 6 novembre 2011

5 motivi per NON lavorare GRATIS!

Ebbene si, è nella nostra natura, noi amiamo i rompicapo, siamo ossesionati dagli enigmi, almeno la maggior parte dei sistemisti / programmatori. Noi amiamo la sfida, il problema da risolvere, e non riuscire a giungere add un risultato ci turba profondamente, spesso togliendoci il sonno. Non so quante volte, nel pieno del fervore della programmazione, ho trovato la soluzione che cercavo da ore nel pieno del sonno "ristoratore" notturno; per fortuna ho imparato negli anni che mi conviene alzarmi ed appuntarmi una nota comprensibile da riprendere al mattino seguente.

Noi amiamo i riconoscimenti ed i ringraziamenti; ci piace essere paragonati al prode Lancillotto informatico che con il solo sguardo sblocca il server, con una carezza riavvia il computer e con un click di mouse sistema la posta elettronica.
Adoriamo così tanto impersonare il Cavaliere digitale, che a volte, nel mio caso spesso, siamo portati a comportarci in modo sbagliato: lavoriamo "GRATIS".

L'abbiamo fatto tutti, e con alcuni amici / colleghi, cerchiamo di giustificarci a vicenda per aver dato una mano al parente, all'amico, al vicino, all'amico dell'amico o a una bella ragazza... tutti quanti, indistintamente, abbiamo dato una sistematina in cambio di... niente! Magari l'amico in questione ti ha offerto una birra o un drink, qualcuno ha detto semplicemente grazie, oppure, a fine lavoro, c'era solo quel sorriso speciale che riempie ed è abbastanza gratificante da giustificarci con noi stessi. E' più probabile, tuttavia, che quei cinque minuti per cui ci si era impegnati si siano trasformati in tre quarti d'ora, poi in un ora o nel fatidico "dammi il pc che lo sistemo e te lo riporto funzionante (cosa che poi si traduce in una nottata di lavoro!).
Come mi ha fatto notare un caro amico, e collega, ci sono aleno 5 buoni motivi per cui chi fa il mio lavoro dovrebbe sempre farsi pagare:

1) CHI ROMPE, PAGA!
Quando ci si siede davanti ad un computer si sta firmando un tacito contratto di supporto ed assistenza. Non si tratta di un contratto legale, ma di una accordo morale. Il proprietario della macchina in questione si sta fidando del nostro operato, ci sta dando in mano la propria creatura, quel oggetto magico che contiene i suoi dati, le sue importantissime email, le foto delle vacanze con amici e figli. Noi siamo i dottori che curano il figlio malato. E' così che ci si siede e si inzia, prima la diagnosi e poi la cura. Ma ecco che nel processo di riparazione, qualcosa va storto, non funziona, aggiustiamo un pezzo e qualcos'altro si rompe, ma la parte più bella della questione è che né voi (medico) né l'utente (proprietario del malato) realizzate l'esistenza del guasto fino al giorno dopo. A questo punto arriva immancabile la telefonata, magari mentre state partecipando ad una riunione di lavoro importantissima da cui dipende il vostro lavoro per i prossimi tre mesi "Credevo che mi avrestio risolto il problema, ma adesso non funziona più questo, questo e quest'altro!". Questo è il motivo per cui bisogna sempre farsi pagare il proprio lavoro: "chi rope, paga", l'utente in questione si aspetta che ripariate quello che non funziona, una specie di garanzia, anche se non ha sborsato un centesimo per il vostro tempo, anche se il problema è indipendente da quello risolto. Spesso le persone non sono in grado di valutare il valore del nostro tempo, e non capiscono che per rimanere aggiornati e al passo con la tecnologia, noi spendiamo il nostro tempo e denaro.

2) LE PERSONE NON DANNO IMPORTANZA A CIO' CHE E' GRATIS.
Questa massima l'ho imparata da un signore che lavora per un'organizzazione non-profit; è paradossale, ma un uomo che passa il suo tempo a chiedere donazioni per gli altri mi ha detto chiaramente che la gente non da valore a ciò che è gratis.
Le consulenza gratuite, l'ingresso libero e perfino gli aggiornamenti gratuiti del software; se il concerto è gratis, quelli che suonano non sono un granché (poi magari sono i Pink Floyd a Venezia!), ma è gratis! Un esempio che porto sempre in evidenza contro la pirateria è il seguente: Microsoft vende il sistema operativo o Office, che tutti usiamo quando accendiamo il computer, e tutti, incondizionatamente, si lamentano che è caro, ma nessuno considera che poi per un periodo di vita maggiore di quello del pc su cui vengono installati i software, hanno gli aggiornamenti gratis (anche se chi scrive gli aggiornamenti ha un costo!), o che se facessere un semplice calcolo per vedere in quanto tempo viene ammortizzata la spesa del programma, il prezzo è irrisorio. Esistono molti programmi gratis che fanno le stesse cose, ma non sono degli standard, sono diversi, sono più complicati o incompleti; o come anticipavo prima, se sono gratis... non valgono molto! Forse bisognerebbe chiedere a costoro se preferiscono farsi operare in tempi rapidi dal primario cardiochirurgo che esercita solo privatamente nella clinica specialzzata oppure, aspettare a tempo indeterminato il posto letto in un ottimo ospedale senza sapere chi sarà ad intervenire fino al giorno dell'operazione.

3) GRATIS UNA VOLTA = GRATIS PER SEMPRE
Nell'ambito della giurisprudenza, il concetto di precedente ha un'importanza fondamentale; giudici ed avvocati cercano nei processi predecenti come è stata interpretata una specifica norma e perché, se un caso è stato guidicato in un certo modo una volta, è molto probabile che tutti i casi simili vengano giudicati in modo analogo. I giocatori del lotto tengono traccia dei numeri ritardatari e di quelli che escono più frequentemente, sperando così di avere maggiori speranze di vincere, questo a prescindere dalla matematica che governa il calcolo combinatorio, la statistica ed il calcolo dell probabilità (se ci fosse una logica, tutti i matematici sarebbero ricchissimi!); analogamente gli utenti si aspettano che se è stato sistemato gratis una volta, sarà gratis per sempre, salvo forse i pezzi di ricambio. E' bene chiarire subito che ci sarà un prezzo da pagare, magari non obbligatoriamente un prezzo in denaro, ma deve essere esplicito che siamo dei professionisti e come tali dobbiamo andiamo riconosciuti; d'altra parte, è tutta qui la differenza fra l'amatore ed il tecnico di professione che fa questo lavoro per vivere. I professionisti si fanno pagare per il loro lavoro!

4) LE RICHIESTE AUMENTANO CON IL PASSARE DEL TEMPO
Questo rientra nel vecchio adagio "dai una mano e si prendono il braccio", che tradotto in informatichese si può leggere nel seguente modo: "avvia un aggiornamento del sistema operativo, e dovrai togliere due o tre virus, risolvere qualche blocco improvviso, capire perché non si stampa..."; una volta vestiti i panni del cavaliere che risolve, lo si è per tutto. Mi ricordo che una volta, quando ancora capitava di fare qualche saldatura di ponticelli sulle schede madri, la segretaria di direzione mi chiese se potevo sistemarle gli elettrodi dello stimolatore per rassodare i glutei, me la cavai dicendo che avrei fatto le saldature solo se poi potevo verificare il corretto funzionamento del mio lavoro in situ, ma questo non trattenne la signora in questione dal portarmi tempo dopo un asciga capelli per cambiare la spina. O ancora, un'altra volta, mentre ero al supermercato a comprare il pane, sentirmi chiedere da un vicino, come sistemare la sua email dell'ufficio, non curante del fatto che fosse il mio turno al banco.
Il dare sempre assistenza alla fine porta a lunghi interventi, spesso lontani dal proprio campo di applicazione, e ad altrettante discussioni in cui si mette in dubbio la propria preparazione perché il cugino del mio miglior amico, che è uno che ci capisce, mi dice che ha letto sulla rivista che questo si può fare.

5) SI PERDE IN CREDIBILITA' PROFESSIONALE
Lavorare gratis, non solo è inutile, ma indebolisce la propria reputazione di professionista. Per molti consulenti, il qui presente incluso, chiedere soldi è difficile, a volte non si dice nulla e si manda una fattura per email che muore nel silenzio più totale. Questo, oltre ad essere fiscalmente un caos, porta spesso a spendere più di quanto si guadagna. Sostanzialmente, se non si chiede di essere pagati, nessuno mette mano al portafogli e ti allunga un congruo compenso. E' bene stabilire un prezzo, forfettario o orario, equivalente al tempo necessario per eseguire un intervento o sviluppare un programma, in caso contrario la controparte penserà che quello che state facendo non vale un granché, oppure non sapete quello che state facendo. Cercate su internet a quanto viene venduto un servizio prima di farlo e fatevi pagare di conseguenza, nel dubbio esistono prontuari online con il prezzo orario del sistemista o del programmatore (junior / senior).

Infine, chiedere soldi può essere come andare a caccia di farfalle, ma almeno i possibili clienti sanno che hanno a che fare un professionista, e questo di per sé già dà loro fiducia.

martedì 1 novembre 2011

Logon Screen personalizzato per Windows 7

Oggi vediamo come personalizzare la schermata di avvio / protezione di Windows 7. Già dai tempi di Windows 95, qualcuno ha sempre trovato il metodo per farlo strano, si tratta di una di quello cose inutili che fanno effetto perché non alla portata di tutti. Premetto che lo stesso risultato i può ottenere con programmi di terze parti che una volta installati fanno esattamente la stessa cosa, magari aggiungendo barre pubblicitarie a explorer, cambiando la HomePage e altre porcherie. Di mio, come sapete, sono restio ad installare software di cui non conosco ogni dettaglio, quindi ecco la procedura per cambiare il Logon Screen.
Ecco come si presenta il Logon Screen predefinito di Windows, che brutto non è, anzi sarà stato sicuramente realizzato da un grafico, ma alla lunga … stanca:
Come al solito mamma Microsoft nasconde tutte queste funzionalità nelle chiavi del Registro di Configurazione, va da sé che le modifiche al registro, se fatte male, possono compromettere il corretto funzionamento del computer, quindi è bene fare una copia di backup dello stesso; inoltre, tutte le operazioni che andremo a fare richiedono diritti amministrativi, quindi è bene agire con un utente Administrator.
Ora, se come me siete dei maniaci dell’alta definizione, è bene scegliere come sfondo un’immagine che abbia le stesse dimensioni in pixel del nostro desktop, altrimenti si va incontro a spiacevoli sorprese, bordi colorati o deformazioni per adattare il background allo schermo.
Iniziamo aprendo il registro di configurazione digitando “regedit” nella riga di comando:


A questo punto navighiamo fino alla chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background
e cambiamo il valore della chiave "OEMBackground" da 0 a 1 facendo doppio click su di essa:


Se la chiave non esiste possiamo creare un nuovo valore DWORD chiamato "OEMBackground", tasto destro del mouse nella parte destra del Registro di Configurazione. A questo punto possiamo chiudere il Registro.
Ora apriamo il disco con il sistema operativo, di solito “C:” ed andiamo nella directory “C:\Windows\System32\oobe” e creiamo una nuova cartella chiamata “info”, a meno che non esista già.
All’interno di “C:\Windows\System32\oobe\info” creiamo una nuova cartella chiamata “backgrounds” all’interno della quale (C:\Windows\System32\oobe\info\backgrounds\) salveremo la nostra immagine con il seguente nome: “backgroundDefault.jpg” facendo attenzione a che il file non sia più grande di 256 kb.
Fine del gioco, ed ecco il mio LogonScreen con una bellissima immagine di Storm Thorgerson:


giovedì 27 ottobre 2011

Intro...duzione

Benvenuti
Più che un "BLOG" nel vero e proprio senso del termine, una raccolta degli articoli e dei tutorial che o ho scritto, per spiegare o aiutare clienti, colleghi ed amici, e le risposte alle domande che spesso mi fanno in seguito alle mie passioni ed ai miei hobbies; oppure saltuariamente parti di codice che ho scritto ed ottimizzato negli anni e che spesso fanno parte del codice dei miei programmi.