Il server database: dietro le quinte di hwupgrade

Il server database: dietro le quinte di hwupgrade

Il server database del forum di discussione è indubbiamente l'elemento più critico dell'intera infrastruttura di server che utilizziamo per pubblicare quotidianamente i contenuti di Hardware Upgrade. Vediamone le basi di funzionamento tecnico, e quali considerazioni abbiano guidato la scelta del nuovo server in produzione

di Paolo Corsini pubblicato il nel canale Server e Workstation
 

Dell Poweredge 2950

La scelta per il nuovo server database del forum di discussione di Hardware Upgrade è caduta su un sistema Dell a 2 unità: parliamo del modello PowerEdge 2950, configurato a partire dalla proposta di default di Dell con alcune opzioni accessorie alla luce delle nostre specifiche esigenze applicative. Il server viene fornito comprensivo di staffe di sostegno: un sistema di questo tipo deve essere necessariamente montato all'interno di un armadio Rack così da beneficiare sia della propria forma, che dei sistemi di raffreddamento integrati negli armadi delle server farm.

1_s.jpg (17878 bytes)

Queste le caratteristiche tecniche principali del server che abbiamo configurato:

  • 2 processori Intel Xeon E5345: quad core 2,33 GHz, 2x4 Mbytes cache L2, bus 1.333 MHz;
  • 16 Gbytes memoria Fully Buffered Dimm (FB-DIMM), 8x2 Gbytes, DDR2-667;
  • 6 hard disk SAS 73 Gbytes da 3 pollici e mezzo, 15.000 giri al minuto;
  • controller Raid PERC 5/i, 256 Mbytes cache.

La scelta di utilizzare processori Xeon E5345 permette di avere a disposizione 8 Core di processore; un elemento critico di queste architetture è dato dal dover dipendere dal front side bus per le comunicazioni tra i due processori fisici, e tra i Core a coppie, per via della particolare architettura che prevede una costruzione di tipo MCP, MultiChip Package. Ogni processore, infatti, integra al proprio interno una coppia di processori dual core, montati sullo stesso package e collegati tra di loro attraverso front side bus. Lo stesso front side bus è utilizzato a sua volta per collegare tra di loro i due processori fisici al north bridge del chipset, e quindi al memory controller che è integrato in quest'ultimo componente.

La dotazione di memoria è pari a 16 Gbytes, utilizzando tutti gli 8 slot memoria a disposizione sulla scheda madre; sarebbe stato preferibile utilizzare 32 Gbytes di memoria, ma l'elevato costo dei moduli FB Dimm da 4 Gbytes di capacità rispetto a quello da 2 Gbytes utilizzati nel sistema ha fatto propendere per questo quantitativo complessivo. Al momento della realizzazione di questo articolo la differenza di costo tra 16 Gbytes di memoria FB-Dimm DDR2-667 e 32 Gbytes FB-Dimm DDR2-667 è superiore a € 5.000,00.

15_s.jpg (38546 bytes)

In un database è fondamentale sia avere a disposizione un elevato quantitativo di memoria di sistema, che un sottosistema dischi particolarmente veloce. Nel caso del database del forum di discussione di Hardware Upgrade non è importante la capacità complessiva di archiviazione dei dati, quanto la velocità di risposta: per questo motivo abbiamo adottato 6 hard disk SAS da 73 Gbytes di capacità ciascuno, meccaniche con velocità di rotazione dei piatti di 15.000 giri al minuto. Trattandosi di un server nel quale sia indispensabile abbinare sia velocità prestazionale che ridondanza dei dati è stato abbinato un controller Raid hardware con 256 Mbytes di memoria cache. I 6 dischi sono stati configurati in una catena Raid 10, composta da 3 catene Raid 1, il tutto poi posto in configurazione Raid 0: di conseguenza con particolari combinazioni è possibile che si rompano sino a 3 hard disk contemporaneamente senza per questo avere perdite di dati, nel momento in cui i dischi danneggiati facciano parte ciascuno di una delle 3 catene Raid 1.

2_s.jpg (62455 bytes)

3_s.jpg (32070 bytes)

Gli hard disk sono modello Cheetah 15K.5, prodotti da Seagate; il pannello delle connessioni posteriori conferma che ci troviamo di fronte ad una meccanica SAS, Serial Attached SCSI. Considerando quanto siano importanti le prestazioni velocistiche complessive del sottosistema storage, una soluzione Raid 0 con 6 hard disk avrebbe permesso di ottenere prestazioni complessive più elevate; questo tuttavia sarebbe andato a scapito della continuità del servizio, in quanto un solo disco difettoso nella catena Raid 0 porta alla perdita di tutti i dati memorizzati nei dischi e alla perdita di continuità del servizio.

Passando al piano prestazionale, una catena Raid 0 permette di accoppiare due o più dischi che operano in parallelo nelle operazioni di lettura e scrittura; questo permette di velocizzare considerevolmente queste operazioni nel momento in cui vengono letti o scritti dati in modo sequenziale. Nel momento in cui, invece, gli accessi ai dischi avvengono in modo random, e queste sono tipicamente la maggior parte delle operazioni eseguite soprattutto in ambito database, una catena Raid 0 non permette di velocizzare le operazioni se non in misura marginale, in quanto collo di bottiglia alle prestazioni è il tempo di accesso ai dati, funzione della velocità di rotazione dei piatti.

Per questo motivo abbiamo scelto di utilizzare 6 hard disk da 15.000 giri di velocità di rotazione: questo ha permesso di bilanciare la velocità del Raid 0 con la ridondanza dei dati del Raid 1 attraverso una configurazione Raid 10, potendo avere i tempi di accesso più bassi disponibili grazie all'utilizzo di dischi con questa velocità di rotazione dei piatti. La scelta è inoltre caduta su meccaniche da 3,5 pollici e non su quelle da 2,5 pollici: con queste ultime avremmo potuto configurare una catena Raid con 8 hard disk sempre utilizzando meccaniche da 15.000 giri al minuto di pari capienza, ma con un costo d'acquisto più che doppio rispetto ai 6 dischi da 3 pollici e mezzo

13_s.jpg (42200 bytes)

Una configurazione Raid 10 permette di avere ridondanza dei dati, così da garantire continuità del servizio nel momento in cui uno degli hard disk dovesse danneggiarsi. Un approccio simile è stato scelto anche per l'alimentazione, in quanto nel server Poweredge 2950 abbiamo configurato due alimentatori da 750 Watt ciascuno montati in ridondanza: nel caso in cui l'alimentatore principale dovesse smettere di funzionare, o venisse sfilato dalla sua sede, l'alimentatore secondario entrerà in funzione senza interruzione nel funzionamento del server. Entrambi gli alimentatori sono collegati alla rete elettrica utilizzando uno switch di reboot: si tratta di un dispositivo al quale i vari server sono collegati via presa di alimentazione, con il quale da remoto è possibile togliere completamente alimentazione al server o riavviarlo togliendo e rimettendo l'alimentazione. Questo tipo di dispositivo facilita un riavvio del server senza la necessità di dover essere di fronte al server stesso.

12_s.jpg (24323 bytes)

Dal pannello posteriore è possibile osservare i due alimentatori, ciascuno con la propria presa di alimentazione; al centro sono chiaramente distinguibili le staffe per le due schede di espansione, la maniglia che facilita il montaggio del server nel rack, le connessioni per display, porta seriale, USB e lan.

 
^