Archive

Archive for mars 2012

Azure : le bug du 29 février expliqué dans le détail !

L’équipe Windows Azure à publier un excellent article technique expliquant l’origine du bug du 29 février qui a perturbé le fonctionnement d’Azure pendant plus de 12 heures. Azure Storage et SQL Azure n’ont pas été impacté par ce soucis. ACS et le Service Bus ont été affecté indirectement par cet évènement.

http://blogs.msdn.com/b/windowsazure/archive/2012/03/09/summary-of-windows-azure-service-disruption-on-feb-29th-2012.aspx

Voici un résumé simplifié de l’explication technique fournit dans le billet :

L’origine du soucis est lié à un problème de date d’expiration de certificats utilisé pour sécuriser les échanges de données sensibles entre les machines virtuelles (VM) exécutant vos applications et le système de gestion des ressources des datacenter : les Fabric Controler (FC).

  • Le certificat est généré/regénérer lors du démarrage des VM (après une mise à jour, un changement de nombre d’instance, un re-création d’image, … ) ou dans certains cas particuliers), afin de permettre le dialoguer enter les logiciels agents du FC tournant dans la VM et le FC lui même. Ce certificat à une durée de vie de 1 an. La génération de la date de fin se fait a partir de la date du jour (à 00h00) et à laquelle on ajoute 1 à l’année en cours. ==> Les tentatives de génération des certificats ayant lieu le 29/02/2012 UST demandaient donc une date d’expiration le ‘29/02/2013 00:00’ ce qui est une date invalide –> La génération du certificat échouait. Ce bug à commencé à se produit le 28 février à 16h00 PST (29 février 00h00 UST).
  • Si, au bout de 25min, l’ agent du FC n’a pas reçut le certificat d’une VM il la considère comme problématique et déclenche la création d’une nouvelle VM de remplacement. Le phénomène se reproduit de nouveau car la création de certificat échoue à chaque fois.
  • Au bout de 3 tentatives d’affilée de re-création de VM qui échoue, le FC considère le serveur physique hébergeant les VM comme problématique et retire ce serveur du pool de serveurs disponibles en le marquant comme nécessitant une intervention humaine de maintenance (HI : Human Investigate).
  • Le FC va alors affecter d’autres serveurs disponibles dans le cluster (un ensemble d’environ 1000 machines) pour re-créer de nouvelles VM … sur lesquels le bug du certificat va se reproduire.
  • Au fur et à mesure, de plus en plus de serveurs physiques sont marqués “HI”. Le FC déclenche une sécurité qui bloque ces automatismes quand la quantité de serveur marqué HI atteint un seuil anormal. Cette sécurité à empêcher la mise hors service de l’ensemble des serveurs des cluster mais à aussi stoppé les processus de mise à jours en cours; ce qui eu pour conséquence de laisser parfois des applications dans des états instables ou dégradées.
  • Le déclenchement de cette sécurité par le FC a entrainé l’alerte des opérateurs de surveillance des DataCenter pour signifier un problème insoluble par les automatismes et nécessitant une intervention humaine urgente (17h15 PST).
  • En parallèle, une mise à jour des logiciels internes du datacenter (FC et ses logiciels agents) se déroulait. Cette mise à jour déclenchait la régénération des certificats d’échanges entre les VM et les agents du FC, ce qui à eu pour conséquence de déclencher le bug dans des VM qui fonctionnait correctement, accentuant ainsi l’effet du bug en forçant la réinitialisation de VM saine. Ceci explique pourquoi des clients n’ayant demandé aucune mise à jour de leurs applications durant cette période ce sont quand même vu impacté par le bug. Les cluster non concerné par cette mise à jour interne ont été moins impacté par le bug. L’augmentation anormale du nombre de cluster en cours de mise à jour avec un seuil HI atteint a entrainé l’alerte des équipes de développement du FC et des ses agents (18h38 PST).
  • A ce moment là pour éviter une aggravation de la situation par des clients voulant re-déployer des mise à jour ou forcer des redémarrages pour résoudre les soucis constaté, le service de Management (utilisé par le portail d’administration) a été arrêté pour maintenir un statu-quo (18h55 PST). Il s’agit de la première fois que ce seuil d’intervention à été atteint.
  • Les équipes de développement ont codé un correctif, qui fut testé dans un premier cluster de test à 01h50 PST le 29/02, ainsi que sur un cluster de production d’application interne à Microsoft.
  • Après une validation sur un cluster de production, la diffusion générale du correctif à été lancé sur tous les clusters problématiques. A 5h23 PST, Microsoft annonce la restauration du service de management.

 

  • 7 clusters venaient juste de commencer leur mise à jour (soit environ 7000 serveurs physiques) lors du déclenchement du bug, ce qui a laissé les couches logicielles Azure des VM et des serveurs dans des niveaux versions différentes et incompatibles entre elles. Ces 7 clusters ont donc été traités différemment : retour vers la version précédentes MAIS avec le bug du 29/02 corrigé. Habituellement cette procédure de mise à jour est progressive et prend plusieurs heures pour respecter les disponibilités des applications, mais dans ce cas exceptionnel, une mise à mise à jour simultanée de tous les serveurs a été forcées.
  • Malheureusement une mauvaise version de couche réseau a été déployé ce qui a empêché le réseau virtuel reliant les VM de se configurer, privant ainsi toutes les VM concernées de connectivité (02h47 PST). Etant donné que les processeurs utilisé dans Azure ont 8 cœurs : potentiellement jusqu’à 56000 VM de type Small ont pu être impacté par ce 2e soucis (8 cœurs * 7 clusters * 1000 serveurs).
  • Ces 7 clusters hébergeait majoritairement les fonctionnalités d’Access Control et du Service Bus, ce qui explique pourquoi ces fonctionnalités ont aussi été impacté par le bug ‘grâce’ à un effet cascade.
  • Un correctif du correctif a été déployés sur ces 7 clusters, et à 08h00 PST la quasi totalité des serveurs était de nouveau fonctionnel.
  • Un certain nombre de serveurs de ces 7 cluster étaient dans des états instables et/ou corrompus et ont du être restaurés manuellement.
  • le 1er Mars à 02h15 PST l’ensemble des services était de nouveaux fonctionnels

Le post de blog d’origine décrit ensuite les conséquences de cet incident, et le plan d’actions que l’équipe Azure va mettre en place.

Catégories :Windows Azure Étiquettes : , , ,

Précisions sur les différences entre les tailles de VM Azure : Bande passante réseau

Outres les différences connues entre les type de VM Azure (taille mémoire, taille disque, nombre de coeur CPU), une autre caractéristique technique est différentiente : la bande passante réseau disponible. En effet, la vitesse de la connectivité réseau (bien que virtuelle) est différente en fonction de la taille de la VM. La règle est de 100Mbs par cœur de CPU, sauf pour l’ExtraSmall.

Extra small :     5Mbs          
Small : 100Mbs
Medium : 200Mbs    
Large : 400Mbs
ExtraLarge : 800Mbs
        

 

En conséquence, si vous avez à effectuer des taches peu consommatrice en temps CPU mais nécessitant un gros débit réseau, il peut être judicieux de choisir des tailles de VM plus grosses. les VM ExtraSmall était clairement destiné à des petites applications ou pour faire du développement/test.

Catégories :Windows Azure Étiquettes : , ,

Azure : Baisse de prix depuis le 8 mars 2012

Outre les baisses de prix de SQL Azure annoncé le 15/02 (cf ce billet), Microsoft vient d’annoncer de nouvelles baisses de la tarifications sur d’autres services Azure :

  • Azure Storage : le Gb passe à 0.0887€
  • Azure Compute : les instances Extra Small voit leur prix divisé par 2 : au lieu d’être compatibilité comme 1/3 d’heure ‘Small’, elles sont comptabilisé comme 1/6 d’heure ‘Small’. (je rappelle de l’heure de VM Small est l’utilisation de comptabilisation du temps de calcul dans Azure Compute)

La baisse de prix des instance ExtraSmall est extrêmement intéressante pour 2 profils de consommateurs :

  • site web à très faible montée en charge
  • développeur (abonnement MSDN, …) : cette baisse de cout multiplie donc par 2 le nombre d’heure de vm “Extra Small” utilisable gratuitement dans le cadre de ses abonnements. De quoi se sentir moins à l’étroit pour ses tests Sourire

Le détail de la tarification se trouve ici : http://www.windowsazure.com/fr-fr/pricing/details/

Catégories :Windows Azure Étiquettes : , ,

SQL Azure : déplacement d’un serveur vers une autre souscription

Petite nouveauté dans le portail d’administration Azure, il est maintenant possible de déplacer un serveur SQL Azure vers une autre souscription. Très pratique quand on utilise une souscription à tarif privilégié (type MSDN) qui arrive à expiration , cela évite de reconstruire la base de données dans la nouvelle souscription !

picMoveServer

subscribtionSelection

Une fois le nouvel abonnement sélectionné et validé, le serveur se retrouve quasi instantanément attaché à la nouvelle sélection, sans interruption de service au niveau SQL Azure.

A quand le même fonctionnalité sur les Hosted Services ?

Catégories :Windows Azure Étiquettes : , , ,