Nov 03 2007
La PNL tra server ridondanti
Si il titolo sembra proprio strano, ma l’argomento è sicuramente interessante, sembrerà una chiacchiera tra colleghi. Mi spiego meglio…..
Un paio di settimane fa, ho deciso di testare con il nostro sistemista la ridondanza dei server che gestiscono, siti, posta, filtri, ecccc……
In questo momento ci sono 2 server + 1 SAN (una macchina che gestisce i dischi fissi), la San di per se è ridontata, cioè se si rompe un disco è in grado di continuare il funzionamento senza alcuna perdita di dati. Per i server invece è stato studiato un meccanismo che permette loro di distribuirsi i servizi in base alle risorse disponibili.
Cosa vuol dire, se ci sono 2 server funzionanti il 50% va ad uno e il 50% va all’altro, se uno dei 2 smette automaticamente il rimanente si prende in carico il 100% del lavoro, ma andiamo a vedere come funziona tradotto in parole
I due server li chiameremo per semplicità con due nomi di persone, Alessandro e Federica, all’interno di Alessandro e Federica ci sono due Ipervisori che hanno il compito appunto di gestire i due server.
Si comincia ![]()
Situazione Normale:
Alessandro:Ciao
Federica:Ciao
Alessandro:Che fai?
Federica:Gestisco la posta il filtro antispam e antivirus, tu che fai?
Alessandro:Io gestisco il db del sito, il db delle newsletter, Tway, per me è tutto ok, e per te?
Federica :Guarda in questo momento c’è l’antispam che mi appesantisce un pò, ma non mi lamento tutto procede bene, tu invece come vanno i tuoi processi di lavoro?
Alessandro: Ma qui tutto molto bene, c’è Riccardo Vettore che ogni tanto mi lancia script senza prima provarli in locale e quindi lo stronco subito, ma a parte questo va tutto ok.
Ecco questo genere di informazioni si ripete ogni circa 2 secondi
Situazione Critica, stacco la spina a FEDERICA
Alessandro:Ciao
………………
Alessandro:Hei ti ho salutato, tutto bene?
………………
Alessandro:Devo dedurre che hai qualche problema?
……………..
Alessandro:Hai ancora 2,5 minuti per rispondermi altrimenti mi prendo carico delle cose che dovresti fare tu!!
…………….
Alessandro:Hai ancora poco poi mi prendo io le tue responsabilità se non sei in grado di continuare
…………….
Continua a chiedere per i minuti rimanenti dopo di che…..
Alessandro:dichiarazione di morte (WARN: node Federica: is dead…mach_down[26824])
Alessandro:ok, da adesso prendo io le tue funzioni, se ti dovessi riprendere questo messaggio ti verrà consegnato e non ti autorizzo a riprendere la tua funzionalità in quanto la gestirò io finchè i sistemisti non capiranno cosa ti è successo.
Alessandro:Avvio procedure di emergenza
Alessandro:Ipervisore…fai partire i server virtuali latenti
Alessandro:Ipervisore…Prendi possesso delle partizioni di Federica sulla SAN
Alessandro:Ipervisore…Avvia i controlli di coerenza dei dati
Alessandro:Ipervisore…Manda gli avvisi a tutti i sistemisti che siamo in stato di emergenza
Ipervisore : Server virtuali x y z in partenza
Ipervisore :
Ipervisore : Server virtuali avviati, prendiamo controllo delle partizioni logiche della San
Ipervisore: Siamo al 50% di funzionalità
Ipervisore:Partizioni logiche in gestione facciamo partire i servizi
Ipervisore:Siamo al 75% di funzionalità
Ipervisore:Servizi ok, dati ok, sistema funzionante al 100% tutto è nuovamente operativo
Alessandro:Sistemi operativi avviso i sistemisti
…………………
………………..
Federica Si riprende
Federica: Ciao
Alessandro:Hei ciao tutto bene?
Federica: Si, mi hanno staccato la spina da entrambi gli alimentatori, dopo il primo alimentatore ho resistito ma poi hanno tolto alimentazione anche al secondo e mi sono spenta.
Alessandro:Ho capito, non preoccuparti vedrai che adesso Max ti rimette in sesto
Federica: Si ma sto bene, riprendo il mio lavoro che dici?
Alessandro:Assolutamente no non sono autorizzato a ripassarti tutto devo attendere il permesso.
Federica:Ok allora aspetto
Alessandro:Si ciao, ti lascio che adesso ho da fare
Comunicazione interrotta
Ecco questo è tradotto in parole quello che è successo durante il test di ridondanza, è quasi incredibile vedere le due macchine che comunicano tra loro come due persone, spero di essere riuscito a trasmettervi l’entusiasmo che avevo mentre succedeva tutto questo
Ciao a tutti e alla prossima
Massimo Romanello
Web Engineer
Resp. Tecnologia e Sviluppo

Buongiorno Massimo, avevo intravisto ieri pomeriggio l’arrivo di un nuovo “bottone” sull’AoL. Tu sai che tra fora e blogs non saprei chi scegliere per buttarli giù dall’aereo, ma sono un elemento importante del sistema di comunicazione contemporaneo e cerco non solo di accettarli, ma anche di dare il mio contributo, con parsimonia.
E’ molto divertente lo scenario che hai voluto descrivere, tra Alessandro e Federica; aiuta certamente a capire che cosa succede, ma ho la stessa sensazione che avevo con il precedente Papa, cioè che non fosse abbastanza trasparente rispetto a Colui di cui era Vicario in terra.
“Umanizzare” le attività di una macchina può essere utile nella divulgazione, ma sarebbe anche utile fornire qualche elemento tecnico in più, anche se misurato.
Capisco il tuo entusiasmo e sono molto contento per voi, che riusciate a rendere gradevole un lavoro forse un pò troppo tecnico.
Grazie, in ogni caso, per l’assistenza che fornite ai sistemi di cui ci serviamo, nell’interesse comune.
Cordialità. Giampiero
Sai che puoi farlo anche con il centralino telefonico? (è un server) la così detta “soluzione di ridondanza”.
Visto che siete (siamo) in procinto di sostituire anche quelli….
Esiste una cosa simile anche tra i vari dischi di un server…. a proposito, i “miei” server si chiamano Poldo e Olivia!! Poi è nata Alice!
Noi ci parliamo veramente ogni tanto no? Specialmente quando non ripartono!!
Ciao.
Che figata!
Anche il centralino ovviamente essendo un serverino si può ridondare.
Salutami Poldo, Olivia e alice
P.s. i nomi dei nostri server sono
Ipervisore 1 = Maat
Ipervisore 2 = Ra
Server = Shu, tefnut, hu
RAID è vero; il bello è quando IBM ti invia per corriere i sostitutivi - da nn credere! anche un ragioniere diventa un super tecnico!!
I vs. nomi nn sono troppo facili…. Solo per confrontare le esperienze, abbiamo anche Eugenio e Povero Fabbro.
Potevate anche chiamarli più familiarmente: Caraibi, Orient Express (quello della posta), Caiman (quello x transazioni bancarie), Siberia (nn dico cosa!) e così via…
Ciao ciao
Io sono per l’umanizzazione delle cose inanimate, spesso mi capita di parlare con il Pc come se mi aspettassi una risposta, ovviamente non faccio come Michelangelo mentre scolpiva “La Pieta’ ” che getto’ il martello alla statua esclamando “perche’ non rispondi!!!” ma ci vado molto vicino.
Che dire Massimo, hai trovato un modo fantastico per umanizzare i nostri server, continua cosi’.
Marino
Volevo anche rispondere a Giampiero, ma l’unico modo che avrei di spiegare la stessa cosa in maniera tecnica è la seguente, e onestamente se volete io mi metto anche a spiegarla ….. ma non so quanto utile possa essere
Giampiero che dici ti basta il dettaglio tecnico seguente
heartbeat[5268]: 2007/10/12_00:18:40 info: Daily informational memory statistics
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 4/580568 ms age 0 [pid5268/MST_CONTROL]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 603/18940085 120852/59487 [pid5268/MST_CONTROL]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 447624 total malloc bytes. pid [5268/MST_CONTROL]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/6 ms age 259279830 [pid5270/HBFIFO]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 425/574 52316/24957 [pid5270/HBFIFO]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 54888 total malloc bytes. pid [5270/HBFIFO]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5271/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 427/153329 52692/25221 [pid5271/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 61280 total malloc bytes. pid [5271/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5272/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 428/290711 52784/25285 [pid5272/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 53700 total malloc bytes. pid [5272/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5273/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 429/153341 52876/25349 [pid5273/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 61464 total malloc bytes. pid [5273/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5274/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 430/290719 52968/25413 [pid5274/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 53884 total malloc bytes. pid [5274/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5275/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 431/153345 53060/25477 [pid5275/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 61924 total malloc bytes. pid [5275/HBWRITE]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: MSG stats: 0/0 ms age 44161223120 [pid5276/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: ha_malloc stats: 432/290721 53152/25541 [pid5276/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: RealMalloc stats: 54068 total malloc bytes. pid [5276/HBREAD]
heartbeat[5268]: 2007/10/12_00:18:40 info: Current arena value: 0
heartbeat[5268]: 2007/10/12_00:18:40 info: These are nothing to worry about.
heartbeat[4744]: 2007/10/12_23:30:57 WARN: Core dumps could be lost if multiple dumps occur
heartbeat[4744]: 2007/10/12_23:30:57 WARN: Consider setting /proc/sys/kernel/core_uses_pid (or equivalent) to 1 for maximum supportability
heartbeat[4744]: 2007/10/12_23:30:57 WARN: Logging daemon is disabled –enabling logging daemon is recommended
heartbeat[4744]: 2007/10/12_23:30:57 info: **************************
heartbeat[4744]: 2007/10/12_23:30:57 info: Configuration validated. Starting heartbeat 2.0.7
heartbeat[4745]: 2007/10/12_23:30:57 info: heartbeat: version 2.0.7
heartbeat[4745]: 2007/10/12_23:30:57 info: Heartbeat generation: 61
heartbeat[4745]: 2007/10/12_23:30:57 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[4745]: 2007/10/12_23:30:57 info: G_main_add_TriggerHandler: Added signal manual handler
heartbeat[4745]: 2007/10/12_23:30:57 info: Removing /var/run/heartbeat/rsctmp failed, recreating.
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: write socket priority set to IPTOS_LOWDELAY on eth_int
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: bound send socket to device: eth_int
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: bound receive socket to device: eth_int
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: started on port 694 interface eth_int to 172.19.0.1
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: write socket priority set to IPTOS_LOWDELAY on eth_ext
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: bound send socket to device: eth_ext
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: bound receive socket to device: eth_ext
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: ucast: started on port 694 interface eth_ext to 89.251.180.1
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: Starting serial heartbeat on tty /dev/ttyUSB0 (19200 baud)
heartbeat[4745]: 2007/10/12_23:30:57 info: G_main_add_SignalHandler: Added signal handler for signal 17
heartbeat[4745]: 2007/10/12_23:30:57 info: Local status now set to: ‘up’
heartbeat[4745]: 2007/10/12_23:31:01 info: Link ra:eth_int up.
heartbeat[4745]: 2007/10/12_23:31:01 info: Status update for node ra: status active
heartbeat[4745]: 2007/10/12_23:31:01 info: Link ra:eth_ext up.
heartbeat[4745]: 2007/10/12_23:31:01 info: Link ra:/dev/ttyUSB0 up.
harc[4755]: 2007/10/12_23:31:01 info: Running /etc/ha.d/rc.d/status status
heartbeat[4745]: 2007/10/12_23:31:02 info: Comm_now_up(): updating status to active
heartbeat[4745]: 2007/10/12_23:31:02 info: Local status now set to: ‘active’
heartbeat[4745]: 2007/10/12_23:31:02 info: remote resource transition completed.
heartbeat[4745]: 2007/10/12_23:31:02 info: remote resource transition completed.
heartbeat[4745]: 2007/10/12_23:31:02 info: Local Resource acquisition completed. (none)
heartbeat[4745]: 2007/10/12_23:31:03 info: ra wants to go standby [foreign]
heartbeat[4745]: 2007/10/12_23:32:07 info: standby: acquire [foreign] resources from ra
heartbeat[4790]: 2007/10/12_23:32:07 info: acquire local HA resources (standby).
ResourceManager[4800]: 2007/10/12_23:32:08 info: Acquiring resource group: maat takeoverdisks::maat::tefnut-vm::tefnut-sda::hu-vm::hu-sda Filesystem::/dev/m
apper/maat_part1::/cluster/maat::reiserfs::acl,user_xattr IPaddr2::172.19.1.132/24/br_evo IPaddr2::89.251.180.4/28/eth_ext vm::tefnut IPaddr2::172.19.2.133/2
4/br_tway IPaddr2::89.251.180.5/28/eth_ext vm::hu
takeoverdisks[4824]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: checking ( maat tefnut-vm tefnut-sda hu-vm hu-sda )
takeoverdisks[4824]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: no disk found
ResourceManager[4800]: 2007/10/12_23:32:08 info: Running /etc/ha.d/resource.d/takeoverdisks maat tefnut-vm tefnut-sda hu-vm hu-sda start
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: starting ( maat tefnut-vm tefnut-sda hu-vm hu-sda )
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: acquiring maat
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: acquiring tefnut-vm
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: acquiring tefnut-sda
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: acquiring hu-vm
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: acquiring hu-sda
takeoverdisks[4864]: 2007/10/12_23:32:08 info: /etc/ha.d/resource.d/takeoverdisks: san_disks_takeover maat tefnut-vm tefnut-sda hu-vm hu-sda
Filesystem[5439]: 2007/10/12_23:32:31 INFO: Resource is stopped
ResourceManager[4800]: 2007/10/12_23:32:31 info: Running /etc/ha.d/resource.d/Filesystem /dev/mapper/maat_part1 /cluster/maat reiserfs acl,user_xattr start
Filesystem[5501]: 2007/10/12_23:32:31 INFO: Running start for /dev/mapper/maat_part1 on /cluster/maat
Filesystem[5483]: 2007/10/12_23:32:43 INFO: Success
IPaddr2[5661]: 2007/10/12_23:32:43 INFO: Resource is stopped
ResourceManager[4800]: 2007/10/12_23:32:43 info: Running /etc/ha.d/resource.d/IPaddr2 172.19.1.132/24/br_evo start
IPaddr2[5753]: 2007/10/12_23:32:43 INFO: /sbin/ip -f inet addr add 172.19.1.132/24 brd 172.19.1.255 dev br_evo
IPaddr2[5753]: 2007/10/12_23:32:43 INFO: /sbin/ip link set br_evo up
IPaddr2[5753]: 2007/10/12_23:32:43 INFO: /usr/lib64/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-172.19.1.132 br_evo 172.19
.1.132 auto 172.19.1.132 ffffffffffff
IPaddr2[5732]: 2007/10/12_23:32:43 INFO: Success
IPaddr2[5823]: 2007/10/12_23:32:43 INFO: Resource is stopped
ResourceManager[4800]: 2007/10/12_23:32:43 info: Running /etc/ha.d/resource.d/IPaddr2 89.251.180.4/28/eth_ext start
IPaddr2[5915]: 2007/10/12_23:32:43 INFO: /sbin/ip -f inet addr add 89.251.180.4/28 brd 89.251.180.15 dev eth_ext
IPaddr2[5915]: 2007/10/12_23:32:43 INFO: /sbin/ip link set eth_ext up
IPaddr2[5915]: 2007/10/12_23:32:43 INFO: /usr/lib64/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-89.251.180.4 eth_ext 89.25
1.180.4 auto 89.251.180.4 ffffffffffff
IPaddr2[5894]: 2007/10/12_23:32:43 INFO: Success
ResourceManager[4800]: 2007/10/12_23:32:44 info: Running /etc/ha.d/resource.d/vm tefnut start
vm[6015]: 2007/10/12_23:32:44 info: /etc/ha.d/resource.d/vm: starting tefnut
IPaddr2[6229]: 2007/10/12_23:33:21 INFO: Resource is stopped
ResourceManager[4800]: 2007/10/12_23:33:21 info: Running /etc/ha.d/resource.d/IPaddr2 172.19.2.133/24/br_tway start
IPaddr2[6321]: 2007/10/12_23:33:21 INFO: /sbin/ip -f inet addr add 172.19.2.133/24 brd 172.19.2.255 dev br_tway
IPaddr2[6321]: 2007/10/12_23:33:21 INFO: /sbin/ip link set br_tway up
IPaddr2[6321]: 2007/10/12_23:33:21 INFO: /usr/lib64/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-172.19.2.133 br_tway 172.1
9.2.133 auto 172.19.2.133 ffffffffffff
IPaddr2[6300]: 2007/10/12_23:33:21 INFO: Success
IPaddr2[6392]: 2007/10/12_23:33:21 INFO: Resource is stopped
ResourceManager[4800]: 2007/10/12_23:33:21 info: Running /etc/ha.d/resource.d/IPaddr2 89.251.180.5/28/eth_ext start
IPaddr2[6484]: 2007/10/12_23:33:21 INFO: /sbin/ip -f inet addr add 89.251.180.5/28 brd 89.251.180.15 dev eth_ext
IPaddr2[6484]: 2007/10/12_23:33:21 INFO: /sbin/ip link set eth_ext up
IPaddr2[6484]: 2007/10/12_23:33:21 INFO: /usr/lib64/heartbeat/send_arp -i 200 -r 5 -p /var/run/heartbeat/rsctmp/send_arp/send_arp-89.251.180.5 eth_ext 89.25
1.180.5 auto 89.251.180.5 ffffffffffff
IPaddr2[6463]: 2007/10/12_23:33:21 INFO: Success
ResourceManager[4800]: 2007/10/12_23:33:21 info: Running /etc/ha.d/resource.d/vm hu start
vm[6585]: 2007/10/12_23:33:21 info: /etc/ha.d/resource.d/vm: starting hu
heartbeat[4790]: 2007/10/12_23:33:30 info: local HA resource acquisition completed (standby).
heartbeat[4745]: 2007/10/12_23:33:30 info: Standby resource acquisition done [foreign].
heartbeat[4745]: 2007/10/12_23:33:30 info: Initial resource acquisition complete (auto_failback)
heartbeat[4745]: 2007/10/12_23:33:30 info: remote resource transition completed.
heartbeat[4745]: 2007/10/13_23:30:58 info: Daily informational memory statistics
heartbeat[4745]: 2007/10/13_23:30:58 info: MSG stats: 6/41528 ms age 0 [pid4745/MST_CONTROL]
Attento, potremmo staccare la doppia alimentazione!!
Hai notato come esci “nero” quando vai a farlo??
Alla riga comando 70 leggo:
heartbeat[4745]: 2007/10/12_23:30:57 info: glib: Starting serial heartbeat on tty /dev/ttyUSB0 (19200 baud)
ma …. baud si riferisce a pippo baudo?!?!?!??
Marino
Ciao Massimo,
ho letto qualche giorno fa la “conversazione” tra i due protagonisti “Alessandro e Federica” e ieri la spiegazione tecnica.
Grazie, preferisco di gran lunga la prima spiegazione, nella seconda non mi ci metto nemmeno a provare a capire, non ci capisco un Acca.
forse perche’ ho letto la prima(?)non so se e’ solo per quello.
Nella prima, in modo divertente, ci hai fatto capire come funzionano i server. Complimenti per la fantasia e per come ha saputo spiegarceli. Saluti Luciana