Sobre els errors al servei de disc

El passat divendres dia 30 de març (divendres Sant, festiu) va haver algun tipus d'incidència a la climatització del CPD del D6, de la qual no vam ser notificats.

Recuperant la informació de les diferents sondes de temperatura instal·lades al CPD hem pogut comprovar que la temperatura del CPD va començar a pujar des dels 21.8 graus inicials a les 6:45h fins a un màxim de 29.3 graus, enregistrats a les 12:15h, i després va anar baixant paulatinament fins retornar als 21.9 graus a les 19:15h.

Les sondes de temperatura situades darrera dels armaris del sistema de disc distribuït van enregistrar temperatures superiors als 34 graus, i es van fregar els 38 graus darrera dels armaris del clusters.

Tot apunta que aquesta és la causa de la fallada de molts dels discs del sistema de disc distribuït que vam començar a patir al voltant de les 15h.

El sistema de disc distribuït actualment està format per:

  • 5 nodes controladors
  • 13 nodes d'emmagatzematge, cadascun amb entre 16 i 20 discs rotacionals actius de 2 TB i 4 discs SSD de 400 GB

Els discs rotacionals és on s'emmagatzemen les dades. Els SSDs estan actualment destinats a accelerar les lectures i escriptures.

Dels 212 discs rotacionals actius, aquell dia en van fallar 16: 4 discs de dos nodes diferents es van avariar definitivament; 12 discs d'un altre node deixaven d'estar disponibles de manera intermitent, sense aparent explicació.

Tot això va provocar molta càrrega en el sistema de disc, que intentava autorecuperar-se dels diferents problemes amb què s'anava trobant. Això ho fa copiant dades cap a d'altres discs/nodes, la qual cosa té impacte sobre els serveis que descansen sobre el disc distribuït, que són pràcticament tots:

  • màquines virtuals d'infraestructura que proveeixen la resta de serveis: web, intranet, aplicatius, correu, etc.
  • màquines virtuals d'usuaris
  • emmagatzematge per als directoris d'usuari i dels clusters
  • etc.

El resultat és que la majoria de serveis van començar a respondre amb notable lentitud, i fins i tots alguns van quedar offline. Aquestes són les alertes que nosaltres sí que vam rebre.

Davant d'aquesta situació, vam intentar solucionar els problemes de manera remota en primera instància a partir de les 16h del mateix dia 30: vam recuperar completament el node de disc del qual els discs "desapareixien" intermitentment i vam deixar que el sistema acabés de redistribuir les dades abans de proseguir amb l'actuació.

En aquell punt ja vam detectar que una petita part de les dades havien quedat inconsistents, i el sistema de disc distribuït notificava un error. L'error afectava únicament el pool d'emmagatzematge de les màquines virtuals d'usuari (OpenNebula).

El dissabte dia 31 de març vam fer una actuació presencial al CPD substituint diversos discs fallits i intentant solucionar l'error detectat pel sistema. Vam deixar el servei estable però no vam poder solucionar definitivament l'error.

Els dies posteriors, encara durant el tancament patronal de Setmana Santa, vam continuar monitoritzant el sistema durant el seu rebalanceig de dades, producte de la substitució de múltiples discs rotacionals, i provant sense èxit a resoltre l'error.

Un cop acabat el tancament de Setmana Santa, vam concentrar els nostres esforços en recuperar la porció de dades que havia quedat inconsisten per la fallada simultània de múltiples discs. L'impacte es reduia a que algunes de les màquines virtuals d'usuari (OpenNebula) podien quedar-se penjades si tenien dades a la zona de disc afectada. El total de dades compromeses era tan sols de 1.4 GB. Ens van notificar una única incidència en una sola màquina virtual, però vam poder constatar que n'hi havia algunes més que havien estat afectades.

Per a resoldre el problema vam provar d'aplicar totes les possibles solucions que hi ha documentades als diferents canals oficials, però cap va resultar definitiva. També ens vam posar en contacte amb la comunitat de suport del sistema de disc (Ceph) i vam seguir les seves indicacions, sense èxit. Investigant per fòrums i llistes de correu vam trobar casos similars al nostre, però que no havíen aconseguit resoldre satisfactòriament: alguns recomanaven esborrar totes les dades del pool, i d'altres fins i tot abandonaven Ceph. Finalment, vam optar per aplicar certes operacions d'emergència no documentades en cap canal oficial, i no exentes de risc per a les dades del pool, per acabar recuperant íntegrament les dades. Això va ser el passat divendres 6 d'abril, sobradament passada la jornada laboral, quan vam poder resoldre l'error definitivament. Des de llavors el servei va quedar restablert en la seva totalitat.

Actualment estem treballant en millorar la detecció de les incidències de temperatura al CPD del D6 per a poder anticipar-nos i prevenir aquestes situacions en el futur.