Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Riccardo Corsanici Si occupa di consulenza sistemistica, integrazione di siste- mi e formazione professionale. Insieme ad altri professionisti IT, ha fondato ` una societa di servizi informatici per la gestione di architetture informative distribuite in ambienti critici.
Limpaginazione automatica di questa rivista e realizzata al ` 100% con strumenti Open Source usando OpenOffice, Emacs, BHL, LaTeX, Gimp, Inkscape e i linguaggi Lisp, Python e BASH
For copyright information about the contents of DEV, please see the section Copyright at the end of each article if exists, otherwise ask authors. Infomedia contents is 2004 Infomedia and released as Creative Commons 2.5 BY-NC-ND. Turing Club content is 2004 Turing Club released as Creative Commons 2.5 BY-ND. Le informazioni di copyright sul contenuto di DEV sono riportate nella sezione Copyright alla ne di ciascun articolo o vanno richieste direttamente agli autori. Il contenuto Infomedia e 2004 Infomedia e rilasciato ` con Licenza Creative Commons 2.5 BY-NC-ND. Il contenuto Turing Club e 2004 Turing Club e rilasciato ` con Licenza Creative Commons 2.5 BY-ND. Si applicano tutte le norme di tutela dei marchi e dei segni distintivi. ` E in ogni caso ammessa la riproduzione parziale o totale dei testi e delle immagini per scopo didattico purch e vengano integralmente citati gli autori e la completa identicazione della testata. Manoscritti e foto originali, anche se non pubblicati, non si restituiscono. Contenuto pubblicitario inferiore al 45%. La biograa dellautore riportata nellarticolo e sul sito www.infomedia.it e di norma quella disponibi` le nella stampa dellarticolo o aggiornata a cura dellautore stesso. Per aggiornarla scrivere a info@infomedia.it o farlo in autonomia allindirizzo http://mags.programmers.net/moduli/biograa
uello dei backup un aspetto cruciale della gestione di un sistema informativo che nessun amministratore dovrebbe affrontare con leggerezza. Limportanza di un piano di salvataggio ben organizzato potrebbe apparire ovvia: semplice trovarsi daccordo sulla necessit di eseguire un backup, ma dimensionare opportunamente una procedura non sempre un risultato immediato. Paradossalmente si incontrano con frequenza sistemi informativi di ampie dimensioni con lacune anche gravi nella gestione della sicurezza dei dati. La tendenza a trascurare o sottovalutare il problema sempre in agguato, ed in alcuni casi questa trascuratezza si propaga verso il basso anche sulle workstation ed i PC aziendali. Che siate gli amministratori di un CED con decine o centinaia di server da gestire, o semplicemente laccount root sul vostro computer domestico, non potete esimervi dallaffrontare il problema dei salvataggi. Non fidatevi della robustezza dei vostri impianti o dei contratti dassistenza dei fornitori: un comando di cancellazione pu scappare anche dalle dita pi esperte, ed i dispositivi sono pur sempre soggetti a guasti. Meglio chiudere la stalla prima.
dei dati. Eseguire un salvataggio, quindi, non si traduce automaticamente nella possibilit di eseguire il recovery. Sistemi di piccole dimensioni, forse per il fatto di essere facilmente re-installabili, sono spesso esclusi dai piani di recovery. Ci non costituisce automaticamente un problema nel caso si disponga di risorse e tempo a volont. In tutte le altre situazioni investire qualche ora nel collaudare degli automatismi permetter di risparmiarne parecchie in occasione di un problema. In ambienti critici le procedure di ripristino dovrebbero gi essere a budget, specie se un guasto ed il relativo disservizio dovessero riflettersi in un danno economico. Il disaster recovery trova campo dapplicazione su impianti con ruoli delicati, adibiti allelaborazione di informazioni sensibili e consiste, nella sua implementazione pi semplice, nel separare geograficamente i supporti di backup dal sistema di origine, e pu arrivare fino alla replicazione dellintera struttura elaborativa. Non si tratta di bilanciamento del carico fra pi nodi, ma di una contromisura estrema per garantire un livello accettabile di operativit anche in occasioni disastrose come inondazioni, incendi e terremoti. Fortunatamente esistono soluzioni adeguate a qualunque ordine di grandezza che
Backup e recovery costituiscono una delle problematiche di amministrazione pi delicate e sottovalutate nella gestione di un sistema informativo
Un po di chiarezza
Prima di procedere oltre necessario puntualizzare il significato di alcuni termini per fugare la possibilit di incomprensioni. Ci aiuteremo in questo con la Tabella 1, dove per ognuno dei termini fornita una breve spiegazione ed una schematica descrizione degli scopi correlati. Consideriamo ad esempio il significato di restore e recovery: un fraintendimento pu portare a sorprese spiacevoli o comunque al rischio di alimentare false illusioni nel cliente. Nel primo caso, infatti, tutto quello che ci si pu aspettare la comprovata possibilit di eseguire una copia da un supporto di backup (un nastro magnetico o altro, Figura 1). In molte situazioni questo pu essere sufficiente, ma per recuperare un sistema irrimediabilmente compromesso necessario poter disporre di una valida procedura di recovery, che preveda un metodo alternativo per eseguire il boot e procedere con il ripristino
DEV > n. 118 maggio 2004
Backup e restore identificano le procedure mediante le quali si esegue una copia dei dati su un supporto differente da quello di origine e viceversa. Una procedura di restore non tiene conto delleventualit che il sistema stesso sia stato compromesso: gestire questo tipo di circostanze compito delle FIGURA 1 azioni di recovery
89 <<
Intermediate
TABELLA 1
Definizione dei termini backup, restore, recovery, disaster recovery
Termine
Backup
Descrizione
Per backup si intende la procedura mediante la quale si esegue una copia dei dati su un supporto differente da quello di origine
Scopo
Lo scopo di una procedura di backup quello di salvaguardare lincolumit dei dati anche da eventi quali: errori amministrativi (es. cancellazioni accidentali, sovrascritture, etc.) guasti hardware sui dispositivi problemi software (procedure distruttive, difetti nella gestione dei volumi, etc.) manomissioni eventi disastrosi Una buona procedura di backup permette inoltre di: mantenere uno storico dei dati replicare completamente il sistema agevolare le procedure di ripristino Lo scopo di una procedura di restore quello di garantire la possibilit di ripristino dei dati salvati mediante una procedura di backup Lo scopo di una procedura di recovery quello di garantire il ripristino dellagibilit di un sistema, o comunque della fruibilit dei dati. Una corretta procedura di recovery permette fra laltro di: gestire configurazioni in alta affidabilit gestire problematiche relative a problemi hardware e software Lo scopo di una procedura di disaster recovery quello di garantire la salvaguardia dei dati o lagibilit dellintero sistema anche in caso di disastri naturali e danneggiamenti fisici irreversibili dei supporti o del sistema elaborativi
Restore
Per restore si intende la procedura mediante la quale si esegue una copia dei dati da un sopporto differente da quello di destinazione Per recovery si intende lesecuzione di una procedura di ripristino che tenga conto di problematiche differenti e permetta il recupero dellagibilit di un sistema
Recovery
Disaster Recovery
Per disaster recovery si intende una procedura di replicazione dei dati o dellintero sistema informativo in una locazione geografica differente da quella dei dati o del sistema di origine
possono essere adottate: le alternative spaziano da blasonati prodotti commerciali con licenze a sei zeri a semplici strumenti adatti anche ad un utilizzo domestico (Figura 2). Un ruolo determinante nella scelta delle strategie e di eventuali prodotti da utilizzare ricoperto dallamministratore, che deve essere in grado di comprendere le necessit operative del sistema ed integrare con queste una politica di backup e recovery che tenga nella dovuta considerazione il livello di criticit oggettiva. naturale come una buona conoscenza degli strumenti disponibili e delle tecniche utilizzabili sia alla base di questa capacit.
maggior parte delle esigenze. Di fronte ad unarchitettura distribuita composta da un cluster di database server ed un rack di application server si vorr probabilmente qualcosa di pi. Identificando gli obiettivi da raggiungere lo studio del problema (secondo punto) diventa una conseguenza naturale. Il dimensionamento delle strategie unaltra fase determinante: un errore di valutazione pu essere corretto facilmente se lo si individua gi durante la progettazione. questo il momento di guardarsi intorno per individuare gli strumenti adatti. Per ambienti distribuiti, ad esempio, sono disponibili
Intermediate
prodotti che permettono di centralizzare il controllo dei backup di tutti i sistemi coinvolti. Il principale vantaggio offerto da soluzioni di questo tipo lastrazione delle tecnologie di backup e restore utilizzate: lamministratore sollevato dallonere di creare le procedure e pu concentrarsi sulloggetto del salvataggio, preoccupandosi di cosa salvare e non di come. La struttura tipica di questi software prevede limpiego di uno o pi ambienti server (spesso si tratta di sistemi dedicati allo scopo) cui si connettono le varie console di gestione. Attraverso la console lamministratore configura il software agent in esecuzione sul nodo che sar oggetto dei backup. Non indispensabile affidarsi a costose soluzioni proprietarie: Linux infatti dispone di tutti gli strumenti necessari per implementare procedure adatte a qualunque dimensione. Si tratta di programmi di utilit presenti nel corredo software di qualunque distribuzione e che possono essere impiegati, con un po di fantasia ed intraprendenza, per la creazione di strumenti personalizzati di elevato livello qualitativo. Limplementazione delle procedure strettamente dipendente dal tipo di soluzione adottata, ma dovrebbe comunque essere portata avanti favorendone lelasticit: una procedura configurabile pu essere rapidamente adattata a sistemi con esigenze similari, ammortizzando linvestimento di ingegnerizzazione iniziale. Le verifiche sono imprescindibili: le procedure di backup e recovery sono meccanismi di emergenza, e come tali devono raggiungere il miglior livello di affidabilit possibile.
TABELLA 2
Tecnica
Totale
La strategia di backup da adottare si basa sulle necessit operative del sistema e degli utenti che lo utilizzano. Coniugare pi tecniche per creare procedure composte spesso lunica via praticabile per garantire la continuit del servizio
Backup
Salvataggio totale del sistema, comprensivo sia dei dati che del sistema operativo stesso
Recovery
Il recovery di un backup totale viene eseguito mediante il restore completo del salvataggio, dati e sistema operativo. possibile estrapolare dal backup totale i soli dati di interesse e procedere ad un restore parziale, in genere questa procedura comporta un overload sistemistico ed un incremento dei tempi necessari. Il recovery totale deve prevedere dei meccanismi alternativi di boot. Il recovery non possibile sulla base di salvataggi parziali. Pu essere garantito il ripristino dei soli dati di cui stato eseguito il backup. ll recovery da backup incrementale viene eseguito in tre step: ripristino dellagibilit del sistema (in caso di boot compromesso) ripristino del backup totale ripristino di tutti i backup incrementali eseguiti dallultimo backup totale Il recovery da backup differenziale avviene mediante il ripristino dellultimo backup totale e quindi dellultimo backup differenziale. Un recovery da backup logico necessita in genere dellagibilit del sistema operativo. Lo scopo che si prefigge quello di ripristinare i dati indipendentemente dalla struttura fisica di origine. Non c nessuna garanzia che il layout fisico di memorizzazione sia identico a quello di partenza. Il recovery da backup fisico agisce a livello di dispositivo e non di dato. Pu essere utilizzato per il ripristino di informazioni su cui il sistema operativo non ha controllo. Il restore garantisce il ripristino del medesimo layout fisico dellorigine.
Parziale
Salvataggio parziale dei dati. I dati da salvare possono essere selezionati in base a parametri dinamici, ad esempio in base alla data di creazione o di modifica La tecnica incrementale prevede almeno un salvataggio totale, cui seguono dei backup mirati dei soli dati modificati dallultimo backup totale nella prima esecuzione e dallultimo backup incrementale nelle successive.
Incrementale
Differenziale
ll backup differenziale prevede almeno un backup totale, e quindi un backup giornaliero dei soli dati modificati dallultimo salvataggio totale. Un backup eseguito a livello logico utilizza normalmente le normali funzionalit del sistema operativo per eseguire il solo backup dei dati, indipendentemente dalla struttura fisica in cui sono organizzati. Il backup fisico ha come scopo lesecuzione del dump di un dispositivo, indipendentemente dalla qualit e quantit di dati in esso memorizzati.
Logico
Fisico
91 <<
Intermediate
ad affrontare situazioni simili, in quanto si basano su un backup totale di storico e prevedono dei salvataggi ciclici pi contenuti (e quindi meno invasivi). In molte occasioni sar necessario avvalersi di tecniche composte, ed eseguire, ad esempio, un backup logico incrementale, unendo in questo modo i potenziali vantaggi di due strategie distinte. Si supponga di dover implementare delle procedure di backup e recovery di un database server: in questo caso un salvataggio logico equivarrebbe allesecuzione di una export dei dati. In condizioni di operativit che non consentono un backup fisico del database la soluzione logica sembrerebbe lunica praticabile. Si consideri per il problema di un eventuale ripristino: una procedura di import risulterebbe molto pi lenta di un restore totale fisico dei file che compongono il database. Questi aspetti devono essere valutati prima di trovarsi nella necessit di procedere ad un recovery! Spesso esistono soluzioni che rappresentano un buon compromesso: nel caso del database pu essere possibile adottare accorgimenti che consentono lesecuzione di un backup completo senza costringere ad una interruzione del servizio. In Oracle o DB2, che rappresentano la quasi totalit del mercato enterprise, sono previste modalit di backup che tengono conto di questi problemi. Naturalmente lelasticit ha un prezzo: le procedure di salvataggio a caldo sono pi complesse da realizzare e gestire e si riflettono su tecniche di recovery pi difficili e delicate. Nellottica di un crash o disaster recovery, le sole procedure di backup e ripristino non sono sufficienti, ma devono essere affiancate da meccanismi di sincronizzazione ed allineamento automatico dei sistemi coinvolti. In una configurazione clustered (crash recovery) i sistemi concorrenti agiscono general-
mente su uno storage esterno condiviso, che pu essere agganciato da uno qualunque dei nodi del cluster. Questo modello di struttura provvede implicitamente alla sincronizzazione dei dati, ma si pu dire lo stesso di un mirror geografico? Difficilmente un disk array sar condivisibile da sistemi posti in sedi geografiche distanti tra loro, inoltre la centralizzazione dei dati contraria allidea stessa di disaster recovery, che deve essere in grado di gestire persino la distruzione fisica dellunit di storage. Simili circostanze rendono indispensabile una procedura di allineamento dei dati fra i sistemi e la predisposizione di canali di connettivit ridondata fra i nodi.
Conclusioni
Progettare un piano di backup e recovery unattivit stimolante ed impegnativa. Linux, ed il mondo Unix in generale, forniscono da sempre una collezione di strumenti semplici e potenti che, nelle mani dellamministratore, possono essere combinati per creare procedure robuste, scalabili ed affidabili. Le possibilit quindi non mancano, e tutto quello che vi serve pu essere facilmente reperito nei cd-rom della vostra distribuzione preferita.
Riccardo Corsanici
Si occupa di consulenza sistemistica, integrazione di sistemi e formazione professionale. Insieme ad altri professionisti IT, ha fondato una societ di servizi informatici per la gestione di architetture informative distribuite in ambienti critici.
I sorgenti di Windows alla portata di tutti, rischio di sicurezza o tanto rumore per nulla?
Low Level
Quando si parla di open source vengono subito in mente pensieri positivi: chiarezza, estendibilit, apertura verso lesterno, sicurezza. Tutti vedono lopen source come una panacea per ogni male. In molti casi si pensa che disporre del codice di un prodotto non possa che far bene a tutta la comunit di sviluppatori che ne fa uso. Ma se il prodotto fosse Windows? Quale sarebbe la risposta del mondo a questa apertura? In realt nessuno lo pu sapere, o meglio, tutti quelli che dispongono di un sistema P2P lo possono sapere.
del codice, stato scoperto un solo errore, anche se credo che sia dovuto soprattutto al fatto che la comunit ha largamente snobbato quei sorgenti cosi vecchi.
Lerrore
Questo unico errore legato alla visualizzazione di bitmap, opportunamente modificate, da parte di vecchie versioni di Internet Explorer [2] [3] [4]. Osservate questo codice: while (_bmfh.bfOffBits > (unsigned)cbRead) { BYTE abDummy[1024]; int cbSkip; cbSkip = _bmfh.bfOffBits - cbRead; if (cbSkip > 1024) cbSkip = 1024; if (!Read(abDummy, cbSkip)) goto Cleanup; cbRead += cbSkip; } lalgoritmo di visualizzazione delle bitmap, pubblicato da [4]. Per sapere quanti byte saltare, nella parte di header di una bitmap, viene
usata una variabile con segno cbSkip per arrivare al vero e proprio contenuto dellimmagine. Se per viene, volutamente, messo un numero di _bmfh.bfOffBits > 2^31, cbSkip assume un valore negativo e la funzione Read legge un valore sbagliato di byte, sovrascrivendo lo stack del programma ed esponendo il programma stesso ad un pericolo buffer overflow.
Conclusioni
A questo punto cosa pensare? Dopo due mesi lunico bug segnalato stato questo, tra laltro legato ad una versione di Internet Explorer ormai obsoleta, 5.01 SP1 (il cui problema pi grosso non era sicuramente questo, ma altri tristemente utilizzati per la diffusione di alcuni famosi virus). Che sia stato tanto rumore per nulla? O una manovra marketing di tutto rispetto?
Il fatto
Nei mesi scorsi, un po per ingenuit, un po per volont, un po per malizia, sono stati resi disponibili allinsaputa di Microsoft, buona parte dei sorgenti dellormai obsoleto NT4 e di una piccola parte di Windows 2000 [5]. Si tratta di sorgenti ormai datati, essendo stati scritti attorno allanno 2000, ma allo stesso tempo potenzialmente pericolosi. Avendo quei sorgenti, chiunque volesse studiare il comportamento interno di Windows, pu farlo anche se limitatamente al poco codice disponibile. Questo studio pu esporre, teoricamente, una serie infinita di nuovi errori, nascosti grazie al fatto che il codice di Windows non mai stato reso disponibile. In realt per, anche se ci sono stati molti commenti sensazionalistici legati a questa notizia [5], a due mesi dallindesiderata fuoriuscita
Bibliografia
[1] http://www.baccan.it, sito di riferimento per Low Level. [2] http://www.zeusnews.it/index.php3?ar= stampa&cod=2874&numero=472 [3] http://www.securityfocus.com/ar chive/1/354059/2004-02-13/2004-02-19/0 [4] http://www.securitytracker.com/aler ts/ 2004/Feb/1009067.html [5] http://www.zeusnews.it/index.php3?ar= stampa&cod=2866, reso illegalmente pubblico il sorgente di Windows, Paolo Attivissimo
>> 92