Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Login/Register

Dammi Una Ragione

Ogni volta che si fa qualche cosa, si dovrebbe avere un motivo. Un buon, solido motivo. Specialmente se la "cosa" potrebbe comportare parecchi problemi nel prossimo futuro.

Facciamo il caso che si voglia costuire un ponte. Un ponte che potrebbe essere usato da eventuali invasori per accedere alla vostra citta'. Bene, se la citta' esiste, lo sta facendo SENZA quel ponte, quindi il non avere un ponte non influisce sull'esistenza della citta'. Si potrebbe argomentare che l'avere una MIGLIORE connessione con il resto del mondo portera' sicuramente ad un miglioramento dell'economia cittadina e quindi ad un miglioramento nelle condizioni generali di vita per la popolazione. Tuttavia, si dovrebbe sempre bilanciare quel "possibile" miglioramento con i problemi "garantiti" che la costruzione comporta.

La costruzione comportera' sicuramente una grossa spesa di denaro pubblico, denaro che non sara' ovviamente speso per altre cose. Ci sara' un grosso gruppo di persone coinvolto nella costruzione, probabilmente provenienti da fuori e questi richiederanno risorse in loco per poter lavorare, risorse che non saranno piu' a disposizione degli abitanti della citta;. Se parte della costruzione e' fatta da personale del luogo, tale personale non sara' piu' disponibile per altri lavori in citta'.

Alla fine, se i "pro" suonano ancora bene, il progetto verra' iniziato, ma questo bilancio pro/contro dovrebbe essere portato a termine PRIMA che il primo passo del progetto sia intrapreso. Sfortunatamente, molto spesso le cose vengono iniziate perche' qualcuno al momento pensa che sia una buona idea... Incidentalmente questa e' la stessa motivazione che forni' il tizio che si spoglio' nudo e salto' sopra ad un cactus, quando gli domandarono che cazzo gli era preso.

E dopo questa strana introduzione, andiamo ad iniziare.

E' una buia giornata di mezzo inverno quando arrivo in ufficio, dopo un'ora spesa su un treno semi-congelato che e' stato ritardato due volte, quindi sono gia' non proprio ben disposto quando arrivo e mi metto a vedere che cosa c'e' da fare, la prima cosa che mi ritrovo e' una mail da DB.

E' per l'installazione di un nuovo server per $GenteConfusa, un altro dei nostri clienti. $Gente ha un sistema abbastanza grosso, composto da 12 application server dietro un load balancer. Dei 12, 10 servono pagine web, uno e' usato dagli editori per modificare il contenuto del sito via CMS e l'ultimo e' un sistema di 'management' che fa... diverse cose.

Adesso c'e' la richiesta di installare un server extra da usare come server SFTP cosi' che gli editori possano uploadare foto, video ed altra roba. Il server dovra' rispondere ad un URL 'speciale' e fornire contenuto statico, per questo dovra' essere attaccato al load balancer.

Non che sia un gran problema, dopo aver osservato che se UN server deve gestirsi tutte le richieste di contenuti statici probabilmente diventera' un server molto occupato e se gli editori possono mettere mano a quella roba significa che possono mettere mano direttamente ai dati del sistema di produzione, il che viola il contratto come e' stato stilato (e' un'altra storia molto lunga).

Ovviamente, MarketingMan fa notare che 1) il cliente ha gia' firmato il contratto per l'installazione del nuovo server e 2) vogliono andare in produzione lo stesso giorno. Al solito, il concetto di "planning" e' sconosciuto qui.

Io mi avvio verso il mio tavolo per l'installazione, ma un dettaglio extra mi fa girare indietro e tornare da DB:

Io - Perche' questa cosa? "Crare un secondo disco virtuale e collegarlo come /dev/sdb" ?
DB - E' per le immagini statiche.
Io - ...sto' ascoltando...
DB - Che intendi dire?
Io - Che non vedo la ragione per avere le immagini in un disco separato. Una partizione ok, ma perche' un intero DISCO? E non in LVM?
DB - In quel modo se c'e' un problema al server possiamo staccare il disco dalla vm ed attaccarlo ad un'altra vm.
Io - ...possiamo farlo con l'intero volume se e' per questo e poi montare solo la parte che ci interessa, a parte quello... che tipo di problema dovrebbe avere? E' un server VIRTUAL! Ospitato su un CLUSTER di servers. Perche' un singolo server abbia un problema ci vorrebbe che... non lo so, qualche cosa di estremamente assurdo. Qualunque cosa che, potenzialmente, puo' portare dei problemi ad un server portera' gli stessi problemi a tutti i server ospitati su quel cluster, ed il che implica anche lo storage del datacenter.
DB - Lo storage ha un back-up.
Io - Abbiamo un back-up dell'intera vm. Di nuovo, perche' un disco separato?

La "discussione" e' andata avanti per un po' ma senza una reale spiegazione. In ogni caso, dato che questo sembra un Decreto del Consiglio, me ne sono tornato al tavolo ed ho cominciato l'installazione.

Prima delle 17 il sistema era 'vivo'. Con l'eccezione di alcuni piccoli, insignificanti dettagli, come il fatto che il famoso URL doveva essere HTTPS e nessuno aveva pensato ad acquistare un certificato, o il fatto che il DNS non era sotto il nostro controllo e nessuno poteva far puntare l'URL all'indirizzo IP giusto o al fatto che nessuno degli "editori" fosse stato informato o avesse la piu' pallida idea di che roba e' l'SFTP... come al solito insomma.

Il tempo passa, i dettagli sono risolti, il sistema va' in produzione...

Alcuni mesi dopo, sono a controllare i logs quando noto una lucetta rossa lampeggiante sul monitor di sistema: la partizione dei dati del server "statico" e' piena al 100%. 100 Gb, pieni. Ok, e' tempo per aumentare lo spazio di disco o dire a $Gente che devono decidere cosa si puo' cancellare.

Ovviamente $Gente non ha la piu' pallida idea di cosa si puo' o no cancellare, quindi iniziano il lungo processo di domandare quanto dovrebbe essere grosso il disco.

Se la domanda fosse posta a me risponderei: il disco e' 100Gb e si e' riempito in X mesi, quindi possiamo assumere che il ritmo di riempimento rimanga costante, percui ci servono almeno 300 Gb per reggere altri X mesi senza che esploda.

Ma anche la logica e' una cosa sconosciuta (insieme alla pianificazione), quindi MarketingMan propone un incremento di 50 Gb. Dopo svariati giorni di discussioni, agonizzando sul prezzo (50euro), $Gente approva, alla condizione che l'operazione puo' essere portata a termine senza downtime, condizione che MM garantisce senza problemi.

Io - Non possiamo estendere il disco senza downtime.
MM - Cosa??? Ma gli ho gia' detto che lo facciamo!
Io - Bella cazzata che hai detto.
MM - Perche' non possiamo farlo? Lo abbiamo fatto per $AltroCliente!
Io - $Altro era su LVM, questo non e' con LVM.
MM - E quale e' la differenza?
Io - ...mi stai chiedendo di spiegarti dei dettagli tecnici?

Dato che l'ultima volta che ho dovuto spiegare roba tecnica ad MM (come funziona una richiesta http) ho dovuto tirare fuori il teatro dei burattini, ed ancora non era chiaro, non ero molto contento di entrare in dettagli tecnici.

MM - Quindi che possiamo fare?
Io - Quello che dobbiamo fare e' ridimensionare lo storage, poi dobbiamo smontare la partizione, per il quale il sistema deve essere fermo, ridimensionare la partizione che puo' essere fatto solo cancellandola e poi ricreandola, e c'e' anche la possibilita' che questo introi tutto e richieda un restore, a quel punto possiamo rimontare la partizione.
MM - E quanto ci si mette?
Io - Non lo so, mai fatto prima. E' uno dei vantaggi dell'LVM che puoi fare questo tipo di cose al volo.
MM - ...parlero' con $Gente...

Ovviamente, dopo parecchio strillare, piangere e lamentarsi, $Gente riusci' a strappare la garanzia da MM che l'intero processo non sarebbe durato piu' di 5 minuti e sarebbe stato portato a termina il giorno dopo tra le 5 e le 5.15 del mattino. A questo punto gli ho detto "fottiti" ed ho dichiarato che io non lo facevo di sicuro.

La Ricerca del Santo Coglione ebbe inizio! Ed alla fine qualche scarognato fu' selezionato per l'attivita'. Alle 8.30 del mattino dopo erano ancora li' che ravananvo (ridimensionare partizioni non e' per i deboli di cuore).

Un mese dopo circa, stavo di nuovo guardando i log e che ti vedo sul monitor di sistema? Una lucetta rossa molto nota. Il fottuto server "statico" e' -DI NUOVO- al 100%. Ed indovina un po'? Questa merda ancora non e' un LVM.

Almeno adesso MM sa che non deve dire al cliente "lo faremo in 5 minuti". Almeno spero.

Ovviamente il mio suggerimento di "lasciamo perdere sta' cagata: creiamo un nuovo lvm, copiamoci dentro i dati e poi facciamo lo swap" e' stato respinto con un "se qualche cosa capita al server possiamo trasferire il disco su una nuova lvm"... Nessuno impara mai niente eh?

Davide
01/01/2017 19:40

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.

4 messaggi posta messaggio
trekfan1 Di trekfan1 - postato il 24/04/2017 14:37 - rispondi

No, nessuno impara mai niente, altrimenti non avremmo la nostra Storia

--
trekfan1


Boso Di Boso - postato il 25/04/2017 20:23 - rispondi

Si è scoperta poi la patetica scus... voglio dire, la ponderata ragione per cui non si poteva usare LVM?

--
Boso


Guido Di Guido - postato il 26/04/2017 07:24 - rispondi

<i>Ovviamente, MarketingMan [...]</i>

Quando hai detto "marketingman" hai detto tutto. Il loro compito e' vendere, non importa se quello che vendono e' assurdo, irrealizzabile o illogico...

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


Anonymous coward Di Anonymous coward - postato il 26/04/2017 17:36 - rispondi

Una delle OTTIME cose aggiunte da $finestre dal 2008 è il resize a caldo delle partizioni, anche quella di sistema. Ammetto che è veramente comoda...

--
Anonymous coward


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 Gort