Written by

Les 14 et 23 décembre 2011, deux inci­dents ont impac­té le bon fonc­tion­ne­ment de nos ser­vices pour une majo­ri­té de nos clients. Ce billet revient sur ce qui s’est pas­sé et sur les conclu­sions que nous en tirons.

Ce qui s’est passé

Le 14 décembre

Le 14 décembre vers 18h30, nous avons détec­té un packet loss d’en­vi­ron 3 % entre cer­tains de nos ser­veurs (http4 et http6). Ce packet loss a eu des réper­cus­sions immé­diates pour les comptes concer­nés : la com­mu­ni­ca­tion entre ces ser­veurs et nos autres ser­veurs internes (SQL, SSH, FTP) était for­te­ment ralen­tie. Concrètement, le temps d’af­fi­chage d’une page Web fai­sant de nom­breux accès à la base de don­nées pou­vait pas­ser de 0,5 à plus de 5 secondes.

Nous avons immé­dia­te­ment aver­ti notre four­nis­seur de ce packet loss afin qu’il y remé­die. Moins de 30 minutes après, le pro­blème avait disparu.

Le packet loss est réap­pa­ru plus tard dans la soi­rée, avant de dis­pa­raitre à nou­veau. À nou­veau le len­de­main, le pro­blème est réap­pa­ru aléa­toi­re­ment. Devant les dif­fi­cul­tés de notre four­nis­seur à iso­ler et résoudre la source du pro­blème – le carac­tère inter­mit­tent n’ai­dant pas – nous avons déci­dé de déployer en urgence une fonc­tion­na­li­té qu’il pro­pose : les VLAN. Cela per­met à nos ser­veurs de com­mu­ni­quer entre eux via un che­min pri­vi­lé­gié, iso­lé du réseau public.

Après avoir rapi­de­ment effec­tué quelques tests et nous être assu­rés que le pro­blème ini­tial de packet loss était réso­lu en pas­sant par les VLAN, nous avons démar­ré le déploie­ment sur nos ser­veurs impac­tés. Ce déploie­ment a néces­si­té une mise à jour du noyau, et donc un redé­mar­rage de plu­sieurs ser­veurs. En fin de soi­rée, le pro­blème était réso­lu, à l’ex­cep­tion des accès FTP encore par­tiel­le­ment ralentis.

Précisons que nous avions pré­vu d’u­ti­li­ser les VLAN – fonc­tion­na­li­té lan­cée depuis plu­sieurs mois par notre four­nis­seur – au pre­mier semestre 2012. Pourquoi pas avant ? Parce que pour être déployé cor­rec­te­ment, cela demande du temps ; la mise en pro­duc­tion effec­tuée pour résoudre le pro­blème reste rela­ti­ve­ment ban­cale et tem­po­raire. Par ailleurs, cette fonc­tion­na­li­té n’est pas non plus exempte de pro­blèmes, et nous pré­fé­rons évi­ter de nous ruer vers les nou­veau­tés pour en essuyer les plâtres.

Le 23 décembre

Le pro­blème ini­tial – le packet loss aléa­toire – a tou­te­fois per­du­ré, bien qu’il ne nous impac­tait plus. Le 23 décembre à 22h05, l’ac­cès à nos deux ser­veurs http4 et http6 est deve­nu très for­te­ment per­tur­bé : plus de 50 % de packet loss. Cette fois-ci, le pro­blème ne concer­nait pas uni­que­ment le tra­fic interne mais aus­si le tra­fic externe (d’Internet vers nos ser­veurs). En consé­quence, l’ac­cès à l’en­semble des sites est deve­nu extrê­me­ment dif­fi­cile (l’en­semble des autres ser­vices n’é­tant pas impacté).

Nous avons immé­dia­te­ment remon­té le pro­blème à notre four­nis­seur, puis avons déci­dé paral­lè­le­ment de le contour­ner en redi­ri­geant le tra­fic HTTP vers d’autres ser­veurs non impac­tés, ces der­niers ser­vant alors de proxy vers les ser­veurs per­tur­bés (en com­mu­ni­quant via le VLAN). Vers minuit – il a fal­lu le temps d’at­tendre la pro­pa­ga­tion DNS – le pro­blème était donc en très grande par­tie réso­lu, du moins dans les faits. Vers 1h30, notre four­nis­seur a pu iden­ti­fier et résoudre le pro­blème. Nous avons alors pu rebas­cu­ler le tra­fic sur les ser­veurs HTTP d’origine.

Conclusions

Plusieurs conclu­sions peuvent être tirées de ces perturbations :

  • la ges­tion de cette panne par notre four­nis­seur a été insuf­fi­sante. Nous allons veiller à remon­ter l’in­for­ma­tion et à faire en sorte que ce genre de pro­blème aléa­toire soit trai­té plus effi­ca­ce­ment. Par ailleurs, nous allons très cer­tai­ne­ment nous mon­trer plus insis­tants si cela se reproduit ;
  • notre contour­ne­ment des pro­blèmes, notam­ment via la redi­rec­tion HTTP vers des ser­veurs non impac­tés, a été glo­ba­le­ment satis­fai­sante. Nous avons tou­te­fois noté cer­tains points qui sont amé­lio­rables et qui nous per­met­traient de réagir plus rapi­de­ment si la situa­tion devait se reproduire ;
  • notre moni­to­ring s’est avé­ré insuf­fi­sant en cas de packet loss. Ce n’est pas une sur­prise ; la refonte de notre moni­to­ring est pré­vue pour le deuxième tri­mestre 2012 ;
  • la mise en place du VLAN devrait nous per­mettre d’a­mé­lio­rer la sta­bi­li­té de nos ser­vices. Les pannes 10, 11 et 15 auraient cer­tai­ne­ment été évi­tées, par exemple.

Nous pré­sen­tons toutes nos excuses à l’en­semble des clients impac­tés, par­ti­cu­liè­re­ment en cette période de pré-Noël. À très bien­tôt pour des nou­velles bien plus réjouissantes :)