Errore in Windows: “A system shutdown is in progress”

Difficoltà articolo (0->10): 5

Mi è capitato qualche giorno fa di dover riavviare un server da remoto, ma per qualche motivo il processo di reboot non è andato a buon fine e il sistema operativo è rimasto in esecuzione e in stallo. Questo è successo molto probabilmente perché il sistema operativo non è stato in grado di chiudere una delle tante applicazioni in esecuzione rendendo di fatto impossibile il processo di riavvio.

Come consuetudine avevo lanciato il riavvio da command line in questo modo:

shutdown /r /t 60

ho atteso un bel po’, pensando che la chiusura di qualche applicazione avesse richiesto più tempo del dovuto. Invece il sistema operativo non si è riavviato, restando con tutti i servizi/applicazioni in esecuzione. Provando a lanciare nuovamente il comando di riavvio ho ricevuto questo errore:

A system shutdown is in progress.(1115)

Questo messaggio di errore indica che il sistema operativo ha ricevuto correttamente il comando di reboot ma è impossibilitato ad eseguirlo nonostante il processo sia iniziato. Inoltre in questo stato non c’è garanzia che tutti i servizi siano attivi e funzionanti correttamente perché il processo di reboot potrebbe aver già stoppato alcune applicazioni. Dunque è bene prestare attenzione in questo caso se il server è in produzione, e potremmo voler tentare un riavvio forzato.

Per risolvere la situazione di stallo è necessario chiudere l’applicazione winlogon, e questo può essere fatto facilmente usando l’utility PsKill della Sysinternals in questo modo:

pskill -t \\computername winlogon

Incrociate le dita… et voilà, il sistema verrà sbloccato e si riavvierà all’istante!

Per il download dell’applicazione PsKill possiamo usare il seguente link:

roghan

Controllare quando è stato riavviato il sistema in Windows

Spesso è utile sapere in che momento è stato riavviato un sistema Windows , che sia un server o un sistema desktop. E’ possibile conoscere l’esatto momento in cui è avvenuto il riavvio guardando tra gli eventi di Windows. Gli step da seguire sono i seguenti: […]

Spesso è utile sapere in che momento è stato riavviato un sistema Windows , che sia un server o un sistema desktop. E’ possibile conoscere l’esatto momento in cui è avvenuto il riavvio guardando tra gli eventi di Windows. Gli step da seguire sono i seguenti:

  1. aprire Administrative Tools -> Event Viewer;
  2. andare alla voce Windows Logs e selezionare System;
  3. filtrare gli eventi in base al codice ID 6006, che indica lo shutdown della macchina. In realtà l’evento indica la chiusura del servizio “event log”, un servizio che viene chiuso poco prima dello shutdown del sistema;
  4. filtrare invece gli eventi secondo il codice ID 6005 per sapere quando il sistema si è avviato (avvio del servizio “event log”).

Event log

roghan

Differenze tra ODBC e OLE DB in Windows

Trattiamo oggi le differenze principali che ci sono tra le 2 API: ODBC e OLE DB. Innanzitutto entrambe sono delle interfacce standard che permettono di accedere a database e/o dati di varia natura in ambiente Microsoft Windows (ODBC non è specifico solo per Windows).

Open Database Connectivity (ODBC) è uno standard open, supportato dalla maggior parte dei vendor. Fornisce un accesso ai database relazionali aggirando le limitazioni dell’applicazione nativa, che potrebbe non essere in grado di accedere a tali database. ODBC costituisce pertanto un’interfaccia per accedere a qualunque RDBMS che supporti le API ODBC, come ad esempio Oracle, MS SQL Server, o MySQL. […]

Trattiamo oggi le differenze principali che ci sono tra le 2 API: ODBC e OLE DB. Innanzitutto entrambe sono delle interfacce standard che permettono di accedere a database e/o dati di varia natura in ambiente Microsoft Windows (ODBC non è specifico solo per Windows).

Open Database Connectivity (ODBC) è uno standard open, supportato dalla maggior parte dei vendor. Fornisce un accesso ai database relazionali aggirando le limitazioni dell’applicazione nativa, che potrebbe non essere in grado di accedere a tali database. ODBC costituisce pertanto un’interfaccia per accedere a qualunque RDBMS che supporti le API ODBC, come ad esempio Oracle, MS SQL Server, o MySQL.

Object Linking and Embedding Database (OLE DB) è invece una standard API specifica di Microsoft, sviluppata con l’obiettivo di maggiori prestazioni e in grado di accedere ad una maggior quantità di dati differenti. Difatti la sua particolarità è di permettere l’accesso sia a database relazionali che non, nel primo caso facendo uso di ODBC. Ad esempio è possibile accedere a MS SQL Server, Oracle, Excel, file raw e di altra natura in genere.

Riepilogando, le principali differenze tra i due sono:

  • ODBC:
    • fornisce accesso solo ai database relazionali;
    • è meno efficiente;
    • è uno standard open;
  • OLE DB:
    • fonisce accesso ai dati indipendentemente dalla loro posizione e formato;
    • fornisce accesso alle sorgenti e ai driver ODBC (dunque database relazionali);
    • è più efficiente.

Di seguito l’immagine mostra chiaramente il rapporto tra OLE DB e ODBC, e a quali dati riescono ad accedere.

OLE DB and ODBC differences
Architettura funzionale di OLE DB e ODBC.

Alcuni approfondimenti sono:

roghan

JaXy, un proxy HTTP in Java

Rendo disponibile per il download un proxy HTTP che ho scritto in Java.

Il proxy effettua le operazioni base di un proxy, supportando il protocollo HTTP 1.1 e rispettando l’RFC 2616:

1. il client (browser) richiede una risorsa (URL);
2. il proxy intercetta la richiesta;
3. il proxy controlla la propria memoria cache per vedere se può rispondere al client direttamente oppure se deve richiedere la risorsa (URL) al server finale;
4. il server finale risponde al proxy;
5. il proxy aggiorna la propria memoria cache con la risposta del server;
6. il proxy crea un nuovo pacchetto ed invia la risposta al client. […]

Rendo disponibile per il download un proxy HTTP che ho scritto in Java.

Il proxy effettua le operazioni base di un proxy, supportando il protocollo HTTP 1.1 e rispettando l’RFC 2616:

  1. il client (browser) richiede una risorsa (URL);
  2. il proxy intercetta la richiesta;
  3. il proxy controlla la propria memoria cache per vedere se può rispondere al client direttamente oppure se deve richiedere la risorsa (URL) al server finale;
  4. il server finale risponde al proxy;
  5. il proxy aggiorna la propria memoria cache con la risposta del server;
  6. il proxy crea un nuovo pacchetto ed invia la risposta al client.

Nella figura seguente è mostrata la logica del funzionamento di un proxy HTTP.

HTTP_Proxy_architecture
Funzionamento di un proxy HTTP

Da Wikipedia: “In computer networks, a proxy server is a server (a computer system or an application) that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server. The proxy server evaluates the request as a way to simplify and control their complexity.

L’applicazione non è una servlet ma è un server stand-alone, dunque non necessita di servlet engine o container (come Tomcat).

L’applicazione si chiama JaXy, abbreviazione di Java Proxy, ed è scaricabile e utilizzabile secondo la licenza GPLv3 al seguente link:

JaXy-v0.1.tar.gz – Initial release (2012-06-20):

  • supporto per HTTP 1.1, secondo le specifiche dell’RFC 2616
  • interfaccia semplice a linea di comando
  • supporto per IPv4

Matteo

Privilegi root per bind di porte 1-1023 in Java

Se dobbiamo creare un server in Java per accettare comunicazioni su TCP, è necessario usare la classe ServerSocket, mentre quella Socket è specifica per il lato client. Durante la creazione della componente client, bisogna fare particolare attenzione a quali porte indichiamo se ci troviamo su sistemi Linux/Unix. […]

Se dobbiamo creare un server in Java per accettare comunicazioni su TCP, è necessario usare la classe ServerSocket, mentre quella Socket è specifica per il lato client. Durante la creazione della componente client, bisogna fare particolare attenzione a quali porte indichiamo se ci troviamo su sistemi Linux/Unix. Ad esempio, il codice per mettere in ascolto un server sulla porta 80 è il seguente:

try
{
     ServerSocket server= new ServerSocket(80);
}catch (IOException iex)
{
     System.err.println(ex);
}

Il codice è corretto, ma potrebbe essere sollevata un’eccezione su sistemi Unix/Linux o anche Windows, in quanto sono necessari i privilegi di root/administrator per poter usare le porte nel range 1-1023.

roghan

Sizing di un’infrastruttura server con VMware

Ho terminato la scrittura di un piccolo manuale in cui spiego come dimensionare un’infrastruttura di server/storage per passare da un ambiente fisico ad uno virtuale con VMware vSphere 4.1 (da poco è uscita la versione 5!). Dato che in Rete non ho trovato nessun documento per il dimensionamento della parte server (per la parte desktop invece ci sono alcune ottime guide) che sia leggibile e abbastanza immediato, me lo sono scritto da solo, in modo da poterlo usare come punto di riferimento :-). […]

Ho terminato la scrittura di un piccolo manuale in cui spiego come dimensionare un’infrastruttura di server/storage per passare da un ambiente fisico ad uno virtuale con VMware vSphere 4.1 (da poco è uscita la versione 5!).

matriosche

Dato che in Rete non ho trovato nessun documento per il dimensionamento della parte server (per la parte desktop invece  ci sono alcune ottime guide) che sia leggibile e abbastanza immediato, me lo sono scritto da solo, in modo da poterlo usare come punto di riferimento :-).  Anzi, in Rete ci sono tantissimi documenti che trattano l’argomento, e sono anche di gran lunga migliori del mio, ma spesso il loro problema è che sono troppo lunghi ed elaborati, risultando difficili da decifrare, con decine e decine di grafici, istogrammi, studi di performance, e 10000 tabelle. Di seguito riporto un estratto del manuale:

Vediamo una serie di best practices per progettare e dimensionare un’infrastruttura di server virtuali con VMware. I punti da tenere in considerazione durante la progettazione sono i seguenti (ordinati in base all’importanza):

  1. tipo di server (entry level, enterprise, …), al quale sono strettamente legati tutti i punti successivi, e l’espandibilità futura (scale-out e scale-up);
  2. RAM, l’elemento più critico che può limitare fortemente le VM e le loro performance all’interno dell’infrastruttura;
  3. CPU, in termini di numero di core, socket, e frequenza;
  4. storage, quantità dello spazio necessario e tecnologia usata;
  5. networking.

Il manuale è liberamente scaricabile dal link sottostante oppure dalla sezione Download, ed è la prima versione (spero presto di aggiornarlo con la nuova versione di vSphere 5, e di renderlo ancora più immediato da utilizzare ma anche completo di spiegazioni ed esempi).

DOWNLOAD del manuale (v1.1)

roghan

p.s.: se ti è piaciuto il mio manuale e reputi interessante il mio lavoro puoi offrirmi da bere… Grazie mille!!!
pulsante paypal

Cosa contiene il database di vCenter Server

In questo articolo verrà esaminato il database utilizzato da vCenter Server, per informare coloro che si chiedono quali dati memorizza o che non hanno mai controllato il suo contenuto ;-). Il database crea principalmente alcune tabelle per memorizzare dati relativi ad eventi, allarmi, informazioni su HA, DRS, sui nodi ESX/ESXi (statistiche, capacità dello storage, spazio libero, …), informazioni sulle VM e sui processi schedulati. […]

In questo articolo verrà esaminato il database utilizzato da vCenter Server, per informare coloro che si chiedono quali dati memorizza o che non hanno mai controllato il suo contenuto ;-). Il database crea principalmente alcune tabelle per memorizzare dati relativi ad eventi, allarmi, informazioni su HA, DRS, sui nodi ESX/ESXi (statistiche, capacità dello storage, spazio libero, …), informazioni sulle VM e sui processi schedulati.

what-is-database

Da notare che le configurazioni dei nodi e delle VM sono invece memorizzate sui singoli nodi, e sono solamente mostrate da vSphere Client al momento della connessione al vCenter Server. Infatti è possibile collegarsi direttamente ad uno dei nodi ESX/ESXi senza vCenter Center, e modificare le configurazioni. Al momento che un nodo viene aggiunto ad un datacenter, vengono lette tutte le informazioni dal nodo e aggiunte al database del vCenter Server. E’ importante ricordare che il database non è essenziale per il funzionamento dei nodi o delle VM, infatti continueranno a funzionare tranquillamente anche se vCenter Server o il suo database non dovessero essere più disponibili: non sarebbero più funzionanti DRS e vMotion, mentre HA continuerebbe a funzionare senza alcun problema. Qualora il database avesse un crash si potrebbe creare una sua nuova istanza, aggiungendo nuovamente gli ESX/ESXi al vCenter Server in modo da ripopolare le informazioni del database. In quest’ultimo caso gli unici dati persi sarebbero le varie statistiche, eventi, allarmi, resource pool, i processi schedulati, e poche altre informazioni non essenziali.

Per ulteriori informazioni consultare i seguenti link (è stato preso spunto dal primo link per questo articolo):

roghan

Cluster VMware vs cluster Microsoft

In questo post verranno trattati i vantaggi di implementare un cluster Microsoft e quelli invece di un cluster VMware vSphere. Un cluster Microsoft ha il vantaggio che sono monitorate le applicazioni all’interno del sistema operativo, ad esempio SQL Server: se l’applicazione su uno dei nodi del cluster ha un crash, subentra immediatamente l’istanza sull’altro nodo in modo da garantire continuità di servizio. Nel caso di VMware invece può essere configurato un cluster con la Fault Tolerance (FT), la funzionalità che meglio si avvicina a MSCS. […]

In questo post verranno trattati i vantaggi di implementare un cluster Microsoft e quelli invece di un cluster VMware vSphere.

cluster

Un cluster Microsoft ha il vantaggio che sono monitorate le applicazioni all’interno del sistema operativo, ad esempio SQL Server: se l’applicazione su uno dei nodi del cluster ha un crash, subentra immediatamente l’istanza sull’altro nodo in modo da garantire continuità di servizio. Nel caso di VMware invece può essere configurato un cluster con la Fault Tolerance (FT), la funzionalità che meglio si avvicina a MSCS. Con la FT attiva VMware garantisce la continuità di esecuzione di una VM, ma non delle singole applicazioni all’intero della VM:

  1. se il nodo che ospita la VM ha un malfunzionamento, una VM identica già attiva e avviata entrerà in funzione, garantendo zero disservizio;
  2. se il nodo che ospita la VM funziona correttamente ma ha un crash un’applicazione interna alla VM (un database, un server web, …), la FT non è in grado di effettuare alcun azione e il servizio non verrà più erogato.

Dunque nella scelta tra MSCS e VMware deve essere tenuto in considerazione il livello di protezione garantito, che è maggiore con MSCS ma con lo svantaggio di costi maggiori e di un maggior livello di complessità. Con MSCS infatti devono essere configurati singolarmente i nodi del cluster, così come devono essere configurati disco di quorum e RDM. In VMware invece la configurazione del cluster è molto più semplice ed intuitiva, e viene fatta interamente attraverso vCenter Server, il quale si occuperà sia di monitorare le VM sia di eseguire le azioni opportune in caso di crash. In definitiva, MSCS è da preferire per applicazioni mission-critical, come un database, in cui un disservizio anche minimo può causare notevoli problemi, mentre per altri tipi di servizi, come server DHCP, DNS, o anche server web, un cluster con VMware FT (o eventualmente HA se può essere tollerato un disservizio di alcuni minuti) offre una protezione più che adeguata.

L’alternativa è quella di ricorrere ad un cluster Microsoft direttamente all’interno di un cluster VMware, in modo da unire i benefici della virtualizzazione ad una continuità di servizio 24h/24 per le applicazioni più critiche. Inoltre, si ha un ulteriore vantaggio, che consiste nella possibilità di “spostare” un’applicazione da una VM ad un’altra senza alcun disservizio, ad esempio se si deve effettuare qualche operazione di manutenzione. E’ da notare però che in questo caso sono supportati cluster solo di alcune versioni di Windows. Per maggiori dettagli consultare i collegamenti seguenti:

roghan

Lavorare nel settore “sicurezza informatica”

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA. Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. […]

(in costante aggiornamento)

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA.

Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. Solo dopo aver iniziato il corso però ho compreso due cose: la prima è che il corso era rivolto unicamente agli amministratori di rete, in modo da fornire loro delle basi relative alla sicurezza sui router/switch; secondo che era necessaria la certificazione CCNA per sostenere quella relativa alla security :-O, e in più la notevole difficoltà che ho incontrato a seguire il corso! Le conoscenze fornitemi dalla laurea non erano proprio sufficienti :-(, e ho dovuto faticare non poco per sostenere l’esame per la certificazione… Comunque ora che ho iniziato a muovere i primi passi nel settore IT posso cercare di fare una lista di quelle che sono le figure principali che ruotano attorno al settore della sicurezza informatica:

  • (Network) Security Administrator: è la persona che lavora parallelamente all’amministratore di rete, e si occupa di rendere sicura una certa rete configurando firewall/ACL, gestendo le autenticazioni degli utenti, crittografando le connessioni, e più in generale opera sulle configurazioni di router/switch/server/pc al fine di rendere la rete sicura. Una scheda che descrive il profilo (anche se orientato a soluzioni Microsoft) è disponibile al link profilo Security Administrator.
  • (Network) Security Manager:  è colui che si occupa di configurare  l’infrastruttura di rete e di applicare le procedure di sicurezza definite dall’azienda per cui lavora e conformi alle misure normative italiane. Inoltre deve garantire la sicurezza e la disponibilità dei dati, monitorare le performance, i database e gli eventi sospetti. E’ una figura centrale nell’infrastruttura informatica aziendale in quanto si occupa di gestire trasversalmente le procedure e le diverse soluzioni implementate con il compito specifico di assicurare quotidianamente l’affidabilità e la sicurezza dell’intero sistema informatico. Rispetto al Network Security Aministrator è una figura dalla preparazione più ampia (non solo configurazione di router/server).
  • Penetration Tester: è colui che determina il reale grado di sicurezza di una rete, cercando di violarla con una grande varietà di attacchi e non. L’obiettivo è quello di individuare eventuali vulnerabilità sfruttabili da terzi per ottenere accessi non autorizzati ai servizi e ai sistemi analizzati. Oltre ai problemi di sicurezza, devono essere rilevati, quali possibili punti deboli, i problemi relativi alla configurazione, che incidono sulla robustezza e le performance del sistema, e gli errori di progettazione della rete. A volte una cattiva configurazione è più pericolosa di un bug. Una descrizione di questo profilo e di cosa sono i penetration test è al link Penetration Tester.
  • (Network) Security Consultant: è il libero professionista, o colui che lavora assieme ad un piccolo team di persone (in genere da 2 a 4) o anche come dipendente di un’azienda, che viene ingaggiato da terze parti per configurare e gestire la sicurezza delle reti o dei sistemi.

Inoltre ci sono altre figure che possono operare a stretto contatto con la sicurezza, come:

  • System Administrator: è l’esperto di sistemi, come Linux e Windows, generalmente lato server, con buone conoscenze spesso anche di ambienti virtualizzati, di networking, e di sicurezza. Si occupa di amministrare i sistemi in questione, configurandone spesso anche gli aspetti di networking e hardening.
  • Network Administrator: è colui che gestisce tutto ciò che riguarda le reti, dalla configurazione di router e switch, a quella dei server, dei proxy, dei firewall, sia dal lato LAN che WAN. Oltre a ciò, molto spesso si occupa anche della parte di sicurezza inerente alle reti che gestisce, o comunque lavora a stretto contatto con le figure che si occupa di sicurezza di rete.

roghan

[Virtualizzazione] Cluster in HA e Disaster Recovery

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

* attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
* attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
* attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato. […]

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

  • attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
  • attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
  • attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato.

I sistemi cluster sono fondamentali in un mondo in cui le persone vogliono sempre tutto e subito; sono fondamentali per molte aziende che devono rendere costantemente disponibili i propri servizi, e dove per costantemente si intende 24h su 24, tutti i giorni dell’anno! Ecco che entra in gioco il ruolo del cluster HA appena descritto, o meglio un insieme di più nodi organizzati in modo tale da offrire un servizio quanto più possibile continuo.laptop-fire L’errore che molto spesso viene fatto nelle aziende (ho saputo di casi reali avvenuti a clienti dell’azienda in cui lavoro :-(!), è quello di acquistare come nodo primario un sistema ultra-veloce, come potrebbe essere una Ferrari, ed adoperare invece come nodo secondario un vecchio computer, paragonabile ad una memorabile Panda. Mai commettere questo errore! In caso di disaster recovery il sistema super-veloce smetterebbe di funzionare, e tutte le richieste verrebbero dunque inoltrate al secondo nodo, la vecchia Panda: siamo sicuri che la Pandina una volta entrata in funzione sia in grado di gestire tutto il carico in arrivo? Molto spesso infatti il secondo nodo non è in grado di supportare neppure metà dei servizi di quello principale, con il risultato che tutto il sistema si potrebbe bloccare dopo non molto.

Pertanto, la soluzione migliore è di configurare il cluster con nodi tutti identici. Nel caso dell’esempio precedente la soluzione è di usare due belle BMW in grado di raggiungere buone prestazioni, anche se inferiori alla Ferrari, ma prestazioni sicuramente costanti (con e senza failover)!

Inoltre, un altro errore molto diffuso nelle aziende è quello di non simulare mai un disaster recovery, un po’ come avviene per i dati di backup. Quanti di voi controllano che i dati appena salvati sia coerenti e privi di errori?? Quindi, prevenire piuttosto che curare, e pianificare con attenzione ogni scelta da fare!

Alla prossima…

Matteo

%d blogger hanno fatto clic su Mi Piace per questo: