Wednesday, June 9, 2010

Care este temperatura optimă în "camera cu servere" sau "centrul de date"?

Cu ceva timp în urmă am instalat un sistem de răcire pentru o cameră cu servere (server room) - că nu pot să fiu pompos și să-i zic "centrul de date" (data center), e prea mic...
După ce l-am instalat, a intervenit momentul ăla cu "ăăăăă...mmm..." în care care am stat și m-am scărpinat în cap, gândindu-mă la ce temperatură să setez răcirea în cameră, pentru a face un balans între consumul de energie electrică și o temperatură optimă pentru serverele din rack.
Și mi-am data seama că habar nu am care ar putea fi temperatura optimă pentru echipamente IT.
Așa că m-am apucat să-l întreb pe prietenul Google, care-i treaba cu temperatura în data center. Am aflat cu ocazia asta că există o organizație tehnică non-profit, specializată pe tehnologii de răcire, numită "American Society of Heating, Refrigerating and Air-Conditioning Engineers", sau ASHRAE, cu site-ul la: http://www.ashrae.org/.

"Din vorbă în vorbă" am aflat că în această organizație există Comitetul Tehnic 9.9 (ASHRAE Technical Committee TC 9.9) care se ocupă cu "Mission Critical Facilities, Technology Spaces, & Electronic Equipment / Systems" și care poate fi vizitat la adresa:  http://www.tc99.ashraetcs.org
Adică acești neni se ocupă cu tot ce ține de mediul de lucru pentru IT, Telecom, etc., ei stabilesc moduri de lucru, stabilesc standarde, fac recomandări, scriu cărți, bla, bla, bla.

ASHRAE a împărțit echipamentele IT&C în mai multe clase în funcție de modul lor de utilizare:


OK, serverele noastre se încadrează în Clasa 1 & 2, iar recomandările ASHRAE pentru cele 4 clase sunt:


Deci gama de temperaturi permisă pentru Clasa 1 e 15 - 32 C iar cea recomandată e 20 - 25 C. Dar am descoperit că valorile astea erau valabile din 2004, până în 2008, când, ca urmare a crizei economice și acțiunii unor mari deținători de data centere (cum ar fi Google, Microsoft, etc.) de a experimenta cu creșteri ale temperaturii în ideea de a vedea dacă se pot face economii, ASHRAE a decis că este nevoie de o modificare a "standardului" și a emis în 2008 o nouă recomandare:

- gama recomandată a temperaturii pentru Clasa 1 va fi 18 - 27 C.
- gama recomandată a umidității pentru Clasa 1 va fi 5,5 - 15 și va fi dată în Dew Point (punctul de rouă), și nu în RH - Relative Humidity (Umiditate relativă) ca înainte.

Acum, întrebarea ar fi, care-i diferența dintre gama de temperaturi permisă și cea recomandată? Se pare că  gama de temperaturi permisă poate fi folosită, echipamentele vor funcționa bine, dar pe riscul tău, pentru că statistic duce la un număr mai mare de defecte decât gama de temperaturi recomandate.

Iată și un grafic foarte frumos, cu diferențele între recomandările vechi și cele noi, suprapuse pe plaja de temperaturi permise de majoritatea fabricanților de echipamente IT&C:

După cum se poate vedea, plaja de temperaturi permisă de fabricanți e mult mai largă chiar decât plaja permisă de ASHRAE, dar nu știu cât de benefic e pentru un server în a-l utiliza la temperaturi de peste 30 de grade Celsius timp de 3-4 ani de zile, cât e "viața în rack" a unui server...

În final, am făcut media la recomandarea ultimei versiuni ASHRAE, din 2008 și mi-a ieșit: 22 C, pe care am și setat-o!

Thursday, June 3, 2010

Lipsă monitorizare ventilatoare pe un MB Intel Server Board S3210SHLC

De ceva timp mă tot lupt cu un server făcut pe o placă de bază Intel Server Board S3210SHLC, al cărui BMC (Baseboard Management Controller) - care se ocupă cu managementul de la distanță și cu monitorizarea tensiunilor, temperaturii și răcirii serverului - nu vrea să "citească" turația ventilatoarelor montate în server.
Și are patru ventilatoare pe care trebuie să le monitorizez, că altfel serverul se încălzește și e jale...

MB-ul are ultimul update de BIOS, BMC, FRU & SDR.
SDR (Sensor Data Record) e configurat corect, pentru o carcasă alta decât una Intel, toate 4 SYS FAN sunt activate, dar când mă conectez la BMC situația e cam albastră...:

dpccli> sensors -v
04/28/10 | 16:38:41 | BB +1.8V SM          | ok           |    1.78 | Volts
04/28/10 | 16:38:42 | BB +3.3V             | ok           |    3.29 | Volts
04/28/10 | 16:38:42 | BB +3.3V STBY        | ok           |    3.24 | Volts
04/28/10 | 16:38:42 | BB +5.0V             | ok           |    4.92 | Volts
04/28/10 | 16:38:42 | Processor Vcc        | ok           |    1.14 | Volts
04/28/10 | 16:38:42 | BB Ambient Temp      | ok           |   37.00 | Celsius
04/28/10 | 16:38:42 | CPU Fan              | ok           |  935.00 | RPM
04/28/10 | 16:38:42 | System Fan 3         | ok           |    0.00 | RPM
04/28/10 | 16:38:43 | P1 Therm Margin      | ok           |  -68.00 | Celsius

După cum se vede, nu recunoaște decât un singur ventilator de sistem și ăla e cu turație zero, dar el zice că e OK!!!! Deștept băiatul!

Am configurat din nou SDR-ul prin EFI, activat toate ventilatoarele, etc. Nimic.
Având în vedere că BMC-ul nu lua în seamă configurarea făcută de mine pentru SDR, am citit regiștrii SDR-ului cu FRUSDR.efi. Acolo toate erau la locul lor, în sensul că senzorii înregistrați concordau cu cei afișați. Adică era normal să-mi afișeze doar un singur ventilator, pentru că aveam doar un singur registru, pentru System Fan 3.

Nu-i a bună!
Resetarea BMC-ului nu are nici un efect.
Am abandonat problema, din lipsă de timp și de inspirație.
Între timp, am pus problema și pe comunitatea de asistență tehnică de la Intel și am primit un răspuns, cum că rescrierea firmware-ului pentru BMC ar putea să rezolve această problemă.

Când am mai făcut rost de ceva timp, am purces la rescrierea completă a firmware-ului pentru BMC, FRU, SDR și a BIOS-ului. Zis și făcut.
Când am ajuns la SDR, din greșeală am selectat în loc de o carcasă non-Intel, carcasa "Intel(R) Server Chassis SC5299 UP". După reboot, în BMC lucrurile stăteau altfel:

dpccli> sensors -v
06/02/10 | 18:56:16 | BB +1.8V SM          | ok           |    1.78 | Volts
06/02/10 | 18:56:17 | BB +3.3V             | ok           |    3.30 | Volts
06/02/10 | 18:56:17 | BB +3.3V STBY        | ok           |    3.24 | Volts
06/02/10 | 18:56:18 | BB +5.0V             | ok           |    4.94 | Volts
06/02/10 | 18:56:18 | Processor Vcc        | ok           |    1.14 | Volts
06/02/10 | 18:56:19 | BB Ambient Temp      | ok           |   32.00 | Celsius
06/02/10 | 18:56:19 | CPU Fan              | ok           |  867.00 | RPM
06/02/10 | 18:56:20 | System Fan 1         | ok           | 3146.00 | RPM
06/02/10 | 18:56:20 | System Fan 2         | ok           | 3068.00 | RPM
06/02/10 | 18:56:21 | P1 Therm Margin      | ok           |  -68.00 | Celsius
dpccli>


Eii..., altă treabă..., se pare că ventilatoarele mergeau până la urmă, doar că SC5299 UP suportă doar 2...
Am repetat procedura de update, ca să capăt și restul de 2 ventilatoare care-mi lipseau din monitorizare:

dpccli> sensors -v
06/02/10 | 19:19:19 | BB +1.8V SM          | ok           |    1.78 | Volts
06/02/10 | 19:19:19 | BB +3.3V             | ok           |    3.30 | Volts
06/02/10 | 19:19:20 | BB +3.3V STBY        | ok           |    3.24 | Volts
06/02/10 | 19:19:20 | BB +5.0V             | ok           |    4.94 | Volts
06/02/10 | 19:19:21 | Processor Vcc        | ok           |    1.14 | Volts
06/02/10 | 19:19:21 | BB Ambient Temp      | ok           |   32.00 | Celsius
06/02/10 | 19:19:22 | Chassis Fan 1        | ok           | 1750.00 | RPM
06/02/10 | 19:19:22 | Chassis Fan 2        | critical     |    0.00 | RPM
06/02/10 | 19:19:23 | Chassis Fan 3        | ok           | 3150.00 | RPM
06/02/10 | 19:19:23 | Chassis Fan 4        | ok           | 3360.00 | RPM
06/02/10 | 19:19:24 | Chassis Fan 5        | ok           | 3290.00 | RPM
06/02/10 | 19:19:24 | P1 Therm Margin      | ok           |  -66.00 | Celsius
dpccli>

În sfârșit, aveam acces la toate ventilatoarele, dar unul din ele se pare că nu putea fi monitorizat...
În urma update-ului, denumirea ventilatoarelor în BMC s-a schimbat și acum trebuia să identific care ventilator conectat la MB era de fapt cel raportat defect de către BMC, pentru că fizic toate 4 mergeau în realitate cât se poate de bine, doar la Chassis Fan 2 nu aveam turația. Fie un senzor din BMC era defect, fie senzorul de turație din ventilator era defect.

M-am pus pe cartografiat MB-ul și prin deconectarea/conectarea fiecărui ventilator în parte iată ce a ieșit:


MB BMC
--- ---
CPU FAN Chassis Fan 1
SYS FAN 1 Chassis Fan 4
SYS FAN 2 Chassis Fan 5
SYS FAN 3 Chassis Fan 2
SYS FAN 4 Chassis Fan 3



Deci ventilatorul pe care trebuia să-l verific era SYS FAN 3, care e unul de 12CM. L-am înlocuit și totul a revenit la normal, turația era OK.
Problemă rezolvată!

Remote Desktop într-un Server 2008 R2 cu blocaje sau încetineli

Zilele trecute am instalat pe un server Intel Server System SR1630HGP un Windows Server 2008 R2 Enterprise Edition.
Toate bune și frumoase, serverul mergea strună (avea și cu ce..., Xeon cu 8 nuclee logice la 2,66GHz, 16GB DDR3, hot swap ,4 conexiuni GbE, în fine, tot tacâmul...) dar după ce am făcut toată procedura standard pentru un server nou:
  • actualizat BIOS, Firmware BMC, SDR, FRU, etc,
  • configurat BIOS, BMC, etc.
  • instalat interfețe GbE suplimentare
  • testat RAM-ul
  • configurat RAID
  • testat volumele RAID
  • instalat sistemul de operare & actualizări
  • instalat drivere
  • configurat adrese IP, etc.
am montat serverul în rack, la locul lui, l-am conectat la KVM, rețea, UPS și am încercat să mă conectez la server prin RDP, de pe o stație Windows 7, că doar nu o să stau toată ziua în camera cu servere...

Inițial totul a mers bine, doar că uneori desenarea ecranului remote nu era chiar așa de "sprințară", ca să zic așa... În fine, nu mi-am bătut capul.
A doua zi, am încercat să intru iar pe server prin RDP, după login fie Server Manager apărea parțial și totul se bloca, fie din prima primeam un ecran negru și după un timp sesiunea se închidea singură. Ooops..., aveam o problemă!

Să nu pot să intru remote pe un server??? No way!!!

Pe server, în System Event Viewer, aveam erori:
Event Id: 56, Source: TermDD, The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. Client IP: stația mea. 
Event Id: 50, Source: TermDD, The RDP protocol component X.224 detected an error in the protocol stream and has disconnected the client. 
Pe Google/MSKB/TechNet, căutările pe aceste erori sau pe simptomul de blocări/încetineli pe RDP aveau în general rezolvări diverse, ba cu TCP/IP Offloading-ul efectuat de plăcile de rețea, ba cu Network Level Authentication sau cu driverele plăcii de rețea.

Inițial am dezactivat din registry TCP Offloading, creând cheia DisableTaskOffload cu valoarea 1 în HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters. A părut să meargă, dar pista s-a dovedit falsă, deoarece activarea/dezactivarea offloadingului din registry necesita un reboot și oricum sesiunea RDP își revenea după un reboot, chiar și fără nici o modificare a configurației....

Apoi am dezactivat toate setările de Offloading din proprietățile plăcii de rețea. Astea nu mai necesitau un reboot iar efectul a fost imediat, RDP-ul mergea din nou!!!! Gata, am zis, l-am rezolvat.
A doua zi, RDP-ul se bloca cu ecran negru...

Am încercat fel de fel de setări pe la driverul plăcii de rețea din server. Totul mergea până a doua zi...
Pus ultimele versiuni de drivere la plăcile de rețea. Nimic.
Au urmat diverse dezactivări de RSS și Autotuning pe client. Nimic.
Dezactivat Network Level Authentication pe server. Nimic.
RDP de pe stații XP SP3. Nimic.

După mai bine de o săptămână în care practic nu am putut să pun în producție serverul, am încercat din curiozitate un ping pe IP-ul către care făceam RDP și cu uimire am constatat că se pierdeau pachete, nu multe, destul de rar. Dar se pierdeau!
Imediat am înlocuit cablul care ducea la switch și ca prin farmec problema s-a rezolvat, RDP-ul merge perfect, așa cum trebuie!

Învățătură de minte: începe cu verificările de la lucrurile de bază, nu o lua de sus în jos!