Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


...di 28 c'e' ne uno...

Il backup e' bello, il backup e' buono, ma bisogna farlo e bisogna anche provarlo. E soprattutto, bisogna averlo, perche' se lo fai e poi lo butti via non e' che ti serva ad un gran che.

Quando il mondo era piu' giovane ed il backup veniva fatto su quelle cose magiche e misteriose chiamate NASTRI, che oggi se ne parli ti guardano come se tu fossi un marziano arrivato ... da marte appunto. Oeh', giovini, non avete mai visto Guerre Stellari? Anche i piani della morte nera erano su NASTRI, una tecnologia che produce astronavi piu' veloci della luce che usa i nastri come sistema di memoria di massa. Vabbe'.

Comunque sia, quando si usavano i nastri per il backup, di solito quello che si faceva era fare molteplici copie e tenerle per diverso tempo. C'erano i nastri del backup giornaliero, poi c'erano quelli del backup settimanale e poi di quello mensile. Cosi' si poteva andare indietro nel tempo e recuperare le cose in diversi momenti, se qualche cosa era stata zappata via la settimana precedente, si andava a cercare sul backup di 2 settimane prima e cosi' via. Il che significava TANTI nastri ed organizzati bene.

Ficcare dentro i nastri del giorno prima invece di quelli della settimana prima significava vivere nel terrore per una settimana che qualcuno venisse a chiedere un restore proprio di quel giorno... cosa che capitava semiregolarmente (come Murphy insegna).

Ovviamente i nastri costavano un botto ed usavano tanto spazio che avrebbe potuto essere usato per altre cose. Ma se vuoi una certa sicurezza dei dati...

Oggi... Oggi e' tutto "cloud". Il che significa che anche i backup sono "nelle nuvole". Il che puo' essere un bene o un male. Dipende da come lo si vede.

Dalla parte "bene", fare i backup adesso significa, nella maggioranza dei casi, mettere la spunta in una casellina che dice "fai uno snapshot della macchina ogni X ore" e non pensarci piu'.

Dall'altra parte, che sarebbe "male", significa che quando devi andare a fare un restore devi studiarti la documentazione per scoprire: dove stracazzo si trova il tuo snapshot, come stracazzo si adopera e se riesci a trovare il singolo file che devi restorare o ti tocca ripristinare tutta la macchina prima, con connesso consumo di tempo, caffe' e madonne assortite.

Oh, e bisogna anche fare caso a quanto spazio occupano questi "snapshot", prima di vedersi recapitare una fattura astronomica per "spazio di archivio".

E questo ci porta a parlare dell'argomento del giorno: la ritenzione. Che no, non e' una parolaccia e non ha a che fare con il bere troppa acqua, ma con il fatto che i dati "poco utili", siano essi vecchi backup o vecchi log, devono essere tenuti per un certo tempo, ma poi possono essere eliminati perche' sono inutili ed occupano spazio inutilmente.

Ora, ognuno ha i propri sistemi per gestirsi la ritenzione dei dati, c'e' chi costruisce un mostruoso script/programma che invia dozzine di "reminder" e sposta roba dentro e fuori da archivi, cold-storage, warm-storage, so-so-storage prima di buttare il tutto nel tritarifiuti, chi si gestisce le cose a mano (se sono poche)... e chi, nella maggioranza dei casi, se ne frega finche' qualche cosa non scoppia.

E parlando di scoppia, parliamo di $contiESconti, una azienda che gestiva "voucher" e "buoni sconto" vari.

Questa gente aveva un sistema basato su un sito web che pareva progettato da qualcuno troppo abituato a lavorare in Fortran. Per prima cosa, ogni volta che veniva fatta una modifica su una tabella del database, la tabella veniva copiata e la data del giorno veniva aggiunta al nome della tabella. Il programma era fatto in maniera tale da usare l'ultima tabella disponibile. Il che significa che nel database si trovavano ennemila tabelle "Utenti_XXXXYYZZ", ennemila tabelle "Prodotti_XXXXYYZZ", ennemila... ok, avete capito.

Una volta al mese, un qualche povero tapino doveva preparare la "fatturazione", che serviva per mandare le varie fatture ai clienti e beccare la grana. Una attivita' estremamente importante quindi. Attivita' che consisteva nel far girare uno script, che si passava a ramazza il database e produceva un mastodontico file .csv, che poi doveva essere elaborato con Excel per essere "tagliato" a pezzi, ogni singolo pezzo doveva poi essere manipolato per aggiungere o togliere costi, sconti e roba varia. Poi tutto il marasma veniva scaricato dentro una particolare directory dove un altro script lo rimaneggiava e produceva ennemila fatture da inviare ai clienti.

Come si puo' intuire, questa procedura era lunga, laboriosa e portata ad incasinamenti, soprattutto nella fase finale che tendeva anche ad incatastarsi parecchio. Il guaio e' che una volta iniziata, l'unico modo per ripetere l'intera cosa era ripristinare il database al momento PRIMA dell'inizio dell'intera faccenda, perche' la fase di "ramazza" alterava anche i dati all'interno del sistema producendo altre millemila tabelle con nomi astrusi.

Ecco quindi che qualcuno, dotato di molto cervello, aveva suggerito a $contiESconti di utilizzare una "ritenzione" dei backup di almeno 30 giorni, in modo da poter ritornare ai dati del mese precedente nel caso vi fossero dei problemi.

Arriviamo ad un bel giorno quando $contiESconti apre un ticket esagitato per chiedere un ripristino del database all'ultimo giorno di 2 mesi prima. Il nostro CL butta un'occhio alla mail e risponde tutto tranquillo che il periodo di ritenzione e' di 30 giorni e quindi non e' possibile fare il ripristino, e chiude il ticket piu' veloce di Lucky Luke.

30 secondi dopo comincia a suonare il telefono ovviamente. Ed a questo punto cominciano i dolori. Dolori perche' $contiESconti insiste che, se la "ritenzione" e' di 30 giorni, ed e' il 1o di Marzo, i dati del 30 e 31 Gennaio dovrebbero essere ancora disponibili (essendo Febbraio solo di 28 giorni). E la matematica gli da' ragione.

Tuttavia non posso fare a meno di notare che lo snapshot non e' piu' li'. In effetti... NON CI SONO SNAPSHOT DI SORTA per $contiESconti. Che cappero succede? Chiaramente le geremiadi attraggono l'attenzione di $DB, se non le geremiadi le ripetute mail inviate a tutti quelli che potevano essere contattati.

Ed e' a questo punto che mi metto a guardare il mastodontico script di "backup" (o presunto tale) e scovo l'arcano:
 
Lo script dovrebbe fare un calcolo $dataultimobackup=$datadelgiorno - $giorniritenzione, ma apparentemente il CL che ha scritto questa cosa non era molto bravo con le funzioni di gestione delle date, per cui ha deciso di tagliare corto e fare $dataultimobackup=$primodelmese. Attenzione $primodelmese, non $primodelmeseprecedente. Il che significa che al primo del mese tutto quello che e' piu' vecchio e' fritto. E quindi la ritenzione e' di un mese fino alla fine del mese e poi diventa zero.

Ed ecco perche' fare il backup e' solo il primo passo, bisogna anche provarlo poi.

Davide
23/04/2019 15:56

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

15 messaggi this document does not accept new posts

Anonymous coward

Di Anonymous coward postato il 17/06/2019 10:43

mmm, stavolta il C(og)L(ioide) mi pare sia un tuo collega...

Mi chiedo quanto $BigBoss abbia dovuto pagara di penale - visto che non e' stato in grado di garantire il servizio di backup (E CONSEGUENTE RESTORE) per il quale prende $beisoldoni, e soppatutto quanto forte il suddetto si sia inculato il CL di cui sopra, responsabile del disservizio.

No, perche tu parli del misfatto ma taci sulle conseguenze, e noi siamo curiosi come scimmie.

Quando si scrivono funzioni di quel tipo, ho imparato che bisognerebbe sempre prevedere il comportamento in tutt l'intervallo dei valori ammissibili: in questo caso, durante tutti i giorni dell'anno tramite apposito script che li testa tutti e 365+1 (si, conto anche i bisestili) e non limitarsi  "per la data di oggi funziona, allora funzionerà anche tutto il resto dell'anno". Si, speraci!

 

PS: ma com'e' che non ci sono piu' contributi da altri? le "storie" dei contributors erano belle, andrebbero reintrodotte.

 

-- Anonymous coward

Messer Franz

Di Messer Franz postato il 17/06/2019 11:25

il cliente sarà stato contentissimo, soprattutto perchè (se ho capito bene, è una cosa strana da leggere, sono ancora sconvolto) questa volta aveva ragione lui (e per la faccenda del 28 penso si debba vedere il contratto)... non so perchè ma sto avendo la visione di DB che chiude in una stanza quello che ha fatto lo script senza braghe e un elefante in crisi ormonale da primavera cui sono stati dati 2 quintali di viagra, e che poi (DB) si siede fuori con i popcorn in mano aspettando i vocalizzi...

-- Messer Franz

Nik

Di Nik postato il 17/06/2019 12:31

Il CL è stato poi scuoiato?

-- Se striscia fulmina, se svolazza l'ammazza

Davide Bianchi

@ Nik Di Davide Bianchi postato il 17/06/2019 16:06

Il CL è stato poi scuoiato?

Ovviamente no... che ti credi?

 

-- Davide Bianchi

Nik

@ Davide Bianchi Di Nik postato il 19/06/2019 10:48

 

> Il CL è stato poi scuoiato?

Ovviamente no... che ti credi?

 

Ho capito: diventerà UL

 

-- Se striscia fulmina, se svolazza l'ammazza

Vrann

Di Vrann postato il 17/06/2019 14:41

Ma ci sono ancora i nastri per il backup. Le cartucce Ultrium LTO, arrivate alla generazione 8, che tiene ben 12 terabyte di backup (che possono pure diventare 30 compressi). Non ci sarebbero problemi di ritenzione (idrica??? :D) con un'unità di backup in grado di gestire quelle cartucce.

(Già, ma mi sa che un'unità di backup costa troppi d€nari per il DB di turno...)

-- Vrann

massimo m.

@ Vrann Di massimo m. postato il 17/06/2019 19:11

> Ma ci sono ancora i nastri per il backup.

 

Qualche anno fa mi e' venuto lo sghiribizzo dei nastri per backuppare il mio server personale (qualche decina di gb), ma vedendo i prezzi dei drive, mi e' passato subito. Non e' che siano molto economici, tutt'altro. Quasi conviene comprare qualche hd esterno.

 

 

-- massimo m.

Guido

Di Guido postato il 18/06/2019 10:04

...di 28 ce n'e' uno e purtroppo non e' il mio...

-- who uses Debian learns Debian but who uses Slackware learns Linux

Luca Bertoncello

Di Luca Bertoncello postato il 18/06/2019 18:47

I nastri, che bella cosa... Anche noi in ufficio li usiamo (e uno script controlla quotidianamente se tutto e' a posto).

Anche $provider_schifoso li usa. Con la conseguenza che, a causa di un file-system sputtanato nel fine settimana, stiamo ancora aspettando adesso il restore di 6 files (leggasi sei) per un totale di 10KB (leggansi dieci kilobytes!!).

Certo, se il tipo di $provider_schifoso non perdesse tempo a trastullarsi scrivendo immondizia nel Ticket (tipo: "file X ripristinato. Tra tre ore prevedo di ripristinare il file Y" e roba del genere), forse gia' ci saremmo, purtroppo non e' cosi'...

E adesso che abbiamo visto come funziona il Backup, siamo nel panico a pensare a cosa succederebbe a $notissima_assicurazione_sanitaria_tedesca, ospitata da $provider_schifoso, se dei files veramente importanti svanissero nel nulla come sono svaniti quei pochi files...

Ancora tre giorni prima del meritatissimo fine settimana...

-- Luca Bertoncello

Antonio Pennino

Di Antonio Pennino postato il 18/06/2019 18:58

beh... ma almeno far pagare all' incauto una parte dei danni?

chesso', 30 giorni di paga :\)

-- Antonio Pennino

Tipo strano

Di Tipo strano postato il 19/06/2019 08:56

Quello da 28 è stato usato per il CL, giusto? :D

-- Tipo strano

Anonymous coward

Di Anonymous coward postato il 20/06/2019 11:49

giusto qualche giorno addietro stavo pensando ad un paio di script "temporanei" che scrissi tempo addietro (2011) provando ad immaginare se fosse ancora in uso.

Era un blob, un crimine contro l'informatica, che controllava, archiviava, registrando e notificando il tutto.

Qualche mese dopo aver scritto lo script i miei rapporti con l'azienda terminarono bruscamente (in 5 minuti di lucidità mandai a raddrizzar banane con le terga il cliente più grosso mentre $bigboss venne invitato a sedersi su una pianta di carciofi )* quindi non lo saprò mai con certezza.

Sospetto che abbia subito la stessa sorte di un certo firewall temporaneo.

* storia lunga, reazione che mi causò problemi lavorativi ma che non rimpiango anzi.

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 21/06/2019 14:10

Oppure potrebbe succedere che per un casino elettrico (sorvolo...) caschino mezze macchine virtuali, prontamente resettate e riavviate la mattina dopo, e ripartano tutte tranne una, che OVVIAMENTE è il server che gestisce i backup (e i restore...), e il supporto ci metta più di un mese a sistemare il tutto...

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 11/07/2019 23:43

In.magino che CL sia stato promosso in una posizione direttiva dove fara' meno danni, usufruendo al contempo %attuale_salario * 1.5. E' cosi' che funziona, gente!

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 05/08/2019 13:36

come diceva? ah, si:

"30 giorni ha novembre, con april, giugno e settembre,

ventotto giorni ha gennaio,

tutti gli altri... ne hanno un paio"

 

Tutto qui, il tipo si ricordava male il proverbio :-\)

 

-- Anonymous coward

15 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira