Category: Software

Eseguire codice Oracle PL/SQL con IBM DB2

Una novità molto interessante del prodotto IBM DB2 9.7 riguarda la possibilità di eseguire nativamente codice scritto in linguaggio Oracle PL/SQL. Mi sembra una notizia degna di attenzione che credo possa spingere molti utenti a valutare la possibilità di migrare dati ed applicazioni da Oracle verso IBM DB2. Pare che la compatibilità sia molto alta e che dal 90  al 99% del codice non debba essere affatto modificato. Potete trovare qui ulteriori dettagli sulla compatibilità, su come si possano eseguire Oracle Applications con DB2 9.7 per Linux, Unix, Windows e su come utilizzare MEET, uno strumento per verificare quante istruzioni di codice PL/SQL siano direttamente “trasferibili” in DB2.

Fonte: www.ibm.com

Molto interessante anche questo video su PL/SQL Support in IBM DB2 9.7

Nel documento di analisi dal titolo “Value Proposition For IBM DB2 9.7 – Cost Savings Potential Compared to Oracle Database 11g” sono esaminate componenti di costo come sistemi di storage, database servers, costi del personale, costi della rete e costi di migrazione. Sono evidenziate anche altre caratteristiche di DB2 come la forte compressione dei dati, che consente una significativa riduzione dello storage utilizzato, e le sofisticate funzioni di self-tuning che riducono l’attività dei DB Administrator.

Fonte: www.ibm.com

Esiste una versione Community Edition di DB2 9.7 chiamata DB2 Express-C: i dettagli del prodotto sono qui e  potete scaricarlo qui. Nella stessa pagina trovate un link ad una nutrita serie di video tutorial tecnici su DB2.

Windows Sysinternals

In questo post vorrei segnalarvi il sito web Sysinternals, creato nel 1996 da Mark Russinovich e  Bryce Cogswell e successivamente acquisito da Microsoft nel luglio del 2006. Questo sito è una vera miniera di informazioni e di strumenti preziosi per la gestione dei sistemi Microsoft Windows. Scorrendo l’indice delle utilities alla ricerca di qualcosa che mi potesse tornare immediatamente utile sono stato incuriosito da Disk2vhd.

windows_sysinternals

Fonte:http://www.microsoft.com

Disk2vhd è una utility che crea un VHD (Virtual Hard Disk – Microsoft’s Virtual Machine disk format) da un disco fisico in modo che possa essere utilizzato all’interno di macchine virtuali Microsoft Virtual PC o Microsoft Hyper-V. A differenza di altri strumenti simili,  Disk2vhd può essere lanciato su un sistema online in quanto utilizza la funzionalità Windows’ Volume Snapshot , introdotta in Windows XP, per creare degli snapshot dei volumi che si desidera includere nella conversione. 

Disk2vhd

Fonte:http://www.microsoft.com

Su YouTube ho trovato un ottimo video tutorial in tre parti.

Vi consiglio anche la  lettura del Sysinternals Forum.

Alcune idee sulla virtualizzazione – parte prima

In questo post vi parlerò di virtualizzazione di server. Davvero sulla virtualizzazione si può ancora dire qualcosa che non sia già stato ampiamente detto e ridetto? Per quanto mi riguarda, più che avere la presunzione di dire qualcosa di nuovo e di interessante, cosa che lascio giudicare a voi, vi parlerò di una mia personale interpretazione e di alcune prove che ho condotto per verificare la fattibilità delle mie idee. Per Wikipedia la  virtualizzazione è la tecnologia che permette ad un server di gestire diversi sistemi operativi andando ad emulare le istanze dei sistemi operativi “ospiti”; questo agevola il mantenimento di un insieme di applicazioni su un singolo server e con un maggior livello di affidabilità. L’hypervisor è il componente chiave per un sistema basato appunto sulla virtualizzazione.

Nelle moderne architetture i dischi interni dei server contengono il sistema operativo e poco altro. Generalmente i dati risiedono su un disk array esterno, ad esempio organizzati in architettura DAS (Direct Attached Storage) o, ancora meglio, in SAN (Storage Area Network).

NAS_DAS_SAN

Fonte http://en.wikipedia.org

In questo post farò riferimento ad una architettura SAN, rappresentata in maggior dettaglio nella figura seguente.

san1

Fonte: http://www.allsan.com

Lo zoning ed il LUN masking sono meccanismi che consentono di controllare quali server hanno accesso a quali dispositivi e, per esempio, limitare un singolo server ad un gruppo di dispositivi di storage (anche un singolo storage) oppure associare un raggruppamento di server ad uno o più dispositivi di storage. Mi riferirò ad uno spazio di storage SAN visibile da un host con il termine LUN. Gli amministratori di sistema più scaltri, una volta che un server “vede” una LUN, preferiscono formattarla come partizione LVM perchè la gestione a livello sistemistico degli spazi fisici risulta molto semplificata e versatile. Le tipiche operazioni da compiere sono: formattazione della partizione, creazione del volume group, creazione dei volumi logici, creazione e formattazione dei filesystem, montaggio dei filesystem.

lvgFonte http://www.redhat.com

L’utilizzo di LVM presenta anche un altro grande vantaggio: il volume group è autodescrittivo, nel senso che una parte riservata del disco chiamata VGDA (Volume Group Descriptor Area), contiene i metadati di composizione del volume group e dei vari logical volumes. In caso di problemi ad un server fisico, “pubblicando” una LUN verso un altro server, possiamo tirarci dietro tutti i dati ed i filesystems già definiti. Se il driver della scheda in fibra HBA lo supporta (verificate con il costruttore della scheda come fare, se no è necessario fare reboot) , basta fare un rescan a caldo del bus SCSI ed il giuoco è fatto: la LUN diventa visibile al server. I comandi Linux vgscan, che esegue una scansione dinamica dei dischi e dei volume group,  vgchange, per attivare il volume group, e mount per il  montaggio dei filesystem, completeranno la sequenza delle operazioni.

Attraverso i moderni software di virtualizzazione si possono costruire architetture  dotate di caratteristiche sofisticate come Live Migration e Cluster High Availability. Come   amministratore dei sistemi, però, ho il timore che adottando uno strumento di virtualizzazione sarò  costretto ad eseguire operazioni di migrazione/riconversione degli spazi fisici già definiti,  certamente dispendiose e critiche anche per le implicazioni sulla continuità del servizio. E forse, in fin dei conti, di acquistare un biglietto di sola andata verso un software ed un formato proprietari.

Fatta questa lunga premessa, la mia domanda è la seguente:  supponiamo di avere un server che monta una serie di filesystem della dimensione di centinaia e centinaia di gigabyte, contenuti in uno o più volume group costituiti da dischi fisici appartenenti ad uno storage array raggiungibile in SAN.

lvolsFonte http://www.redhat.com

E’ possibile creare un server virtuale equipollente (magari facendo una conversione P2V – Physical to Virtual del solo disco interno) senza dover ricopiare o convertire i dati già registrati e conservando nel contempo funzionalità, codifica, formato dei dati e dei filesystem originali?

Sarebbe interessante sentire il parere dei vari produttori di tecnologia di virtualizzazione presenti sul mercato.  Per quanto mi riguarda  ho condotto alcune prove con RedHat KVM (vedi il mio post precedente su RedHat KVM) e la prossima volta  vi darò tutti i dettagli del caso.

High Availability e Disaster Recovery con Hyper-V + Double-Take e Linux + DRBD

In un mio post precedente vi avevo dato notizia di Microsoft Hyper-V e del supporto di Linux RedHat. Il consolidamento di server fisici mediante l’applicazione della tecnologia della virtualizzazione consente di ottenere numerosi vantaggi sia in termini di continuità operativa e velocità di rilascio in produzione di nuovi server che di sfruttamento ottimale delle risorse hardware e valorizzazione degli investimenti ICT. Ho attivato pertanto un server con sistema operativo Microsoft 2008 + Hyper-V e creato  una decina di server virtuali con sistema operativo Microsoft Windows 2003, Linux RedHat, Fedora e Ubuntu. La tecnologia della virtualizzazione è molto apprezzata anche per la flessibilità che offre dal punto di vista della gestione. Per esempio dovendo aggiungere una scheda di memoria al server fisico ho salvato lo stato delle macchine virtuali, spento il server fisico, aggiunto la scheda e riavviato le macchine virtuali, il cui funzionamento è ripreso esattamente da dove era stato interrotto al momento del salvataggio senza alcuna perdita di dati, proprio come se nulla fosse accaduto. Per fare una verifica ho volutamente lasciato aperta e parzialmente compilata la finestra grafica di Ubuntu con cui si crea un nuovo utente linux. Al successivo riavvio l’ho trovata esattamente come l’avevo lasciata. Il tempo impiegato per completare l’intera operazione è stato inferiore ai 10 minuti. Tuttavia il modo  più efficace di operare sfrutta la funzionalità di live migration tra più nodi fisici offerta da Hyper-V R2 che consente di spostare a caldo una macchina virtuale dal server che deve essere messo in manutenzione verso uno dei nodi attivi così da evitare qualunque tipo di disservizio.

double-take

fonte http://www.doubletake.com

Tempo fa, affrontando i temi del backup, data replication e disaster recovery, avevo fatto riferimento a double-take, un software veramente interessante per le sue funzioni di replica in tempo reale su rete IP. La versione per Microsoft Hyper-V  lo è ancora di più e consente di realizzare facilmente soluzioni di continuità operativa e disaster recovery per le macchine virtuali in esecuzione sul server fisico. Il prodotto è ovviamente personalizzabile e consente anche di  limitare la banda di rete impegnata dal processo di replica durante il funzionamento normale. La cosa intrigante è che le macchine virtuali possono essere sia macchine Microsoft Windows che Linux. Sul sito del produttore è disponibile un video webinar molto istruttivo che illustra i dettagli del prodotto. Double-take, infine, offre nel proprio portafoglio anche prodotti per Linux.

DBRD

fonte http://www.drbd.org

Un altro software degno di nota e destinato agli amanti del Pinguino  e dell’open source è DRBD, di cui esiste anche una versione commerciale completa di supporto. Curiosando sul sito del produttore, nella sezione news, tra i tanti ho trovato un annuncio davvero molto interessante: Linus Torvalds ha accettato DRBD. La release 2.6.33 del kernel Linux, attesa per febbraio 2010, conterrà quindi DRBD. Nella figura seguente è riportata la schrmata grafica della DRBD Management Console, una applicazione Java con cui è possibile configurare i dettagli della propria installazione.

DRBD-MC

fonte http://www.doubletake.com

 

Il cloud computing di Amazon Web Services

Amazon Web Services (AWS) è una piattaforma di servizi web interamente basata su una infrastruttura di cloud computing. Per una definizione esaustiva di cloud computing rimando alla definizione di Wikipedia ed al mio precedente post sull’argomento.

Con AWS si può avere a disposizione, in sintesi, potenza di elaborazione, memoria di massa per archiviazione, servizi di database, attraverso una infrastruttura IT “elastica”, variabile in base alle esigenze di business.

Per quanto riguarda la fatturazione dei servizi si paga solo per quello che si usa, senza la necessità di effettuare ingenti spese di avvio o prendere impegni a lungo termine.

AWS usufruisce di una infrastruttura informatica che è la spina dorsale di Amazon.com, un’impresa che fattura circa 15 miliardi dollari l’anno in attività di vendita e distribuzione al dettaglio, eseguendo milioni di transazioni finanziarie ogni mese per i propri clienti.

Dal punto di vista tecnologico AWS poggia su una complessa infrastruttura di cloud computing ed offre diversi servizi:

* Amazon EC2 – Amazon Elastic Compute Cloud – Un servizio web che offre capacità di elaborazione ridimensionabile “in the cloud”, ovvero consente di configurare una Amazon Machine Instance (AMI) e caricarla in servizio Amazon EC2, aumentando o diminuendo la capacità di calcolo al variare dei requisiti di elaborazione.

* Amazon S3 – Amazon Simple Storage Service – Un servizio dotato di una semplice interfaccia web che può essere utilizzato per archiviare e recuperare grandi quantità di dati, in qualsiasi momento, da qualsiasi punto della rete. Fornisce agli sviluppatori un accesso alla stessa infrastruttura di archiviazione datii, scalabile, affidabile, veloce, che Amazon utilizza per gestire la propria rete globale di siti web. > Per saperne di più su

* Amazon CloudFront – Un servizio web per la distribuzione di contenuti. Si integra con gli altri servizi Amazon per fornire agli sviluppatori e alle imprese un modo facile per distribuire contenuti agli utenti finali, con bassa latenza e alta velocità di trasferimento dati.

* Amazon SimpleDB – Un servizio web per l’esecuzione di query in tempo reale su dati strutturati. Il servizio opera in stretto collegamento con Amazon S3 e Amazon EC2, collettivamente, fornendo la capacità di immagazzinare, elaborare e interrogare insiemi di dati “in the cloud”. > Per saperne di più su

* Amazon SQS – Amazon Simple Queue Service – Un servizio affidabile, altamente scalabile, che ospita le code per la memorizzazione dei messaggi mentre questi viaggiano tra i computer. Utilizzando Amazon SQS, gli sviluppatori possono semplicemente spostare i dati tra componenti distribuiti delle loro applicazioni che svolgono compiti diversi, senza perdere messaggi o richiedere ad ogni componente di essere sempre disponibile. Ciò rende semplice la costruzione di workflow, in quanto ogni computer su Internet può aggiungere o leggere messaggi senza aver installato alcun software o aver configurato particolari regole nei firewall. > Per saperne di più su

* Amazon RDSAmazon Relational Database Service – Un servizio che rende facile configurare, operare e modificare un database relazionale “in the cloud”. Amazon RDS fornisce le stesse caratteristiche di un database  MySQL.

* Amazon Elastic MapReduce – Un servizio che mette in grado ricercatori, analisti di dati, sviluppatori, di processare grandi quantità di dati. E’ basato su Hadoop framework, del quale abbiamo parlato in un precedente post, ed è pensato tipicamente per applicazioni di web indexing, data mining, log file analysis, machine learning, financial analysis, scientific simulation.

Il tutto gestito attraverso la AWS Management Console, che consente di avere visivamente sotto controllo l’ambiente di cloud computing, in maniera tale da verificare quali risorse si stanno utilizzando e poter decidere  come sfruttarle più convenientemente.

Infine, casomai non bastasse, c’è anche Amazon VPC – Amazon Virtual Private Cloud – un servizio che consente di collegare una infrastruttura IT esistente ad una nuvola di risorse e servizi AWS. Ciò avviene tramite una VPN (Virtual Private Network) e consente di estendere le caratteristiche dell’infrastruttura IT esistente (es. sicurezza, firewall, intrusion detection, ecc.) alla nuvola di risorse AWS, che pertanto viene isolata dal rimanente mondo AWS.

—-

Si potrebbero fare varie considerazioni rispetto a questo genere di servizi, mi soffermo in particolare sulle seguenti.

Per un informatico è un sogno diventato realtà: lo stato dell’arte della tecnologia moderna, un’estasi di astrazione e virtualizzazione di server, applicazioni e filesystem, distribuiti fisicamente in tutto il mondo e disponibili in tempo reale senza grandi difficoltà.

Per una organizzazione di medio-grandi dimensioni, penso valga la pena di porsi il problema se sia economicamente conveniente continuare a sostenere alti costi di hardware, software, energia elettrica e personale addetto ad un datacenter proprietario, oppure affidarsi -parzialmente o completamente- a servizi professionali del genere AWS. Certo è che nella valutazione economica (cfr. anche post di Donato Moscara sull’argomento) non si può non considerare e monetizzare il valore del patrimonio di dati e di conoscenza diffuso all’interno dell’organizzazione, nonchè valutare attentamente l’opportunità che i propri dati e sistemi siano esterni al perimetro dell’organizzazione.

Ajax: primi passi per iniziare

Ajax Primi passi per iniziare
View more documents from Andrea Stanco.
Quante volte in questi ultimi mesi abbiamo sentito parlare di AJAX? In effetti molti articoli che ho letto presuppongono una qualche conoscenza di AJAX stesso o comunque una buona conoscenza da parte dei lettori delle tecnologie alla sua base, ad esempio Javascript.

Ho avuto la sensazione che AJAX sia percepito dai neofiti come una cosa per soli programmatori esperti e quindi ho pensato di scrivere un articolo per cercare di aiutare coloro che si avvicinano a questo mondo per la prima volta permettendogli di scrivere le loro prime semplici applicazioni.
Sperando di riuscire nel mio intento vi auguro buona lettura.
Andrea Stanco

Estensioni: Firefox è meglio di Chrome

Che Mozilla Firefox fosse migliore, in tutto e per tutto, di Internet Explorer, è ormai un dato di fatto da anni.

Ma tra Firefox e Chrome, il giovane broswer di casa Google? La solfa non cambia and the winner is Firefox.

I motivi sono diversi: prima di tutto, la nuova versione 3.5. Poi, a differenza di Chrome, con Firefox è possibile personalizzare la propria navigazione aggiungendo i componenti aggiuntivi (chiamati anche estensioni, in inglese add-ons) al browser, ad esempio per risparmiare tempo, ottimizzare delle operazioni, per scaricare video o anche solo per divertimento. I componenti sono raggruppati per categorie e ora anche per raccolte, e cioè “gruppi di componenti aggiuntivi, aggregati per renderne più semplice la condivisione”.

L’Add-on Collector, poi, consente agli utenti di creare la propria collezione di estensioni e condividerla con i propri amici o con l’intera comunità, un po’ come si fa con le playlist di YouTube.

Per aggiungere un’estensione è molto semplice: è sufficiente andare sul sito degli add-ons di Mozilla, cercare il componente e installarlo direttamente sul proprio Firefox.

Insomma Firefox è il compagno ideale per vivere pienamente il Web 2.0.

Ecco un po’ di suggerimenti per mettere alla prova i componenti di Firefox:

iMacros

Se amate il browser Firefox, ma siete stanchi ed annoiati di ripetere sempre le stesse cose come visitare gli stessi siti tutti i giorni, riempire i form e ricordarvi le password, allora iMacros per Firefox è la soluzione per voi! iMacros è stato concepito per automatizzare le attività più ripetitive presenti sul web. Se esiste un’attività che dovete fare ripetitivamente, dovete solo registrarla su iMacros. La prossima volta che dovrete farla, la macro lo farà per voi, basterà cliccare su un tasto!

Xmarks

Se si utilizza Firefox su più computer potrebbe essere utile Foxmarks. Installare Foxmarks su ogni computer permetterà di mantenere i propri segnalibri e opzionalmente le proprie password sincronizzate automaticamente in maniera silenziosa, al sicuro da perdite di dati accidentali.

FoxTab

Effetti 3D e funzionalità davvero imperdibili. Provare per credere.


Video DownloadHelper

Per scaricare e convertire video su YouTube, Google Video, MySpace, iFilm ecc con un paio di clic.

AutoCopy

Consente di evidenziare del testo e automaticamente copiarlo sulla clipboard; in questo modo copia e incollare porzioni di testo diventa molto più semplice e rapido.

Adblock Plus

Volete eliminare annunci pubblicitari e banner dalla vostra navigazione (e renderla quindi più veloce)? Con Adblock Plus ve ne libererete subito.

DownloadThemAll!

Ottimo gestore e acceleratore di scaricamento incorporato in Firefox.


Attenzione però, alcuni di questi componenti non sono compatibili con la 3.5.

Buon divertimento (e soprattutto, buona estate)

Hadoop – Come elaborare grandi dataset

Supponiamo di avere un file ASCII contenente valori di parametri ambientali, ad esempio le temperature orarie giornaliere di una data zona relative ad un intero anno. Un tale file potrebbe essere prodotto da una centralina di rilevamento del tipo utilizzato in meteorologia. Supponiamo adesso di voler calcolare la temperatura media di ciascun mese oppure di ciascun giorno della settimana. Quali strumenti potremmo utilizzare? Potremmo importare il file in un foglio elettronico (OpenOffice Calc/Excel) e poi analizzare i dati con l’ausilio di una tabella pivot, oppure caricarlo in una tabella di un database relazionale come MySQL (Oracle) e produrre i risultati voluti eseguendo delle query SQL, oppure scrivere uno script AWK o un programma che faccia una scansione dell’intero file e calcoli i valori di cui abbiamo bisogno.

Ma se le centraline di rilevamento fossero migliaia, ad esempio quelle di un intera nazione o se si trattasse di analizzare file ASCII enormi come i log di decine di web server o di creare indici di ricerca analizzando milioni di pagine web, quale sarebbe la reale praticabilità delle soluzioni prima esaminate? Viviamo nell’era dei dati digitali e ne produciamo di nuovi ogni giorno con un ritmo vertiginoso: una stima di IDC prevede che i dati registrati elettronicamente raggiungeranno nel 2011 la dimensione di 1.8 zettabyte. Intuiamo tutti che una buona strategia di analisi consista nel suddividere il lotto di input in più parti ed esaminarli in parallelo su diversi elaboratori: dividi e conquista!

Tuttavia anche con un approccio a forza bruta rimangono aperte alcune questioni molto importanti: coordinare il lavoro, raggruppare i risultati intermedi, rilanciare le elaborazioni fallite per errore applicativo o per guasto hardware, bilanciare e sfruttare in modo ottimale le risorse disponibili, il tutto utilizzando una soluzione che sia anche scalabile. In questo post vi parlerò di Hadoop, di Map/Reduce (un framework software per processare in parallelo dataset enormi) e di HDFS (un file system distribuito progettato per gestire file grandi centinaia di GB o di TB).

Il paradigma di programmazione è alquanto singolare. In sintesi mediante l’operazione di map si creano delle coppie chiave/valore che poi verranno ordinate e fuse insieme mediante un tipico meccanismo di sort/merge. E’ possibile personalizzare le funzioni sopra citate scrivendo il codice necessario a seconda della struttura del dato di input.
Lo storage è reso disponibile da un cluster comprendente anche migliaia di nodi di macchine comuni, non costosissimi elaboratori ma pur sempre macchine destinate al mercato professionale: ad esempio processore quad-core Intel Xeon, 8 GB ECC RAM e storage FC/SATA. Hadoop è stato creato da Doug Cutting, il creatore di Apache Lucene, e fonda le sue origini in Apache Nutch, un motore di ricerca web open source. Spigolando qua e là ho trovato una nota di colore: pare che Doug abbia chiarito che il nome Hadoop non è un acronimo ma il nome dato da suo figlio ad un elefantino giallo.
Ho passato qualche giorno a leggere l’ottimo libro di Tom White, uno dei membri del progetto, ed impegnato un week end per installare Hadoop e fare qualche test di funzionamento. Ovviamente confinare un “mostro” come Hadoop all’interno di un blog è davvero impossibile, tuttavia i link di cui è disseminato questo post dovrebbero essere sufficienti a mettere sulla buona strada i lettori più curiosi. Per padroneggiare lo strumento c’è davvero molto da studiare sia dal punto di vista sistemistico che applicativo (Hadoop è scritto in Java ma è possibile sviluppare anche in Ruby, Python, C++). Le figure che ho riportato sono tratte dalla mia installazione e si riferiscono alla interfacce web con cui è distribuito Hadoop: Task Tracker (porta 50060), HDFS name node (porta 50070), MapReduce Job Tracker (porta 50030).

Prima di parlarvi dei risultati ottenuti vorrei segnalarvi due tutorial di Michael Noll; contengono indicazioni preziose su come costruire un single-node cluster e multi-node cluster con sistema operativo Ubuntu. Io ho utilizzato Fedora 11 e, dopo qualche peripezia, sono riuscito ad avere un sistema funzionate ed a condurre qualche test su un PC con 1GB di RAM che ho chiamato (e qui tradisco la mia passione per la fantascienza) BorgCube. Mi è sembrato un nome adatto: un cubo Borg (il cluster), la collettività (il framework), i droni (i nodi).

Dopo aver verificato il corretto funzionamento di Hadoop (a proposito c’è qualche differenza di configurazione tra la versione 18 e la 20), ho scaricato un file ASCII dal progetto Gutenberg e, dopo aver ricompilato l’applicazione di esempio WordCount.java e generato il file JAR l’ho mandata in esecuzione ottenendo i risultati riportati nella figura seguente.

Le prove effettuate non potevano avere altra pretesa se non quella di verificare a grandi linee il funzionamento di Hadoop ma credo che questo progetto possa rivelarsi molto interessante per studenti e ricercatori universitari e per tutti coloro interessati a macinare grandi volumi di dati (ed a spendere anche qualche euro per le macchine).

Nella lista di quanti utilizzano Hadoop si sono nomi del calibro di AOL, Facebook, Google, IBM, Yahoo (solo per citarne alcuni). Un ultima nota da segnalare: Yahoo ha ordinato 1 terabyte di dati in 209 secondi con un cluster di 910 nodi.

Backup, data replication e disaster recovery

Tempo fa ho avuto modo di interessarmi ai temi della continuità operativa e del disaster recovery. Vista la portata e la complessità di questo genere di argomenti non è possibile trattarli in un post se non ad un livello generale. Tuttavia, poiché le operazioni di backup/restore rappresentano il livello base di qualsiasi strategia di protezione dalle conseguenze dei guasti vorrei spendere due parole su questo tema e su alcune tecniche di data replication secondo me particolarmente interessanti.

Una considerazione da fare sui servizi da proteggere riguarda la necessità di condurre una preventiva ed accurata fase di analisi per determinare i livelli di servizio desiderati e poi adeguare di conseguenza la propria infrastruttura e le proprie procedure operative.

I livelli di operatività sono sintetizzati da due indicatori:

  • Recovery Time Objective (RTO) – massimo tempo di indisponibilità del servizio, ovvero il tempo entro il quale il servizio da proteggere deve essere ripristinato
  • Recovery Point Objective (RPO) – perdita dati sostenibile, in termini di distanza temporale tra il verificarsi dell’emergenza e l’ultimo salvataggio utile e ripristinabile dei dati

I nastri magnetici sono ancora oggi i supporti più utilizzati sia per l’elevata capacità di immagazzinamento che per la semplicità del loro trasporto. Questa tecnologia permette di fare copie dati al più basso dei costi possibili e soddisfa le esigenze di continuità operativa aventi tempi di ripristino (RTO) di ore o giorni e con valore di RPO dipendente dalla granularità temporale con cui sono effettuati i backup. (Esistono anche librerie di nastri virtuali: unità di storage disco che simulano il comportamento di una libreria a nastri).

La data replication, sincrona o asincrona, aumenta il grado di protezione dei dati introducendo ridondanza e permette di ridurre i tempi ripristino, a patto ovviamente di un adeguamento delle infrastrutture e con costi conseguenti.

In figura è rappresentato un tipico schema di data replication ottenuta a livello di storage array (in questo caso allocati su due sedi geograficamente separate). Questo tipo di soluzione prevede l’utilizzo di un hardware gemello, di un software di replica certificato dal produttore dello storage e di un link con adeguata ampiezza di banda. Le caratteristiche del link ed il protocollo utilizzato sono un compromesso tra modalità di replica (sincrona/asincrona), livello di servizio ed ampiezza di banda disponibile.

Un’altra soluzione, a mio parere molto interessante anche per i costi inferiori rispetto a quella “storage based”, prevede l’impiego di un software in esecuzione sul server che intercetta tutte le richieste di scrittura e le trasmette ad un sistema remoto attraverso la rete. Un prodotto di questo tipo è Geographic Logical Volume Manager di IBM dalla cui documentazione tecnica ho tratto gli esempi riportati.


Nella precedente figura è riportato lo schema di un server (Node A) connesso a due dischi fisici (PV1 e PV2) componenti un unico gruppo di volumi (VG datavg) su cui risiedono i dati. Questa configurazione base è assolutamente non ridondante e ciascuno dei due dischi è potenzialmente un punto di fallimento. In caso di guasto, pertanto, tutti i dati contenuti saranno inutilizzabili e dovranno essere ripristinati da nastro, con l’ovvia conseguenza che tutte le modifiche apportate dopo l’ultimo backup saranno irrimediabilmente perse.

Una strategia utile per migliorare il grado di resistenza ai guasti dell’architettura di cui sopra è quella di aggiungere altri due dischi fisici e realizzare un gruppo di volumi in configurazione RAID-1 (mirror).

Tuttavia anche questa soluzione, certamente più robusta della precedente, non mette al riparo dalle catastrofiche conseguenze di un incendio o di un allagamento del sito di produzione. Se ciò dovesse accadere, infatti, andrebbero persi sia il server che tutte le copie dei dati e l’unica alternativa sarebbe ancora una volta il restore da nastro, questa volta con alcune complicazioni aggiuntive: dover reinstallare il server, applicare gli aggiornamenti, modificare le configurazioni, personalizzare il software applicativo.


Una soluzione ancora migliore è ottenuta spostando una parte dei dischi costituenti il mirror in una sede geograficamente separata (il sito di disaster recovery) e connettendoli ad un altro server (Node B) con funzioni di “spare”. In questo modo è possibile creare un gruppo di volumi “distribuito”, sempre in configurazione RAID-1, costituito da dischi locali e dischi “remoti” (RPV).

Il Logical Volume Manager del sito di produzione comunica con i dischi fisici locali in modo diretto e con i dischi remoti attraverso un driver (RPV device driver) . In particolare, il client RPV in esecuzione sul nodo A di produzione, invia le richieste di lettura/scrittura alla propria controparte (RPV server) in esecuzione sul nodo B del sito di disaster recovery, realizzando così un real time geographic data mirroring su rete standard TCP/IP.

Alcuni riferimenti utili:

Come installare facilmente Apache, MySQL e PHP su Windows.

Nel gergo IT con il termine LAMP si intende l’accoppiamento funzionale di alcuni tra i prodotti software che sono l’emblema del mondo open source e che rappresentano la struttura applicativa portante di moltissimi server web: alludo ovviamente a Linux, Apache, MySQL e PHP. Per chi gravita nel mondo open l’affermazione è naturale, direi quasi banale. Negli ultimi anni Linux si è avvicinato molto al grande pubblico (i puristi direbbero che si è contaminato) ed installare da zero questi prodotti non è più un compito da sistemisti esperti ma abbondantemente alla portata dell’utente medio (generalmente si trovano già installati di default). Inoltre la documentazione in rete è davvero abbondante e con un po’ di pazienza si riesce sempre a venire fuori anche dalle situazioni più ingarbugliate. A quanti utilizzano Microsoft Windows, vorrebbero avvicinarsi alla programmazione in PHP con uso di Apache e MySQL ma temono di perdersi in una lunga serie di installazioni e configurazioni, propongo una soluzione semplice che ho utilizzato sul mio portatile.

Fonte: http://www.wampserver.com

Connettendosi alla sezione download di questo sito è possibile scaricare una versione installabile del pacchetto WampServer (vedi figura) che contiene Apache, PHP, MySQL e phpMyAdmin. L’installazione segue lo standard Microsoft: pochi click di mouse e si è subito operativi. Bisogna riconoscere che in questo Windows è davvero insuperabile. Un’altra cosa molto comoda per l’utente è l’accesso alla console di configurazione e gestione dei prodotti installati mediante un click con il tasto destro o sinistro sull’icona del server in basso a destra.


Alcune cose da fare prima di iniziare: cambiare la password di accesso a MySQL (la prima volta che lanciate la console potete connettervi al server senza password) e configurare phpMyAdmin per consentirgli di accedere al vostro DB. Per il resto la strada è tutta in discesa. Ho verificato che lanciando WampServer come utente normale si presentavano dei malfunzionamenti che sono scomparsi avviandolo con i diritti di amministratore mediante l’opzione “esegui come”.


Fonte: http://www.mysql.com

Infine, poiché avevo una vecchissima applicazione scritta in Clipper con archivi in formato DBIII li ho prima caricati in Microsoft Access e poi importati automaticamente in MySQL utilizzando il MySQL Migration Kit disponibile gratuitamente al link. L’operazione è stata semplice ed indolore e come potete vedere dalla figura la lista dei prodotti supportati è piuttosto lunga.